OldComp.cz https://oldcomp.cz/ |
|
Srandičky s BASICem 1Z013B https://oldcomp.cz/viewtopic.php?f=134&t=11212 |
Stránka 1 z 1 |
Autor: | vaclavpe [ 09.09.2022, 19:25 ] |
Předmět příspěvku: | Srandičky s BASICem 1Z013B |
Ahoj, V rámci prokrastinace si pročítám japonské BASIC Magaziny a zkouším přepisovat některé hry, abych dokázal (sám sobě i některým zdejším členům), že i v BASICu se dá napsat hratelná hra - pravda, v modu MZ-700. Jak jistě všichni víme, tak GET A$ neumí autorepeat. Nicméně takhle Kód: GET A$:A$=CHR$(PEEK(95)) autorepeat už funguje. Ani není potřeba používat stroják, což jsem řešil už kdysi.A přichází vtípek. Pro logické výrazy v IF se používá * a +. Logický výraz se ovšem vyhodnotí jako 0 při FALSE, ale -1 při TRUE. Takže Kód: (AX=1)*(AY=1)+(TX<>0) při AX=1,BX=1 a TX=1 vyhodnotí jako (-1)*(-1)+(-1) = 0 - což je blběDruhá znaková sada se dá v S-BASICu použít takto: Kód: POKE 93,PEEK(93)+128:PRINT[0,1]CHR$(164,150,17,20,20,165,171)
|
Autor: | mop [ 16.09.2022, 09:32 ] |
Předmět příspěvku: | Re: Srandičky s BASICem 1Z013B |
Tenhle Basic nemá ani ELSE a složené podmínky se musí řešit přeskakováním řádků. Naopak docela šikovné je to, že si pamatuje dvě obrazovky textu, přes které lze libovolně skrolovat pomocí Shift + nahoru/dolů. |
Autor: | vaclavpe [ 16.09.2022, 10:48 ] |
Předmět příspěvku: | Re: Srandičky s BASICem 1Z013B |
mop píše: Tenhle Basic nemá ani ELSE a složené podmínky se musí řešit přeskakováním řádků. Je to tak, ten BASIC je takový poloviční assembler. Složené podmínky ovšem fungují pomocí * a + jen je potřeba dát pozor na to, že výsledek porovnání je -1. Například, když chceš udělat sekvenci 0,-1,0,-1,..., tak stačí tohle bez IFování: Kód: A=(A=0) V sokobanovi mám třeba takové podmínky a fungují dobře a rychle: Kód: 240 IF (A$="A")*(PEEK(MEM-40)=$6D)*(PEEK(MEM-80)=$2E) GOTO 370 Víc mi vadí, že to neumí načíst přímo znak z obrazovky, jako např. MZ-80B BASIC má CHARACTER$(X,Y) - musíš použít PEEK a pamatovat na to, že ten znak není v ASCII ale DISPLAY kódu. To je trochu otrava. I tak je ten BASIC rychlý a jsi schopen udělat hratelnou hru. |
Autor: | Milsa [ 17.09.2022, 19:54 ] |
Předmět příspěvku: | Re: Srandičky s BASICem 1Z013B |
vaclavpe píše: mop píše: Víc mi vadí, že to neumí načíst přímo znak z obrazovky, jako např. MZ-80B BASIC má CHARACTER$(X,Y) - musíš použít PEEK a pamatovat na to, že ten znak není v ASCII ale DISPLAY kódu. To je trochu otrava. I tak je ten BASIC rychlý a jsi schopen udělat hratelnou hru. O ničom takom neviem, ale dalo by sa to riešiť takto (MZ-800): PEEK($2000+40*Y+X), prípadne PEEK($2000+80*Y+X) |
Stránka 1 z 1 | Všechny časy jsou v UTC + 1 hodina [ Letní čas ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |