Turinys:

Nuorodos iš kintamųjų virvėje su cukraus kubeliu: 10 žingsnių
Nuorodos iš kintamųjų virvėje su cukraus kubeliu: 10 žingsnių

Video: Nuorodos iš kintamųjų virvėje su cukraus kubeliu: 10 žingsnių

Video: Nuorodos iš kintamųjų virvėje su cukraus kubeliu: 10 žingsnių
Video: From C to Python by Ross Rheingans-Yoo 2024, Liepa
Anonim
Nuorodos iš kintamųjų virvėje su cukrumi
Nuorodos iš kintamųjų virvėje su cukrumi

Labai džiaugiuosi, kad vėl prisijungėte prie manęs! Tai reiškia, kad „Wumpus“jūsų dar nevalgė. Gerai!

Tiems iš jūsų, kurie nėra susipažinę, tai yra vadovėlių rinkinys, kurį aš padedu savo žavingam oochy-skootchy viduramžiui pusbroliui su savo vyresniuoju projektu. Šios pamokos turi būti nuoroda į tai, ką galite padaryti naudodami kai kurias „Twine“ir „Sugarcube“programavimo funkcijas. Jei norite sekti, pirmąją pamoką rasite čia.

Paskutinėje pamokoje aš pastatiau nedidelį kambarių rinkinį, kurį žaidėjas gali ištirti. Pridėjau „Wumpus“objektą ir sukūriau bendrąjį kambario kodą, kad pakeisčiau tai, kas rodoma kiekviename kambaryje, priklausomai nuo to, kur yra „Wumpus“.

1 žingsnis: sukurkite grotuvą

Sukurkite savo grotuvą
Sukurkite savo grotuvą

Šis žingsnis yra labai paprastas. Iš esmės aš tiesiog naudoju tą patį kodą kaip ir mano $ wumpus, bet naudoju $ player kintamąjį.

2 veiksmas: naujas kambario kodas

Naujas kambario kodas
Naujas kambario kodas

Pakeitėte bendrąjį kambario kodą, todėl $ player vertė yra dabartinis kambarys. Tada palyginkite $ wumpus su $ player vietoj dabartinio kambario.

Tai nedidelis pakeitimas ir nėra visiškai būtinas, tačiau man patinka tvarkyti savo kodą.

3 žingsnis: sukurkite nuorodą iš kintamojo

Nuorodos kūrimas iš kintamojo
Nuorodos kūrimas iš kintamojo

Galiausiai norėčiau pakeisti nuorodą mano pradiniame kambaryje į tą, kuri keičiasi atsižvelgiant į $ player vertę. Tai galima padaryti naudojant „“funkciją „Sugarcube“. Daugiau apie tai galite perskaityti „Sugarcube“dokumentacijos puslapyje.

Pirmoji eilutė po mūsų komandos yra frazė, kuri pasirodys mūsų ištraukoje. Antrasis yra ištraukos, su kuria norime susieti, pavadinimas. Aš naudoju "Medžiok Wumpus!" kaip mano frazė, bet mes galime naudoti savo kintamąjį, jei norime, kad žaidėjas iš anksto žinotų, kur eina, pavyzdžiui:

4 žingsnis: išbandykite

Bandymas
Bandymas
Bandymas
Bandymas

Kai tikrinate kodą, turėtumėte pastebėti, kad jūsų nuoroda buvo pakeista bet kokia anksčiau parašyta fraze. Spustelėję jį pateksite į atsitiktinį žaidimo kambarį.

Deja, tai taip pat gali nuvesti jus tiesiai į „Wumpus“kambarį! Šiuo metu tai neturi didelės reikšmės, tačiau tikrame žaidime tai būtų momentinis žaidimas. Turime tai sutvarkyti.

5 veiksmas: pridėkite kambarių sąrašą

Pridėti kambarių sąrašą
Pridėti kambarių sąrašą

Pirmiausia, norėdami palengvinti kambarių tvarkymą, sudarysime kambarių sąrašą. Skelbdami šį masyvą, mes galime jį naudoti nustatydami $ player ir $ wumpus reikšmes nekartodami kodo. Jis taip pat turi dar vieną pranašumą, kurį toliau nagrinėsime.

Testavimas naudojant šį kodą turėtų veikti taip pat, kaip ir anksčiau.

6 žingsnis: pašalinkite kambarius

Kambarių pašalinimas
Kambarių pašalinimas

Prie kodo pridėjau vieną kodo eilutę (paryškinta).

„Sugarcube“masyvai turi įmontuotą funkciją, leidžiančią iš jų ištrinti elementus pagal pavadinimą. Tokiu atveju, priskyrę $ wumpus kambarį, galime ištrinti tą kambarį iš $ roomlist. Tačiau ši funkcija yra sudėtinga. Jis neveiks, nebent funkcijos išvestis bus priskirtas ar kaip nors panaudotas. Norėdami tai padaryti, sukūriau laikiną kintamąjį _temp.

„Sugarcube“laikini kintamieji prasideda pabraukimu (_), o ne doleriu (USD). Jie yra naudingi, nes jie ištrinami paleidus ištrauką, todėl jums nereikia nerimauti dėl sutampančių kintamųjų pavadinimų.

Aš taip pat ištrinu $ žaidėjų kambarį iš $ roomlist, kaip savaime suprantama.

7 žingsnis: bandymas

Testavimas
Testavimas
Testavimas
Testavimas

Nors kodą galėtume paleisti tokį, koks jis yra dabar, tai nebūtų labai išsamus testas. Jei paleisime kodą ir pamatysime, kad $ player ir $ wumpus yra priskirti skirtingiems kambariams, mes nežinome, ar taip yra todėl, kad kodas veikia, ar tai tik atsitiktinumas. Žinoma, mes galėtume daug kartų paleisti kodą ir manyti, kad jei jis niekada nepriskiria jiems to paties kambario, to niekada ir nepadarys, bet tai užtruks amžinai ir tai vis tiek nėra 100% garantija, kad tai niekada neįvyks.

Vietoj to, mums reikia būdo patikrinti.

Įvadinio ištraukos viršuje pridėjau tris eilutes, kurios leis pamatyti mūsų $ wumpus, $ player ir $ roomlist kintamųjų vertes. Dėl savo kodo nustatymo žinome, kad $ wumpus kambarys ir $ player kambarys turėtų būti pašalinti iš $ roomlist.

Vykdydami šį kodą galime patikrinti, ar taip yra.

8 žingsnis: keistenybės su cukraus kubeliu ir objektais

Keistenybės su cukrumi ir daiktais
Keistenybės su cukrumi ir daiktais
Keistenybės su cukrumi ir daiktais
Keistenybės su cukrumi ir daiktais
Keistenybės su cukrumi ir daiktais
Keistenybės su cukrumi ir daiktais

Cukraus kubo objektai yra šiek tiek keistai. Leiskite tai parodyti.

Kol iš pradžių kūriau šį projektą, prieš pradėdamas ištrinti kambarius, norėjau išsaugoti savo $ roomlist į $ saveroom kintamąjį. Pagalvojau, kad vėliau pravers.

Kai gavau keistą elgesį iš šio kodo, įvadinį puslapį pridėjau dar vieną eilutę, kad galėčiau pažvelgti į savo kintamąjį $ saveroom (antra nuotrauka).

Nustebau sužinojęs, kad elementai, kuriuos ištryniau iš $ roomlist, taip pat buvo ištrinti iš mano išsaugoto sąrašo! Tai galite pamatyti veikdami trečioje nuotraukoje.

Taip yra todėl, kad kai kopijuojate tokį masyvą, jūs iš tikrųjų nesakote „Twine“, kad jis nukopijuotų masyvą, jūs sakote „Twine“, kad šie du kintamieji yra tas pats masyvas. Kai ką nors darote masyvui naudodami vieną kintamąjį, jis keičia tą patį masyvą, į kurį žiūri kitas kintamasis!

Tai galime išspręsti naudodami funkciją clone ().

9 veiksmas: klono () funkcija

Funkcija Klonas ()
Funkcija Klonas ()
Funkcija Klonas ()
Funkcija Klonas ()

Apie funkciją „klonas ()“galite perskaityti „Sugarcube“dokumentacijos puslapyje.

„Sekli“kopija yra tai, ką mes darėme anksčiau. Užuot pasidaręs pilną viso masyvo kopiją, daroma prielaida, kad jūsų kintamasis veikia su tuo pačiu masyvu. Vietoj seklios kopijos klonas () daro „gilią“kopiją, kuri elgiasi taip, kaip tikitės. Kiekvienas masyvo elementas nukopijuojamas į naują masyvą ir yra visiškai atskirtas nuo originalo.

Jei išbandysime šį naują kodą, pamatysime, kad jis veikia taip, kaip tikėtasi.

Žinoma, nesvarbu, ar išsaugosite $ roomlist, ar ne. Savo projekto tikslais aš nesiruošiu. Visa tai buvo tik siekiant parodyti gilias ir negilias kopijas.

10 žingsnis: dabar viskas

Tai dabar!
Tai dabar!

Pridėjome kodą, kuris leidžia mūsų žaidėjui pradėti atsitiktinį kambarį. Be to, pašalinome klaidą, kai žaidėjas pradėtų tame pačiame kambaryje kaip „Wumpus“.

Mes sužinojome, kaip sukurti nuorodas iš kintamųjų ir kaip masyvo kopijavimą tvarko „Sugarcube“.

Situacija sparčiai auga, bet mes tik pradedame!

Laimingos medžioklės!

Rekomenduojamas: