Sisukord:

Lingid suhkrukuubikuga nööri muutujatest: 10 sammu
Lingid suhkrukuubikuga nööri muutujatest: 10 sammu
Anonim
Lingid suhkrukuubikuga nööri muutujatest
Lingid suhkrukuubikuga nööri muutujatest

Mul on nii hea meel, et olete jälle minuga liitunud! See tähendab, et Wumpus pole sind veel söönud. Hea!

Neile teist, kes pole tuttavad, valmistan siin õpetuste komplekti, et aidata oma jumalikku oochy-skootchy widdle nõbu oma vanema projektiga. Need õpetused on mõeldud viiteks sellele, mida saate teha mõne Twine'i ja Sugarcube'i programmeerimisfunktsiooniga. Kui soovite jälgida, leiate esimese õpetuse siit.

Viimases õpetuses ehitasin väikese ruumi, mida mängija saab uurida. Lisasin Wumpuse objekti ja tegin üldise toakoodi, et muuta igas ruumis kuvatavat sõltuvalt sellest, kus Wumpus asub.

Samm: looge oma mängija

Looge oma mängija
Looge oma mängija

See samm on väga lihtne. Põhimõtteliselt kasutan lihtsalt sama koodi nagu minu $ wumpus, kuid selle asemel on $ player muutuja.

2. samm: uus ruumikood

Uus toakood
Uus toakood

Muudeti teie üldist toakoodi, nii et $ mängija väärtus on praegune ruum. Seejärel võrrelge $ wumpust $ mängijaga praeguse ruumi asemel.

See on väike muudatus ja pole täiesti vajalik, kuid mulle meeldib oma koodi korrastada.

3. samm: muutujast lingi loomine

Muutujast lingi loomine
Muutujast lingi loomine

Lõpuks tahan asendada minu algruumi lingi linkiga, mis muutub $ mängija väärtuse põhjal. Seda saab teha Sugarcube'i funktsiooniga "". Selle kohta saate rohkem lugeda Sugarcube'i dokumentatsiooni lehelt.

Esimene string pärast meie käsku on fraas, mis ilmub meie lõigus. Teine on selle lõigu nimi, millega tahame linkida. Ma kasutan "Hunt the Wumpus!" minu fraasina, kuid me võiksime selle asemel kasutada oma muutujat, kui tahame, et mängija teaks, kuhu ta läheb, näiteks järgmiselt:

4. samm: testige

Test
Test
Test
Test

Koodi testides peaksite avastama, et teie link on asendatud mis tahes varem kirjutatud fraasiga. Selle klõpsamine viib teid mängu juhuslikku ruumi.

Kahjuks võib see viia teid ka otse Wumpuse tuppa! Sellel pole praegu suurt tähtsust, kuid päris mängus, mis oleks kohe lõppenud. Peame selle parandama.

Samm: lisage ruumide loend

Lisage ruumide loend
Lisage ruumide loend

Esiteks loome ruumide haldamise hõlbustamiseks ruumide loendi. Selle massiivi kuulutades saame seda kasutada $ player ja $ wumpus väärtuste määramiseks ilma koodi kordamata. Sellel on ka teine eelis, mida me järgmisena uurime.

Selle koodiga testimine peaks toimima nagu varem.

6. samm: ruumide likvideerimine

Tubade likvideerimine
Tubade likvideerimine

Olen varasemale koodile lisanud ühe koodirida (esiletõstetud).

Sugarcube'i massiividel on sisseehitatud funktsioon, mis võimaldab kustutada neist elemente nime järgi. Sel juhul, kui oleme $ wumpusele ruumi määranud, saame selle ruumi oma $ roomlistist kustutada. See funktsioon on aga peen. See ei tööta, kui funktsiooni väljundit pole mingil viisil määratud või kasutatud. Selle eest hoolitsemiseks olen loonud ajutise muutuja _temp.

Sugarcube'is algavad ajutised muutujad dollari ($) asemel alajoonega (_). Need on kasulikud, kuna need kustutatakse pärast lõigu käivitamist, nii et te ei pea muretsema muutujate nimede kattumise pärast.

Kustutan $ mängija toa ka $ roomlistist, loomulikult.

7. samm: testimine

Testimine
Testimine
Testimine
Testimine

Kuigi me saaksime koodi praegusel kujul käivitada, poleks see väga põhjalik test. Kui käivitame koodi ja leiame, et $ player ja $ wumpus on määratud erinevatesse ruumidesse, ei tea me, kas see on sellepärast, et kood töötab, või on see lihtsalt juhus. Muidugi, me võiksime koodi mitu korda käivitada ja eeldada, et kui see ei määra mõlemale kunagi sama ruumi, siis ei tee seda kunagi, kuid see võtab igavesti ja see pole ikkagi 100% kindel, et seda ei saa kunagi juhtuda.

Selle asemel vajame kontrollimisviisi.

Lisasin sissejuhatuse algusesse kolm rida, mis võimaldavad meil näha meie muutujate $ wumpus, $ player ja $ roomlist väärtusi. Oma koodi seadistamise tõttu teame, et $ wumpus ja $ player room tuleks $ roomlistist välja jätta.

Selle koodi käivitamisel saame kontrollida, kas see on nii.

8. samm: veidrused suhkrukuubi ja esemetega

Veidrad suhkrukuubi ja esemetega
Veidrad suhkrukuubi ja esemetega
Veidrad suhkrukuubi ja esemetega
Veidrad suhkrukuubi ja esemetega
Veidrad suhkrukuubi ja esemetega
Veidrad suhkrukuubi ja esemetega

Suhkru kuubikute objektid on veidi veidrad. Las ma demonstreerin seda.

Kui ma seda projekti algselt ehitasin, tahtsin enne oma ruumide kustutamist salvestada oma $ roomlist $ saveroom muutujale. Arvasin, et see tuleb hiljem kasuks.

Kui sain sellest koodist veidra käitumise, lisasin oma sissejuhatavale lehele veel ühe rea, et saaksin vaadata oma $ saveroom muutujat (teine pilt).

Olin šokeeritud, kui leidsin, et $ roomlistist kustutatud elemendid on ka minu salvestatud loendist kustutatud! Seda näete tegevuses kolmandal pildil.

Selle põhjuseks on asjaolu, et sellise massiivi kopeerimisel ei ütle te tegelikult niidile massiivi kopeerimiseks, vaid ütlete niidile, et need kaks muutujat on sama massiiv. Kui teete massiiviga midagi ühe muutuja abil, muudab see sama massiivi, mida teine muutuja vaatab!

Selle saame parandada funktsiooni kloon () abil.

9. samm: funktsioon kloonimine ()

Funktsioon Kloon ()
Funktsioon Kloon ()
Funktsioon Kloon ()
Funktsioon Kloon ()

Funktsiooni kloon () kohta saate lugeda Sugarcube'i dokumentatsiooni lehelt.

"Madal" koopia on see, mida me varem tegime. Selle asemel, et teha kogu massiivist täielik koopia, eeldatakse lihtsalt, et teie muutuja töötab sama massiiviga. Madala koopia asemel teeb kloon () "sügava" koopia, mis käitub nii, nagu võiksite oodata. Massiivi iga element kopeeritakse uude massiivi ja on originaalist täiesti eraldi.

Kui katsetame seda uut koodi, leiame, et see töötab ootuspäraselt.

Muidugi pole vahet, kas hoiate $ roomlistit või mitte. Oma projekti eesmärgil ma seda ei tee. See kõik oli mõeldud vaid sügavate ja madalate koopiate demonstreerimiseks.

Samm: see on praegu

See selleks korraks!
See selleks korraks!

Oleme lisanud koodi, mis võimaldab meie mängijal alustada juhuslikus ruumis. Lisaks oleme kõrvaldanud vea, kus mängija alustaks Wumpusega samas ruumis.

Saime teada, kuidas muutujatest linke luua ja kuidas Sugarcube massiivi kopeerimist käsitleb.

Asjad tõusevad, aga me alles alustame!

Head jahti!

Soovitan: