Veze varijabli u kanapu sa šećernom kockom: 10 koraka
Veze varijabli u kanapu sa šećernom kockom: 10 koraka
Anonim
Veze varijabli u kanapu sa šećernom kockom
Veze varijabli u kanapu sa šećernom kockom

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

Kreirajte svoj player
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

Novi kôd sobe
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

Stvaranje veze iz varijable
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

Test
Test
Test
Test

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

Dodajte popis soba
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

Uklanjanje soba
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

Testiranje
Testiranje
Testiranje
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

Neobičnosti sa šećernom kockom i predmetima
Neobičnosti sa šećernom kockom i predmetima
Neobičnosti sa šećernom kockom i predmetima
Neobičnosti sa šećernom kockom i predmetima
Neobičnosti sa šećernom kockom i predmetima
Neobičnosti 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 ()

Funkcija Clone ()
Funkcija Clone ()
Funkcija Clone ()
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

To je To Za sada!
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: