Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
Drago mi je što ste mi se ponovo pridružili! To znači da vas Wumpus još nije pojeo. Dobro!
Za one od vas koji niste upoznati, ovo je skup vodiča koje radim kako bih pomogao mojoj preslatkoj rođaci oochy-skootchy wdle sa njenim višim projektom. Ovi vodiči su zamišljeni kao referenca za ono što možete učiniti s nekim od programskih značajki Twine i Sugarcube. Ako želite pratiti, prvi vodič možete pronaći ovdje.
U prošlom vodiču sagradio sam mali skup soba koje igrač može istražiti. Dodao sam Wumpus objekt i napravio neki generički kod sobe da promijenim ono što je prikazano u svakoj prostoriji ovisno o tome gdje se Wumpus nalazi.
Korak 1: Kreirajte svoj player
Ovaj korak je vrlo jednostavan. U suštini samo koristim isti kôd kao i moj $ wumpus, ali umjesto toga s varijablom $ player.
Korak 2: Novi kod sobe
Promijenjen je vaš generički kôd sobe tako da je vrijednost $ player trenutna soba. Zatim uporedite $ wumpus sa $ playerom umjesto trenutne sobe.
Ovo je mala promjena i nije potpuno potrebna, ali volim držati svoj kôd organiziranim.
Korak 3: Kreiranje veze iz varijable
Konačno, želim zamijeniti vezu u mojoj početnoj sobi onom koja se mijenja na osnovu vrijednosti $ player. To se može učiniti pomoću funkcije "" u Sugarcube. Više o tome možete pročitati na stranici dokumentacije Sugarcube -a.
Prvi niz nakon naše naredbe je izraz koji će se pojaviti u našem odlomku. Drugi je naziv odlomka na koji želimo povezati. Koristim "Hunt the Wumpus!" kao moja fraza, ali umjesto toga bismo mogli koristiti našu varijablu ako želimo da igrač unaprijed zna kamo ide, ovako:
Korak 4: Testirajte
Kada testirate svoj kôd, trebali biste otkriti da je vaša veza zamijenjena bilo kojom frazom koju ste ranije napisali. Klikom na nju odlazite u slučajnu sobu u igri.
Nažalost, ovo vas može odvesti i ravno u sobu Wumpus! To sada nije važno, ali u pravoj igri to bi bilo instantno gotovo. Moramo to popraviti.
Korak 5: Dodajte listu soba
Prvo ćemo stvoriti popis soba kako bismo olakšali upravljanje prostorijama. Deklariranjem ovog niza možemo ga koristiti za postavljanje vrijednosti $ player i $ wumpus bez ponavljanja koda. Takođe ima još jednu prednost koju ćemo dalje istražiti.
Testiranje s ovim kodom trebalo bi se ponašati kao i prije.
Korak 6: Uklanjanje prostorija
Dodao sam jedan red koda od ranije (istaknuto).
Nizovi u Sugarcube imaju ugrađenu funkciju koja vam omogućuje brisanje elemenata iz njih po imenu. U ovom slučaju, nakon što dodijelimo sobu $ wumpus, možemo izbrisati tu sobu sa naše liste soba. Ova je funkcija, međutim, promjenjiva. Neće raditi ako izlaz funkcije nije dodijeljen ili korišten na neki način. Da bih to riješio, stvorio sam privremenu varijablu _temp.
U Sugarcube -u privremene varijable počinju donjim crtom (_) umjesto dolara ($). Korisni su jer se brišu nakon pokretanja odlomka, tako da ne morate brinuti o preklapanju imena varijabli.
Brišem i $ player room sa $ roomlist, samo po sebi razumljivo.
Korak 7: Testiranje
Iako bismo mogli pokrenuti kôd kakav je sada, to ne bi bio baš temeljit test. Ako pokrenemo kôd i ustanovimo da su $ player i $ wumpus dodijeljeni različitim prostorijama, ne znamo je li to zato što kôd radi ili je to samo slučajnost. Naravno, mogli bismo pokrenuti kôd mnogo puta i pretpostaviti da ako im oboje nikada ne dodijeli istu prostoriju, to nikada neće ni učiniti, ali to će potrajati vječno i još uvijek nije 100% garancija da se to nikada neće dogoditi.
Umjesto toga, potreban nam je način provjere.
Dodao sam tri retka na vrh našeg uvodnog odlomka koji će nam omogućiti da vidimo vrijednosti naših varijabli $ wumpus, $ player i $ roomlist. Zbog načina na koji smo postavili naš kôd, znamo da bi $ wumpus sobu i $ player sobu trebali eliminirati sa $ roomlist.
Kada pokrenemo ovaj kôd, možemo provjeriti da li je to tačno.
Korak 8: Čudnosti sa šećernom kockom i predmetima
Objekti šećerne kocke su malo čudni. Dozvolite mi da ovo demonstriram.
Dok sam prvotno gradio ovaj projekt, želio sam spremiti svoju $ roomlist u varijablu $ saveroom prije nego što sam počeo brisati prostorije iz nje. Mislio sam da će mi kasnije dobro doći.
Kad sam dobio neko čudno ponašanje iz ovog koda, dodao sam još jedan red na uvodnu stranicu kako bih pogledao svoju varijablu $ saveroom (druga slika).
Bio sam šokiran kada sam otkrio da su elementi koje sam izbrisao sa $ roomlist također izbrisani sa moje sačuvane liste! To možete vidjeti na djelu na trećoj slici.
To je zato što kada kopirate ovakav niz, zapravo ne govorite Twineu da kopira niz, već govorite Twineu da su ove dvije varijable isti niz. Kada učinite nešto s nizom koristeći jednu varijablu, ona mijenja isti niz koji druga varijabla gleda!
To možemo popraviti pomoću funkcije clone ().
Korak 9: Funkcija Clone ()
O funkciji clone () možete pročitati na stranici dokumentacije Sugarcube.
"Plitka" kopija je ono što smo ranije radili. Umjesto potpune kopije cijelog niza, samo pretpostavlja da vaša varijabla radi s istim nizom. Umjesto plitke kopije, clone () radi "duboku" kopiju, koja se ponaša kako biste očekivali. Svaki element niza je kopiran u novi niz i potpuno je odvojen od originala.
Ako testiramo ovaj novi kôd, ustanovit ćemo da radi kako se očekuje.
Naravno, nije važno hoćete li zadržati $ roomlist ili ne. Za potrebe mog projekta, ja to neću učiniti. Ovo je sve samo radi demonstracije dubokih naspram plitkih kopija.
Korak 10: To je to za sada
Dodali smo kôd koji omogućava našem igraču da počne u nasumičnoj prostoriji. Osim toga, uklonili smo grešku u kojoj bi igrač počinjao u istoj prostoriji kao i Wumpus.
Naučili smo o tome kako stvoriti veze od varijabli i kako Sugarcube tretira kopiranje niza.
Stvari se ubrzavaju, ali tek počinjemo!
Sretan lov!
Preporučuje se:
Flysky RF odašiljač koji se napaja putem USB -a + žičane signalne veze sa računarom + besplatni softver simulatora: 6 koraka
Flysky RF odašiljač koji se napaja putem USB + žičane signalne veze sa računarom + besplatni softver simulatora: Ako ste poput mene, voljet ćete testirati svoj RF predajnik i naučiti prije nego što srušite svoj dragi RF avion/bespilotnu letjelicu. Ovo će vam pružiti dodatnu zabavu, a uštedjet ćete tone novca i vremena. Najbolji način za to je povezivanje vašeg RF odašiljača s vama
Opće sobe u kanapu sa šećernom kockom: 11 koraka
Generičke sobe u Twine With Sugarcube: Zdravo zdravo i dobrodošli u moj vodič o izgradnji Wumpus Hunt -a u Twine with Sugarcube! Twine je vrlo jednostavan alat, dizajniran za kreiranje tekstualnih avanturističkih igara! Moj omiljeni mali rođak odabrao je igru sa Twineom za svoj stariji projekt
IoT- Ubidots- ESP32+Senzor senzora za bežične veze na daljinu, bežične vibracije i temperature: 7 koraka
IoT-Ubidots-ESP32+Senzor za bežične vibracije i temperaturu na daljinu, bežične veze i temperature: Vibracije su zaista kretanje naprijed-nazad-ili osciliranje-mašina i komponenti u motorizovanim spravama. Vibracije u industrijskom sistemu mogu biti simptom ili motiv gnjavaže, ili mogu biti povezane sa svakodnevnim radom. Na primjer, osci
Kampusne veze: 8 koraka
Campus Connections: Problem Univerzitet u Indiani već nudi neke strategije za ublažavanje stresa, poput Balance na Kelleyju
Detalji i veze I2C LCD adaptera: 5 koraka
Detalji i veze I2C LCD adaptera: I2C lcd adapter je uređaj koji sadrži mikrokontroler PCF8574 čip. Ovaj mikrokontroler je I/O ekspander, koji komunicira s drugim čipom mikrokontrolera pomoću dvožičnog komunikacijskog protokola. Pomoću ovog adaptera svatko može kontrolirati 16x2