Sisällysluettelo:

Linkit muuttujista narussa sokerikuutiossa: 10 vaihetta
Linkit muuttujista narussa sokerikuutiossa: 10 vaihetta

Video: Linkit muuttujista narussa sokerikuutiossa: 10 vaihetta

Video: Linkit muuttujista narussa sokerikuutiossa: 10 vaihetta
Video: LinkedIn Growth Has Reached 'Critical Mass': Jeff Weiner 2024, Heinäkuu
Anonim
Linkit muuttujista narussa sokerikuution kanssa
Linkit muuttujista narussa sokerikuution kanssa

Olen niin iloinen, että liityit taas kanssani! Tämä tarkoittaa, että Wumpus ei ole vielä syönyt sinua. Hyvä!

Niille teistä, jotka eivät ole tuttuja, tämä on joukko opetusohjelmia, joiden tarkoituksena on auttaa ihastuttavaa oochy-skootchy widdle serkkuani vanhemman projektinsa kanssa. Nämä opetusohjelmat on tarkoitettu viittauksiksi siihen, mitä voit tehdä joillakin Twine- ja Sugarcube -ohjelmointiominaisuuksilla. Jos haluat seurata, löydät ensimmäisen opetusohjelman täältä.

Viimeisessä opetusohjelmassa rakensin pienen joukon huoneita, joita pelaaja voi tutkia. Lisäsin Wumpus -objektin ja tein yleisen huonekoodin muuttaakseni, mitä näytettiin jokaisessa huoneessa sen mukaan, missä Wumpus on.

Vaihe 1: Luo soitin

Luo soittimesi
Luo soittimesi

Tämä vaihe on hyvin yksinkertainen. Käytän pohjimmiltaan vain samaa koodia kuin $ wumpus, mutta sen sijaan $ player -muuttujalla.

Vaihe 2: Uusi huonekoodi

Uusi huonekoodi
Uusi huonekoodi

Muutit huoneesi yleisen koodin, joten $ player -arvo on nykyinen huone. Vertaa sitten $ wumpusta $ playeriin nykyisen huoneen sijasta.

Tämä on pieni muutos, eikä täysin välttämätön, mutta pidän koodini järjestyksessä.

Vaihe 3: Linkin luominen muuttujasta

Linkin luominen muuttujasta
Linkin luominen muuttujasta

Lopuksi haluan korvata aloitushuoneessani olevan linkin linkiksi, joka muuttuu $ pelaajan arvon perusteella. Tämä voidaan tehdä Sugarcuben "" -toiminnolla. Voit lukea siitä lisää Sugarcuben dokumentaatiosivulta.

Ensimmäinen merkkijono käskymme jälkeen on lause, joka ilmestyy kappaleessamme. Toinen on sen kohdan nimi, johon haluamme linkittää. Käytän "metsästä Wumpusta!" lauseena, mutta voisimme käyttää muuttujaa sen sijaan, jos haluamme pelaajan tietävän minne he ovat menossa etukäteen, esimerkiksi näin:

Vaihe 4: Testaa

Testata
Testata
Testata
Testata

Kun testaat koodiasi, huomaat, että linkkisi on korvattu millä tahansa aiemmin kirjoittamallasi lauseella. Napsauttamalla sitä pääset pelisi satunnaiseen huoneeseen.

Valitettavasti tämä voi viedä sinut myös suoraan Wumpus -huoneeseen! Tällä ei ole väliä juuri nyt, mutta todellisessa pelissä se olisi heti ohi. Meidän on korjattava se.

Vaihe 5: Lisää huoneluettelo

Lisää huoneluettelo
Lisää huoneluettelo

Ensin aiomme luoda huoneluettelon huoneiden hallinnan helpottamiseksi. Ilmoittamalla tämän taulukon voimme käyttää sitä $ player- ja $ wumpus -arvojemme asettamiseen toistamatta koodia. Sillä on myös toinen etu, jota tutkimme seuraavaksi.

Tällä koodilla testaamisen pitäisi toimia kuten ennenkin.

Vaihe 6: Huoneiden poistaminen

Huoneiden poistaminen
Huoneiden poistaminen

Olen lisännyt yhden koodirivin aikaisempaan koodiin (korostettuna).

Sugarcuben matriiseissa on sisäänrakennettu toiminto, jonka avulla voit poistaa niistä elementtejä nimen mukaan. Tässä tapauksessa, kun olemme antaneet $ wumpusille huoneen, voimme poistaa huoneen $ roomlistaltamme. Tämä toiminto on kuitenkin näppärä. Se ei toimi, ellei toiminnon lähtöä ole määritetty tai käytetty jollakin tavalla. Huolehtiakseni siitä olen luonut väliaikaisen muuttujan _temp.

Sugarcubessa väliaikaiset muuttujat alkavat alaviivalla (_) dollarin ($) sijasta. Ne ovat hyödyllisiä, koska ne poistetaan, kun kohta on suoritettu, joten sinun ei tarvitse huolehtia muuttujien nimien päällekkäisyydestä.

Poistan myös $ player -huoneen $ roomlistista, aivan itsestäänselvyytenä.

Vaihe 7: Testaus

Testaus
Testaus
Testaus
Testaus

Vaikka voisimme suorittaa koodin sellaisena kuin se on nyt, se ei olisi kovin perusteellinen testi. Jos suoritamme koodin ja huomaamme, että $ player ja $ wumpus on määritetty eri huoneisiin, emme tiedä johtuuko se siitä, että koodi toimii vai onko se vain sattumaa. Toki, voisimme suorittaa koodin monta kertaa ja olettaa, että jos se ei koskaan anna heille molemmille samaa huonetta, niin ei koskaan, mutta se kestää ikuisesti, eikä se silti ole 100% varma siitä, että sitä ei voi koskaan tapahtua.

Sen sijaan tarvitsemme tavan tarkistaa.

Olen lisännyt johdantokappaleemme alkuun kolme riviä, joiden avulla voimme nähdä $ wumpus-, $ player- ja $ roomlist -muuttujien arvot. Koodimme asentamistavan vuoksi tiedämme, että $ wumpus -huone ja $ player -huone tulee poistaa $ roomlistasta.

Kun suoritamme tämän koodin, voimme tarkistaa, onko asia näin.

Vaihe 8: Omituisuudet sokerikuution ja esineiden kanssa

Kummallisuuksia sokerikuution ja esineiden kanssa
Kummallisuuksia sokerikuution ja esineiden kanssa
Kummallisuuksia sokerikuution ja esineiden kanssa
Kummallisuuksia sokerikuution ja esineiden kanssa
Kummallisuuksia sokerikuution ja esineiden kanssa
Kummallisuuksia sokerikuution ja esineiden kanssa

Sokerikuutukohteet ovat hieman outoja. Anna minun osoittaa tämä.

Rakennettaessa tätä projektia alun perin halusin tallentaa $ roomlistini $ saveroom -muuttujaan ennen kuin aloitin huoneiden poistamisen siitä. Luulin, että siitä on hyötyä myöhemmin.

Kun sain jotain outoa käyttäytymistä tästä koodista, lisäsin uuden rivin intro -sivulleni, jotta voin tarkastella $ saveroom -muuttujaani (toinen kuva).

Olin järkyttynyt huomatessani, että $ roomlistista poistamani elementit oli myös poistettu tallennetusta luettelostani! Näet tämän toiminnassa kolmannessa kuvassa.

Tämä johtuu siitä, että kun kopioit tällaisen taulukon, et todellakaan käsitä Twineä kopioimaan taulukkoa, kerrot Twineille, että nämä kaksi muuttujaa ovat sama taulukko. Kun teet jotain taulukolle yhdellä muuttujalla, se muuttaa samaa taulukkoa, jota toinen muuttuja katselee!

Voimme korjata tämän kloonitoiminnolla ().

Vaihe 9: Kloonaus () -toiminto

Kloonaus () -toiminto
Kloonaus () -toiminto
Kloonaus () -toiminto
Kloonaus () -toiminto

Voit lukea klooni () -toiminnosta Sugarcube -dokumentaatiosivulta.

"Matala" kopio on se, mitä teimme ennen. Sen sijaan, että otat koko kopion koko taulukosta, se vain olettaa, että muuttuja toimii saman taulukon kanssa. Matalan kopion sijaan klooni () tekee "syvän" kopion, joka toimii odotetulla tavalla. Jokainen taulukon elementti kopioidaan uuteen taulukkoon ja on täysin erillinen alkuperäisestä.

Jos testaamme tätä uutta koodia, havaitsemme sen toimivan odotetusti.

Ei tietenkään ole väliä, pidätkö $ roomlistin vai et. Projektiani varten en aio. Tämä oli vain osoittaakseen syvät vs. matalat kopiot.

Vaihe 10: Se on nyt

Siinä se nyt!
Siinä se nyt!

Olemme lisänneet koodin, jonka avulla pelaajamme voivat aloittaa satunnaisessa huoneessa. Tämän lisäksi olemme poistaneet virheen, jossa pelaaja aloittaisi samassa huoneessa kuin Wumpus.

Opimme kuinka luoda linkkejä muuttujista ja kuinka Sugarcube käsittelee matriisikopiointia.

Asiat etenevät, mutta olemme vasta aloittamassa!

Hyvää metsästystä!

Suositeltava: