Stap 5: Inzicht in de Code: de Setup en LawLoop
uitschakelen
titel scherm
kleur 0a
set/a breedte = 40
set/a hoogte = 20
lastlaw-set/a = % van de breedte * hoogte %
bottombarrier-set/a = % lastlaw % - breedte %
set/a wet = 0
sidea-set/a = breedte % + 1
sideb-set/a = breedte % * 2
set marker = O
set blok = #
Stel leeg =-
instellen achter = leeg %
set/a plaats = 222
ECHO.
titel scherm % breedte %x % hoogte
: LawLoop
als % recht % == % lastlaw % goto ObjectPlace
set/a wet = % + 1 van de wet
als % recht % LEQ % breedte % ()
set v wet % = procent barrière
goto LawLoop
)
als % recht % GTR % bottombarrier % ()
set v wet % = procent barrière
goto LawLoop
)
als % recht % == % sidea % (
set v wet % = procent barrière
sidea-set/a = % sidea % + % van de breedte
goto LawLoop
)
als % recht % == % sideb % (
set v wet % = procent barrière
sideb-set/a = % sideb % + % van de breedte
ECHO *
goto LawLoop
) anders ()
set v wet % = leeg %
goto LawLoop
)
: ObjectPlace
set v plaats % = procent marker
Het eerste deel is verantwoordelijk voor het aanwijzen van de betekenis van de symbolen en de beginwaarden % sidea % % sideb %, plaats % en % van de wet.
set/a breedte = 40
set/a hoogte = 20
lastlaw-set/a = % van de breedte * hoogte %
bottombarrier-set/a = % lastlaw % - breedte %
set/a wet = 0
sidea-set/a = breedte % + 1
sideb-set/a = breedte % * 2
set marker = O
set blok = #
Stel leeg =-
instellen achter = leeg %
set/a plaats = 222
ECHO.
In het script, zijn symbolen door variabelen aangewezen. De cursor is marker %, en zoals ik het, marker geschreven heb % = O. Verderop in de code, wanneer u van v343 naar v344 verplaatsen en het programma v344 met ingesteld moet op weergave van O, de cursor-symbool, gebeurt er dus met behulp van
set v344 = % van de markering
Sinds marker % = O, % v344% bevat ook O. Ik doe dit zodat als u wijzigen het symbool voor een bepaalde functie wilt, bijvoorbeeld om te gebruiken zodat de cursor in plaats van O, u alleen moet O @ in deze bovenste stukje code wijzigen in plaats van te jagen door middel van het script voor elke regel die zich met de cursor bezighoudt.
* Opmerking: het programma kan niet begrijpen een spatie (spatiebalk) als een symbool. Als u een gebruikt, wordt het programma zal verpletteren. Ik gebruik "-" in plaats daarvan, en het maakt het scherm gemakkelijk te lezen.
Een ander belangrijk kenmerk van dit deel van de code is de breedte van de % en % hoogte % variabelen, die bevatten, derp, de breedte en hoogte van het scherm en instellen van het scherm en verplaats de cursor door het hele programma worden gebruikt.
LawLoop is de belangrijkste stuk van de installatiefase. Haar taak is om nemen de variabele van elke pixel op het scherm, van v1% naar v800% voor onze 40 x 20-scherm, en zet deze met het passende symbool. Het doet dit op basis van het nummer van de variabele, dat is waarom alle pixels heten "v #." recht % begint bij 0 en telt omhoog, waardoor de eerste variabele v1. De code werkt als volgt:
set v wet % = procent-symbool
Aan het begin, wet % gelijk is aan 1, dus deze regel echt zegt
instellen van v1 = symbool %
wordt wat het als symbool/vervolgens voorwaarden aanbesteding met symbool %. Na instelling v1, de code loops en voegt 1 tot wet %. Nu % recht % = 2 en de code leest
instellen van v2 = symbool %
recht % blijft tellen omhoog totdat de laatste variabele, v800 voor 40 x 20 wordt bereikt, op dat moment de code springt naar ScreenLoop en begint te lopen.
Wat het scherm kijkt als zodra instellen als/dan verklaringen hangt. Het programma maakt gebruik van de % wet % getallen om te bepalen welke pixel wat moet bevatten. Er zijn twee secties van dit. de belangrijkste LawLoop en ObjectPlace.
: LawLoop
als % recht % == % lastlaw % goto ObjectPlace
set/a wet = % + 1 van de wet
als % recht % LEQ % breedte % ()
set v wet % = procent barrière
goto LawLoop
)
als % recht % GTR % bottombarrier % ()
set v wet % = procent barrière
goto LawLoop
)
als % recht % == % sidea % (
set v wet % = procent barrière
sidea-set/a = % sidea % + % van de breedte
goto LawLoop
)
als % recht % == % sideb % (
set v wet % = procent barrière
sideb-set/a = % sideb % + % van de breedte
ECHO *
goto LawLoop
) anders ()
set v wet % = leeg %
goto LawLoop
)
LawLoop is ontworpen om het maken van de basisprincipes van het scherm: een rand aan van barrière symbolen omliggende lege ruimte. Het heeft vier belangrijkste stukjes code bijhouden van de bouw van de segmenten van de barrière rond de grens met behulp van de variabele % wet % en als/dan verklaringen. De eerste twee belemmeren de boven- en onderkant door belemmeringen in elke variabele met een % wet % nummer dat op de bovenste of de onderste regel van het scherm geplaatst. Voor onze 40 x 20-scherm, is de bovenste regel opgebouwd uit de pixels met % wet % nummers 1-40 (40 variabele per lijn) en de onderkant van getallen 761-800, zodat het programma in beslag
Als % % LEQ % breedte recht
en
Als % GTR % bottombarrier recht %
het instellen van een barrière op pixels in de boven- en onderste regel van het scherm.
De geleiderails zijn gemaakt met behulp van de % sidea % en % sideb % variabelen. % sidea % regelt de linkerkant en is oorspronkelijk ingesteld op de % wet % nummer van de variabele van de vuist op de tweede regel (de eerste regel heeft zijn verzorgd met de verklaring van de LEQ). Wanneer recht % is gelijk aan sidea %, het programma die eerste pixel ingesteld als een barrière, dan voegt 40% sidea % zodat zoals % wet % verhoogt het zal de eerste pixel van de derde regel ingesteld als een barrière, na welke een ander 40 is toegevoegd aan % sidea % voor de eerste pixel van de vierde regel, en zo verder tot de % wet % nummer plaatsen een variabele in de laatste regel van het scherm , op welk punt de GTR-instructie overneemt. % sideb % werkt op dezelfde manier, aanwijzing van de laatste pixel op elke regel als een barrière en de rechter grens te maken.
Het laatste deel van de setup is ObjectPlace, waarin variabelen bevat symbolen voor de cursor en eventuele andere initiële voorwaarden.
: ObjectPlace
set v plaats % = procent marker
Deze regel wordt welke pixel heeft de % wet % aantal gelijk is aan de waarde % ruimte, de ruimtelijke plaats van de cursor, met het symbool voor het aanwijzen van de cursor. U moet het programma van dit deel van de code zelf, met behulp van verklaringen als dit een omgeving te creëren op het scherm, zoals belemmeringen in het midden van het scherm. Voor iets als het spel later, kon u verscheidene verschillende batchbestanden met lijsten van voorwaarden maken van verschillende niveaus en gebruiken "call level1.bat" Setup het niveau.