Përmbajtje:

Lidhje nga variablat në spango me Sugarcube: 10 hapa
Lidhje nga variablat në spango me Sugarcube: 10 hapa

Video: Lidhje nga variablat në spango me Sugarcube: 10 hapa

Video: Lidhje nga variablat në spango me Sugarcube: 10 hapa
Video: 1527-IT Eva, 108 MANTRA - Ipnosi Esoterica ∞ Lucio Carsi 2024, Korrik
Anonim
Lidhje nga variablat në spango me Sugarcube
Lidhje nga variablat në spango me Sugarcube

Unë jam shumë i kënaqur që ju u bashkua përsëri me mua! Kjo do të thotë që Wumpus nuk ju ka ngrënë akoma. Mirë!

Për ata prej jush që nuk janë të njohur, ky është një grup mësimesh që po bëj për të ndihmuar kushërirën time të mrekullueshme të trishtuar me projektin e saj të vjetër. Këto mësime janë menduar të jenë një referencë për atë që mund të bëni me disa nga veçoritë e programimit të Twine dhe Sugarcube. Nëse dëshironi të ndiqni, mund të gjeni tutorialin e parë këtu.

Në mësimin e fundit, unë ndërtova një grup të vogël dhomash që lojtari mund të eksplorojë. Shtova një objekt Wumpus dhe bëra një kod të përgjithshëm të dhomës për të ndryshuar atë që shfaqet në secilën dhomë në varësi të vendit ku është Wumpus.

Hapi 1: Krijoni luajtësin tuaj

Krijoni lojtarin tuaj
Krijoni lojtarin tuaj

Ky hap është shumë i thjeshtë. Në thelb unë jam duke përdorur të njëjtin kod si $ wumpus tim, por në vend të kësaj me një variabël $ player.

Hapi 2: Kodi i ri i dhomës

Kodi i ri i dhomës
Kodi i ri i dhomës

Ndryshoi kodin tuaj të përgjithshëm të dhomës, kështu që vlera e $ player është dhoma aktuale. Pastaj krahasoni $ wumpus me $ player në vend të dhomës aktuale.

Ky është një ndryshim i vogël, dhe jo plotësisht i nevojshëm, por më pëlqen ta mbaj kodin tim të organizuar.

Hapi 3: Krijimi i një lidhjeje nga një ndryshore

Krijimi i një lidhjeje nga një ndryshore
Krijimi i një lidhjeje nga një ndryshore

Së fundi, dua të zëvendësoj lidhjen në dhomën time fillestare me atë që ndryshon bazuar në vlerën e $ player. Kjo mund të bëhet me funksionin "" në Sugarcube. Mund të lexoni më shumë rreth kësaj në faqen e dokumentacionit të Sugarcube.

Vargu i parë pas komandës sonë është fraza që do të shfaqet në fragmentin tonë. E dyta është emri i fragmentit me të cilin duam të lidhemi. Unë jam duke përdorur "Hunt the Wumpus!" si fraza ime, por ne mund të përdorim variablin tonë atje në vend që të duam që lojtari të dijë se ku po shkojnë më parë, si kjo:

Hapi 4: Testoni

Test
Test
Test
Test

Kur testoni kodin tuaj, duhet të zbuloni se lidhja juaj është zëvendësuar me cilindo frazë që keni shkruar më parë. Klikimi i tij ju çon në një dhomë të rastësishme në lojën tuaj.

Fatkeqësisht, kjo gjithashtu mund t'ju çojë direkt në dhomën e Wumpus! Kjo nuk ka shumë rëndësi tani, por në një lojë të vërtetë që do të ishte një lojë e menjëhershme e përfunduar. Ne duhet ta rregullojmë atë.

Hapi 5: Shtoni një listë dhomash

Shto një listë dhomash
Shto një listë dhomash

Së pari, ne do të krijojmë një listë dhomash, për ta bërë më të lehtë menaxhimin e dhomave. Duke deklaruar këtë grup, ne mund ta përdorim atë për të vendosur vlerat tona $ player dhe $ wumpus pa përsëritur kodin. Ai gjithashtu ka një avantazh tjetër që do ta eksplorojmë më tej.

Testimi me këtë kod duhet të sillet njësoj si më parë.

Hapi 6: Eliminimi i dhomave

Eliminimi i Dhomave
Eliminimi i Dhomave

Unë kam shtuar një linjë të vetme të kodit në kod nga më parë (e theksuar).

Grupet në Sugarcube kanë një funksion të integruar që ju lejon të fshini elementet prej tyre me emër. Në këtë rast, sapo të caktojmë $ wumpus një dhomë, ne mund ta fshijmë atë dhomë nga lista jonë e dhomave $. Ky funksion është i ndërlikuar, megjithatë. Nuk do të funksionojë nëse dalja e funksionit nuk caktohet ose përdoret në një farë mënyre. Për t'u kujdesur për këtë, unë kam krijuar ndryshoren e përkohshme _temp.

Në Sugarcube, variablat e përkohshëm fillojnë me nënvizim (_) në vend të një dollari ($). Ato janë të dobishme sepse fshihen sapo të kalojë pasazhi, kështu që nuk keni pse të shqetësoheni për mbivendosjen e emrave të ndryshoreve.

Po fshij dhomën e $ player nga lista e dhomave të $, si një çështje natyrisht.

Hapi 7: Testimi

Duke testuar
Duke testuar
Duke testuar
Duke testuar

Ndërsa ne mund të drejtonim kodin siç është tani, ai nuk do të ishte një test shumë i plotë. Nëse ekzekutojmë kodin dhe zbulojmë se $ player dhe $ wumpus janë caktuar në dhoma të ndryshme, ne nuk e dimë nëse kjo ndodh sepse kodi funksionon, ose nëse është thjesht një rastësi. Sigurisht, ne mund ta ekzekutojmë kodin shumë herë dhe të supozojmë se nëse nuk u cakton atyre të dyve të njëjtën dhomë që nuk do ta bëjë kurrë, por kjo do të zgjasë përgjithmonë dhe ende nuk është një garanci 100% që nuk mund të ndodhë kurrë.

Në vend të kësaj, ne kemi nevojë për një mënyrë për të kontrolluar.

Unë kam shtuar tre rreshta në krye të pasazhit tonë hyrës që do të na lejojë të shohim vlerat e variablave tanë $ wumpus, $ player dhe $ roomlist. Për shkak të mënyrës së krijimit të kodit tonë, ne e dimë që dhoma $ wumpus dhe dhoma e $ player duhet të eliminohen nga lista e dhomave $.

Kur e ekzekutojmë këtë kod, mund të kontrollojmë që të sigurohemi që është kështu.

Hapi 8: Çuditshmëritë me sheqerin dhe objektet

Tuditet me sheqerin dhe objektet
Tuditet me sheqerin dhe objektet
Tuditet me sheqerin dhe objektet
Tuditet me sheqerin dhe objektet
Tuditet me sheqerin dhe objektet
Tuditet me sheqerin dhe objektet

Objektet e sheqerit janë pak të çuditshme. Më lejoni ta demonstroj këtë.

Ndërsa po ndërtoja këtë projekt fillimisht, doja ta ruaja listën time të dhomës $ në një variabël $ saveroom para se të filloja të fshija dhomat prej tij. Mendova se do të vinte në ndihmë më vonë.

Kur mora një sjellje të çuditshme nga ky kod, shtova një rresht tjetër në faqen time të hyrjes për të më lejuar të shikoj ndryshoren time të $ saveroom (fotografia e dytë).

Unë u trondita kur zbulova se elementët që kisha fshirë nga $ roomlist ishin fshirë gjithashtu nga lista ime e ruajtur! Ju mund ta shihni këtë në veprim në foton e tretë.

Kjo ndodh sepse kur kopjoni një grup si ky, nuk po i thoni Twine që të kopjojë grupin, po i thoni Twine se këto dy variabla janë të njëjta grup. Kur i bëni diçka grupit duke përdorur një variabël, ai ndryshon të njëjtën grup që po shikon variabla tjetër!

Ne mund ta rregullojmë këtë me funksionin clone ().

Hapi 9: Funksioni Clone ()

Funksioni Clone ()
Funksioni Clone ()
Funksioni Clone ()
Funksioni Clone ()

Ju mund të lexoni në lidhje me funksionin klon () në faqen e dokumentacionit të Sugarcube.

Një kopje "e cekët" është ajo që ne po bënim më parë. Në vend që të bëni një kopje të plotë të të gjithë grupit, thjesht supozoni se variabla juaj po punon me të njëjtën grup. Në vend të një kopjeje të cekët, kloni () bën një kopje "të thellë", e cila sillet ashtu siç e prisnit. Çdo element i grupit kopjohet në një grup të ri dhe është krejtësisht i ndarë nga origjinali.

Nëse e testojmë këtë kod të ri, gjejmë se funksionon ashtu siç pritej.

Sigurisht, nuk ka rëndësi nëse mbani $ roomlist apo jo. Për qëllimet e projektit tim, nuk do ta bëj. E gjithë kjo ishte vetëm për të demonstruar kopje të thella kundrejt atyre të cekëta.

Hapi 10: Kjo është për tani

Kjo është për tani!
Kjo është për tani!

Ne kemi shtuar kodin që lejon lojtarin tonë të fillojë në një dhomë të rastësishme. Përveç kësaj, ne kemi eliminuar një defekt ku lojtari do të fillonte në të njëjtën dhomë me Wumpus.

Ne mësuam se si të krijojmë lidhje nga variablat dhe si trajtohet kopjimi i grupit nga Sugarcube.

Gjërat po rriten, por ne sapo kemi filluar!

Gëzuar gjuetinë!

Recommended: