1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ZAMYLA Chan: Vessünk szórakoztató tizenöt. 3 00:00:11,332 --> 00:00:15,680 Tizenöt az első olyan játék, hogy kapsz végrehajtásához és ez interaktív. 4 00:00:15,680 --> 00:00:16,410 Nos, ne aggódj. 5 00:00:16,410 --> 00:00:18,830 Önnek nem kell írni a egészet magad. 6 00:00:18,830 --> 00:00:22,320 Nézd meg a forgalmazási kódot, mert a Sok a játék szerkezete már 7 00:00:22,320 --> 00:00:23,880 létre az Ön számára. 8 00:00:23,880 --> 00:00:28,160 Elfogadja és feldolgozza a parancssor érv a felhasználó, és létrehoz egy 9 00:00:28,160 --> 00:00:31,230 board alapuló input. 10 00:00:31,230 --> 00:00:35,570 Ez ellenőrzi, hogy a játék nyert, és kilép ha a felhasználó nyerte a játékot. 11 00:00:35,570 --> 00:00:38,340 És, hogy megnyerjük a játékot, ez lesz bemenet a felhasználó és 12 00:00:38,340 --> 00:00:40,610 meghívja a Move funkciót. 13 00:00:40,610 --> 00:00:44,600 >> Így fogunk végrehajtó négy funkciók a játék a tizenöt, 14 00:00:44,600 --> 00:00:48,110 init, rajzolni, mozgás, és nyert. 15 00:00:48,110 --> 00:00:50,340 Először is, hadd kezelni init. 16 00:00:50,340 --> 00:00:55,150 Az init, mert inicializálása, az általunk képviselt A fórumon egy 2D egész tömb. 17 00:00:55,150 --> 00:01:01,070 És ez egy globális változó neve tábla méretei MAX és MAX, 18 00:01:01,070 --> 00:01:03,880 maximális méretei a fórumon. 19 00:01:03,880 --> 00:01:07,310 Most, a tényleges mérete az igazgatóság van a felhasználó által megadott, képviselt 20 00:01:07,310 --> 00:01:10,620 Az egész d, ami lehet kevesebb, mint MAX. 21 00:01:10,620 --> 00:01:14,660 De a C, akkor nem lehet átméretezni tömbök, így már ragadt 22 00:01:14,660 --> 00:01:16,730 a maximális mérete. 23 00:01:16,730 --> 00:01:19,870 >> Az Ön feladata az init, hogy feltölteni az értékek a fórumon 24 00:01:19,870 --> 00:01:21,860 a megfelelő értéket. 25 00:01:21,860 --> 00:01:26,910 Most láttam 1D tömbök, de hogyan 2D tömbök működik? 26 00:01:26,910 --> 00:01:30,985 Van egy index a sor, nulla indexelt, mint mindig, és akkor is a 27 00:01:30,985 --> 00:01:32,100 az oszlopra. 28 00:01:32,100 --> 00:01:36,120 És akkor töltse ki a rács a csökkenő értékek, mint ez. 29 00:01:36,120 --> 00:01:43,260 Rács, 0, 0, 0 sor, oszlop 0, 8, rács 0, 1 7. 30 00:01:43,260 --> 00:01:48,500 Ez egy példa, ahol d, kis d, 3. 31 00:01:48,500 --> 00:01:52,690 >> Most, a testület tizenöt kell is tartalmaznak egy üres lap, ha valaha 32 00:01:52,690 --> 00:01:54,280 játszott a fizikai játék. 33 00:01:54,280 --> 00:01:59,210 De a tábla egy egész sor, így az összes értéket kell egésznek lenniük. 34 00:01:59,210 --> 00:02:06,950 Tehát ez rajtad múlik, hogy dönt egy egész értéket képviselnek üres csempe. 35 00:02:06,950 --> 00:02:10,460 Alaphelyzetbe a fórumon, akkor hurok szerkezetek, hogy tartalmazza a 36 00:02:10,460 --> 00:02:16,440 kezdőállapotába fórumon, ahol a tábla i j képviseli az elem a 37 00:02:16,440 --> 00:02:19,380 i sorában és j oszlopában. 38 00:02:19,380 --> 00:02:23,035 Kezdik Csökkenő sorrendben, és ne feledje, hogy ha a szám a csempe 39 00:02:23,035 --> 00:02:29,590 páratlan, akkor most kell majd cserélni a helyét a 2. és 1.. 40 00:02:29,590 --> 00:02:33,790 Tehát, van inicializált fórumon. 41 00:02:33,790 --> 00:02:37,440 >> Most, hogy már inicializált a tábla, itt az ideje, hogy rajzolni. 42 00:02:37,440 --> 00:02:41,260 Draw kinyomtatja az aktuális állapotát tábla, de meg kell, hogy megbizonyosodjon arról, 43 00:02:41,260 --> 00:02:44,260 nyomtatni csempe ugyanabban a sorrendben hogy már inicializált őket. 44 00:02:44,260 --> 00:02:47,300 És azt is meg kell formázni a számokat helyesen. 45 00:02:47,300 --> 00:02:51,700 Mert lehet, hogy egy számjegy és kétszámjegyű, majd a kívánt 46 00:02:51,700 --> 00:02:54,540 nyomtasson ki egy üres tér előtt minden egyjegyű számokat. 47 00:02:54,540 --> 00:03:00,150 Ön használja, hogy segítségével A helyőrző -. 48 00:03:00,150 --> 00:03:02,550 >> De ne feledjük, a szóköz. 49 00:03:02,550 --> 00:03:05,970 Nem akarjuk kinyomtatni a tényleges száma hogy amit választott, hogy képviselje 50 00:03:05,970 --> 00:03:10,410 hogy üres a tábla, de mi is Nem akarok nyomtatni semmit. 51 00:03:10,410 --> 00:03:15,310 Szóval, mit tehetünk, hogy határozza meg a szimbólum vagy karakter, hogy képviselje a 52 00:03:15,310 --> 00:03:17,050 üres cserép. 53 00:03:17,050 --> 00:03:21,030 A korábbi példák azt választottam egy aláhúzás, és akkor csak nyomtatni 54 00:03:21,030 --> 00:03:26,970 hogy amikor eléred az üres helyet a sorsoláson funkciót. 55 00:03:26,970 --> 00:03:29,850 >> Így rajzol lesz egymásba ágyazott hurkok. 56 00:03:29,850 --> 00:03:31,150 Valami ilyesmi. 57 00:03:31,150 --> 00:03:35,660 Minden egyes sorban, majd minden egyes értéket a sort, akkor a nyomdába a 58 00:03:35,660 --> 00:03:36,940 érték ezen a helyen. 59 00:03:36,940 --> 00:03:39,470 Miután kinyomtatott összes értéket a sorban, akkor 60 00:03:39,470 --> 00:03:41,180 lehet nyomtatni egy új sort. 61 00:03:41,180 --> 00:03:47,730 Ne feledje, hogy az érdekében, hogy a döntetlent funkciót echo vagy tükör a sorrendben 62 00:03:47,730 --> 00:03:48,980 a inicializált funkciót. 63 00:03:48,980 --> 00:03:51,290 64 00:03:51,290 --> 00:03:55,160 >> Most, hogy adja meg az igazgatóság és hogy már rajzolt is, itt az ideje, hogy 65 00:03:55,160 --> 00:03:58,500 a felhasználó szerkesztheti, és tegyék mozog. 66 00:03:58,500 --> 00:04:03,840 Így a Fifteen.c funkciót, a program veszi be a felhasználó és a 67 00:04:03,840 --> 00:04:07,690 majd felhívja a mozgás függvényt, átadva számának a cserép, hogy a 68 00:04:07,690 --> 00:04:09,270 a felhasználó akar költözni. 69 00:04:09,270 --> 00:04:10,380 Nos, legyen óvatos. 70 00:04:10,380 --> 00:04:14,200 Ez a tényleges száma a csempe és nem a tényleges helyzet. 71 00:04:14,200 --> 00:04:19,010 Szóval, akkor kell keresni a lapka helyzetben, hogy tudja, hol van. 72 00:04:19,010 --> 00:04:23,440 >> Nos, akkor csak lehetővé teszi a felhasználó számára , hogy a lépés, ha ez legális. 73 00:04:23,440 --> 00:04:27,910 A jogi lépés olyan lapka, amely mellett az üres cserép. 74 00:04:27,910 --> 00:04:32,020 Ez azt jelenti, felett és alatt, hogy A bal és a jobb. 75 00:04:32,020 --> 00:04:34,680 Szóval, akkor kell, hogy hol az üres csempe is. 76 00:04:34,680 --> 00:04:39,720 Most, minden mozdulatát Ön keres A felhasználók cserép, de valószínűleg 77 00:04:39,720 --> 00:04:43,030 nem a legjobb, hogy keressen az üres cserép minden alkalommal, mert te csinálod 78 00:04:43,030 --> 00:04:45,270 minden egyes alkalommal, amikor a a felhasználó akar költözni. 79 00:04:45,270 --> 00:04:50,300 Tehát ahelyett, hogy a legjobb, hogy emlékszik, hol Az üres lapka segítségével néhány 80 00:04:50,300 --> 00:04:52,650 jól megnevezett változókra. 81 00:04:52,650 --> 00:04:55,970 Tehát, ha lehetővé teszi a felhasználó számára, hogy a mozog, ők is a saját 82 00:04:55,970 --> 00:04:59,700 módja annak, hogy megnyerte a játék a tizenöt. 83 00:04:59,700 --> 00:05:03,940 >> Ahhoz, hogy megnyerjük a játékot a tizenöt, a lapok kell egy bizonyos sorrendben, és 84 00:05:03,940 --> 00:05:06,970 A nyert funkció ellenőrzi, hogy a játék nyert. 85 00:05:06,970 --> 00:05:10,290 Visszatér Igaz, ha a játék nyert, és A lapok a megfelelő sorrendben, 86 00:05:10,290 --> 00:05:12,210 és hamis egyébként. 87 00:05:12,210 --> 00:05:15,830 Tehát, hogy megnyerjük a játékot a tizenöt, csempe kell növekvő sorrendben, az 88 00:05:15,830 --> 00:05:19,230 üres cserép a jobb alsó sarokban. 89 00:05:19,230 --> 00:05:23,630 Szóval, hogyan lehet ellenőrizni, hogy a felhasználó költözött a fórumon a jobb 90 00:05:23,630 --> 00:05:25,010 orientáció? 91 00:05:25,010 --> 00:05:29,200 >> Nos, akkor végighaladni a fedélzeten, és ellenőrizze az értékeket, hogy megbizonyosodjon arról, hogy az 92 00:05:29,200 --> 00:05:30,550 ők a megfelelő helyre. 93 00:05:30,550 --> 00:05:33,910 Ehhez, akkor a beágyazott a hurok, mint te 94 00:05:33,910 --> 00:05:36,520 A sorsolás és init. 95 00:05:36,520 --> 00:05:40,430 Van egy pár módon ellenőrizni és ellenőrzik, hogy a tábla 96 00:05:40,430 --> 00:05:42,860 helyes és a nyerő formáció, mégis. 97 00:05:42,860 --> 00:05:47,330 Ha megy balról jobbra, kezdve A felső sorban lefelé, akkor minden 98 00:05:47,330 --> 00:05:50,590 szám nagyobbnak kell lennie, mint a az előzőt. 99 00:05:50,590 --> 00:05:54,530 Legyen körültekintő, milyen értéket már választott az üres cserép mégis. 100 00:05:54,530 --> 00:05:59,250 >> Vagy jönne egy számláló változót biztosítja, hogy minden érték a helyén van, ha 101 00:05:59,250 --> 00:06:03,660 elér valamilyen formula, hogy képviselje ezt. 102 00:06:03,660 --> 00:06:06,250 Szóval jó szórakozást kísérletezik a matek. 103 00:06:06,250 --> 00:06:10,930 Miután felér egy út, vissza Igaz, ha a felhasználó nyerte a játékot. 104 00:06:10,930 --> 00:06:15,950 De ha érték nem megfelelő, vissza Hamis, a felhasználónak, hogy továbbra is halad 105 00:06:15,950 --> 00:06:18,440 mert nem nyerte meg a játékot. 106 00:06:18,440 --> 00:06:23,030 Ha végrehajtja ezt a csekket, és együtt A inicializálása, rajzolni, és mozgassa, 107 00:06:23,030 --> 00:06:25,110 elkészült a játék a tizenöt. 108 00:06:25,110 --> 00:06:27,620 Gratulálunk és szórakoztató játék. 109 00:06:27,620 --> 00:06:30,600 A nevem Zamyla és ez CS50. 110 00:06:30,600 --> 00:06:37,632