>> ZAMYLA CHAN: Leiskite turėti smagu su penkiolikos.
Penkiolika yra pirmasis žaidimas, kad jums įgyvendinti ir tai interaktyvus.
Dabar, o ne nerimauti.
Jūs neturite rašyti visa tai sau.
Pažvelkite į platinimo kodą, nes Daug žaidimo struktūra yra jau
įsteigti už jus.
Ji pripažįsta ir suvokia komandų eilutę Argumentas iš vartotojo ir sukuria
lenta grindžiamas šiuo įėjimo.
Jis patikrina, ar žaidimas yra baltieji ir išėjimai kai vartotojo laimėjo žaidimą.
Ir laimėti žaidimą, jis gauna įvestis iš vartotojo ir
ragina Perkelti funkciją.
>> Taigi, mes ketiname būti įgyvendinti keturias funkcijos penkiolikos žaidimo,
init piešti, perkelti ir laimėjo.
Pirma, galime spręsti init.
Be init už initialize, mes atstovaujame į 2D integer masyvas lenta.
Ir tai yra pasaulinį kintamąjį vadinamą lenta su matmenys max ir MAX
maksimalūs matmenys lenta.
Dabar faktinis aspektas lentos yra pateikiama vartotojui, atstovaujama
sveikasis skaičius d, kuris galėtų mažiau nei MAX.
Tačiau, C, jūs negalite keisti matricos, todėl jūs pakimba su
kad didžiausias matmuo.
>> Jūsų darbas init yra užpildyti valdybos vertės
teisingą vertę.
Dabar, mes matėme 1D masyvus, tačiau kaip 2D matricos veikia?
Yra iš eilės indeksas nulio indeksuojami kaip visada, o tada taip pat
stulpelis.
Ir jums užpildyti savo tinklelį į mažėjančia tvarka vertybes, kaip šis.
Tinklelis, 0, 0, 0 eilutė, stulpelis 0, tai 8, tinklelis 0, 1 yra 7.
Tai yra pavyzdys, kur D, tiek D, yra 3.
>> Dabar, per penkiolika lenta taip pat turi yra tuščias plytelių, jei jūs kada nors
grojo su fiziniu žaidimą.
Tačiau laive yra sveikasis skaičius masyvas, todėl visos reikšmės turi būti sveikieji skaičiai.
, Todėl iki jums nuspręsti, sveikasis skaičius vertė atstovauti tuščią plytelių.
Inicijuoti savo lenta, galite naudoti kilpos struktūras sudėtyje
pradedant būklė lentos, kur lenta I J suma atspindi elemento
eilutė i ir j stulpelio.
Jie prasidės mažėjančia tvarka, o atminkite, kad jei plytelės skaičius
keista, tada jūs ketinate turi apsikeitimo 2 ir 1 vietą.
Taigi, mes turime mūsų inicializuoti lenta.
>> Dabar, kad mes inicijuoti mūsų lenta, atėjo laikas parengti jį.
Atkreipti bus išspausdinti esamą lenta, bet jūs turite įsitikinti, kad
spausdinti plytelės ta pačia tvarka kad jūs inicializuoti juos.
Ir jums taip pat reikia formatuoti savo numerius teisingai.
Kadangi mes galime turėti atskirus skaitmenis ir dviženklis, tada jūs norite
spausdinti tuščią tarpą prieš bet vienaženklis skaičius.
Jūs naudojate, kad naudojant vietos rezervavimo ženklas -.
>> Bet atsiminkite mūsų tuščią erdvę.
Mes nenorime spausdinti faktinį skaičių kad mes pasirinkome atstovauti
kad tuščia erdvė lentos, bet mes taip pat nenoriu nieko spausdinti ne visiems.
Taigi, ką galite padaryti, tai nustatyti simbolį arba simbolis atstovauti
tuščias plytelių.
Ankstesniuose pavyzdžiuose aš pasirinko pabrėžti, tada jūs tiesiog spausdinti
kad, kai jūs pasieksite tuščias erdvės savo draw funkcija.
>> Taigi padaryti bus įdėtos už kilpos.
Kažkas panašaus į tai.
Kiekvienoje eilutėje, o tada kiekvieno vertė eilutėje, jūs ketinate spausdinti
vertė šioje vietoje.
Kai jūs atspausdinti visas vertybes eilutėje, tada jūs
galima spausdinti naują eilutę.
Atminkite, kad jūsų lygiosiomis tvarka funkcija turi echo arba atspindėti užsakymą
Jūsų inicializuoti funkcija.
>> Dabar, kad jūs inicializuoti lenta ir kad jūs parengti jį, atėjo laikas leisti
vartotojas jį redaguoti ir pateikti savo ėjimų.
Taigi, Fifteen.c funkcija, Programa trunka įvestis iš vartotojo ir
tada ragina pereiti funkciją, einančios į plytelių skaičių, kad
vartotojas nori perkelti.
Dabar, būkite atsargūs.
Tai tikrasis skaičius plytelių o ne jos tikroji padėtis.
Taigi, jums reikės ieškoti plytelių s pozicija žinoti, kur ji yra.
>> Dabar jūs turėtumėte leisti tik vartotojas padaryti žingsnį, jei tai legalu.
Teisinis žingsnis yra bet plytelių, kad yra šalia tuščią plytelių.
Tai reiškia, kad aukščiau ir toliau, į kairę ir į dešinę.
Taigi, jūs turite žinoti, kur Blankas plytelės taip pat.
Dabar, kiekvieną žingsnį jūs ieškote Vartotojų plytelės, bet tai tikriausiai
nėra geriausia ieškoti tuščią plytelių kiekvieną kartą, nes jūs darote
kiekvieną kartą vartotojas nori perkelti.
Taigi, vietoj to, tai geriausia prisiminti, kur tuščias plytelių naudojant kai
gerai pavadinta kintamuosius.
Taigi, kai jūs, kad vartotojas galėtų atlikti savo juda, jie yra gerai savo
būdas laimėti iš penkiolikos žaidimą.
>> Laimėti penkiolikos, plytelės žaidimą turi būti tam tikra tvarka, ir
laimėjo funkcija tikrina, ar žaidimas laimėtas.
Ji grąžina True, jei žaidimas yra juodieji ir plytelės yra teisinga tvarka,
ir Neteisingų kitaip.
Taigi, norint laimėti penkiolikos, plytelės žaidimą turi būti didėjančia tvarka, su
Blankas plytelės apačioje dešiniame kampe.
Taigi, kaip jums patikrinti, ar vartotojo persikėlė lentos į dešinę
orientacija?
>> Na, jums pakartoti virš lentos ir patikrinti reikšmes, įsitikinkite, kad
jie į tinkamą vietą.
Norėdami tai padaryti, galite naudoti įdėtos už kilpos kaip darėte
lygiosiomis, o init.
Yra būdų, kaip patikrinti pora ir patvirtinti, ar laive yra
teisingai ir laimėti formavimas, nors.
Jeigu jūs einate iš kairės į dešinę, pradedant nuo viršutinėje eilutėje žemyn, tada kiekvienas
skaičius turi būti didesnis negu pirmesnis.
Būkite atsargūs, apie ką jūs vertiname pasirinkote savo tuščią plytelių nors.
>> Arba galite naudoti skaitiklis kintamąjį užtikrinti, kad kiekviena reikšmė yra vieta, jei
sugalvoti kažkokia formulė atstovauti tai.
Taip smagiai eksperimentuoti su matematika.
Kai jūs sugalvoti būdu, grąžinimo Tiesa, kai vartotojas laimėjo žaidimą.
Bet jei reikšmė yra neteisingi, grąžinimas Netiesa, vartotojas turi toliau juda
nes jie laimėjo rungtynes.
Kai jums įgyvendinti šį patikrinimą ir kartu initialize, piešti, ir judėti,
jūs baigė penkiolikos žaidimą.
Sveikiname ir smagiai žaisti.
Mano vardas Zamyla ir tai CS50.