1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ZAMYLA CHAN: Greva zabava s petnajsterico. 3 00:00:11,332 --> 00:00:15,680 Petnajst je prva igra, ki jo dobite izvajati in to je interaktivna. 4 00:00:15,680 --> 00:00:16,410 Zdaj, ne skrbi. 5 00:00:16,410 --> 00:00:18,830 Vam ni treba pisati Celotna stvar sami. 6 00:00:18,830 --> 00:00:22,320 Pogled na kodo za distribucijo, ker Veliko strukture igre je že 7 00:00:22,320 --> 00:00:23,880 ustanovil za vas. 8 00:00:23,880 --> 00:00:28,160 Priznava, in razčleni ukazno vrstico Argument od uporabnika in ustvarja 9 00:00:28,160 --> 00:00:31,230 plošča, ki temelji na tem vhodu. 10 00:00:31,230 --> 00:00:35,570 Preveri, če je igra zmagal in izhodi ko uporabnik je zmagal. 11 00:00:35,570 --> 00:00:38,340 In za zmago, da postane vhod od uporabnika in 12 00:00:38,340 --> 00:00:40,610 pokliče funkcijo Move. 13 00:00:40,610 --> 00:00:44,600 >> Torej bomo izvedbeni štiri Funkcije za igro petnajsterice, 14 00:00:44,600 --> 00:00:48,110 pr pripravi, gremo, in zmagal. 15 00:00:48,110 --> 00:00:50,340 Najprej, kaj je reševanje init. 16 00:00:50,340 --> 00:00:55,150 V init, za inicializacijo, ki jih zastopamo svet v 2D integer polja. 17 00:00:55,150 --> 00:01:01,070 In to je globalna spremenljivka se imenuje plošča z merami MAX in MAX, 18 00:01:01,070 --> 00:01:03,880 največje dimenzije sveta. 19 00:01:03,880 --> 00:01:07,310 Zdaj, dejanska razsežnost plošče je podana s strani uporabnika, ki jih zastopa 20 00:01:07,310 --> 00:01:10,620 d celo število, ki bi biti manj kot MAX. 21 00:01:10,620 --> 00:01:14,660 Ampak, v C, ne morete spremeniti velikost matrike, tako da si zaljubljen z 22 00:01:14,660 --> 00:01:16,730 da je največja dimenzija. 23 00:01:16,730 --> 00:01:19,870 >> Vaša naloga v init je, da zapolnijo Vrednosti sveta 24 00:01:19,870 --> 00:01:21,860 s pravilno vrednostjo. 25 00:01:21,860 --> 00:01:26,910 Zdaj smo videli 1D nizi, temveč kako 2D nizi deluje? 26 00:01:26,910 --> 00:01:30,985 Tam je indeks vrstice, nič indeksirane kot vedno, nato pa tudi 27 00:01:30,985 --> 00:01:32,100 kolona. 28 00:01:32,100 --> 00:01:36,120 In boste izpolnite svojo mrežo v na padajoče vrednosti, tako kot to. 29 00:01:36,120 --> 00:01:43,260 Grid, 0, 0, 0 vrstica, stolpec 0, je 8, grid 0, 1, je 7. 30 00:01:43,260 --> 00:01:48,500 To je na primer, kadar d, malo d, je 3. 31 00:01:48,500 --> 00:01:52,690 >> Zdaj mora tudi odbor v petnajsterici vsebuje prazno ploščice, če ste kdaj 32 00:01:52,690 --> 00:01:54,280 igral s fizično igro. 33 00:01:54,280 --> 00:01:59,210 Toda, potovalni je celo število matrika, tako Vse vrednosti morajo biti cela števila. 34 00:01:59,210 --> 00:02:06,950 Tako da je do vas, da odločijo celo Vrednost za zastopanje prazno ploščice. 35 00:02:06,950 --> 00:02:10,460 Za inicializacijo desko, lahko uporabite loop strukture, vsebujejo 36 00:02:10,460 --> 00:02:16,440 začetno stanje na krovu, kjer board i j predstavlja element na 37 00:02:16,440 --> 00:02:19,380 vrstice i in stolpca j. 38 00:02:19,380 --> 00:02:23,035 Začnejo v padajočem vrstnem redu, in zapomni, da če je število ploščic 39 00:02:23,035 --> 00:02:29,590 ni čudno, potem si boste morali zamenjali lokacijo 2 in od 1. 40 00:02:29,590 --> 00:02:33,790 Torej tam, imamo inicializiran deska. 41 00:02:33,790 --> 00:02:37,440 >> Zdaj, da smo inicializiran naše krovu, je čas, da se pripravi. 42 00:02:37,440 --> 00:02:41,260 Žrebanje bo natisnil trenutno stanje krovu, vendar boste morali prepričati 43 00:02:41,260 --> 00:02:44,260 tiskanje ploščice v istem vrstnem redu ki ste jih vključila. 44 00:02:44,260 --> 00:02:47,300 In boste morali oblikovati Vaši pravilno številk. 45 00:02:47,300 --> 00:02:51,700 Ker bi imeli enotne številke, in dvojni številki, potem boste želeli 46 00:02:51,700 --> 00:02:54,540 tiskanje prazen prostor pred vse enomestno število. 47 00:02:54,540 --> 00:03:00,150 Uporabljate, da z uporabo Ograda -. 48 00:03:00,150 --> 00:03:02,550 >> Ampak ne pozabite, naš prazen prostor. 49 00:03:02,550 --> 00:03:05,970 Ne želimo natisniti dejansko število da smo se odločili, da predstavljajo 50 00:03:05,970 --> 00:03:10,410 da je prazen prostor v vozilu, hkrati pa tudi ne želite natisniti ničesar. 51 00:03:10,410 --> 00:03:15,310 Torej, kaj lahko naredite, je, da se določi znak ali znak za zastopanje 52 00:03:15,310 --> 00:03:17,050 prazno ploščice. 53 00:03:17,050 --> 00:03:21,030 V prejšnjih primerih sem izbral podčrtaj, nato pa si natisnete 54 00:03:21,030 --> 00:03:26,970 da vsakič, ko pridete prazno prostor v vašem draw funkcijo. 55 00:03:26,970 --> 00:03:29,850 >> Torej pripravi se bo vgnezdena for zanke. 56 00:03:29,850 --> 00:03:31,150 Kaj takega. 57 00:03:31,150 --> 00:03:35,660 Za vsako vrsto, in nato za vsako vrednost pri vrstica, boste za tiskanje 58 00:03:35,660 --> 00:03:36,940 vrednost v tem prostoru. 59 00:03:36,940 --> 00:03:39,470 Ko ste natisnjene vse vrednosti v vrsti, nato pa 60 00:03:39,470 --> 00:03:41,180 lahko natisnete novo linijo. 61 00:03:41,180 --> 00:03:47,730 Ne pozabite, da bi se vaš žrebanje Funkcija mora echo ali zrcaljenju red 62 00:03:47,730 --> 00:03:48,980 V vašem inicializacijsko funkcijo. 63 00:03:48,980 --> 00:03:51,290 64 00:03:51,290 --> 00:03:55,160 >> Zdaj, ko ste inicializirala desko in ki ste jo sestavi, je čas, da pustite 65 00:03:55,160 --> 00:03:58,500 uporabnik urediti in narediti svoje poteze. 66 00:03:58,500 --> 00:04:03,840 Torej v funkciji Fifteen.c, Program traja prispevek od uporabnika in 67 00:04:03,840 --> 00:04:07,690 nato pokliče funkcijo premika, ki poteka število ploščic, ki 68 00:04:07,690 --> 00:04:09,270 uporabnik želi, da se premaknete. 69 00:04:09,270 --> 00:04:10,380 Zdaj pa bodi previden. 70 00:04:10,380 --> 00:04:14,200 To je dejansko število ploščic in ne njegov dejanski položaj. 71 00:04:14,200 --> 00:04:19,010 Torej, boste morali iskati ploščic Stališče, da ve, kje je. 72 00:04:19,010 --> 00:04:23,440 >> Zdaj, morate dovoliti le uporabniku da naredi potezo, če je zakonito. 73 00:04:23,440 --> 00:04:27,910 Pravni poteza je vsaka ploščica, ki je mejijo na prazen ploščice. 74 00:04:27,910 --> 00:04:32,020 To pomeni, zgoraj in spodaj, da levo in desno. 75 00:04:32,020 --> 00:04:34,680 Tako da boste morali vedeti, kje prazno ploščice je kot dobro. 76 00:04:34,680 --> 00:04:39,720 Zdaj, za vsako potezo iščete Uporabniki ploščice, ampak to je verjetno 77 00:04:39,720 --> 00:04:43,030 Ne najbolje, da poiščete prazno ploščice Vsakič, ker ste to počeli 78 00:04:43,030 --> 00:04:45,270 vsak čas uporabnik želi, da se premaknete. 79 00:04:45,270 --> 00:04:50,300 Torej, namesto, da je najbolje, da se spomnimo, kjer prazno ploščice se z uporabo nekaterih 80 00:04:50,300 --> 00:04:52,650 tudi imenovan spremenljivke. 81 00:04:52,650 --> 00:04:55,970 Torej, ko vam omogočajo uporabniku, da njihova poteze, da so na dobri 82 00:04:55,970 --> 00:04:59,700 pot do zmage v igri petnajsterice. 83 00:04:59,700 --> 00:05:03,940 >> Če želite zmagati igro petnajsterice ploščic morajo biti v določenem vrstnem redu, ter 84 00:05:03,940 --> 00:05:06,970 zmagal funkcija preveri, ali Igra je zmagal. 85 00:05:06,970 --> 00:05:10,290 Vrne True, če se tekma zmagali in Ploščice so v pravilnem zaporedju, 86 00:05:10,290 --> 00:05:12,210 in False sicer. 87 00:05:12,210 --> 00:05:15,830 Torej za zmago petnajsterice ploščic morajo biti naraščajočem vrstnem redu, z 88 00:05:15,830 --> 00:05:19,230 prazno ploščice v spodnjem desnem kotu. 89 00:05:19,230 --> 00:05:23,630 Torej, kako preveriti, ali je uporabnik se je preselil ploščo v desno 90 00:05:23,630 --> 00:05:25,010 usmerjenosti? 91 00:05:25,010 --> 00:05:29,200 >> No, boste Ponovil čez krov in preveri vrednosti se prepričajte, da 92 00:05:29,200 --> 00:05:30,550 oni so na pravem mestu. 93 00:05:30,550 --> 00:05:33,910 Če želite to narediti, lahko uporabite ugnezdene za zanke, tako kot si naredil 94 00:05:33,910 --> 00:05:36,520 V žrebanju in v init. 95 00:05:36,520 --> 00:05:40,430 Obstaja nekaj načinov, da preverite in potrditi, ali je plošča 96 00:05:40,430 --> 00:05:42,860 pravilna in zmagovalni tvorba, čeprav. 97 00:05:42,860 --> 00:05:47,330 Če greš od leve proti desni, se začne iz zgornji vrstici navzdol, nato pa vsak 98 00:05:47,330 --> 00:05:50,590 Številka mora biti večja od prejšnja. 99 00:05:50,590 --> 00:05:54,530 Bodite previdni, o tem, kaj cenite sem izbrana za vaše prazno ploščice, čeprav. 100 00:05:54,530 --> 00:05:59,250 >> Ali lahko uporabite spremenljivko števec za zagotoviti, da je vsaka vrednost na mestu, če 101 00:05:59,250 --> 00:06:03,660 ste prišli do neke vrste Formula za zastopanje to. 102 00:06:03,660 --> 00:06:06,250 Torej, zabavajte se eksperimentirati pri matematiki. 103 00:06:06,250 --> 00:06:10,930 Ko ste prišli do poti, vrnitev Res je, ko uporabnik je zmagal. 104 00:06:10,930 --> 00:06:15,950 Ampak, če je katera koli vrednost napačna, vračanje Neresnično, mora uporabnik še premika 105 00:06:15,950 --> 00:06:18,440 zato, ker niso zmagali. 106 00:06:18,440 --> 00:06:23,030 Ko boste izvajati ta pregled in skupaj z inicializacijo, pripravi, se gibljem 107 00:06:23,030 --> 00:06:25,110 ste končali igro petnajsterice. 108 00:06:25,110 --> 00:06:27,620 Čestitke in se zabavajte igranje. 109 00:06:27,620 --> 00:06:30,600 Moje ime je Zamyla in to je CS50. 110 00:06:30,600 --> 00:06:37,632