Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
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
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
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
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
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
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
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
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
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 ()
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
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:
Üldised toad suhkrukuubikuga nööris: 11 sammu
Üldised toad nööris Sugarcube'iga: Tere tere ja tere tulemast minu õpetusse Wumpus Hunt'i ehitamise kohta nööris Sugarcube'iga! Nöör on väga lihtne tööriist, mis on loodud tekstiseiklusmängude loomiseks! Minu lemmik väike sugulane on otsustanud oma vanemprojekti jaoks Twine'iga mängu teha
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Akustiline levitatsioon Arduino Unoga samm-sammult (8 sammu): 8 sammu
Akustiline levitatsioon Arduino Uno abil samm-sammult (8 sammu): ultraheliheli muundurid L298N DC-naissoost adapteri toiteallikas isase alalisvoolupistikuga Arduino UNOBreadboard ja analoogpordid koodi teisendamiseks (C ++)
Minu nööri lõikamise süsteem: 24 sammu
Minu nööri lõikamise süsteem: [uuendatud ja kolitud siia] Minu eesmärk juhtme lõikamisel on oluliselt vähendada kaabeltelevisiooni väga kõrgeid kuutasusid ning säilitada soovitud kanalid, teenused ja funktsioonid. See juhend kirjeldab minu nööri lõikamise süsteemi. Minu kaabeltelevisiooni pakkuja annab juurdepääsu
Looge Banggoodi sidusettevõtte (viite) lingid lihtsamaks kui kunagi varem: 4 sammu
Loo Banggoodi sidusettevõtte (viite) lingid lihtsamaks kui kunagi varem: selle juhendi lühendatud versiooni leiate minu isiklikust ajaveebist. Sidusettevõtete müük on sisuloojatele suurepärane lisatuluallikas ja paljud juhistega inimesed kasutavad neid. Populaarsematel saitidel, millel on sidusprogramm on keelatud