INHOUDSOPGAWE:
- Stap 1: Skep u speler
- Stap 2: Nuwe kamerkode
- Stap 3: Skep 'n skakel uit 'n veranderlike
- Stap 4: Toets
- Stap 5: Voeg 'n kamerlys by
- Stap 6: Kamers uitskakel
- Stap 7: Toets
- Stap 8: Eienaardighede met suikerblokkie en voorwerpe
- Stap 9: Die kloon () -funksie
- Stap 10: Dit is dit nou
Video: Skakels van veranderlikes in tou met suikerblokkie: 10 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Ek is so bly dat jy weer by my aangesluit het! Dit beteken dat die Wumpus jou nog nie geëet het nie. Goed!
Vir die van julle wat nie bekend is nie, dit is 'n stel tutoriale wat ek maak om my pragtige oochy-skootchy widdle neef te help met haar senior projek. Hierdie tutoriale is 'n verwysing na wat u kan doen met sommige van die programmeringsfunksies van Twine en Sugarcube. As u wil volg, kan u die eerste tutoriaal hier vind.
In die laaste tutoriaal het ek 'n klein stel kamers gebou wat die speler kan verken. Ek het 'n Wumpus -voorwerp bygevoeg en 'n generiese kamerkode gemaak om te verander wat in elke kamer vertoon word, afhangende van waar die Wumpus is.
Stap 1: Skep u speler
Hierdie stap is baie eenvoudig. In wese gebruik ek net dieselfde kode as my $ wumpus, maar eerder met 'n $ speler veranderlike.
Stap 2: Nuwe kamerkode
Het u algemene kamerkode verander sodat die waarde van $ player die huidige kamer is. Vergelyk dan $ wumpus met $ speler in plaas van die huidige kamer.
Dit is 'n geringe verandering, en nie heeltemal nodig nie, maar ek hou daarvan om my kode georganiseer te hou.
Stap 3: Skep 'n skakel uit 'n veranderlike
Uiteindelik wil ek die skakel in my beginkamer vervang na een wat verander op grond van die waarde van $ speler. Dit kan gedoen word met die "" funksie in Sugarcube. U kan meer hieroor lees op die dokumentasieblad van Sugarcube.
Die eerste string na ons opdrag is die frase wat in ons gedeelte sal verskyn. Die tweede is die naam van die gedeelte waarna ons wil skakel. Ek gebruik "Hunt the Wumpus!" as my frase, maar ons kan eerder ons veranderlike daar gebruik as ons wil hê dat die speler vooraf moet weet waarheen hy gaan, soos volg:
Stap 4: Toets
As u u kode toets, moet u agterkom dat u skakel vervang is met die frase wat u voorheen geskryf het. As u daarop klik, word u na 'n ewekansige kamer in u spel geneem.
Ongelukkig kan dit u ook direk na die Wumpus -kamer neem! Dit maak tans nie veel saak nie, maar in 'n regte spel is dit onmiddellik verby. Ons moet dit regmaak.
Stap 5: Voeg 'n kamerlys by
Eerstens gaan ons 'n kamerlys opstel om die bestuur van kamers makliker te maak. Deur hierdie skikking te verklaar, kan ons dit gebruik om ons $ speler- en $ wumpus -waardes in te stel sonder om kode te herhaal. Dit het ook 'n ander voordeel wat ons vervolgens sal ondersoek.
Om met hierdie kode te toets, moet optree net soos dit voorheen was.
Stap 6: Kamers uitskakel
Ek het van vooraf 'n enkele reël kode by die kode gevoeg (gemerk).
Arrays in Sugarcube het 'n ingeboude funksie waarmee u elemente by die naam kan verwyder. In hierdie geval, sodra ons $ wumpus 'n kamer toewys, kan ons die kamer uit ons $ roomlist verwyder. Hierdie funksie is egter fyn. Dit sal nie werk nie, tensy die uitset van die funksie op een of ander manier toegewys of gebruik word. Om daarvoor te sorg, het ek die tydelike veranderlike _temp geskep.
In Sugarcube begin tydelike veranderlikes met 'n onderstreep (_) in plaas van 'n dollar ($). Dit is handig omdat dit verwyder word sodra die gedeelte uitgevoer is, sodat u nie hoef te bekommer oor die oorvleuelende veranderlike name nie.
Ek verwyder die $ speler kamer ook uit $ roomlist, net so vanselfsprekend.
Stap 7: Toets
Alhoewel ons die kode soos nou kan gebruik, sou dit nie 'n baie deeglike toets wees nie. As ons die kode gebruik en vind dat $ speler en $ wumpus aan verskillende kamers toegewys is, weet ons nie of dit is omdat die kode werk nie, of dit net toevallig is. Sekerlik, ons kan die kode baie keer uitvoer en aanvaar dat as dit hulle nooit dieselfde kamer toewys nie, maar dit sal vir ewig duur, en dit is steeds nie 'n 100% sekerheid dat dit nooit kan gebeur nie.
In plaas daarvan het ons 'n manier nodig om dit na te gaan.
Ek het drie reëls bo -aan ons intro gedeelte bygevoeg waarmee ons die waardes van ons $ wumpus, $ player en $ roomlist veranderlikes kan sien. As gevolg van die manier waarop ons ons kode opgestel het, weet ons dat die $ wumpus -kamer en $ spelerkamer uit die $ roomlist verwyder moet word.
As ons hierdie kode gebruik, kan ons seker maak dat dit die geval is.
Stap 8: Eienaardighede met suikerblokkie en voorwerpe
Suikerblokkievoorwerpe is 'n bietjie vreemd. Laat ek dit demonstreer.
Terwyl ek hierdie projek oorspronklik bou, wou ek my $ kamerelys stoor in 'n $ saveroom -veranderlike voordat ek begin om kamers daaruit te verwyder. Ek het gedink dit sal later handig te pas kom.
Toe ek 'n vreemde gedrag van hierdie kode kry, het ek nog 'n reël by my intro -bladsy gevoeg sodat ek na my $ saveroom -veranderlike (tweede prentjie) kon kyk.
Ek was geskok toe ek agterkom dat die elemente wat ek van $ roomlist verwyder het, ook uit my gestoorde lys verwyder is! U kan dit in die derde prentjie in aksie sien.
Dit is omdat jy, as jy 'n skikking soos hierdie kopieer, nie eintlik vir Twine sê om die skikking te kopieer nie, maar vir Twine sê dat hierdie twee veranderlikes dieselfde skikking is. As u iets aan die skikking doen met behulp van een veranderlike, verander dit dieselfde skikking waarna die ander veranderlike kyk!
Ons kan dit regstel met die kloon () -funksie.
Stap 9: Die kloon () -funksie
U kan meer lees oor die kloon () -funksie op die dokumentasiebladsy van Sugarcube.
'N' Vlak 'kopie is wat ons voorheen gedoen het. In plaas daarvan om 'n volledige kopie van die hele skikking te maak, veronderstel dit net dat u veranderlike met dieselfde skikking werk. In plaas van 'n vlak kopie, maak kloon () 'n 'diep' kopie, wat gedra soos u sou verwag. Elke element van die skikking word na 'n nuwe skikking gekopieer en is heeltemal los van die oorspronklike.
As ons hierdie nuwe kode toets, vind ons dat dit werk soos verwag.
Dit maak natuurlik nie saak of u $ roomlist hou of nie. Vir die doeleindes van my projek gaan ek dit nie doen nie. Dit was alles net om diep teenoor vlak kopieë te demonstreer.
Stap 10: Dit is dit nou
Ons het kode bygevoeg waarmee ons speler in 'n ewekansige kamer kan begin. Boonop het ons 'n fout uitgeskakel waar die speler in dieselfde kamer as die Wumpus sou begin.
Ons het geleer hoe om skakels van veranderlikes te skep, en hoe die skakering van skikking deur Sugarcube behandel word.
Dinge neem toe, maar ons het net begin!
Gelukkige jag!
Aanbeveel:
Generiese kamers in tou met suikerblokkie: 11 stappe
Generiese kamers in tou met suikerblokkie: Hallo hallo en welkom by my tutoriaal oor die bou van Wumpusjag in tou met suikerblokkie! My gunsteling kleinneef het gekies om 'n speletjie met Twine te maak vir haar senior projek, 'n
Genereer Banggood -aangeslote (verwysings) skakels makliker as ooit: 4 stappe
Genereer Banggood -aangeslote (verwysings) skakels makliker as ooit: Verkorte weergawe van hierdie instruksies kan op my persoonlike blog gevind word. die aangeslote program is Ban
Tou-klim-robot uit 'n gebreekte 3D-pen: 12 stappe (met foto's)
Tou-klim-robot uit 'n gebreekte 3D-pen: 3D-penne is uitstekende hulpmiddels om die kreatiwiteit van u kinders te ontwikkel. Maar wat kan u doen as u 3D -doodler begin werk en nie herstel kan word nie? Moenie u 3D -pen na die asblik gooi nie! Omdat ek in hierdie instruksies u sal leer hoe om te transformeer
Slim tou: 10 stappe (met foto's)
Slim springtou: Hallo en welkom by my eerste Instructable! In hierdie instruksies gaan ek jou wys hoe om jou eie Smart Springtou te maak. Smart Springtou -toonbank is 'n toestel wat u daaglikse aktiwiteit met springtoue dop en die data op wolk berg. Dit
Precision Wire Stripper - Nuwe video -skakels: 3 stappe
Precision Wire Stripper - Nuwe video -skakels: Handmatige roterende draadstropper uit 'n Bic -pen, 'n skroewedraaier en 'n skeermes. Ek het onlangs 'n spoel 30AWG teflondraad gekoop. Ek het gedink dat dit ideaal sou wees vir prototipes, want 'n warm soldeerbout sal nie die isolasie smelt nie. Wel, dit is soort van nie