1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ZAMYLA Chan: Ajmo Zabavite se s petnaest godina. 3 00:00:11,332 --> 00:00:15,680 Petnaest je prva igra koja ste dobili provesti i to je interaktivni. 4 00:00:15,680 --> 00:00:16,410 Sad, ne brinite. 5 00:00:16,410 --> 00:00:18,830 Ne morate pisati Cijela stvar se. 6 00:00:18,830 --> 00:00:22,320 Pogledajte distribucijskom kodu, jer Mnogo igri strukture već 7 00:00:22,320 --> 00:00:23,880 postaviti za vas. 8 00:00:23,880 --> 00:00:28,160 Ona prihvaća i analizira naredbenog retka Argument od korisnika i stvara 9 00:00:28,160 --> 00:00:31,230 odbora, temeljena na taj ulaz. 10 00:00:31,230 --> 00:00:35,570 Ona provjerava da li se igra dobiva i izlazi Nakon što korisnik je pobijedio u igri. 11 00:00:35,570 --> 00:00:38,340 A za pobjedu u igri, ona dobiva input od korisnika i 12 00:00:38,340 --> 00:00:40,610 poziva Move funkciju. 13 00:00:40,610 --> 00:00:44,600 >> Tako ćemo se provođenje četiri Funkcije za igru ​​od petnaest, 14 00:00:44,600 --> 00:00:48,110 init, crtanje, potez, i pobijedio. 15 00:00:48,110 --> 00:00:50,340 Prvo, neka se borila init. 16 00:00:50,340 --> 00:00:55,150 U init, za inicijalizaciju, zastupamo pansion u 2D cjelobrojnog polja. 17 00:00:55,150 --> 00:01:01,070 A to je globalna varijabla zove ploču dimenzija MAX i Max, 18 00:01:01,070 --> 00:01:03,880 maksimalna veličina ploče. 19 00:01:03,880 --> 00:01:07,310 Sada, stvarna dimenzija ploči je dano od strane korisnika, koju zastupa u 20 00:01:07,310 --> 00:01:10,620 cijeli broj d, što bi moglo biti manja od MAX. 21 00:01:10,620 --> 00:01:14,660 No, u C, ne možete promijeniti veličinu polja, tako da ste zapeli s 22 00:01:14,660 --> 00:01:16,730 da je maksimalna dimenzija. 23 00:01:16,730 --> 00:01:19,870 >> Vaš zadatak u init je naseliti vrijednosti na ploči 24 00:01:19,870 --> 00:01:21,860 uz odgovarajuću vrijednost. 25 00:01:21,860 --> 00:01:26,910 Sada smo vidjeli 1D polja, ali Kako 2D nizovi raditi? 26 00:01:26,910 --> 00:01:30,985 Tu je indeks zaredom, nula indeksirane kao i uvijek, a onda i od 27 00:01:30,985 --> 00:01:32,100 stupac. 28 00:01:32,100 --> 00:01:36,120 A vi ćete ispuniti svoju mrežu u u opadajuće vrijednosti, baš kao što je ovaj. 29 00:01:36,120 --> 00:01:43,260 Grid, 0, 0, 0 red, stupac 0, što je 8, grid 0, 1 je 7. 30 00:01:43,260 --> 00:01:48,500 Ovo je za primjer gdje d, malo d, je 3. 31 00:01:48,500 --> 00:01:52,690 >> Sada, pansion u petnaest također mora sadrže prazan pločice, ako ste ikada 32 00:01:52,690 --> 00:01:54,280 igrao s fizičkim igri. 33 00:01:54,280 --> 00:01:59,210 No, Odbor je cijeli niz, pa sve vrijednosti moraju biti cijeli. 34 00:01:59,210 --> 00:02:06,950 Dakle, to je na vama je da odlučite cijeli broj Vrijednost za zastupanje prazan pločice. 35 00:02:06,950 --> 00:02:10,460 Da bi započeti svoj odbor, možete koristiti Strukture petlje da sadrže 36 00:02:10,460 --> 00:02:16,440 počevši stanje odbora, gdje je ploča I j predstavlja element na 37 00:02:16,440 --> 00:02:19,380 red i i stupcu j. 38 00:02:19,380 --> 00:02:23,035 Oni će početi u redoslijedu i, zapamtite, da ako broj pločica 39 00:02:23,035 --> 00:02:29,590 neparan, onda ćeš se morati mijenjati položaj 2 i od 1. 40 00:02:29,590 --> 00:02:33,790 Dakle, postoji, mi imamo inicijaliziran odbora. 41 00:02:33,790 --> 00:02:37,440 >> Sada, da smo inicijaliziran naše odbora, vrijeme je da ga izvući. 42 00:02:37,440 --> 00:02:41,260 Ždrijeb će se ispisati trenutno stanje odbora, ali vi morate biti sigurni 43 00:02:41,260 --> 00:02:44,260 ispisati pločice u istom redoslijedu da ste ih ponište. 44 00:02:44,260 --> 00:02:47,300 I također je potrebno formatirati Vaši brojevi ispravno. 45 00:02:47,300 --> 00:02:51,700 Budući da smo mogli imati jednu znamenku i dvoznamenkasta, onda želite 46 00:02:51,700 --> 00:02:54,540 ispisati prazan prostor prije bilo jednoznamenkastim brojevima. 47 00:02:54,540 --> 00:03:00,150 Igrate se pomoću rezervirano mjesto -. 48 00:03:00,150 --> 00:03:02,550 >> Ali zapamtite našu prazan prostor. 49 00:03:02,550 --> 00:03:05,970 Ne želimo ispisati stvarni broj da smo izabrani da predstavljaju 50 00:03:05,970 --> 00:03:10,410 da je prazan prostor u brodu, ali smo također ne želim ispisati ništa. 51 00:03:10,410 --> 00:03:15,310 Dakle, što možete učiniti jest odrediti simbol ili lik za zastupanje 52 00:03:15,310 --> 00:03:17,050 prazan pločice. 53 00:03:17,050 --> 00:03:21,030 U prethodnom primjeru sam izabrao naglašavaju, a onda samo ispisati 54 00:03:21,030 --> 00:03:26,970 da kad god dođete prazna prostora u funkciji izvlačenja. 55 00:03:26,970 --> 00:03:29,850 >> Dakle, privući će uklopljeni za petlje. 56 00:03:29,850 --> 00:03:31,150 Nešto kao što je ovaj. 57 00:03:31,150 --> 00:03:35,660 Za svaki redak, a zatim za svaku vrijednost u red, idete za ispis 58 00:03:35,660 --> 00:03:36,940 Vrijednost u ovom prostoru. 59 00:03:36,940 --> 00:03:39,470 Nakon što ste ispisali sve vrijednosti u redu, onda 60 00:03:39,470 --> 00:03:41,180 može ispisati novu liniju. 61 00:03:41,180 --> 00:03:47,730 Sjetite se da je nalog za vaše izvlačenje Funkcija mora jeka ili ogledalo redoslijed 62 00:03:47,730 --> 00:03:48,980 u svom postavljene funkcije. 63 00:03:48,980 --> 00:03:51,290 64 00:03:51,290 --> 00:03:55,160 >> Sada kada ste inicijaliziran odbora i da ste ga izvući, to je vrijeme da 65 00:03:55,160 --> 00:03:58,500 Korisnik ga urediti i napraviti svoje poteze. 66 00:03:58,500 --> 00:04:03,840 Tako je u funkciji Fifteen.c, Program traje unos od korisnika i 67 00:04:03,840 --> 00:04:07,690 zatim poziva potez funkciju, prolazi broja pločica koje 68 00:04:07,690 --> 00:04:09,270 korisnik želi pomaknuti. 69 00:04:09,270 --> 00:04:10,380 Sada, budite oprezni. 70 00:04:10,380 --> 00:04:14,200 To je stvarni broj pločica a ne njezin stvarni položaj. 71 00:04:14,200 --> 00:04:19,010 Dakle, morat ćete tražiti pločica je Položaj znati gdje je to. 72 00:04:19,010 --> 00:04:23,440 >> Sada, samo treba dopustiti korisnik napraviti potez, ako je legalno. 73 00:04:23,440 --> 00:04:27,910 Pravni potez je bilo crijep koji je u susjedstvu na prazan pločice. 74 00:04:27,910 --> 00:04:32,020 To znači, gore i dolje, na lijevo i desno. 75 00:04:32,020 --> 00:04:34,680 Dakle, morat ćete znati gdje prazan crijep je kao dobro. 76 00:04:34,680 --> 00:04:39,720 Sada, za svaki potez ste u potrazi za Korisnici crijep, ali to je vjerojatno 77 00:04:39,720 --> 00:04:43,030 nije najbolje tražiti prazan pločice svaki put, jer ti to radiš 78 00:04:43,030 --> 00:04:45,270 svaki put korisnik želi pomaknuti. 79 00:04:45,270 --> 00:04:50,300 Dakle, umjesto da, to je najbolje da se sjetiti gdje prazan pločice koristi neke 80 00:04:50,300 --> 00:04:52,650 i nazvana varijable. 81 00:04:52,650 --> 00:04:55,970 Dakle, nakon što omogućuju korisniku da bi im poteze, oni su na dobrom 82 00:04:55,970 --> 00:04:59,700 način za pobjedu od petnaest. 83 00:04:59,700 --> 00:05:03,940 >> Kako pobijediti u igri petnaest pločica moraju biti u određenom redoslijedu, te 84 00:05:03,940 --> 00:05:06,970 osvojio funkcija provjerava jesu li Igra je dobila. 85 00:05:06,970 --> 00:05:10,290 To vraća True ako je igra dobila i pločice su u ispravnom redoslijedu, 86 00:05:10,290 --> 00:05:12,210 Lažno i inače. 87 00:05:12,210 --> 00:05:15,830 Dakle, za pobjedu u igri petnaest pločica moraju biti povećanje reda, s 88 00:05:15,830 --> 00:05:19,230 prazan pločice u donjem desnom kutu. 89 00:05:19,230 --> 00:05:23,630 Pa kako se provjeriti je li korisnik je preselio pločicu u pravu 90 00:05:23,630 --> 00:05:25,010 orijentacije? 91 00:05:25,010 --> 00:05:29,200 >> Pa, što će ponoviti više odbora i provjeriti vrijednosti kako bi bili sigurni da je 92 00:05:29,200 --> 00:05:30,550 oni su na pravom mjestu. 93 00:05:30,550 --> 00:05:33,910 Da biste to učinili, možete koristiti ugniježđeni za petlje baš kao i ti 94 00:05:33,910 --> 00:05:36,520 u ždrijebu i init. 95 00:05:36,520 --> 00:05:40,430 Postoji nekoliko načina za provjeru i provjeriti da li je ploča 96 00:05:40,430 --> 00:05:42,860 točne i pobjednički Formiranje, ipak. 97 00:05:42,860 --> 00:05:47,330 Ako idete s lijeva na desno, s početkom od vrha prema dolje redu, onda je svaki 98 00:05:47,330 --> 00:05:50,590 broj mora biti veći od prethodni. 99 00:05:50,590 --> 00:05:54,530 Budite oprezni o tome što cijenite sam izabrao za svoj prazan pločice ipak. 100 00:05:54,530 --> 00:05:59,250 >> Ili možete koristiti varijablu osporavanju Osigurati da svaka vrijednost je na mjestu, ako 101 00:05:59,250 --> 00:06:03,660 da se s nekom vrstom Formula za zastupanje ovo. 102 00:06:03,660 --> 00:06:06,250 Tako se zabaviti eksperimentiranje s matematikom. 103 00:06:06,250 --> 00:06:10,930 Nakon što ste se s puta, povratak Istina jednom korisniku je pobijedio u igri. 104 00:06:10,930 --> 00:06:15,950 Ali, ako bilo koja vrijednost je netočna, povratak Netočno, korisnik mora nastaviti kretanje 105 00:06:15,950 --> 00:06:18,440 jer oni nisu osvojili igru. 106 00:06:18,440 --> 00:06:23,030 Nakon što provede ovu provjeru i, zajedno s inicijalizirati, crtanje i premjestiti, 107 00:06:23,030 --> 00:06:25,110 ste završili igru ​​od petnaest. 108 00:06:25,110 --> 00:06:27,620 Čestitam i zabaviti. 109 00:06:27,620 --> 00:06:30,600 Moje ime je Zamyla i to je CS50. 110 00:06:30,600 --> 00:06:37,632