1 00:00:00,000 --> 00:00:09,386 2 00:00:09,386 --> 00:00:11,332 >> ZAMYLA CHAN: Leiskite turėti smagu su penkiolikos. 3 00:00:11,332 --> 00:00:15,680 Penkiolika yra pirmasis žaidimas, kad jums įgyvendinti ir tai interaktyvus. 4 00:00:15,680 --> 00:00:16,410 Dabar, o ne nerimauti. 5 00:00:16,410 --> 00:00:18,830 Jūs neturite rašyti visa tai sau. 6 00:00:18,830 --> 00:00:22,320 Pažvelkite į platinimo kodą, nes Daug žaidimo struktūra yra jau 7 00:00:22,320 --> 00:00:23,880 įsteigti už jus. 8 00:00:23,880 --> 00:00:28,160 Ji pripažįsta ir suvokia komandų eilutę Argumentas iš vartotojo ir sukuria 9 00:00:28,160 --> 00:00:31,230 lenta grindžiamas šiuo įėjimo. 10 00:00:31,230 --> 00:00:35,570 Jis patikrina, ar žaidimas yra baltieji ir išėjimai kai vartotojo laimėjo žaidimą. 11 00:00:35,570 --> 00:00:38,340 Ir laimėti žaidimą, jis gauna įvestis iš vartotojo ir 12 00:00:38,340 --> 00:00:40,610 ragina Perkelti funkciją. 13 00:00:40,610 --> 00:00:44,600 >> Taigi, mes ketiname būti įgyvendinti keturias funkcijos penkiolikos žaidimo, 14 00:00:44,600 --> 00:00:48,110 init piešti, perkelti ir laimėjo. 15 00:00:48,110 --> 00:00:50,340 Pirma, galime spręsti init. 16 00:00:50,340 --> 00:00:55,150 Be init už initialize, mes atstovaujame į 2D integer masyvas lenta. 17 00:00:55,150 --> 00:01:01,070 Ir tai yra pasaulinį kintamąjį vadinamą lenta su matmenys max ir MAX 18 00:01:01,070 --> 00:01:03,880 maksimalūs matmenys lenta. 19 00:01:03,880 --> 00:01:07,310 Dabar faktinis aspektas lentos yra pateikiama vartotojui, atstovaujama 20 00:01:07,310 --> 00:01:10,620 sveikasis skaičius d, kuris galėtų mažiau nei MAX. 21 00:01:10,620 --> 00:01:14,660 Tačiau, C, jūs negalite keisti matricos, todėl jūs pakimba su 22 00:01:14,660 --> 00:01:16,730 kad didžiausias matmuo. 23 00:01:16,730 --> 00:01:19,870 >> Jūsų darbas init yra užpildyti valdybos vertės 24 00:01:19,870 --> 00:01:21,860 teisingą vertę. 25 00:01:21,860 --> 00:01:26,910 Dabar, mes matėme 1D masyvus, tačiau kaip 2D matricos veikia? 26 00:01:26,910 --> 00:01:30,985 Yra iš eilės indeksas nulio indeksuojami kaip visada, o tada taip pat 27 00:01:30,985 --> 00:01:32,100 stulpelis. 28 00:01:32,100 --> 00:01:36,120 Ir jums užpildyti savo tinklelį į mažėjančia tvarka vertybes, kaip šis. 29 00:01:36,120 --> 00:01:43,260 Tinklelis, 0, 0, 0 eilutė, stulpelis 0, tai 8, tinklelis 0, 1 yra 7. 30 00:01:43,260 --> 00:01:48,500 Tai yra pavyzdys, kur D, tiek D, yra 3. 31 00:01:48,500 --> 00:01:52,690 >> Dabar, per penkiolika lenta taip pat turi yra tuščias plytelių, jei jūs kada nors 32 00:01:52,690 --> 00:01:54,280 grojo su fiziniu žaidimą. 33 00:01:54,280 --> 00:01:59,210 Tačiau laive yra sveikasis skaičius masyvas, todėl visos reikšmės turi būti sveikieji skaičiai. 34 00:01:59,210 --> 00:02:06,950 , Todėl iki jums nuspręsti, sveikasis skaičius vertė atstovauti tuščią plytelių. 35 00:02:06,950 --> 00:02:10,460 Inicijuoti savo lenta, galite naudoti kilpos struktūras sudėtyje 36 00:02:10,460 --> 00:02:16,440 pradedant būklė lentos, kur lenta I J suma atspindi elemento 37 00:02:16,440 --> 00:02:19,380 eilutė i ir j stulpelio. 38 00:02:19,380 --> 00:02:23,035 Jie prasidės mažėjančia tvarka, o atminkite, kad jei plytelės skaičius 39 00:02:23,035 --> 00:02:29,590 keista, tada jūs ketinate turi apsikeitimo 2 ir 1 vietą. 40 00:02:29,590 --> 00:02:33,790 Taigi, mes turime mūsų inicializuoti lenta. 41 00:02:33,790 --> 00:02:37,440 >> Dabar, kad mes inicijuoti mūsų lenta, atėjo laikas parengti jį. 42 00:02:37,440 --> 00:02:41,260 Atkreipti bus išspausdinti esamą lenta, bet jūs turite įsitikinti, kad 43 00:02:41,260 --> 00:02:44,260 spausdinti plytelės ta pačia tvarka kad jūs inicializuoti juos. 44 00:02:44,260 --> 00:02:47,300 Ir jums taip pat reikia formatuoti savo numerius teisingai. 45 00:02:47,300 --> 00:02:51,700 Kadangi mes galime turėti atskirus skaitmenis ir dviženklis, tada jūs norite 46 00:02:51,700 --> 00:02:54,540 spausdinti tuščią tarpą prieš bet vienaženklis skaičius. 47 00:02:54,540 --> 00:03:00,150 Jūs naudojate, kad naudojant vietos rezervavimo ženklas -. 48 00:03:00,150 --> 00:03:02,550 >> Bet atsiminkite mūsų tuščią erdvę. 49 00:03:02,550 --> 00:03:05,970 Mes nenorime spausdinti faktinį skaičių kad mes pasirinkome atstovauti 50 00:03:05,970 --> 00:03:10,410 kad tuščia erdvė lentos, bet mes taip pat nenoriu nieko spausdinti ne visiems. 51 00:03:10,410 --> 00:03:15,310 Taigi, ką galite padaryti, tai nustatyti simbolį arba simbolis atstovauti 52 00:03:15,310 --> 00:03:17,050 tuščias plytelių. 53 00:03:17,050 --> 00:03:21,030 Ankstesniuose pavyzdžiuose aš pasirinko pabrėžti, tada jūs tiesiog spausdinti 54 00:03:21,030 --> 00:03:26,970 kad, kai jūs pasieksite tuščias erdvės savo draw funkcija. 55 00:03:26,970 --> 00:03:29,850 >> Taigi padaryti bus įdėtos už kilpos. 56 00:03:29,850 --> 00:03:31,150 Kažkas panašaus į tai. 57 00:03:31,150 --> 00:03:35,660 Kiekvienoje eilutėje, o tada kiekvieno vertė eilutėje, jūs ketinate spausdinti 58 00:03:35,660 --> 00:03:36,940 vertė šioje vietoje. 59 00:03:36,940 --> 00:03:39,470 Kai jūs atspausdinti visas vertybes eilutėje, tada jūs 60 00:03:39,470 --> 00:03:41,180 galima spausdinti naują eilutę. 61 00:03:41,180 --> 00:03:47,730 Atminkite, kad jūsų lygiosiomis tvarka funkcija turi echo arba atspindėti užsakymą 62 00:03:47,730 --> 00:03:48,980 Jūsų inicializuoti funkcija. 63 00:03:48,980 --> 00:03:51,290 64 00:03:51,290 --> 00:03:55,160 >> Dabar, kad jūs inicializuoti lenta ir kad jūs parengti jį, atėjo laikas leisti 65 00:03:55,160 --> 00:03:58,500 vartotojas jį redaguoti ir pateikti savo ėjimų. 66 00:03:58,500 --> 00:04:03,840 Taigi, Fifteen.c funkcija, Programa trunka įvestis iš vartotojo ir 67 00:04:03,840 --> 00:04:07,690 tada ragina pereiti funkciją, einančios į plytelių skaičių, kad 68 00:04:07,690 --> 00:04:09,270 vartotojas nori perkelti. 69 00:04:09,270 --> 00:04:10,380 Dabar, būkite atsargūs. 70 00:04:10,380 --> 00:04:14,200 Tai tikrasis skaičius plytelių o ne jos tikroji padėtis. 71 00:04:14,200 --> 00:04:19,010 Taigi, jums reikės ieškoti plytelių s pozicija žinoti, kur ji yra. 72 00:04:19,010 --> 00:04:23,440 >> Dabar jūs turėtumėte leisti tik vartotojas padaryti žingsnį, jei tai legalu. 73 00:04:23,440 --> 00:04:27,910 Teisinis žingsnis yra bet plytelių, kad yra šalia tuščią plytelių. 74 00:04:27,910 --> 00:04:32,020 Tai reiškia, kad aukščiau ir toliau, į kairę ir į dešinę. 75 00:04:32,020 --> 00:04:34,680 Taigi, jūs turite žinoti, kur Blankas plytelės taip pat. 76 00:04:34,680 --> 00:04:39,720 Dabar, kiekvieną žingsnį jūs ieškote Vartotojų plytelės, bet tai tikriausiai 77 00:04:39,720 --> 00:04:43,030 nėra geriausia ieškoti tuščią plytelių kiekvieną kartą, nes jūs darote 78 00:04:43,030 --> 00:04:45,270 kiekvieną kartą vartotojas nori perkelti. 79 00:04:45,270 --> 00:04:50,300 Taigi, vietoj to, tai geriausia prisiminti, kur tuščias plytelių naudojant kai 80 00:04:50,300 --> 00:04:52,650 gerai pavadinta kintamuosius. 81 00:04:52,650 --> 00:04:55,970 Taigi, kai jūs, kad vartotojas galėtų atlikti savo juda, jie yra gerai savo 82 00:04:55,970 --> 00:04:59,700 būdas laimėti iš penkiolikos žaidimą. 83 00:04:59,700 --> 00:05:03,940 >> Laimėti penkiolikos, plytelės žaidimą turi būti tam tikra tvarka, ir 84 00:05:03,940 --> 00:05:06,970 laimėjo funkcija tikrina, ar žaidimas laimėtas. 85 00:05:06,970 --> 00:05:10,290 Ji grąžina True, jei žaidimas yra juodieji ir plytelės yra teisinga tvarka, 86 00:05:10,290 --> 00:05:12,210 ir Neteisingų kitaip. 87 00:05:12,210 --> 00:05:15,830 Taigi, norint laimėti penkiolikos, plytelės žaidimą turi būti didėjančia tvarka, su 88 00:05:15,830 --> 00:05:19,230 Blankas plytelės apačioje dešiniame kampe. 89 00:05:19,230 --> 00:05:23,630 Taigi, kaip jums patikrinti, ar vartotojo persikėlė lentos į dešinę 90 00:05:23,630 --> 00:05:25,010 orientacija? 91 00:05:25,010 --> 00:05:29,200 >> Na, jums pakartoti virš lentos ir patikrinti reikšmes, įsitikinkite, kad 92 00:05:29,200 --> 00:05:30,550 jie į tinkamą vietą. 93 00:05:30,550 --> 00:05:33,910 Norėdami tai padaryti, galite naudoti įdėtos už kilpos kaip darėte 94 00:05:33,910 --> 00:05:36,520 lygiosiomis, o init. 95 00:05:36,520 --> 00:05:40,430 Yra būdų, kaip patikrinti pora ir patvirtinti, ar laive yra 96 00:05:40,430 --> 00:05:42,860 teisingai ir laimėti formavimas, nors. 97 00:05:42,860 --> 00:05:47,330 Jeigu jūs einate iš kairės į dešinę, pradedant nuo viršutinėje eilutėje žemyn, tada kiekvienas 98 00:05:47,330 --> 00:05:50,590 skaičius turi būti didesnis negu pirmesnis. 99 00:05:50,590 --> 00:05:54,530 Būkite atsargūs, apie ką jūs vertiname pasirinkote savo tuščią plytelių nors. 100 00:05:54,530 --> 00:05:59,250 >> Arba galite naudoti skaitiklis kintamąjį užtikrinti, kad kiekviena reikšmė yra vieta, jei 101 00:05:59,250 --> 00:06:03,660 sugalvoti kažkokia formulė atstovauti tai. 102 00:06:03,660 --> 00:06:06,250 Taip smagiai eksperimentuoti su matematika. 103 00:06:06,250 --> 00:06:10,930 Kai jūs sugalvoti būdu, grąžinimo Tiesa, kai vartotojas laimėjo žaidimą. 104 00:06:10,930 --> 00:06:15,950 Bet jei reikšmė yra neteisingi, grąžinimas Netiesa, vartotojas turi toliau juda 105 00:06:15,950 --> 00:06:18,440 nes jie laimėjo rungtynes. 106 00:06:18,440 --> 00:06:23,030 Kai jums įgyvendinti šį patikrinimą ir kartu initialize, piešti, ir judėti, 107 00:06:23,030 --> 00:06:25,110 jūs baigė penkiolikos žaidimą. 108 00:06:25,110 --> 00:06:27,620 Sveikiname ir smagiai žaisti. 109 00:06:27,620 --> 00:06:30,600 Mano vardas Zamyla ir tai CS50. 110 00:06:30,600 --> 00:06:37,632