Kazalo:

Povezave spremenljivk v vrvici s sladkorno kocko: 10 korakov
Povezave spremenljivk v vrvici s sladkorno kocko: 10 korakov

Video: Povezave spremenljivk v vrvici s sladkorno kocko: 10 korakov

Video: Povezave spremenljivk v vrvici s sladkorno kocko: 10 korakov
Video: Section 9 2024, Julij
Anonim
Povezave spremenljivk v vrvici s sladkorno kocko
Povezave spremenljivk v vrvici s sladkorno kocko

Vesel sem, da ste se mi spet pridružili! To pomeni, da vas Wumpus še ni pojedel. Dobro!

Za tiste, ki niste seznanjeni, je to nabor vadnic, s katerimi bom pomagal svoji ljubki ojki-skootchy sestrični pri svojem starejšem projektu. Te vadnice naj bi bile referenca za vse, kar lahko storite z nekaterimi programskimi funkcijami Twine in Sugarcube. Če želite nadaljevati, lahko prvo vadnico najdete tukaj.

V zadnji vadnici sem zgradil majhen nabor sob, ki jih igralec lahko razišče. Dodal sem predmet Wumpus in naredil nekaj splošne kode prostora, da spremenim, kaj je prikazano v vsaki sobi, odvisno od tega, kje je Wumpus.

1. korak: Ustvarite svojega predvajalnika

Ustvarite svojega predvajalnika
Ustvarite svojega predvajalnika

Ta korak je zelo preprost. V bistvu uporabljam samo isto kodo kot moj $ wumpus, vendar s spremenljivko $ player.

2. korak: Nova koda sobe

Koda nove sobe
Koda nove sobe

Splošno kodo sobe ste spremenili, tako da je vrednost $ player trenutna soba. Nato primerjajte $ wumpus s $ playerjem namesto trenutne sobe.

To je manjša sprememba in ni nujno potrebna, vendar rad ohranim svojo kodo.

3. korak: Ustvarjanje povezave iz spremenljivke

Ustvarjanje povezave iz spremenljivke
Ustvarjanje povezave iz spremenljivke

Končno želim povezavo v svoji začetni sobi zamenjati s tisto, ki se spremeni glede na vrednost $ player. To lahko storite s funkcijo "" v Sugarcube. Več o tem lahko preberete na strani z dokumentacijo Sugarcube.

Prvi niz po našem ukazu je fraza, ki se bo pojavila v našem odlomku. Drugi je ime odlomka, na katerega se želimo povezati. Uporabljam "Hunt the Wumpus!" kot moj stavek, vendar bi lahko namesto tega uporabili našo spremenljivko, če želimo, da igralec vnaprej ve, kam gre, na primer:

4. korak: Preizkusite

Test
Test
Test
Test

Ko preizkusite svojo kodo, bi morali ugotoviti, da je bila vaša povezava zamenjana s katero koli frazo, ki ste jo napisali prej. Če ga kliknete, se odprete v naključno sobo v igri.

Na žalost vas to lahko pripelje tudi naravnost v sobo Wumpus! To trenutno ni veliko pomembno, toda v resnični igri bi bilo takojšnje igre konec. To moramo popraviti.

5. korak: Dodajte seznam sob

Dodajte seznam sob
Dodajte seznam sob

Najprej bomo ustvarili seznam sob za lažje upravljanje sob. Z razglasitvijo tega niza lahko z njim nastavimo vrednosti $ player in $ wumpus brez ponavljanja kode. Ima tudi drugo prednost, ki jo bomo raziskali v nadaljevanju.

Testiranje s to kodo bi se moralo obnašati tako kot prej.

6. korak: Odstranite sobe

Odprava sob
Odprava sob

Kodi sem dodal eno vrstico kode od prej (označeno).

Nizki v Sugarcube imajo vgrajeno funkcijo, ki omogoča brisanje elementov iz njih po imenu. V tem primeru, ko dodelimo sobo $ wumpus, jo lahko izbrišemo s našega $ roomlist. Ta funkcija pa je majhna. Ne bo delovalo, če izhod funkcije ni dodeljen ali na nek način uporabljen. Da bi to uredil, sem ustvaril začasno spremenljivko _temp.

V Sugarcube se začasne spremenljivke začnejo s podčrtajem (_) namesto dolarja ($). Uporabne so, ker se po zagonu odlomka izbrišejo, zato vam ni treba skrbeti, da se imena spremenljivk prekrivajo.

Izbrisam tudi $ player room s $ roomlist, seveda.

7. korak: Testiranje

Testiranje
Testiranje
Testiranje
Testiranje

Čeprav bi kodo lahko izvajali tako, kot je zdaj, to ne bi bil zelo temeljit test. Če zaženemo kodo in ugotovimo, da sta $ player in $ wumpus dodeljena različnim prostorom, ne vemo, ali je to zato, ker koda deluje, ali je to le naključje. Seveda bi lahko kodo izvedli večkrat in domnevali, da če jim nikoli ne dodeli iste sobe, jih nikoli ne bo, vendar bo to trajalo večno in še vedno ni 100% zagotovilo, da se to nikoli ne more zgoditi.

Namesto tega potrebujemo način za preverjanje.

Na vrh našega uvodnega odlomka sem dodal tri vrstice, ki nam bodo omogočile, da vidimo vrednosti spremenljivk $ wumpus, $ player in $ roomlist. Zaradi načina, kako smo nastavili kodo, vemo, da je treba sobo $ wumpus in $ player room odstraniti s seznama $ roomroom.

Ko zaženemo to kodo, lahko preverimo, ali je temu tako.

8. korak: Čudnosti s sladkorno kocko in predmeti

Čudnosti s sladkorno kocko in predmeti
Čudnosti s sladkorno kocko in predmeti
Čudnosti s sladkorno kocko in predmeti
Čudnosti s sladkorno kocko in predmeti
Čudnosti s sladkorno kocko in predmeti
Čudnosti s sladkorno kocko in predmeti

Predmeti sladkorne kocke so nekoliko čudni. Naj to pokažem.

Medtem ko sem prvotno gradil ta projekt, sem hotel shraniti svoj $ roomlist na spremenljivko $ saveroom, preden sem iz njega izbrisal sobe. Mislil sem, da mi bo kasneje prišel prav.

Ko sem dobil neko čudno vedenje iz te kode, sem na uvodno stran dodal drugo vrstico, da sem si ogledal spremenljivko $ saveroom (druga slika).

Bil sem šokiran, ko sem ugotovil, da so bili z mojega shranjenega seznama izbrisani tudi elementi, ki sem jih izbrisal s $ roomlist! To lahko vidite v akciji na tretji sliki.

To je zato, ker ko kopirate takšno matriko, pravzaprav ne poveste Twineu, naj kopira matriko, ampak povedate Twineu, da sta ti dve spremenljivki enaka matrika. Ko z eno spremenljivko naredite nekaj v matriki, spremeni isto matriko, na katero gleda druga spremenljivka!

To lahko popravimo s funkcijo clone ().

9. korak: funkcija Clone ()

Funkcija Clone ()
Funkcija Clone ()
Funkcija Clone ()
Funkcija Clone ()

O funkciji clone () lahko preberete na strani z dokumentacijo Sugarcube.

"Plitva" kopija je tisto, kar smo počeli prej. Namesto da bi naredil popolno kopijo celotnega niza, samo predpostavlja, da vaša spremenljivka deluje z istim nizom. Namesto plitke kopije naredi clone () "globoko" kopijo, ki se obnaša, kot bi pričakovali. Vsak element matrike je kopiran v novo matriko in je popolnoma ločen od izvirnika.

Če preizkusimo to novo kodo, ugotovimo, da deluje po pričakovanjih.

Seveda ni pomembno, ali obdržite $ roomlist ali ne. Za namene mojega projekta tega ne nameravam. Vse to je bilo samo za prikaz globokih in plitvih kopij.

10. korak: To je to zaenkrat

To je to zaenkrat!
To je to zaenkrat!

Dodali smo kodo, ki igralcu omogoča, da začne v naključni sobi. Poleg tega smo odpravili napako, pri kateri bi igralec začel v isti sobi kot Wumpus.

Izvedeli smo, kako ustvariti povezave iz spremenljivk in kako Sugarcube obravnava kopiranje matrike.

Stvari se krepijo, a šele začenjamo!

Vesel lov!

Priporočena: