Përmbajtje:
- Hapi 1: Krijoni luajtësin tuaj
- Hapi 2: Kodi i ri i dhomës
- Hapi 3: Krijimi i një lidhjeje nga një ndryshore
- Hapi 4: Testoni
- Hapi 5: Shtoni një listë dhomash
- Hapi 6: Eliminimi i dhomave
- Hapi 7: Testimi
- Hapi 8: Çuditshmëritë me sheqerin dhe objektet
- Hapi 9: Funksioni Clone ()
- Hapi 10: Kjo është për tani
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10
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
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
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
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
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
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
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
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
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 ()
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
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:
Dhoma të përgjithshme në spango me sheqer: 11 hapa
Dhoma të përgjithshme në spango me Sugarcube: Përshëndetje përshëndetje dhe mirë se erdhët në tutorialin tim mbi ndërtimin e Wumpus Hunt in Twine me Sugarcube! Twine është një mjet shumë i thjeshtë, i krijuar për krijimin e lojërave të aventurës me tekst! Kushërira ime e vogël e preferuar ka zgjedhur të bëjë një lojë me Twine për projektin e saj të lartë, një
Serë e mrekullueshme me lotim automatik, lidhje interneti dhe shumë më tepër: 7 hapa (me fotografi)
Serë e mrekullueshme me lotim automatik, lidhje interneti dhe shumë më tepër: Mirë se vini në këtë Instructables. Në fillim të marsit, unë isha në një dyqan kopshti dhe pashë disa serra. Dhe meqenëse doja të bëja një projekt me bimë dhe pajisje elektronike për një kohë të gjatë tashmë, shkova përpara dhe bleva një: https://www.instagram.com/p
Mikro: bit MU Vision Sensor - Lidhje serike dhe Ekran OLED: 10 hapa
Mikro: bit MU Vision Sensor - Lidhja Seriale dhe Ekrani OLED: Ky është udhëzuesi im i tretë për sensorin e vizionit MU. Deri më tani ne jemi përpjekur të përdorim MU për të njohur kartat me numra dhe forma, por për të eksploruar sensorin tonë MU me një projekt më kompleks ne do të donim të kishim një dalje më të mirë. Ne nuk mund të marrim aq shumë informacion
Terminali Python për lidhje të lirë Pi Arduino: 4 hapa
Terminali Python për Lidhjen e lirë Pi Arduino: Raspberry Pi është një makinë Linux kështu që ndoshta ka një numër aplikimesh terminale për të. Por unë kam shkruar një të re në Python, pse u shqetësova? Lexo. Nëse jeni duke bërë një projekt që përdor si Pi ashtu edhe Arduino, me siguri keni nevojë për
Lidhje e sigurt SSH / SCP Nga Raspberry Pi me Cloud Server për kopje rezervë dhe përditësime: 3 hapa
Lidhje e sigurt SSH / SCP Nga Raspberry Pi në Cloud Server për kopje rezervë dhe përditësime: Qëllimi i këtij udhëzuesi është t'ju tregojë se si të lidheni automatikisht dhe me siguri nga Raspberry Pi juaj në një server cloud të largët (dhe anasjelltas) në mënyrë që të kryeni kopje rezervë dhe përditësime etj. Për ta bërë këtë, ju përdorni çifte çelësash SSH të cilat janë obvia