Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-23 14:47
Drago mi je što ste mi se opet pridružili! To znači da vas Wumpus još nije pojeo. Dobro!
Za one od vas koji niste upoznati, ovo je skup uputstava koje radim kako bih pomogao svojoj preslatkoj rođakinji oochy-skootchy wdle s njezinim višim projektom. Ovi su vodiči referenca za ono što možete učiniti s nekim od programskih značajki Twine and 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 objekt Wumpus i napravio generički kôd sobe za promjenu prikaza u svakoj prostoriji, ovisno o tome gdje se Wumpus nalazi.
Korak 1: Kreirajte svoj player
Ovaj korak je vrlo jednostavan. U biti samo koristim isti kôd kao i moj $ wumpus, ali umjesto toga s varijablom $ player.
Korak 2: Novi kôd sobe
Promijenili ste generički kôd sobe tako da je vrijednost $ player trenutna soba. Zatim usporedite $ wumpus s $ playerom umjesto trenutne sobe.
Ovo je mala promjena, a ne potpuno potrebna, ali volim održavati svoj kôd organiziranim.
Korak 3: Stvaranje veze iz varijable
Na kraju, želim zamijeniti vezu u mojoj početnoj sobi onom koja se mijenja na temelju vrijednosti $ player. To se može učiniti pomoću funkcije "" u Sugarcube. Više o tome možete pročitati na stranici dokumentacije Sugarcubea.
Prvi niz nakon naše naredbe izraz je koji će se pojaviti u našem odlomku. Drugi je naziv odlomka na koji se želimo povezati. Koristim "Hunt the Wumpus!" kao moj izraz, 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 prethodno napisali. Klikom na nju odlazite u slučajnu sobu u igri.
Nažalost, ovo vas također može odvesti ravno u sobu Wumpus! To sada nije mnogo važno, ali u pravoj igri to bi bilo instantno gotovo. Moramo to popraviti.
Korak 5: Dodajte popis 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đer ima još jednu prednost koju ćemo dalje istražiti.
Testiranje s ovim kodom trebalo bi se ponašati isto kao i prije.
Korak 6: Uklanjanje soba
Dodao sam jedan red koda kodu 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 s našeg popisa soba. Ova je funkcija, međutim, izbirljiva. Neće raditi ako izlaz funkcije nije dodijeljen ili korišten na neki način. Kako 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 naziva varijabli.
Brišem i $ player room s $ 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 sobu, to nikada neće ni učiniti, ali to će potrajati vječno i još uvijek nije 100% jamstvo da se to nikada ne može dogoditi.
Umjesto toga, trebamo 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 sobu $ wumpus i sobu za igrače $ trebali eliminirati s popisa soba $ room.
Kad pokrenemo ovaj kôd, možemo provjeriti je li tako.
Korak 8: Čudnosti sa šećernom kockom i predmetima
Objekti šećerne kocke pomalo su čudni. Dopustite mi da ovo demonstriram.
Dok sam izvorno gradio ovaj projekt, želio sam spremiti svoj $ roomlist u varijablu $ saveroom prije nego što sam počeo brisati sobe iz njega. Mislio sam da će mi kasnije dobro doći.
Kad sam dobio neko čudno ponašanje iz ovog koda, dodao sam još jedan redak na svoju uvodnu stranicu kako bih mogao pogledati svoju varijablu $ saveroom (druga slika).
Bio sam šokiran kad sam otkrio da su elementi koje sam izbrisao s $ roomlist također izbrisani s popisa spremljenih! 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. Kad učinite nešto s nizom pomoću jedne varijable, ona mijenja isti niz u kojem 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 radili prije. 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 kopira se u novi niz i potpuno je odvojen od izvornika.
Ako isprobamo ovaj novi kôd, ustanovit ćemo da radi očekivano.
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 našem igraču omogućuje početak u nasumičnoj prostoriji. Osim toga, uklonili smo grešku u kojoj bi igrač počinjao u istoj prostoriji gdje i Wumpus.
Naučili smo o tome kako stvoriti veze od varijabli i kako Sugarcube tretira kopiranje polja.
Stvari se ubrzavaju, ali tek počinjemo!
Sretan lov!
Preporučeni:
Flysky RF odašiljač koji se napaja putem USB -a + žičane signalne veze s računalom + besplatni softver simulatora: 6 koraka
Flysky RF odašiljač koji se napaja putem USB + žičane signalne veze s računalom + besplatni softver simulatora: Ako ste poput mene, voljet ćete testirati svoj RF odašiljač i naučiti prije nego što srušite svoj dragi RF avion/bespilotnu letjelicu. To će vam pružiti dodatnu zabavu, a uštedjet ćete tone novca i vremena. Najbolji način za to je povezivanje RF odašiljača s vama
Opće sobe u uzici sa šećernom kockom: 11 koraka
Opće sobe u Twine With Sugarcube: Pozdrav, dobrodošli u moj vodič o izgradnji Wumpus Hunt -a u Twine with Sugarcube! Twine je vrlo jednostavan alat, dizajniran za stvaranje 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 vibracije i temperature: Vibracije su uistinu kretanje naprijed-natrag-ili osciliranje-strojeva i komponenti u motoriziranim uređajima. Vibracije u industrijskom sustavu mogu biti simptom ili motiv gnjavaže ili se mogu povezati sa svakodnevnim radom. Na primjer, osci
Veze kampusa: 8 koraka
Veze na kampusu: Izjava o problemu Kraj semestra često je stresno doba godine za studente Sveučilišta Indiana koji brinu oko završnih ispita i ocjena. Sveučilište Indiana već nudi neke strategije za ublažavanje stresa, poput Balance na Kelleyju
Pojedinosti i veze I2C LCD adaptera: 5 koraka
Pojedinosti 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 s dvožičnim komunikacijskim protokolom. Pomoću ovog adaptera svatko može kontrolirati 16x2