Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
Jsem tak rád, že jsi se ke mně znovu přidal! To znamená, že tě Wumpus ještě nesnědl. Dobrý!
Pro ty z vás, kteří nejsou obeznámeni, je to sada tutoriálů, které vytvářím, abych pomohl své rozkošné sestřence oochy-skootchy widdle s jejím starším projektem. Tyto výukové programy mají být referencí na to, co můžete dělat s některými programovacími funkcemi Twine a Sugarcube. Pokud se chcete řídit, první tutoriál najdete zde.
V posledním tutoriálu jsem postavil malou sadu místností, které může hráč prozkoumat. Přidal jsem objekt Wumpus a vytvořil obecný kód místnosti, který měnil to, co se zobrazovalo v každé místnosti, podle toho, kde se Wumpus nachází.
Krok 1: Vytvořte si hráče
Tento krok je velmi jednoduchý. V zásadě používám stejný kód jako můj $ wumpus, ale místo toho s proměnnou $ player.
Krok 2: Nový kód pokoje
Změněn váš obecný kód místnosti, takže hodnota $ hráče je aktuální místnost. Poté porovnejte $ wumpus s $ playerem místo aktuální místnosti.
Toto je drobná změna, a není úplně nezbytná, ale rád udržuji svůj kód organizovaný.
Krok 3: Vytvoření odkazu z proměnné
Nakonec chci nahradit odkaz v mé počáteční místnosti na ten, který se mění na základě hodnoty $ hráče. To lze provést pomocí funkce "" v Sugarcube. Více si o tom můžete přečíst na stránce dokumentace Sugarcube.
První řetězec po našem příkazu je fráze, která se objeví v naší pasáži. Druhý je název pasáže, na kterou chceme odkazovat. Používám „Hunt the Wumpus!“jako moje fráze, ale mohli bychom místo toho použít naši proměnnou, pokud chceme, aby hráč předem věděl, kam jde:
Krok 4: Test
Při testování kódu byste měli zjistit, že váš odkaz byl nahrazen jakoukoli frází, kterou jste dříve napsali. Kliknutím na něj se dostanete do náhodné místnosti ve vaší hře.
Bohužel vás to také může zavést přímo do místnosti Wumpus! Na tom teď moc nezáleží, ale ve skutečné hře by to byla okamžitá hra. Musíme to opravit.
Krok 5: Přidejte seznam místností
Nejprve vytvoříme seznam místností, abychom usnadnili správu místností. Deklarací tohoto pole ho můžeme použít k nastavení hodnot $ player a $ wumpus bez opakování kódu. Má také další výhodu, kterou prozkoumáme dále.
Testování s tímto kódem by se mělo chovat stejně jako dříve.
Krok 6: Odstranění místností
Přidal jsem jeden řádek kódu do kódu z předchozího (zvýrazněno).
Pole v Sugarcube mají vestavěnou funkci, která vám umožňuje odstranit prvky z nich podle názvu. V tomto případě, jakmile přidělíme $ wumpus místnost, můžeme tuto místnost odstranit ze seznamu $ roomlist. Tato funkce je však náročná. Nebude to fungovat, pokud nebude výstup funkce přiřazen nebo nějakým způsobem použit. Abych se o to postaral, vytvořil jsem dočasnou proměnnou _temp.
V Sugarcube začínají dočasné proměnné podtržítkem (_) místo dolaru ($). Jsou užitečné, protože se po spuštění pasáže smažou, takže si nemusíte dělat starosti s překrývajícími se názvy proměnných.
Vymazávám také hráčskou místnost $ ze seznamu $ roomlist, jako samozřejmost.
Krok 7: Testování
I když bychom mohli spustit kód tak, jak je nyní, nebyl by to příliš důkladný test. Pokud spustíme kód a zjistíme, že $ player a $ wumpus jsou přiřazeny k různým místnostem, nevíme, zda je to proto, že kód funguje, nebo je to jen náhoda. Jistě, mohli bychom kód spustit mnohokrát a předpokládat, že pokud jim oběma nikdy nepřidělí stejnou místnost, nikdy to nebude, ale bude to trvat věčnost a stále to není stoprocentní jistota, že se to nikdy nemůže stát.
Místo toho potřebujeme způsob kontroly.
Do horní části naší úvodní pasáže jsem přidal tři řádky, které nám umožní vidět hodnoty našich proměnných $ wumpus, $ player a $ roomlist. Vzhledem k tomu, jak jsme nastavili náš kód, víme, že místnost $ wumpus a $ hráč by měla být ze seznamu $ roomlist odstraněna.
Když spustíme tento kód, můžeme zkontrolovat, zda je tomu tak.
Krok 8: Podivnosti s Sugarcube a objekty
Objekty Sugarcube jsou trochu zvláštní. Ukážu to.
Zatímco jsem původně stavěl tento projekt, chtěl jsem uložit svůj $ roomlist do proměnné $ saveroom, než jsem z něj začal mazat místnosti. Myslel jsem, že se to bude hodit později.
Když jsem z tohoto kódu dostal nějaké podivné chování, přidal jsem na úvodní stránku další řádek, abych se mohl podívat na svou proměnnou $ saveroom (druhý obrázek).
Byl jsem šokován, když jsem zjistil, že prvky, které jsem odstranil z $ roomlist, byly také odstraněny z mého uloženého seznamu! Na třetím obrázku to můžete vidět v akci.
Důvodem je, že když kopírujete pole takto, ve skutečnosti neříkáte Twine, aby kopírovalo pole, říkáte Twine, že tyto dvě proměnné jsou stejné pole. Když uděláte něco s polem pomocí jedné proměnné, změní to stejné pole, na které se dívá druhá proměnná!
Můžeme to opravit pomocí funkce clone ().
Krok 9: Funkce Clone ()
O funkci clone () si můžete přečíst na stránce dokumentace Sugarcube.
Dříve jsme dělali „mělkou“kopii. Namísto vytvoření úplné kopie celého pole pouze předpokládá, že vaše proměnná pracuje se stejným polem. Místo mělké kopie provede clone () „hlubokou“kopii, která se chová tak, jak byste čekali. Každý prvek pole je zkopírován do nového pole a je zcela odlišný od původního.
Pokud tento nový kód otestujeme, zjistíme, že funguje podle očekávání.
Samozřejmě nezáleží na tom, zda si ponecháte $ roomlist nebo ne. Pro účely mého projektu se nechystám. Všechno to bylo jen pro ukázku hlubokých vs. mělkých kopií.
Krok 10: To je prozatím vše
Přidali jsme kód, který umožňuje našemu hráči začít v náhodné místnosti. Kromě toho jsme odstranili chybu, kde by hráč začínal ve stejné místnosti jako Wumpus.
Dozvěděli jsme se o tom, jak vytvářet odkazy z proměnných a jak kopírování polí zpracovává Sugarcube.
Věci se zrychlují, ale teprve začínáme!
Šťastný lov!
Doporučuje:
Počitadlo kroků - mikro: bit: 12 kroků (s obrázky)
Počitadlo kroků - Micro: Bit: Tento projekt bude počítadlem kroků. K měření našich kroků použijeme snímač akcelerometru, který je zabudovaný v Micro: Bit. Pokaždé, když se Micro: Bit zatřese, přidáme 2 k počtu a zobrazíme ho na obrazovce
Obecné pokoje v motouzu se Sugarcube: 11 kroků
Obecné pokoje v motouzu se Sugarcube: Dobrý den, vítejte u mého tutoriálu o stavbě hry Wumpus Hunt v motouzu pomocí Sugarcube! Motouz je velmi jednoduchý nástroj určený k vytváření textových adventur! Moje oblíbená malá sestřenice se rozhodla hrát hru s provázkem pro svůj seniorský projekt
Akustická levitace s Arduino Uno krok za krokem (8 kroků): 8 kroků
Akustická levitace s Arduino Uno krok za krokem (8 kroků): Ultrazvukové měniče zvuku L298N Dc samice napájecí zdroj s mužským DC pinem Arduino UNOBreadboard Jak to funguje: Nejprve nahrajete kód do Arduino Uno (je to mikrokontrolér vybavený digitálním a analogové porty pro převod kódu (C ++)
Vygenerujte odkazy Banggood Affiliate (doporučení) Jednodušší než kdy dříve: 4 kroky
Generujte odkazy Banggood Affiliate (doporučení) Jednodušší než kdy dříve: Zhuštěnou verzi této instruktáže najdete na mém osobním blogu. Affiliate prodeje jsou skvělým zdrojem dodatečného příjmu pro tvůrce obsahu a mnoho lidí na instruktabilních stránkách je používá. Na více populárních webech, které mají affiliate program je Ban
Přesný odizolovač - nové video odkazy: 3 kroky
Přesný odizolovač drátu - Nové odkazy na video: Ruční rotační odizolovač drátu z pera Bic, šroubováku a žiletky. Nedávno jsem koupil cívku z teflonového drátu 30AWG. Říkal jsem si, že by to bylo skvělé pro prototypování, protože horká páječka neroztaví izolaci. No, tak nějak to není