Azon gondolkozom, hogyan lehetne egyetlen sorban megoldani, hogy a botkormánnyal mozgassunk egy emberkét a képernyőn.
Az emberke koordinátáit le kéne tárolni két (esetleg egy) memóriacímen, és az ehhez tartozó értéket növelni ill. csökkenteni a botkormány mozgatásával. Az emberke kiírása viszont nem tudom, hogyan mehetne. Ugye, a JOY függvény értékei itt 1, 2, 4 vagy 8 lehetne, amire reagálnia kéne a programnak, és eggyel megnövelni vagy csökkenteni az adott memóriacímen lévő értéket, majd kiírni az emberkét az adott pozícióba. Ehhez olyan matematikai műveleteket (függvényeket) kéne kitalálni, ami az 1, 2, 4 és 8 értékekkel a következőképpen bánik:
1: ha a bemenet 1, akkor a kimenet 1; ha a bemenet 2, akkor a kimenet -1, minden más értéknél a kimenet 0
2: ha a bemenet 4, akkor a kimenet 1; ha a bemenet 8, akkor a kimenet -1, minden más értéknél a kimenet 0
Tehát, valami ilyesmi lenne benne:
1 LET A=JOY(0):POKE MEM1,FV1(A):POKE MEM2,FV2(A):PRINT #102,AT PEEK(MEM1),PEEK(MEM2):"O":PRINT #102,AT RND(22)+1,RND(38)+1:"*":PRINT #102,AT PEEK(MEM1),PEEK(MEM2):" " :GOTO 1
Persze ez ronda lenne, villogna az emberke (itt csak O betű, mert a PC-s billentyűzeten nem találtam megfelelő karaktert), és ha kivezetnénk a képernyőből, hibaüzenet lenne. A második PRINT utasítás azért lenne, mert véletlenszerűen csillagokat rajzolna a képernyőre, amiket természetesen össze kéne szedni.
A dolog szépséghibája, hogy olyan memóriaterületeket kéne találni, amiknek az értéke alapból olyan szám, ami PRINT AT utasítással a képernyőn belülre esik. És ezeket az értékeket valószínűleg már használná valami. Esetleg memóriacím helyett valami más rendszerváltozót kéne használni, esetleg egy-két karaktert találni, aminek egyik sorában az érték pont megfelelő, és azt olvasni-írni SPEEK és SPOKE utasítással. Ez azért lenne jó, mert CLEAR FONT parancs kiadásával visszaállítható az eredeti startpozíció a játék indítása előtt. Hátránya viszont az lenne, hogy csak a megfelelő karakterkészlet esetén működik.
Mindenesetre a legjobban az érdekelne, hogy azok a JOY értékből előállító függvények megoldhatók lennének-e valamilyen matematikai műveletekkel.