INHOUDSOPGAWE:

Skakels van veranderlikes in tou met suikerblokkie: 10 stappe
Skakels van veranderlikes in tou met suikerblokkie: 10 stappe

Video: Skakels van veranderlikes in tou met suikerblokkie: 10 stappe

Video: Skakels van veranderlikes in tou met suikerblokkie: 10 stappe
Video: #1 Vitamine D GEVAAR Dat moet u absoluut weten! 2024, Julie
Anonim
Skakels van veranderlikes in tou met suikerblokkie
Skakels van veranderlikes in tou met suikerblokkie

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

Skep u speler
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

Nuwe kamerkode
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

Skep 'n skakel uit 'n veranderlike
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

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

Voeg 'n kamerlys by
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

Uitskakeling van kamers
Uitskakeling van kamers

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

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

Vreemdhede met suikerblokkie en voorwerpe
Vreemdhede met suikerblokkie en voorwerpe
Vreemdhede met suikerblokkie en voorwerpe
Vreemdhede met suikerblokkie en voorwerpe
Vreemdhede met suikerblokkie en voorwerpe
Vreemdhede 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

Die Clone () funksie
Die Clone () funksie
Die Clone () -funksie
Die Clone () -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

Dit is dit vir nou!
Dit is dit vir 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: