|
Nyitrai László Csupajáték - játékgyáros Játékok ZX Spectrumra 2004-2005 |
TARTALOM
ELSŐ RÉSZ
M Á T R I X - MEMÓRIA JÁTÉKPROGRAM
DÓRI A LABIRINTUSBAN
SPECTRUM TÖRTÉNELEM
A COFIS DÓRI KERESI RÉKA TESTVÉRÉT - JÁTÉKPROGRAM
ELEKTRONIKUS NAPLÓ - SPECTRUM 48K - ÉS TELEFONREGISZTER
KARÁCSONYI DALOK A SPECTRUM 128K SZINTETIZÁTORÁRA
HAJÓVERSENY
HANOI TORONY
A NAPRENDSZER BOLYGÓI
KINCSES SZIGET
FORMA 1 NYILVÁNTARTÓ PROGRAM
IZOTÓP KERESÉS
DÓRI UNOKÁM KALANDJAI A KISÉRTET-KASTÉLY-BAN
DENEVÉR-TORONY
TIX-TAX JÁTÉK
OTHELLO-REVERSI
SZÍNKERESZT
MAYA (AWARI-AWALE-BABSZEM-KAVICS) JÁTÉK
NÉGYZET KERESŐ JÁTÉK
ROBOT A MARSRÓL
FÜGGELÉK
MÁSODIK RÉSZ
3D MALOM
HUPIKÉK TÖRPIKÉK
3D TIC-TAC-TOE JÁTÉK
ARANYPINCE 128K
BETŰKERESŐ JÁTÉK ISKOLÁSOKNAK
BÖLCSEK KÖNYVE - RAJZOS SZÖVEGES KALANDJÁTÉK
DÁMAJÁTÉK SPECTRUM BASICBAN
CSATAHAJÓK - ÚJ TÍPUSÚ TORPEDÓ JÁTÉK
FUSS AZ ÉLETEDÉRT
MÁGNES GOLYÓ - ÜGYESSÉGI JÁTÉK
GONDOLJ EGY SZÁMOT, ÉS ÉN MAJD KITALÁLOM
GYUFÁS - NIM - JÁTÉK, AKI AZ UTOLSÓT HÚZZA, AZ VESZÍT
HELYCSERES JÁTÉK - KÉT JÁTÉKOSSAL
IQ TESZT - INTELLIGENCIATESZT ÉS ANGOL GYAKORLÓ KISISKOLÁSOKNAK
KÁRTYAJÁTÉK - KERESD A PÁRJÁT!
A TITOKZATOS KERT- LABIRINTUS JÁTÉK, SEGÍTS A MÉHECSKÉNEK!
KI NEVET A VÉGÉN - TÁBLÁSJÁTÉK NÉGY SZEMÉLYNEK
A KONYHAFŐNÖK RÉMÁLMA - MINDENT SZÉTHORDTAK AZ EGEREK
KISKUTYUS - 16-OS PUZZLE KIRAKÓ JÁTÉK
MARSAUTÓ - KALANDOK A MARS FELSZÍNÉN
MASTERMIND - NÉGYSZÁMOS KITALÁLÓ JÁTÉK
ÓRA - GYAKORLÓ JÁTÉK UNOKÁIMNAK
ÓRA 2 - GYAKORLÓ JÁTÉK UNOKÁIMNAK
ÖTÖDÖLŐ, VAGYIS ÖT EGY SORBAN MEMÓRIA JÁTÉK
OTHELLO ÚJ VÁLTOZATA, AVAGY KI NEVET A VÉGÉN
RÉPA ÉS TOJÁS ÜGYESSÉGI JÁTÉK
SZÍNES KOCKÁK PÁROSKERESŐ JÁTÉK
SZINTEZITÁTOR - ZENEDEMÓ MÁSODIK RÉSZE
SZÓKERESŐ JÁTÉK
SZOLITER JÁTÉK
HARMADIK RÉSZ
BEVEZETŐ (Számítógépes játék - Képes Gábor tollából)
KIRÁLYKISASSZONY KATONÁJA
FEKETE HATTYÚ
RÓKA ÉS A LIBÁK (LUDAK ZX81)
SÁRGA TENGERALATTJÁRÓ - BEATLES UTÁN SZABADON PROGRAMOZVA!!!
PIRAMIS SZOLITER-JÁTÉK
LÁDATOLOGATÓ JÁTÉK (SOKOBAN)
MASTERMIND 128K
PUZZLE 2004
SZÓKERESŐ JÁTÉK
ÚJTÉGLA - FALTÖRŐ
MAGYAR TRIKOLOR ZÁSZLÓ
HARMADIK ZENEDEMÓ
FÜGGELÉK
JÁTÉKTERV ÚTMUTATÓ
ELSŐ RÉSZ
M Á T R I X - MEMÓRIA JÁTÉKPROGRAM

Leírás, és program-magyarázat:
Hogyan keletkezett és miért pont ilyen, miért logikai játék és nem mozgalmas, ugrálós, lövöldözős?
Én már életkoromnál fogva jobban szeretem azt, ami megvár, nem szalad el, nem lő vissza, nem kell kapkodni, ott is hagyhatom, később is ugyanolyan.
A számítógépes program legyen passzív, de gondolkozzon, ne legyen megalkuvó, ne legyenek érzelmei, mindig hozza a formáját, és sohasem adja fel.
Az ötletet az adta, hogy véletlenszám (lottószámok) generálással próbálkoztam, és így alakult ki a számtömb forma.
A logikai játék játékmezője, egy lehetséges képernyőforma:
Nyitrai szupermátrix 1997'
|
+1 |
-2 |
26 |
+3 |
+1 |
24 |
-4 |
17 |
20 |
|
|
00 |
-6 |
+5 |
-1 |
-3 |
+8 |
+7 |
-5 |
-8 |
-5 |
|
+3 |
-2 |
+9 |
-1 |
+7 |
12 |
+5 |
+5 |
+6 |
-9 |
|
00 |
-7 |
+1 |
-7 |
-8 |
23 |
18 |
-7 |
+2 |
14 |
|
+8 |
00 |
-4 |
30 |
+9 |
-4 |
-6 |
11 |
16 |
-6 |
|
-8 |
+4 |
27 |
+8 |
15 |
-3 |
-3 |
-2 |
+2 |
+2 |
|
+7 |
+4 |
00 |
-9 |
-9 |
+3 |
+6 |
22 |
00 |
21 |
|
+9 |
+4 |
-1 |
-5 |
-9 |
+6 |
00 |
10 |
25 |
13 |
8x10 játékmező-fokozat 8
Lacika: 0 Utolsó szám:0
Számítógép:0 Lacika te lépsz
A mátrix matematikai fogalom, számtömböt jelent. Ez a játék egy számtömböt generál, minden újraindításkor más és más sorokat, majd a feladat az, hogy a számítógéppel versenyezve, azt legyőzzük. Felváltva lépünk, a kiválasztott számot levéve, és összegezve a végén.
A játékos a vízszintes sorokból, a számítógép pedig a függőleges sorokból választhat.
A fenti példánál maradva, induláskor a villogó kurzor a +1 és 24 számok között van, a játékos kezd. Természetesen mindig igyekezni kell, hogy a legnagyobb értéket vegyük le. Az első vízszintes sorból tehát lehetőségünk van a 26, 24, és a 20-as értéket kiválasztani, de ha pl. a 26-ost veszem le, akkor a harmadik függőleges sorból a számítógép a 27-est veszi le, és nekem az ötödik vízszintes sor lesz, melyből aztán a 15-öst veszem le és így tovább. A következő függőleges sor a számítógép számára akkor az ötödik lesz, és a számítógép által levett szám majd nekem fogja meghatározni a következő vízszintes sort.
A számítógép nagyon nehéz ellenfél, ezért vezettem be a fokozatokat, ami nem más, mint a sorok meghatározott számú ellenőrzése, az egyes fokozaton a számítógép leveszi az első számot, amit a memóriában talál a kiválasztott sorból, és nem ellenőrzi tovább a lehetséges variációkat.
Az általam használt Basic-forma a Spectrumhoz Mike Leman által készített Mega-Basic 4.0-ás, korszerűsített, feljavított, módosított változata, mely ismeri a magyar ékezetes betűket is, Super-Basic 6.0-ás változatnak neveztem el.
A programkészítés lépései, feladatok sorban:
A bevezető felirat
A főmenü
A játékos nevének bekérése
A számtömb generálása
Az induló sorok kiszámítása
A számtömb-pálya elkészítése
A kiválasztott szám hozzáadása az induló értékhez
A pálya állandó ellenőrzése, hogy nem üres-e (ha üres, vége a játéknak)
A SPECTRUM pontjainak számítása, nyilvántartása
Az utoljára levett szám kiírása
A játék értékelése
Győzelem esetén vidám zene
Vereség esetén egy kis gyászinduló
A játék végén újraindulási funkció
A játék magyarázata, kilépés engedélyezése
A játék mentése
Kezdésnek generálunk egy teljes képernyős ablakot
5 WINDOW_0,0,22,64
10 CLS
Beállítjuk a betűtípus nagyságot és formát
20 FONT_3:MODE_3: REM Schneider CPC betűivel irunk
A billentyűzet lenyomásakor finom, sípoló hang
30 REM hangjelzés : POKE 23609,125
Kiíratjuk a "superBasic" sort betűnként, és az I értéknek megfelelően egy kicsit mindig arrébb tolva, és egyre magasabb hangjelzés közepette
45 FOR I=1 TO 5
50 PLAY_0,1,0,5,2*I
60 LET A$="superBASIC"
70 INK 2: PRINT AT 0,0;A$
75 NEXT I
Hangjelzés, majd pirossal kiírjuk a "mátrix" sort,
90 PLAY_0,5,0,5,2: INK 2:SPRINT_0,75,4,8," mátrix"
majd egy második ablakot nyitunk, és a "mátrix" sort letoljuk "scrollozzuk" a képernyő aljáig.
100 CURRENT_2:WINDOW_5,6,17,57
110 FOR I=1 TO 35
120 CURRENT_2:SCROLL_0,-1
130 NEXT I
Újra teljes képernyőt nyitunk, kis betűkre térünk át, és megjelenik a főmenü.
135 WINDOW_0,0,22,64
140 MODE_2: INK 7: PRINT AT 5,5;"kérem a fokozatot 1-8 ?"
141 INK 2: PRINT AT 7,10;"1. Óvodás"
142 INK 3: PRINT AT 8,13;"2. Újonc"
143 INK 3: PRINT AT 9,16;"3. Könnyű"
144 INK 3: PRINT AT 10,19;"4. Haladó"
145 INK 4: PRINT AT 11,22;"5. Közepes"
146 INK 4: PRINT AT 12,25;"6. Nehéz"
147 INK 4: PRINT AT 13,28;"7. Mester"
148 INK 5: PRINT AT 14,31;"8. Profi"
A kiválasztott fokozat, az F változó fogja meghatározni, hogy a számítógép milyen mélységig elemezze a játék során a sorokat. Majd bekérjük a játékos nevét, melyet a későbbi kiírásoknál a számítógép felhasznál majd.
149 INPUT F
160 CLS :WINDOW_0,0,22,64
170 INK 6: BEEP .025,15: PRINT AT 10,18;"Kérem a neved:"
190 INPUT N$
Letöröljük a képernyőt, és a fokozathoz megfelelő, humoros kis élcek jelennek meg.
200 CLS
210 IF F=1 OR F=2 OR F=3 THEN LET B$="mintha már kinôttél
volna az óvodáskorból !!!"
215 IF F=4 OR F=5 OR F=6 THEN LET B$="mintha már gyakorol
tad volna ezt a játékot !!!"
220 IF F=7 OR F=8 THEN LET B$="kösd fel a nadrágodat,
és készülj a vereségre !!!"
240 BEEP .05,LEN N$: INK 6: PRINT AT 8,7; FLASH 1;
"...türelmet kérek, ";N$; FLASH 0;'''' INK 2;
"kisorsolom a számokat, ";B$
LP az induló, majd megszerzett számérték, mely ekkor nulla. Feltöltjük a B$ számtömböt, beolvassa a DATA sorokat, melyek értéke +30-tól -9-ig változik, összesen (8*10)-1, azaz 79 szám.
A " " az üres, induló helyen álló kurzor.
250 LET LP=0
260 RESTORE 300
270 READ A$
A MO értéke jelzi, hogy a játékos kezdi a játékot
280 LET MO=2
290 DIM B$(10,20)
300 DATA "*302726252423222120181716151413121110+9+9+9+8
+8+8+7+7+7+6+6+6+5+5+5+4+4+4+3+3+3+2+2+2+1+1+100000
00000-1-1-1-2-2-2-3-3-3-4-4-4-5-5-5-6-6-6-7-7-7-8-8
-8-9-9-9-900 "
Az N sorok értéke 8, az M sorok száma 10, az A értéke pl. ha kiszámítjuk INT biztosítja, hogy mindig pozitív szám lesz, RND a véletlenszám függvény, mely a gép bekapcsolás utáni idejét használja számérték generálásra 0 és 1 között lehet, LEN a számsor hossza 0,5*((1-1)/2))+1)*2 = 3 lehet.
305 REM itt jól megkeverem
310 FOR N=1 TO 8
320 FOR M=1 TO 10
330 LET A=INT ((RND*((LEN A$-1)/2))+1)*2
Így az A változó alakítja például a B$ értékét, amely meghatározza, hogy melyik sorban legyenek a megfelelő számok, és a bekapcsolás után mért idő mindig növelni fogja.
340 LET B$(N,M*2-1 TO M*2)=A$(A TO A+1)
350 IF A$(A TO A+1)=" " THEN GOSUB 1520
360 LET A$=A$(1 TO A-1)+A$(A+2 TO LEN A$)
370 NEXT M
380 NEXT N
385 REM fekete háttér fehér betľk
390 BORDER 0: PAPER 0: INK 6
az 1000-es sor a bevezető főcím
400 GOSUB 1000
405 REM az induló pontszám
410 LET S=0
420 LET T=0
Felépítjük a számtömböt
430 GOSUB 1080
440 GOSUB 1620
445 REM ugrás a pályát elkészíteni
450 PLAY_0,5,0,2,2
460 PLAY_2,0,5,2,5
470 PLAY_0,0,5,4,5
A kurzor mozgatása, a kiválasztott szám letörlése a számtömbből
475 REM itt a számtörlô
476 FONT_2:MODE_3
480 INK 4: PRINT AT 2*Y,2+(X-1)*6;" "
490 INK 2: PRINT AT 2*Y,2+(X-1)*6;" "
495 BRIGHT 1
500 INK 6: PRINT AT 2*Y,2+(X-1)*6;B$(Y,2*X-1 TO 2*X)
510 IF INKEY$="" THEN GOTO 480
A lenyomott billentyű figyelése a "v" lenyomása a játék végét jelzi, kiírja a megszerzett pontszámokat, jelzi a győztest és vesztest.
520 LET A=CODE INKEY$
525 REM ha elegem van a játékból a 'v'-vel kiléphetek
530 IF A=118 THEN GOTO 1260
540 IF A <> 8 AND A <> 9 AND A <> 32 THEN GOTO 480
550 IF A=32 AND B$(Y,2*X-1 AND 2*X)=" " THEN GOTO 480
"CODE 8" balra, "CODE 9" jobbra mozgatja a számtörlőt, a "CODE 32" a SPACE billentyű, ennek lenyomásával vesszük le a kiválasztott számértéket.
555 REM a választott szám beírása
560 IF A=32 THEN GOTO 620
565 REM mozgás jobbra és balra
570 LET X=X+(A=9)-(A=8)
ha eléri a számtömb szélét, a másik oldalon visszafordul
580 IF X>10 THEN LET X=1
590 IF X<1 THEN LET X=10
600 IF B$(Y,2*X-1)=" " THEN GOTO 570
610 GOTO 450
620 LET LP=VAL B$(Y,2*X-1 TO 2*X)
630 PRINT AT 2*Y,2+(X-1)*6;" "
az "S" változó értéke a játékos pontjai száma
635 REM itt számoljuk pontjaimat
640 LET S=S+LP
645 REM a PC lép
Ha MO=1 akkor a számítógép lép
650 LET MO=1
660 LET B$(Y,2*X-1 TO 2*X)=" "
670 GOSUB 1190
675 REM ellenôrzés,hogy a pálya nem üres-e
680 GOSUB 1630
690 DIM R(10)
Az F érték adja meg a választott fokozatot, ezen érték határozza meg a számítógépnek, hogy milyen mélységig elemezze a lépéseit vízszintes irányban
700 FOR N=1 TO F
710 LET V=-100
720 IF N=Y THEN GOTO 850
730 IF B$(N,2*X-1 TO 2*X) <> " " THEN GOTO 770
740 LET W=-100
750 IF N=Y THEN GOTO 840
760 GOTO 780
770 LET W=VAL B$(N,2*X-1 TO 2*X)
Az F érték adja meg a választott fokozatot, ezen érték határozza meg a számítógépnek, hogy milyen mélységig elemezze a lépéseit függőleges irányban
775 REM a SPECTRUM kiválasztja lépéseit
780 FOR M=1 TO F
790 IF M=X THEN GOTO 830
800 IF B$(N,M*2-1 TO M*2)=" " THEN GOTO 830
810 IF VAL B$(N,M*2-1 TO M*2)<V THEN GOTO 830
820 LET V=VAL B$(N,M*2-1 TO M*2)
830 NEXT M
840 LET R(N)=W-V
850 NEXT N
860 LET V=-100
870 FOR N=1 TO 8
880 IF B$(N,2*X-1 TO 2*X)=" " THEN GOTO 920
890 IF R(N)<V THEN GOTO 920
900 LET V=R(N)
910 LET Y=N
920 NEXT N
930 LET LP=VAL B$(Y,2*X-1 TO 2*X)
A T változó a számítógép levett számainak értékét adja, melyet az induló LP-hez adunk hozzá, és a végén értékelésre kerül.
935 REM a PC pontjai
940 LET T=T+LP
950 PRINT AT Y*2,2+(X-1)*6;" "
960 LET B$(Y,2*X-1 TO 2*X)=" "
965 REM én lépek
970 LET MO=2
980 GOSUB 1190
990 GOTO 440
Innen készül el a főcím, mely kiírja a feliratot, majd generálunk egy újabb ablakot, és a szöveg közepén széthúzzuk jobbra és balra a feliratot.
1000 CLS :STIPPLE_15: INK 2: PRINT AT 10,0;CHR$ 5;
" Szupermátrix"; INK 7;" LOGIKAI észjáték";
INK 4;" 1997";:PLAY_0,5,0,40,7
1010 CURRENT_4:WINDOW_10,0,6,28
1020 CURRENT_5:WINDOW_10,28,6,36
1030 FOR I=1 TO 80
1040 CURRENT_4:PAN_0,-2
1050 CURRENT_5:PAN_0,2
1060 NEXT I
1070 CLS : RETURN
1075 REM a pálya a számtömbbel
1080 WINDOW_0,0,24,64:MODE_2: INK 2
1085 REM a felirat piros-fehér-zöld
1090 FONT_2:MODE_3: PRINT INK 2;AT 0,5;
"Nyitrai "; INK 7;" szuper-mátrix"; INK 4;" 1997'"
1100 FOR N=1 TO 8
1110 PLAY_0,5,0,5,N
1120 PRINT AT (2*N),0;" "
1130 FOR M=1 TO 10
1135 REM a mátrix sorok különbözô színűek
1140 PRINT INK N;AT 2*N,(M-1)*6;" ";B$(N,2*M-1 TO 2*M)
1150 NEXT M
1160 PRINT AT 2*N,24;" "
1170 NEXT N
1175 MODE_2
1190 MODE_2: INK 4: PRINT AT 19,4;N$;" :";S;" "
1200 MODE_2: INK 6: PRINT AT 20,2;"Számítógép:";T;" "
1210 MODE_2: INK 7: PRINT AT 19,31;"Utolsó szám:";LP;" "
1220 MODE_2: PRINT AT 20,31;" "
1230 IF MO=1 THEN PRINT AT 20,31; FLASH 1; INK 6;"én";
FLASH 0;" lépek "
1240 IF MO=2 THEN PRINT AT 20,31; FLASH 1; INK 4;N$;
FLASH 0;" te lépsz"
1245 MODE_2: INK 6: PRINT AT 18,6;" 8x10 játékmezô-
fokozat ";F
1250 RETURN
1260 CLS
1270 WINDOW_0,0,22,64
1280 MODE_3: INK 2
1290 INK 6: PRINT AT 10,0;"Az én eredményem: ";T;" pont"
1300 INK 4: PRINT AT 13,0;N$;" az eredményed: ";S;" pont"
1310 IF S <> T THEN GOTO 1350
1320 PRINT AT 16,16;"Döntetlen"
1330 IF INKEY$="" THEN GOTO 1330
1340 GOTO 1430
1350 IF S>T THEN GOTO 1400
1360 INK 2: PRINT AT 16,10;"én gyôztem ";T-S;" ponttal"
1370 BEEP 1,0: BEEP .75,0: BEEP .25,0: BEEP 1,0:
BEEP .75,4: BEEP .25,2: BEEP .75,2: BEEP .25,0:
BEEP .75,0: BEEP .25,-1: BEEP 1.25,0
1380 IF INKEY$="" THEN GOTO 1380
1390 GOTO 1430
1400 BEEP .25,5: BEEP .25,5: BEEP .25,5: BEEP .25,0:
BEEP .25,2: BEEP .25,2: BEEP .5,0: BEEP .25,9:
BEEP .25,9: BEEP .25,7: BEEP .25,7: BEEP 1,5
1410 INK 2: PRINT AT 16,10;"te gyôztél ";S-T;" ponttal"
1420 IF INKEY$="" THEN GOTO 1420
1430 CLS
1440 WINDOW_0,0,22,64
1450 INK 6: PRINT AT 10,10;"Játszol újra ?"
1460 INPUT U$
1470 CLS
1480 IF U$(1)="i" THEN RUN
1490 INK 2: PRINT AT 10,16;"Köszönöm "; INK 6;"szépen"
1500 INK 4: PRINT AT 15,16;"a játékot ";N$
1505 PAUSE 500
1510 NEW
1520 LET Y=N
1530 LET X=M
1540 RETURN
1550 CLW_0:MODE_3
1560 WINDOW_0,0,22,64
1570 PRINT "A táblán te csak vízszintesen,
a gép függôlegesen mozoghat, balra <- jobbra->
gombbal,és a space-val lehet a választott számot
beírni."
1572 PRINT "Ha nem akarsz tovább jászani, a 'V' gombbal az
eredményt kiírathatod"
1580 INK 2: PRINT : PRINT " ki lesz a méltó ellenfél ?"
1590 INPUT N$
1600 CLS
1610 IF LEN N$<9 THEN GOTO 240
1620 RETURN
1630 LET C$=""
1640 FOR N=1 TO 8
1650 LET C$=C$+B$(N,X*2-1 TO X*2)
1660 NEXT N
1670 IF C$=" " THEN GOTO 1260
1680 RETURN
És végezetül elmentjük az utókor számára, az emulátorral készített programot természetesen az eredeti Spectrumon is lehet használni.
1820 SAVE "matrix" LINE 1: SAVE "ek"CODE USR "a",164
DÓRI A LABIRINTUSBAN
Leírás:
A programban - a cofis kislányt vezetve a sötét labirintusban - meg kell találni a 8 varázskulcsot, mely majd kinyitja a kincses ládát, a rendelkezésre álló 100 egységnyi idő alatt. Irányítás a kurzorgombokkal, segítségül van a labirintus kis térképe. Ha lejár az idő, 1-1 életed elvész.

10 REM
20 REM ***********************
21 **(c) NyitraiSOFT 2002'**
22 ***********************
30 REM ***********************
31 *Dóri a labirintusban*
32 ***********************
40 RESTORE : GO SUB 8000: PAPER 0: INK 6: BORDER 0: CLS
50 GO SUB 7950
55 PRINT 1;" nyomd az ENTER-t"
64 PRINT AT 1,1;"ø";AT 1,30;"ø";AT 2,1;"ù";AT 2,30;"û": PAUSE 10
66 PRINT AT 1,1;"ü";AT 1,30;"ü";AT 2,1;"û";AT 2,30;"ù"
67 PAUSE 10: PRINT AT 19,1;"ø";AT 19,30;"ü";AT 20,1;"ù";AT 20,30;"û"
68 PAUSE 5: PRINT AT 19,1;"ü";AT 19,30;"ø";AT 20,1;"û";AT 20,30;"ù"
69 PRINT AT 14,16;"ü": PAUSE 5: PRINT AT 14,16;"ø": PRINT AT 15,16;"û": PAUSE 5: PRINT AT 15,16;"ù"
70 PRINT AT 2,5;"(c) NyitraiSOFT 2002'"
72 PRINT AT 5,5;"Dóri a labirintusban"
74 PRINT AT 7,3;"A labirintusban meg kell";AT 8,3;"keresni a rég elfeledett";AT 9,3;"kincsesládát,s a hozzá-";AT 10,3;"való nyolc lakatkulcsot.";AT 11,3;"Sietned kell,100 egységnyi";AT 12,3;"idő hamar elfogy,a kincsek";AT 13,3;"megtalásához öt életed van."
80 PRINT AT 16,8; INK 5;" AAAA "; INK 6;" AA "; INK 5;" AAAA"
81 BEEP .01,10
82 PRINT AT 17,8; INK 5;" BBBB BBBB"
83 PRINT AT 19,6;"Irányítás a kurzorral."
84 IF INKEY$<>"" THEN GO TO 88
86 GO TO 64
88 GO TO 6000
90 LET tp=100: POKE 23673,0: POKE 23672,0
100 PRINT AT ky,kx;a$;AT ky+1,kx; INK 2;b$: RANDOMIZE USR 65034: PRINT AT ky+1,kx; INK 2;f$
110 IF ke<>8 THEN IF x=k AND y=l THEN BEEP .08,1: BEEP .01,3: BEEP .07,2: LET ke=ke+1: PRINT AT 10,10;" ";AT 11,10;" "; INK 4;AT 1,22+ke;"ö";AT 2,22+ke;"ö": LET l=INT (RND*8)+1: LET k=INT (RND*8)+1: GO SUB 1700: GO SUB 1900
120 LET ti=INT (tp-((PEEK 23673*256+PEEK 23672)/50)): PRINT AT 9,29; PAPER 7; INK 1;ti;" "
130 IF ti<=0 THEN LET li=li-1: BEEP .5,-10: BEEP .09,-15: PRINT AT 5,25; INK 6;c$( TO li);" ";AT 6,25; INK 2;d$( TO li);" ": GO SUB 1900: IF li=0 THEN GO TO 5100
140 IF ke=8 THEN IF x=g AND y=h THEN GO TO 5000
200 LET i$=INKEY$
205 REM Dóri háttal van
210 IF i$="7" AND ATTR (ky-2,kx)<40 THEN PRINT AT ky,kx;" ";AT ky+1,kx;" ": LET a$="þ": LET b$="û": LET ky=ky-2: IF ky<3 THEN LET ky=17: OVER 1: GO SUB 1600: LET y=y-1: GO TO 1040
215 REM Dóri lefelé fut
220 IF i$="6" AND ATTR (ky+3,kx)<40 THEN PRINT AT ky,kx;" ";AT ky+1,kx;" ": LET a$="é": LET b$="û": LET ky=ky+2: IF ky>17 THEN LET ky=3: OVER 1: GO SUB 1600: LET y=y+1: GO TO 1040
225 REM Dóri balra fut
230 IF i$="5" AND ATTR (ky,kx-2)<40 AND ATTR (ky+1,kx-2)<40 THEN PRINT AT ky,kx;" ";AT ky+1,kx;" ": LET a$="ø": LET b$="û": LET kx=kx-2: IF kx<4 THEN LET kx=18: OVER 1: GO SUB 1600: LET x=x-1: GO TO 1040
235 REM Dóri jobbra fut
240 IF i$="8" AND (ATTR (ky,kx+2)<40 AND ATTR (ky+1,kx+2)<40) THEN PRINT AT ky,kx;" ";AT ky+1,kx;" ": LET a$="ü": LET b$="í": LET kx=kx+2: IF kx>18 THEN LET kx=3: OVER 1: GO SUB 1600: LET x=x+1: GO TO 1040
300 GO TO 100
1000 LET co=0
1005 REM a labirintus rajza
1010 INK co: PLOT 0,0: DRAW 175,0: DRAW 0,175: DRAW -175,0: DRAW 0,-175: DRAW 31,31
1020 PLOT 175,0: DRAW -31,31: PLOT 175,175: DRAW -31,-31: PLOT 0,175: DRAW 31,-31
1030 FOR n=4 TO 17: PRINT PAPER 0;AT n,4;" ": NEXT n
1040 IF y(y+1,x)=1 THEN LET co=5: GO SUB 1100: GO TO 1050
1045 LET co=0: GO SUB 1100
1050 IF y(y,x)=1 THEN LET co=5: GO SUB 1200: GO TO 1060
1055 LET co=0: GO SUB 1200
1060 IF x(y,x)=1 THEN LET co=5: GO SUB 1300: GO TO 1070
1065 LET co=0: GO SUB 1300
1070 IF x(y,x+1)=1 THEN LET co=5: GO SUB 1400: GO TO 1080
1075 LET co=0: GO SUB 1400
1080 IF ke<>8 THEN IF x=k AND y=l THEN PRINT INK INT (RND*3)+1;AT 10,10;"ö";AT 11,10;"ö"
1085 GO SUB 1600
1090 IF x=g AND y=h THEN PRINT INK 4;AT 10,10;"ÿµ"
1095 INK 6: GO TO 100
1100 BEEP .01,20: INK co: PLOT 56,31: DRAW -16,-23: DRAW 96,0: DRAW -16,23: FOR n=18 TO 20: PRINT PAPER co;AT n,7;" ": NEXT n: RETURN
1200 BEEP .01,20: INK co: PLOT 56,144: DRAW -16,23: DRAW 96,0: DRAW -16,-23: FOR n=1 TO 3: PRINT PAPER co;AT n,7;" ": NEXT n: RETURN
1300 BEEP .01,20: INK co: PLOT 31,120: DRAW -23,16: DRAW 0,-96: DRAW 23,16: FOR n=7 TO 14: PRINT PAPER co;AT n,1;" ": NEXT n: RETURN
1400 BEEP .01,20: INK co: PLOT 144,120: DRAW 23,16: DRAW 0,-96: DRAW -23,16: FOR n=7 TO 14: PRINT PAPER co;AT n,18;" ": NEXT n: RETURN
1600 INK 6: PLOT 175+x*8,79-y*8: DRAW 2,0: DRAW 0,2: DRAW -2,0: DRAW 0,-1: DRAW 1,0: RANDOMIZE USR 65055: OVER 0: RETURN
1700 IF ke=8 THEN LET g=INT (RND*8)+1: LET h=INT (RND*8)+1: PLOT 175+g*8,79-h*8: DRAW 2,0: DRAW 0,2: DRAW -2,0: DRAW 0,-1: FOR n=20 TO 30: BEEP .01,n: NEXT n: RETURN
1800 PLOT 175+k*8,79-l*8: DRAW 2,0: DRAW 0,2: DRAW -2,0: DRAW 0,-1: RETURN
1900 LET tp=te: POKE 23673,0: POKE 23672,0: RETURN
5000 FOR n=1 TO 40: BEEP .08,n: NEXT n
5010 BORDER 4: PAPER 1: INK 5: CLS
5020 GO SUB 7950
5050 PRINT AT 7,8; INK 6;"ø";AT 7,23;"ø";AT 8,10; FLASH 1;"Gratulálok!!"; FLASH 0;AT 8,8; INK 2;"ù";AT 8,23; INK 2;"ù";AT 12,2;" Megtaláltad a kincsesládát"
5060 PRINT AT 14,9;" ööö "; INK 6;"ÿµ ÿµ"; INK 5;" ööö"
5061 PRINT AT 4,9;" ööö "; INK 6;"ÿµ ÿµ"; INK 5;" ööö"
5065 PRINT AT 15,9;" ööö ööö"
5066 PRINT AT 5,9;" ööö ööö"
5070 LET te=te-5: GO TO 5500
5100 BORDER 2: PAPER 4: INK 2: CLS
5200 RANDOMIZE USR 65055: PRINT AT 10,6; FLASH 1;"!! Lejárt az id
őd !!"; FLASH 05500 PRINT INK INT (RND*5)+2;AT 18,6;" Játszol mégegyszer ?";AT 20,9; INK 7;"Nyomd (i / n)"
5600 IF INKEY$="i" THEN GO TO 6000
5700 IF INKEY$="n" THEN PAUSE 100: RANDOMIZE USR 62999: CLS : NEW
5900 GO TO 5600
6000 BORDER 1: PAPER 0: INK 6: CLS
6010 RANDOMIZE
6020 LET y=4: LET x=5: LET ky=10: LET kx=10: LET a$="é": LET b$="û": LET l=INT (RND*8)+1: LET k=INT (RND*8)+1: LET ke=0: LET c$="øüøüø": LET d$="ûùùùù": LET li=5: LET g=0: LET h=0
6040 LET f$="ù": LET g$="ü"
6050 PRINT PAPER 7; INK 4;AT 0,22;"¼¼¼¼¼¼¼¼¼¼"; INK 4;AT 1,22;"»»»»»»»»»»"; INK 1;AT 0,24;"kulcsok"; INK 4;AT 3,22;"¼¼¼¼¼¼¼¼¼¼";AT 4,22;"»»»»»»»»»»"; INK 1;AT 3,24;"³letek:";AT 9,22;"idº : "; INK 4;AT 8,22;"¼¼¼¼¼¼¼¼¼¼";AT 10,22;"»»»»»»»»»»"
6060 PRINT AT 5,25; INK 6;c$;AT 6,25; INK 2;d$
6100 PLOT 181,4: DRAW 71,0: DRAW 0,71: DRAW -71,0: DRAW 0,-71
6105 PLOT 182,5: DRAW 69,0: DRAW 0,69: DRAW -69,0: DRAW 0,-69
6110 GO SUB 1800: GO SUB 1600: GO SUB 1900
7000 FOR n=0 TO 21: PRINT PAPER 5;AT n,0;" ": NEXT n
7900 GO TO 1000
7950 REM h¸romszoros keret
7952 PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
7954 PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173
7956 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
7958 RETURN
8000 DIM x(10,10): DIM y(10,10): LET te=100
8010 FOR n=1 TO 9: LET x(n,1)=1: LET x(n,10)=1: FOR m=2 TO 9: READ a: LET x(n,m)=a: NEXT m: NEXT n
8020 FOR n=1 TO 9: LET y(1,n)=1: LET y(10,n)=1: FOR m=2 TO 9: READ a: LET y(m,n)=a: NEXT m: NEXT n
8030 DATA 1,0,0,1,0,1,0,1
8040 DATA 0,0,0,1,0,0,1,0
8050 DATA 1,0,1,1,1,0,0,1
8060 DATA 0,1,0,0,0,1,1,0
8070 DATA 0,0,1,1,1,0,1,1
8080 DATA 1,1,0,0,0,1,0,0
8090 DATA 0,0,1,0,1,0,1,1
8100 DATA 0,1,0,1,0,1,0,1
8110 DATA 1,0,0,1,0,0,1,0
8120 DATA 0,0,0,1,0,1,0,0
8130 DATA 1,1,0,0,0,0,1,0
8140 DATA 0,1,0,1,1,0,1,1
8150 DATA 1,0,1,1,0,0,1,0
8160 DATA 1,1,0,0,0,1,0,0
8170 DATA 0,0,0,1,0,1,0,0
8180 DATA 0,0,0,1,0,1,0,1
8190 DATA 0,1,0,0,0,0,1,0
8200 DATA 0,0,1,0,1,0,1,0
8210 DATA 0,0,0,1,0,0,0,1
9000 RESTORE 9030
9010 FOR n=USR "a" TO USR "k"+7
9020 READ a: POKE n,a: NEXT n
9030 DATA 0,0,60,66,66,66,60,24
9040 DATA 24,24,31,30,31,24,0,0
9050 DATA 112,154,159,61,85,125,76,56
9060 DATA 8,62,93,157,21,116,119,7
9070 DATA 112,154,159,61,85,125,76,56
9080 DATA 16,124,186,185,168,46,238,224
9090 DATA 14,89,249,188,170,190,50,28
9100 DATA 16,124,186,185,168,46,238,224
9110 DATA 112,154,159,61,125,125,124,56
9120 DATA 63,112,248,248,255,248,248,255
9130 DATA 252,2,1,1,255,161,225,255
9900 RETURN
9910 SAVE "dorilabi"LINE 50
9915 SAVE "hang"CODE 40760,24400
9920 SAVE "udg"CODE USR "a",168
9925 REM hangjelzés be: RANDOMIZE USR 60180
9930 REM hangjelzés ki: RANDOMIZE USR 60190
9933 REM csip-hang RANDOMIZE USR 65034
9935 REM putty-hang RANDOMIZE USR 65055
9940 REM képernyő eltolás RANDOMIZE USR 62999
9945 REM lövés-hang POKE 64997:POKE 64998:
INT RND: FOR v=1 TO 10: RANDOMIZE USR 64986: NEXT v
9950 REM a fentiek az utókornak készültek!!!
9955 REM Nyitrai László 2002 január
SPECTRUM TÖRTÉNELEM - program
Leírás:
A program látványosan bemutatja a Sinclair gépeket a magnókazettás ZX80-tól a Spectrum 128K+3-as floppys gépig, átölelve hat évet. Ez idő alatt Sir Clive Sinclair kis vállalkozóból a királynő lovagja lett font-milliomosként.
Sir Clive mottója: amit más 1 fontból tud csak készíteni, én kihoztam 5 penny-ből!!

10 REM visszaemlekezes az elso szerelemre
20 GOSUB 9890: RANDOMIZE 9900 AND USR ua
30 DEFFN u(l,x,y,a)=9905 AND USR ua
31 PRINT 4;"{L9880"
32 BRIGHT 1: BORDER 1: PAPER 1: INK 7: CLS : GOSUB 5000
33 PRINT 4; INK 7;AT 168,70;"{L9880 |NyitraiSOFT 2002'| "; INK 5;AT 30,10;"{L9884 Az ujsag 128K+2-es szamitogepen";AT 20,30;"keszult 2002 aprilisaban."; INK 2;AT 142,20;"Az elektronikus ujsag cime : ";AT 130,10; INK 6;"{L9882 SPECTRUM , az ELSO SZERELEM": PRINT 0; INK 6;" NYOMJ EGY GOMBOT A KEZDESHEZ!": LET d=FN u(9010,4,7,8)
35 GOSUB 8525: PAUSE 0
40 PRINT 4;"{L9884"
50 BORDER 0: PAPER 0: INK 7: CLS : LET g=FN u(9001,0,19,2)
55 PRINT 4; INK 2;AT 175,5;"{L9880 |SINCLAIR| "; INK 3;"|SINCLAIR| "; INK 4;"|SINCLAIR| "; INK 5;"|SINCLAIR| "
56 FOR i=1 TO 8: GOSUB 8562
59 LET q$="SPECTRUM": PRINT 4; INK INT (1+RND*5);AT 160-15*i,240;"{L9885 ";q$(i);: NEXT i
60 PRINT 4; INK 6;AT 150,15;"{L9882 |SZAMITOGEP TORTENELEM|"''" |1980-1986.|"
61 Á"T240UX1000W0O7N2c"
65 PRINT 4; BRIGHT 1; INK 2;AT 100,10;"{L9884 (1) ZX80 1K RAM-1980"; INK 3;AT 90,15;"(2) ZX81 1-16K RAM-1981"; INK 4;AT 80,20;"(3) SPECTRUM 48K-1982"; INK 5;AT 70,25;"(4) SPECTRUM+ 1985";AT 60,30; INK 6;"(5) SPECTRUM 128K-1986"; INK 7;AT 50,35;"(6) SPECTRUM +2 Amstrad+3 1986"; INK 3;AT 39,40;"(7) Z80-AS EMULATOROK 2002-BEN": BRIGHT 0
68 GOSUB 8531
70 LET z$=INKEY$: IF z$<"1" OR z$>"8" THEN GOTO 70
80 GOSUB 500+(VAL z$-1)*500
500 REM 1 ZX80 az elso 1980
510 BORDER 0: PAPER 0: CLS : PAPER 2: GOSUB 8000
520 BRIGHT 1: PRINT 4; INK 7;AT 162,34;"{L9880 |ZX80-FORRADALMI SZAMITOGEP|"
525 PAPER 0: BRIGHT 0
530 PRINT 4;AT 128,0;"{L9881 Sir Clive Sinclair 1980 februarjaban allt a kozonseg ele,100 fontot ero dobozzal,rajta furcsa feliratokkal.A nyolcvanas evek mind Europanak,mind az egesz vilagnak nagy valtozasokat hoztak.Ezzel a szamitogeppel Sir Clive Sinclair egy olyan kereket inditott utra,amely ma is gurul.Egy uj kategoriat talalt fel:a hazi szamitogepet,ezek az apro csodamasinak mindenkinek elerheto aron kerultek forgalomba,es megis tudtak mindazt,amit eddig a tobb tizezer dollaros nagygepek."
540 PRINT 4;AT 64,0;"A ROM-ba epitett basic-ot igen konnyu volt programozni,u-gyanis egy gombnyomasra beirodott egy utasitas,es egy ellenorzo rutin kiszurte a hibakat.Az 1 K RAM lehetetlenne tett a komolyabb program fejleszteset,es szeptemberben kiegeszitettek egy 16K RAM bovitessel,mely mar sokmindenre elegendo volt,mivel csak fekete-feher megoldasokat kellett alkalmazni.Egy sorba csak egy utasitast lehetett irni,es igy igen attekintheto lett a programlista."
550 PAUSE 0: CLS
560 PRINT 4;AT 175,0;"A folytatasban nezzuk meg,higy Sir Clive mivel folytatta,mi hozta meg neki a vilagsikert,Europaban es Amerikaban,hogyan tudott egy szamitogepet 40 fontert arusitani,ami az atlagos jovedelem negyede volt csak! "
570 PRINT 4; INK 2;AT 100,0;"{L9880 program:"''"Keszitette:": PRINT 4; INK 5;AT 100,70;" NyitraiSOFT"''; INK 2;"Szerzo es programmozo:"; INK 6;" Nyitrai Laszlo"''"PFN rendszerrel, Picrema, Fontrema,"'"PFN Editor felhasznalasaval"'"Spectrum 128K +2 szamitogepen keszult."
999 PAUSE 0: CLS : GOTO 50
1000 REM 2
1010 CLS : BORDER 0: PAPER 0
1020 PRINT 4;AT 175,0;"{L9881 A 80-as evek legelejen kezdte el az angol FERRANTI ceg az igenyek szerinti chipek gyartasat,es Sinclair ki is hasznalta ezt.Lekototte a ceg egesz kapacitasat,es hamarosan a szazezres darabszamrol a millios darabszamra gyartatta a hires ULA-t,ez lehetove tette a gep attervezeset,es hamarosan felakkora lett es uj nevet kapott ZX81-et."
1025 REM
1030 PRINT 4;AT 96,0;"A ZX81-ben a billentyuzetet lecsereltek,es megvaltoztattak,az ";AT 86,125;"elozo gep szenzorai helyett";AT 76,125;"a gepekbe mar folia erintkezot";AT 66,125;"tettek,es ezentul Mr.Sinclair";AT 56,125;"feketebe oltoztette gepeit.";AT 46,125;"A kulso csatlakozoi azonosak";AT 36,125;"a hatso reszen lehetett csat-";AT 26,125;"lakoztatni a 16K-s modult,";AT 16,125;"es a lassu ki-bemenetu magnot."
1035 BRIGHT 1: PRINT 4; PAPER 2; INK 7;AT 70,0;"{L9880| M A S O D I K |"; INK 2; PAPER 7;AT 40,10;"| Z X 8 1 | "; INK 7; PAPER 2;AT 20,60;"1981-ben"
1040 PAUSE 0: BRIGHT 0: CLS
1050 PRINT 4;AT 175,0;"{L9881}A szamitogep belsejeben ket chip dominal,az egyik a jol ismert Z80A,a masik az ULA chip,mely az osszes I/O parancsot elvegzi,beleertve a keprajzolast is.Itt talalhato meg 8KB ROM es az egyetlen RAM chip,melynek 1KB volt a kapacitasa.Mire is jo a ZX81 ?Hat gyorsan mozgo jatekre semmikeppen.De a BASIC elso lepeseire tokeletesen.A ROM-ba epitett Basic valojaban a ZX80 tovabbfejlesztes.Tovabbra is egy gombnyomasra,egy basic utasitas kerult beirasra."
1055 REM
1060 PRINT 4;AT 88,0;"1982 elejere ebbol a korlatozott kapacitasu gepbol -mivel csak 40 font volt az ara -Europaban,es Amerikaban mar tobb,mint 1 milliot adtak el,ez tulszarnyalta a letezo mas gepek eggyuttes szamat is."
1499 PAUSE 0: CLS : GOTO 50
1500 REM 3 48K
1510 BORDER 4: PAPER 4: INK 0: CLS
1520 BRIGHT 1: PAPER 2: INK 7: GOSUB 8000: PRINT 4;AT 163,0;"{L9883 |A LOVAGI CIMET HOZTA: SPECTRUM 48K|"
1525 BRIGHT 0: PAPER 4: INK 0
1530 PRINT 4;AT 128,0;"{L9881}1982 aprilisaban jelent meg a piacon ,rogton ket valtozatban is 16K RAM=mal 125,48K RAM-al 175 angol fontert.Mivel az arkulonbozet minimalis volt,a nagyobb kapacitasu gep maradt meg a piacon .Kulso ranezesre sokat valtozott a gep.A billentyuzet 'mozgo ' alkatreszeket kapott,bar a gumi billentyuk alatt tovabbra is a jol ismert folia talalhato."
1535 REM
1540 PRINT 4;AT 56,0;"A kulvilag fele azonosak a csatlakozok,mint azt elodjeinel megismertuk:9V tap,TV,Magn,es hatul az expansion port.A gep belseje eleg zsufolt,a kozponti processzor mellett talalhato a megnovekedett ULA chip,a 16K ROM es alul a 48Kbajt RAM.Ez a gep is az otthoni tevekeszuleket hasznalja a kep megjelenitesere.": PAUSE 0: CLS
1550 PRINT 4;AT 175,0;"A kepernyore 24 sorban 32 igen jol olvashato szoveget kepes kiirni.A grafika igen kellemetlen kompromisszum aldozata,256X192 pontot hasznal 8 szinben.Am a nyolc szin nem alkalmazhato kulon-kulon minden pontra.Valojaban egy karakter nagysagban lehet egy eloter,es egy hatter szin.Ezt a programozok eletet megkeresito jelenseget hivtak attributumnak."
1555 REM
1560 PRINT 4;AT 120,0;"A beepitett hangszoro csak a magnokimenet mellekagakent szuletett,ugyanis komoly hangokat lehetetlenseg kihozni vele.Amig a szamitogep 'zenel',addig semmi mast nem tud csinalni.A beepitett BASIC az elod tovabbfejlesztese.Tovabbra is csak egy gombnyomasra lehet egy parancsot bevinni,erre a ket also sor hasznalhato."
1570 PRINT 4;AT 68,0;"Mr.Sinclair meg a Spectrum megjelenesevel egyidoben megigert egy gyors es olcso kulso taroloegyseget.A MICRODRIVE csak egy mulva kerult a piacra,es eloszor egy csomo kellemetlenseget okozott.Eloszor egy kulso INTERFACE1-et kellett a gephez kapcsolni,mely kibovitette a memoriat,es kiegeszito utasitasokkal ellatva kellett a Microdrive-t rakapcsolni,valojaban egy vegtelenitett magnes-szalag volt a kazettaban.": PAUSE 0: CLS
1580 PRINT 4;AT 175,0;"Ehhez a gephez aztan vilagszerte keszultek tobb mint 5000 jatek,2000 felhasznaloi program,ami a maga idejeben egyedulallo volt,a legjobb es legolcsobb otthoni szamitogep volt.Egyeduli vetelytarsa a COMMODORE 64 gep volt,am nagyon jol megfertek egymas mellett a piacon."
1595 BRIGHT 1: PRINT 4; PAPER 2; INK 7;AT 120,15;"{L9885 | MAJDNEM CSOD: SINCLAIR QL|"
1600 BRIGHT 0: PAPER 4: INK 0
1610 PRINT 4;AT 64,0;"{L9881 A legenda szerint Sinclair kijelentette,hogy el akarja kesziteni a vilag legolcsobb es egyben legjobb szamitogepet,benne az akkor meg nem letezo microdrive-val es szines ,lapos kepernyovel"'"A kepernyot kesobb kivettek a tervbol,a kazettak maradtak,es 1984 januarjaban sikerult az uj csodat a QL-t piackepes allapotba hozniuk.": PAUSE 0: CLS
1620 PRINT 4;AT 175,0;"A szamitogep elegans fekete dobozban talalhato.A felprofesszionalis billentyuk mellett jobb oldalrol ket ,kis nyilas talalhato,ahova a microkazettakat lehetett behelyezni.A kazettak kapacitasa egyenkent 100-120 KB volt,a minosegtol fuggoen.A szalagon elhelyezkedo fajlformatum a Spectrumeval ellentetben mar a hagyomanyos DOS formatum,es az operacios rendszer ugy kezeli,mint a floppykat.Kulso csatlakozok:halozati - 64 QL-t - lehetett halozatba kotni,monitor,TV csatlakozo,ket soros,es ket port,a kulso ROM csatlakozo."
1625 REM
1630 PRINT 4;AT 100,0;"A szamitogep belsjeben talalhato Motorolla 68008-as es az Intel 8049 microprocesszor.Mellette a 48KB ROM,es a 128KB RAM memoria.a ROM-ban talalhato a 16KB-t lefoglalo multitaszk rendszer,a fennmarado 32KB-ot a SuperBasic foglalja el.A Superbasicot ugy kezzeljuk el,mint a basic,mint a Pascal nyelv ugyes otvozeket.A kepenyore 25 sorba 80 karaktert tud irni,ez minden professzionalis felhasznalasra megfelel."
1640 PRINT 4;AT 43,0;"A grafikai megjelenites felbontas 256 szint jelenit meg,az abalakokkal jol lehet szimulalni a tobb terminalis uzemmodot.A hanghatasokat beepitett hangszoro szolgaltatja,negy program :szovegszerkeszto,adatbazis,tablazatszerkeszto,uzleti tablazatok a profi felhasznalasra utal."
1999 PAUSE 0: CLS : GOTO 50
2000 REM 4 48k+
2010 BORDER 7: PAPER 7: INK 5: CLS : PAPER 2: GOSUB 8000
2020 BRIGHT 1: PRINT 4; INK 7;AT 162,35;"{L9880 UJABB REMENYEK: SINCLAIR 48K+"; PAPER 7; INK 2;AT 130,0;"{L9884"
2025 BRIGHT 0: PAPER 7: INK 0
2030 PRINT 4;AT 100,0;"{L9881 1884 oktobereben dobtak piacra a 48K felujitott valtozatat.Sajnos ez csak a billentyuzet lecsereleset jelentette,a Plus ugyanis megkapta a sikertelen QL billentyuit.Valamit szamitott az,hogy a gepnek kihajthato labai voltak,gepelesnel a gepet meg lehetett donteni,ez a helyzet a gephasznalonak,valamint a gep hutesenek kedvezett."
2040 PAUSE 0: CLS : GOTO 50
2500 REM 5 128K
2510 BORDER 6: PAPER 6: CLS : PAPER 1: GOSUB 8000
2520 BRIGHT 1: PRINT 4; INK 7;AT 162,10;"{L9885 TITOKBAN keszult SZAMITOGEP";AT 158,220; PAPER 2; INK 7;"{L9882 |128K|"
2525 BRIGHT 0: PAPER 6: INK 1
2530 PRINT 4;AT 120,0;"{L9881 1985-ben- SPANYOLORSZAG-ban(!),titokban kezdtek hozza ennek a tipusnak kifejlesztesehez,a piaci bemutato 1986 januarjaban tortent.Elso ranezesre a gep nem kulonbozik a +-tol,egyedul a haz jobboldalon latunk egy hatalmas hutobordat.A szamitogepnek harommal tobb csatlakozoja volt:RS232,RGB monitor es a Keypad."'"A kozponti egyseg tovabbra is a Z80A,mellette a megnovekedett ULA ,az AY hangchip,32 K ROM es 128K RAM."
2540 PRINT 4;AT 40,0;"A Spectrum 128 teljesen kompaitibilis marad a 48K spectrummal,igy az osszes program tovabbra is hasznalhato maradt."'"Sajnos a Sinclair ceg a C5-s kisautoval a csod szelere jutott,a ceget eladtak."
2999 PAUSE 0: CLS : GOTO 50
3000 REM 6
3010 BORDER 6: PAPER 6: CLS : PAPER 2: GOSUB 8020: LET g=FN u(9010,4,12,4)
3020 BRIGHT 1: PRINT 4; INK 7;AT 154,5;"{L9880 HASZNALJUK a regit?"; PAPER 1; INK 6;AT 130,60;"a megunt 128+2-t?"
3025 BRIGHT 0: PAPER 6: INK 0
3030 PRINT 4;AT 110,0;"{L9881 Az utobbi idoben gyakran eloveszem,mert a nosztalgia,"'"a betoltesi csikok latvanya,a kep elotunese,ahogy vegigfut,"'"meg mindig a regi izgalmas, lazas idoket juttatja eszembe."
3035 PAUSE 0: CLS
3040 PRINT 4;AT 175,0;"Miutan megvettek a Sinclair Research-ot es az osszes Spectrum jogot,uj erovel kezdtek hozza a fejleszteshez.Sajnos kesobb kiderult,hogy nem fejlesztettek tovabb a Spectrumot,csak osszeepitettek egy Philips magnoval,csak a piaci reszesedest szerettek valojaban megtartani.A SPECTRUM +2 valojaban egy sima 128 K magnoval,a +3-as valtozat pedig egy beepitett 178KB-os 3 collos floppy lemezzel."
3050 BRIGHT 1: PRINT 4;AT 120,0;"A +3-as nevet is valtoztatott AMSTRAD-nak hivtak.Igen,ilyen az uzlet,a kapitalista vilag...": BRIGHT 0
3055 REM
3060 PRINT 4;AT 100,0;"A Spectrum LOKI-ban specialis grafikus chip talalhato.A grafikai memoria teljes 56KB-t tesz ki es 512x256 pontban 64,vagy 256 szinnel,es spriteok-al.A hang hasonloan impozas volt,sztereoban a monitoron,vagy fulhallgaton keresztul.Az alap 128KB memoriat ki lehetett volna boviteni teljesen 4 MB-ig.A programokat pedig SOFTCARD-on lehetett volna tarolni,melyek 1 MB-osok lettek volna.A beepitett kazett;s magno mellett kulso floppy egyseget is lehetett csatlakoztatni."
3065 BRIGHT 1: PRINT 4;AT 30,0;"A LOKI kesobb felbukkant,SCHNEIDER 646CPC neven,elt 1 evet...": BRIGHT 0
3499 PAUSE 0: CLS : GOTO 50
4000 REM 7 emulator
4010 BRIGHT 1: BORDER 6: PAPER 6: CLS : PAPER 2: GOSUB 8020: LET g=FN u(9004,20,0,0)
4020 PRINT 4; INK 7;AT 154,5;"{L9880 HASZNALJUNK PC-t?": BRIGHT 0
4030 PRINT 4;AT 100,0;"{L9881 Az utobbi idoben inkabb PC-n futo emulatorokat hasznalom,mert tokeletes Sinclair kornyezetet biztosit."
4050 PRINT 4;AT 85,0;"{L9881 Igen az uzlet ezt kivanja...Miert kell a PC ? azert mert,igen jol emulalja Spectrumot.A legujabb verzioju GERTON LUNTER fele Z80 EMULATOR mar a 4.0-nal tart."
4060 PRINT 4;AT 60,0;"Mindenfele kesobbi dolgokat tud,ugymint emulalja a 48k es 128k gepeket,valamint tudja az Interface 1, Microdrive, Discip- le es a +D-t is hasznalni.Mindezt egyszerre is. "
4070 PRINT 4;AT 37,0;"Futtathato DOS es WINDOWS kornyezetben is. "
4080 PRINT 4; PAPER 4; INK 1;AT 22,0;"{L9882 a tortenet itt vegetert ????";AT 15,200; PAPER 2; INK 7;"{L9880 Ny.L."
4085 GOSUB 8531
4499 PAUSE 0: CLS : GOTO 50
5000 REM keret
5010 INK 7: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
5020 PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173
5030 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
5050 RETURN
8000 FOR y=0 TO 4: PRINT AT y,0;" ": NEXT y: RETURN
8010 FOR y=0 TO 4: PRINT AT y,0;" ": NEXT y: RETURN
8020 FOR y=1 TO 5: PRINT AT y,0;" ": NEXT y: RETURN
8030 FOR y=8 TO 12: PRINT AT y,0;" ": NEXT y: RETURN
8502 Á"UX6000W7C": RETURN
8515 LET z$="T170O7N1gbD3C"
8525 REM zene128K csilingeles
8530 FOR n=1 TO 4:Á"T240UX1000W0O7N2cfgEA": NEXT n: RETURN
8545 LET q$="T240O6cN2ccN3eN4ce9g"
8562 Á"T240UX1000W0O7N2c": RETURN
8570 Á"T240UX500W7N2CDECDECDECDECDECDECDECDECDECDE9C"
8610 NEXT n: RETURN
8615 REM zene128K mely baljos zene
8620 LET x$="T95UX6000W7O1BBGGFFEEDDCN1Á9C"
8625 LET y$="T95UX6000W7O1BBGGFFEEDDCN1Á9C"
8630 LET z$="T95UX6000W7O1BGFEDCBGFEDN1Á9C"
8635 Áx$,y$,z$: RETURN
8670 LET q=65533: LET l=49149
8675 FOR n=0 TO 7
8680 FOR m=0 TO 15
8685 OUT q,7: OUT l,62
8690 OUT q,1: OUT l,n
8695 OUT q,8: OUT l,n
8700 OUT q,m: OUT l,8
8705 NEXT n: NEXT m
8710 RETURN
8720 REM program memory
8725 PRINT AT 16,0; PAPER 1; INK 6;" PROGRAM MEMORIA"
8730 LET stk=PEEK 23653+256*(PEEK 23654)
8735 LET rmt=PEEK 23730+256*(PEEK 23731)
8740 LET prg=PEEK 23635+256*(PEEK 23636)
8745 LET vrs=PEEK 23627+256*(PEEK 23628)
8750 LET mem=rmt-stk
8755 LET lth=vrs-prg
8760 PRINT ''"PROGRAM: ";lth;" bajtbol all"
8765 PRINT "Maradek tarhely: ";mem;" ";"bajt"
8770 PAUSE 0: STOP
9000 REM GRAPHICS***************
9001 REM ICON
A COFIS DÓRI KERESI RÉKA TESTVÉRÉT - JÁTÉKPROGRAM
Leírás:
Egy igazi, mászkálós, létrás program, a kis cofis kislányt (aki igazából a Dóri kisunokám) kell öt emeleten keresztül - megküzdve a szellemekkel - eljuttatni a padláson lévő ARANYLÉPCSŐ-ig - ahol a Réka kistestvére vár a segítségre. Irányítás a Q-fel, O-balra, P-jobbra és A-védelem a szörnyek ellen. Három élet van, némi aláfestő zenével.

0 DORI REM NYITRAI 2000'
2 BORDER 1: PAPER 1: CLS : FOR c=0 TO 30: PRINT AT 0,c; PAPER 2;" Á";AT 1,c;" Á";AT 2,c;" Á";AT 3,c+1;"Á": NEXT c: PRINT AT 3,31;"Á"
3 PRINT AT 1,2;" NYITRAI LÁSZLÓ PROGRAMJA. "
4 PRINT 0;AT 0,0,," EGY GOMNYOMÁSRA KEZDÜNK ": PAUSE 0
7 REM RESTORE : INK 2: FOR F=72 TO 79: BEEP .1,F/10: POKE 23681,F: LPRINT " D Ó R I K I S U N O K Á M ": NEXT F: PAUSE 150
8 POKE 23658,8: POKE 23609,1
9 RESTORE : PAPER 0: BORDER 0: INK 7: OVER 0: CLS
10 LET A$="ÁÁ": LET B$="ÁÁ": LET S=0: LET H=0
15 GOTO 6000
100 IF X1=1 AND Y1=31 THEN LET Z=Z+1: LET S=S+100: GOTO 8000
111 IF ATTR (X1,Y1) <> 6 THEN PRINT INK 5;AT X1+1,Y1;" ": GOSUB 200
115 RETURN
200 LET S=S+45: PRINT 0; OVER 0;AT 0,18-LEN STR$ S; INK 6; PAPER 1;S: RETURN
300 FOR K=1 TO 2
305 PAPER 0
310 IF Z=1 THEN PRINT INK Z;AT 0,0;" ELS
Ő SZINT "311 IF Z=2 THEN PRINT INK Z;AT 0,0;"MÁSODIK SZINT "
312 IF Z=3 THEN PRINT INK Z;AT 0,0;"HARMADIK SZINT "
313 IF Z=4 THEN PRINT INK Z;AT 0,0;"NEGYEDIK SZINT "
314 IF Z=5 THEN PRINT INK Z+1;AT 0,0;" PADLÁS"
320 IF Z=5 AND x1=4 AND y1=29 THEN GOTO 1025
322 IF Z=5 AND x1=1 AND y1=29 THEN GOTO 1025
324 IF Z=5 AND x1=2 AND y1=29 THEN GOTO 1025
326 IF Z=5 AND x1=3 AND y1=29 THEN GOTO 1025
330 IF INKEY$="Q" AND ATTR (X-1,Y)=4 THEN LET X1=X-3
340 IF ATTR (X+2,Y)=7 THEN LET X1=X+3
350 LET Y1=Y+(INKEY$="P" AND Y<31)-(INKEY$="O" AND Y>0)
355 IF ATTR (X1,Y1)=6 THEN GOSUB 100
360 IF ATTR (X1+1,Y1)=6 THEN GOSUB 100
365 PRINT AT X,Y;A$(I);AT X+1,Y;B$(I): LET I=I+1: IF I=3 THEN LET I=1
370 PRINT AT X1,Y1;A$(I);AT X1+1,Y1;B$(I): LET X=X1: LET Y=Y1
375 IF INKEY$="A" THEN IF ATTR (X+1,Y+1) <> 7 THEN PRINT INK 7;AT X+1,Y+1;"Á"
376 IF INKEY$="A" THEN IF ATTR (X+1,Y-1) <> 7 THEN PRINT INK 7;AT X+1,Y-1;"Á"
380 IF K=2 THEN GOTO 500
385 LET B1=B+(Y>B)-(Y<B)
390 LET A1=A+3*(((X+1)>A AND ATTR (A+1,B)=4)-((X+1)<A AND ATTR (A-2,B)=4))
395 IF ATTR (A1+1,B)=7 THEN LET A1=A1+3
400 REM IF Y=B1 THEN IF X+1=A1 THEN GOTO 1000
405 IF ATTR (A1,B1)=7 THEN PRINT AT A,B;"Á"; INK 5;AT A1,B1;"Á": PRINT AT A1,B1;"Á": GOSUB 200: LET A1=2: LET B1=INT (RND*20): PRINT AT A,B;"Á"
410 PRINT AT A,B;"Á";AT A1,B1;"Á"
415 LET A=A1: LET B=B1
420 GOTO 535
500 LET D1=D+(Y>D)-(Y<D)
505 LET C1=C+3*(((X+1)>C AND ATTR (C+1,D)=4)-((X+1)<C AND ATTR (C-2,D)=4))
510 IF ATTR (C1+1,D)=7 THEN LET C1=C1+3
515 REM IF Y=D1 THEN IF X+1=C1 THEN GO TO 1000
520 IF ATTR (C1,D1)=7 THEN PRINT AT C1,D1;"Á"; INK 5;AT C1,D1;"Á": PRINT AT C1,D1;"Á": GOSUB 200: LET C1=3*(2+(INT (RND*6)))-1: LET D1=31: PRINT AT C,D;"Á"
525 PRINT AT C,D;"Á";AT C1,D1;"Á"
530 LET C=C1: LET D=D1
535 NEXT K: GOTO 300
1000 PRINT AT A,B;"Á";AT C,D;"Á"
1005 FOR J=1 TO 21: PRINT AT X,Y;A$(I);AT X+1,Y;B$(I): NEXT J
1010 FOR J=X TO 0 STEP -1: BEEP .01,1+J: PRINT AT J,Y;"Á";AT J+1,Y;"Á": BEEP .04,5: PRINT AT J,Y;"Á";AT J+1,Y;"Á": NEXT J
1015 LET L=L-1: IF L=0 THEN GOTO 1025
1020 GOTO 8509
1025 GOSUB 8800
1030 FOR E=1 TO 3: RESTORE 9540: READ N: IF N=11 THEN PAUSE 0
1035 PAUSE 10: BEEP .01,N: BEEP .01,N+12: BEEP .01,N+12: BEEP .01,N+12: BEEP .01,N+36: NEXT E
1040 IF INKEY$="I" THEN GOTO 1045
1042 GOTO 1030
1045 CLS : GOTO 7700
6000 FOR I=USR "A" TO USR "N"+7
6001 READ J: POKE I,J: NEXT I
6002 GOSUB 9000
6005 DATA 112,154,159,61,93,117,124,56,8,62,93,157,21,116,119,7,14,89,249,188,186,174,62,28,16,124,18,185,168,46,238,224
6010 DATA 239,239,239,0,254,254,254,0,126,66,126,66,126,66,126,66,255,255,255,252,240,240,224,224
6015 DATA 255,231,255,0,0,0,0,0,255,255,255,63,15,15,7,7,255,255,183,221,107,170,84,0
6020 DATA 60,126,219,255,195,195,126,60
6025 DATA 0,100,40,20,126,44,88,0
6026 DATA 60,126,255,255,255,255,255,159,0,0,195,36,66,36,66,60
7700 LET Z=1: IF S>H THEN LET H=S
7710 LET L=4: LET S=0
8003 FOR I=-24 TO 48 STEP 12: BEEP .05,I: NEXT I
8005 IF Z>5 THEN LET Z=1
8010 OVER 0: INK 7: PAPER 0: CLS
8012 FOR I=2 TO 20 STEP 3: PRINT INK 5;AT I,0;" ": NEXT I
8013 IF Z=5 THEN PRINT AT 0,0; INK 4;" ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁRÁKAÁÁ": PRINT AT 1,29; INK 6;"Á";AT 1,28;"ÁÁ";AT 4,29;"Á";AT 2,28;"ÁÁ"
8014 IF Z <> 5 THEN PRINT INK 6;AT 1,31;"Á";AT 1,30; INK 3; FLASH 1;"Á"; FLASH 0; INK 2;AT 2,29;"ÁÁÁ": PRINT AT 0,0; PAPER 0; FLASH 0;" "; INK 3;"ÁÁÁÁÁÁÁÁÁ"; INK 2;"ÁÁÁÁÁÁÁÁÁ"
8017 RESTORE 8000+100*Z
8020 READ X,Y: IF X=99 THEN GOTO 8050
8025 PRINT INK 2; PAPER 6;AT X,Y;"ÁÁÁÁÁÁ": GOTO 8020
8050 READ X,Y: IF X=99 THEN GOTO 8061
8060 PRINT INK 3; PAPER 6;AT X,Y;"ÁÁÁÁÁÁ": GOTO 8050
8062 READ X,Y: IF X=99 THEN GOTO 8065
8064 PRINT INK 4; PAPER 1;AT X,Y;"ÁÁÁÁÁÁ": GOTO 8062
8070 READ X,Y: IF X=99 THEN GOTO 8072
8071 PRINT INK 5;AT X,Y;"ÁÁÁÁÁ": GOTO 8070
8072 READ X,Y: IF X=99 THEN GOTO 8074
8073 PRINT INK 4;AT X,Y;"Á";AT X+1,Y;"Á";AT X+2,Y;"Á": GOTO 8072
8075 FOR I=1 TO 9: READ X,Y: PRINT INK 6;AT X,Y;"Á": NEXT I
8080 LET E=0
8090 PRINT AT 21,0; INK 2; PAPER 6;"ÁÁÁÁÁÁÁÁÁÁ"; INK 3;"ÁÁÁÁÁÁÁÁÁÁ"; INK 2;"ÁÁÁÁÁÁÁÁÁÁÁÁ"
8100 DATA 3,8,3,14,3,26,6,1,9,6,9,12,9,20,15,2,15,6,15,12,99,0
8105 DATA 6,20,6,26,12,0,12,6,12,9,12,20,12,26,15,23,15,26,18,0,18,6,18,10,18,18,18,26,99,0
8110 DATA 3,20,3,22,6,7,15,9,99,0
8115 DATA 9,15,10,15,11,15,12,15,18,21,99,0
8120 DATA 3,27,6,10,6,23,9,7,12,12,12,24,15,4,15,29,18,8,18,20,99,0
8121 DATA 14,2,20,6,2,9,5,30,8,12,11,21,17,6,17,18,20,19
8200 DATA 3,2,3,14,12,16,12,22,15,7,15,26,99,0
8201 DATA 3,8,9,6,9,17,9,23,9,25,12,5,12,7,15,23,99,0
8202 DATA 3,20,3,26,9,11,15,1,99,0
8203 DATA 6,11,6,20,18,20,18,0,16,13,17,13,6,16,15,13,18,7,18,13,18,19,99,0
8204 DATA 18,5,18,0,18,25,15,22,3,6,6,6,6,21,9,27,12,15,15,12,15,18,18,6,18,12,18,18,18,24,99,0,5,12,8,18,8,29,11,10,17,24,2,7,2,18,11,19,14,4
8300 DATA 6,12,6,14,9,9,9,15,15,12,15,14,18,5,18,23,18,26,99,0
8301 DATA 6,2,6,5,6,20,12,16,12,21,15,19,15,26,99,0
8302 DATA 9,26,12,1,12,8,15,6,99,0
8303 DATA 3,8,3,22,3,27,18,0,18,11,99,0
8304 DATA 3,7,3,13,3,21,6,10,9,18,12,23,15,8,15,30,18,16,99,0
8305 DATA 5,5,14,30,2,11,8,30,11,10,14,6,17,0,17,24,20,21
8400 DATA 3,26,9,0,9,13,12,4,12,8,12,17,12,20,18,19,18,21,99,0,3,9,3,15,6,1,6,4,9,10,9,19,15,26,99,0,6,20,6,26,18,0,18,6,99,0
8401 DATA 12,26,15,8,15,13,15,18,18,27,99,0,3,21,3,28,6,23,9,11,9,21,12,9,15,7,15,23,18,25,99,0
8402 DATA 2,26,5,9,5,31,8,4,11,13,11,17,14,28,17,1,17,28
8500 DATA 3,6,3,8,6,1,6,18,6,19,6,25,9,6,9,21,15,16,15,23,15,26,18,8,99,0,3,22,3,26,6,4,12,0,12,22,12,24,18,0,18,12,99,0
8501 DATA 3,0,3,14,9,26,12,16,99,0,9,13,15,3,15,11,18,23,18,27,99,0,9,29,6,26,3,8,3,23,6,2,9,2,9,12,12,12,15,20,18,20,18,27,99,0
8503 DATA 2,6,8,22,11,0,11,16,14,4,14,27,17,0,17,14,17,31
8509 LET C=3*(2+(INT (RND*6)))-1: LET D=31: LET X=19: LET Y=0: LET X1=X: LET Y1=Y: LET A=2: LET B=INT (RND*20)
8510 PRINT 0; PAPER 1;AT 0,0;" "
8515 PRINT 0; INK 6; PAPER 1;AT 0,6;"PONTOK 00000"; INK 5;AT 1,5;"LEGTÖBB 0000"; INK 4;AT 1,20;"ÉLETEK"
8516 PRINT 0;AT 0,18-LEN STR$ S; INK 6; PAPER 1;S;AT 1,18-LEN STR$ H; INK 5; PAPER 1;H
8590 OVER 1: INK 8: PAPER 8
8700 LET I=1: PRINT AT X,Y;A$(I);AT X+1,Y;B$(I);AT A,B;"Á";AT C,D;"Á"
8701 LET I=1
8703 RESTORE 9540
8705 FOR K=1 TO 2: IF L >= 2 THEN PRINT 0;AT 0,26;: FOR J=1 TO 1: PRINT 0; PAPER 1;A$(K);" ";: NEXT J
8707 FOR K=1 TO 2: IF L >= 3 THEN PRINT 0;AT 0,28;: FOR J=1 TO 1: PRINT 0; PAPER 1;A$(K);" ";: NEXT J
8708 FOR K=1 TO 2: IF L=4 THEN PRINT 0;AT 0,30;: FOR J=1 TO 1: PRINT 0; PAPER 1;A$(K);" ";: NEXT J
8710 IF L >= 2 THEN PRINT 0;AT 1,26;: FOR J=1 TO 1: PRINT 0; INK 5; PAPER 1;B$(K); ;: NEXT J
8711 IF L >= 3 THEN PRINT 0;AT 1,28;: FOR J=1 TO 1: PRINT 0; INK 5; PAPER 1;B$(K); ;: NEXT J
8712 IF L=4 THEN PRINT 0;AT 1,30;: FOR J=1 TO 1: PRINT 0; INK 5; PAPER 1;B$(K); ;: NEXT J
8720 READ N: IF N=0 THEN RESTORE 9540: GOTO 8720
8726 BEEP .01,N: BEEP .01,N+12: BEEP .01,N+12: BEEP .01,N+12: BEEP .01,N+36: NEXT K
8730 IF INKEY$ <> "P" THEN GOTO 8705
8799 RESTORE 9570: GOTO 300
8800 REM A JÁTÉK VÉGE
8802 BORDER 1: PAPER 1: CLS : FOR c=0 TO 30: PRINT AT 0,c; PAPER 2;" Á";AT 1,c;" Á";AT 2,c;" Á";AT 3,c+1;"Á": NEXT c: PRINT AT 3,31;"Á"
8803 PRINT AT 1,0;"ÜGYES VOLTÁL,MEGTALÁLTAD RÉKÁT."
8805 FOR F=72 TO 79: BEEP .1,F/10: POKE 23681,F: LPRINT INK 6;" G R A T U L Á L O K ! ! ! ": NEXT F
8806 PRINT 0; INK 6;AT 0,0,," ÁÁÁ ÉJ JÁTÉKOT ? ÁÁÁ "
8808 PRINT 0; INK 2;AT 1,0,," ÁÁÁ ÉJ JÁTÉKOT ? ÁÁÁ "
8809 PRINT 0; INK 6;AT 0,0,," ÁÁÁ UJ JÁTÁKOT ? ÁÁÁ "
8810 PAUSE 0: RETURN
9000 PRINT AT 1,0; INK 2; PAPER 6; FLASH 1;" A JÁTÉK MAGYARÁZATA: "
9001 PRINT AT 4,2;"A JÁTÉK SORÁN RÉKA TESTVÉREDET"
9002 PRINT AT 5,2;"KELL MEGMENTENED,
Ő FELMÁSZOTT"9003 PRINT AT 6,2;"A PADLÁSRA,DE NEM TUD LEJÖNNI"
9004 PRINT AT 7,2;"ÜGYELJ A SZÖRNYEKRE,MERT,HA"
9005 PRINT AT 8,2;"ELKAPNAK,AKKOR ISMÉTELHETSZ, "
9006 PRINT AT 9,2;"ÉS EGY ÉLETEDNEK VÉGE. "
9007 PRINT INK 2;AT 10,4;"IRÁNYITÁS Q,O,P GOMBOKKAL,"
9008 PRINT AT 11,2;"AZ 'A' GOMBBAL A SZÖRNYE-"
9009 PRINT AT 12,2;"KET NÉHA ELFOGHATOD,"
9010 PRINT AT 13,2;" HA A 'Á'BETŰRE MUTATSZ ."
9011 GOSUB 9012: GOTO 9100
9012 PLOT 42,19: RESTORE 9113: FOR I=1 TO 12: BEEP .1,I: READ X,Y: DRAW X,Y: NEXT I: PRINT AT 14,5; INK 6;"NYOMD A '0'-GOMBOT"; INK 2;AT 21,4;"Á";AT 21,5; INK 3;"Á";AT 21,6; INK 7;"Á";AT 21,7; INK 4;"Á";0;AT 0,0; INK 2; PAPER 6;"ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ";AT 1,0;"ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ"
9015 PRINT AT 21,12; INK 6; FLASH 1; INVERSE 1;"Á";AT 21,14;"Á";AT 21,16;"Á";AT 21,18;"Á"
9020 PRINT INK 2;AT 19,14;"NYITRAI LÁSZLÓ "; INK 6;AT 20,21;"128K BASIC"
9030 FOR I=30 TO 60: IF INKEY$ <> "0" THEN PRINT AT 20,4;A$(I/30);AT 20,5;A$(I/30);AT 20,6;A$(I/30);AT 20,7;A$(I/30): NEXT I: GOTO 9030
9035 IF INKEY$ <> "" THEN GOTO 9035
9039 CLS : RETURN
9100 PRINT AT 4,2;"A JÁTÉK ÖT KÉPERNYŐBŐL";AT 5,2;"ÁLL,MÁS ÁS MÁS ELRENDEZÁSBEN"
9101 PRINT AT 6,2;"MAJD AZ ÖTÖDIKEN- A PADLÁSON -";AT 7,2;"EGY "; INK 6; FLASH 1;"ARANYLÉPCSŐ"; F
LASH 0; INK 7;" VÁR RÁD"9102 PRINT AT 8,2;"ÁS HA EZT SIKERESEN";AT 9,2;"ELÉRED,AKKOR A TESTVÉREDET,"
9103 PRINT AT 10,2;"RÉKÁT MEGMENTETTED."
9104 PRINT AT 11,2;"PROGRAM ALUL KIJELZI AZ ELÉRT";AT 12,2;"AKTUÁLIS ÉS MAXIMÁLIS PONTOKAT";AT 13,2;" "
9105 PRINT AT 17,12;"INDITÁS A 'P'-VEL.": GOSUB 9012: RETURN
9113 DATA 14,22,-44,3,-12,8,6,88,4,8,116,8,116,-4,8,-8,5,-88,-12,-4,-176,-10,-25,-23
9114 GOSUB 9012
9118 PRINT AT 10,0;"XCC"
9125 GOSUB 9012: RETURN
9540 DATA 2,2,4,4,5,5,4,4,2,2,5,5,9,9,9,9,2,2,4,4,5,5,4,4,2,9,7,4,2,2,2,2,0
9570 DATA 1,1,3,3,6,8,10,10,6,6,8,8,10,8,6,6,10,10,8,8,3,3,3,3,8,8,6,6,1,1,1,7,11
9581 DATA 2,1,2,1,2,1,2,3,2,3,2,3,3,6,3,8,6,10,2,6,2,6,2,6,2,8,2,8,2,8,3,10,3,8,6,6
9582 DATA 2,10,2,10,2,0,2,8,2,8,2,8,3,3,3,3,6,3,2,8,2,8,2,8,2,6,2,6,2,6,3,1,3,1,6,1,7,0
ELEKTRONIKUS NAPLÓ - SPECTRUM 48K -
ÉS TELEFONREGISZTER
Leírás:
Nyilvántartó napló és telefonregiszter, 1 hónapos (igazából öt hetes). Látványos, gyors visszakeresés, szimbólumokkal, barátságos segítő menüvel.

1 REM NYITRAISOFT 2003 JATEKGYAROS
2 REM ELEKTRONIKUS NAPLÓ SPECTRUM 48K ES TELEFONREGISZTER
3 DIM A$(13,35,27)
4 DIM B$(7,10)
6 DIM A(12)
8 DIM C$(100,15)
10 DIM D$(35,59)
12 DIM B(100)
14 DIM E$(12,5)
30 LET CC=0
73 BORDER 1: CLS : LET O=0
80 REM FOCIM ATIC-ATAC BETU
81 POKE 23658,8
82 BORDER 6: PAPER 6: INK 1: CLS :
84 PRINT BRIGHT 1;AT 2,0;"1 HÓNAPOS""NAPLÓ"""
86 PRINT AT 5,0; PAPER 7; BRIGHT 1;"A PROGRAM EGY ELEKTRONIKUS HATARIDO NAPLO! AZ ALTALAD BEIRANDODATUMTOL SZAMITVA 4 HETRE ELOREIRHATOD BE A NAPI ESEMENYEIDET ANAP 24 ORAJARA.A TELEFONSZAMOKATREGISZTERBEN/100 SZAM/TAROLHATODVALAMINT MINDEN NAPRA 59 KARAKTERES MEGJEGYZES IS IRHATO MINDENADAT VISSZAKERESHETO MEG VISSZAMENOLEG 1 HETRE IS......"
90 PAUSE 50: LET W$="JATEKGYAROS"
91 FOR I=1 TO 11
92 PRINT AT 14,20+I; INK 2; BRIGHT 1;W$(I);
93 BEEP .01,I: NEXT I
95 PRINT AT 21,5; FLASH 1; BRIGHT 1;"NYOMJ MEG EGY GOMBOT!"
99 PAUSE 0
100 REM ERTEKADAS
101 CLS : PRINT AT 10,4; FLASH 1; PAPER 7; BRIGHT 1;"RENDEZEM A MEMORIAMAT!"
102 GOSUB 8000
104 GOSUB 8110
110 CLS : PRINT AT 10,7; PAPER 6; BRIGHT 1;"KEREM A MAI DATUMOT!"
120 INPUT PAPER 2; INK 7; BRIGHT 1; FLASH 0;"HONAP/ARAB SZAMMAL/ ";A
125 INPUT PAPER 1; INK 7; BRIGHT 1; FLASH 0;"NAP/ARAB SZAMMAL/ ";B
200 CLS : PRINT AT 10,0; PAPER 6; BRIGHT 1;"A GEP A MAI DATUMNAK MEGFELELO- EN""ATRENDEZI"" A ""NOTESZODAT"" "
210 PRINT AT 14,10; FLASH 1; PAPER 2; INK 7; BRIGHT 1;"DOLGOZOM!"
300 REM A$()FELTOLTESE
310 LET O=0
320 FOR N=1 TO A-1
325 LET O=O+A(N)
330 NEXT N
335 LET C=O+B
337 IF C=0 THEN LET D=1: GOTO 350
340 LET D=C-(INT (C/7)*7)
345 IF D=0 THEN LET D=7
350 LET E=A: LET O=D-1: LET P=B-1
360 FOR N=1 TO 28
370 LET O=O+1: LET P=P+1
380 LET A$(1,7+N)=STR$ E+"."+STR$ P+"."+B$(O)
390 IF O=7 THEN LET O=0
402 IF P=A(E) AND E=12 THEN LET E=1: LET P=0
405 IF P=A(E) THEN LET E=E+1: LET P=0
410 NEXT N
420 LET E=A: LET O=D: LET P=B
430 FOR N=7 TO 1 STEP -1
435 IF P=1 AND E=1 THEN LET E=12: LET P=32
438 IF P=1 AND E>1 THEN LET E=E-1: LET P=A(E)+1
440 LET O=O-1: LET P=P-1
442 IF O=0 THEN LET O=7
450 LET A$(1,N)=STR$ E+"."+STR$ P+"."+B$(O)
490 NEXT N
500 REM LEPESKOZ
501 IF C<CC THEN CLS : PRINT AT 10,0; PAPER 2; INK 7; BRIGHT 1; FLASH 1;"A REGI DATUM KESOBBI MINT AMIT MAI DATUMNAK BEIRTAL!": PAUSE 200: GOTO 100
502 LET L=C-CC: LET CC=C
510 REM A$() LEPETESE
520 IF L>34 THEN GOTO 600
522 IF L <= 0 THEN GOTO 800
525 FOR N=L+1 TO 35
530 FOR M=2 TO 13
535 LET A$(M,N-L)=A$(M,N)
540 NEXT M
545 LET D$(N-L)=D$(N)
550 NEXT N
555 FOR N=36-L TO 35
560 FOR M=2 TO 13
565 LET A$(M,N)=""
570 NEXT M
572 LET D$(N)=""
575 NEXT N
580 GOTO 800
600 FOR N=1 TO 35
605 FOR M=2 TO 13
610 LET A$(M,N)=""
615 NEXT M
620 NEXT N
630 GOTO 800
800 REM MENU KIIRASA
802 PAPER 6: BORDER 6: CLS
805 PRINT INK 2;AT 3,13; PAPER 7; BRIGHT 1;"UTMUTATO"
810 PRINT AT 5,3; PAPER 7; BRIGHT 1;"0";AT 7,3;"1";AT 9,3;"2";AT 11,3;"3";AT 13,3;"4";AT 15,3;"5"
811 RESTORE 819: LET M=-1
812 FOR N=0 TO 10 STEP 2
813 BEEP .15,N
814 LET M=M+1: READ H$
815 PRINT AT N+5,5; PAPER M; INK 9; BRIGHT 1;H$
817 NEXT N
819 DATA "ATLAPOZAS -TOL,-IG","EGY NAP KIIRASA","KERESES SZEMP. SZERINT","TELEFON REGISZTER","BEIRAS A JEGYZETBE","MENTES"
822 PRINT 1;AT 0,3; FLASH 1; BRIGHT 1;"IRD BE A VALASZTOTT SZAMOT!"
823 FOR N=1 TO 30: PRINT AT 1,N;"";AT 20,N;"": NEXT N
824 FOR N=1 TO 20: PRINT AT N,1;"";AT N,30;"": NEXT N
825 PAUSE 0: LET I$=INKEY$
827 IF CODE I$<48 OR CODE I$>54 THEN GOTO 825
830 GOTO 1000+VAL I$*500
1000 REM ATLAPOZAS -TOL,-IG
1005 LET S=0
1010 BRIGHT 0: BORDER 5: PAPER 5: CLS
1015 PRINT AT 7,0; PAPER 2; INK 7; BRIGHT 1; FLASH 0;" HANYADIK HONAP,HANYADIK NAPJA-TOL KIVANOD LATNI A ""NOTESZODAT"""
1020 INPUT PAPER 7; INK 1; BRIGHT 1; FLASH 0;"HANYADIK HONAP";F
1025 INPUT PAPER 2; INK 7; BRIGHT 1; FLASH 0;"HANYADIKATOL?";FF
1030 CLS : PRINT AT 7,0; PAPER 7; BRIGHT 1; INK 0; FLASH 0;"HANYADIK HONAP,HANYADIK NAPJAIG KIVANOD ATLAPOZNI A ""NOTESZODAT"""
1035 INPUT PAPER 7; INK 0; BRIGHT 1; FLASH 0;"HANYADIK HONAP";G
1040 INPUT PAPER 2; PAPER 7; BRIGHT 1; FLASH 0;"HANYADIK NAPJAIG?";GG
1045 LET F$=STR$ F+"."+STR$ FF+"."
1047 LET G$=STR$ G+"."+STR$ GG+"."
1050 FOR K=1 TO 35
1055 IF A$(1,K)( TO LEN F$)=F$ THEN GOTO 1070
1060 NEXT K
1065 CLS : PRINT AT 10,0; PAPER 0; INK 7; FLASH 1;"AZ ATLAPOZAS KEZDETENEK MEGADOTTDATUM NINCS A ""NOTESZBAN"" ": PAUSE 350: GOTO 1000
1070 FOR J=1 TO 35
1075 IF A$(1,J)( TO LEN G$)=G$ THEN GOTO 1090
1080 NEXT J
1085 CLS : PRINT AT 10,0; PAPER 3; INK 7; BRIGHT 1; FLASH 1;"AZ ATLAPOZAS VEGENEK MEGADOTT DATUM NINCS A ""NOTESZBAN"" ": PAUSE 350: GOTO 1030
1090 PAPER 6: BORDER 6: CLS
1095 FOR N=K TO J
1100 PRINT AT 1,13; PAPER 0; INK 7; BRIGHT 1; FLASH 0;A$(1,N)( TO 9)
1103 LET I=-1
1105 FOR M=2 TO 13
1110 LET I=I+1: IF I>7 THEN LET I=0
1115 PRINT AT M+2,5; INK 9; PAPER I; BRIGHT 1;A$(M,N)
1120 NEXT M
1122 PRINT AT 17,5; BRIGHT 1;D$(N)
1125 GOSUB 1300
1130 NEXT N
1140 CLS : PRINT AT 10,3; INK 1; BRIGHT 0; FLASH 0;"A ""JEGYZETEDET"" AHOGY KERTED, ATLAPOZTUK": PAUSE 300: GOTO 800
1300 REM TABLAZAT RUTIN
1302 PRINT AT 1,7;"DATUM:"; PAPER 0; INK 7; BRIGHT 1;AT 3,0;" ORA:"
1303 FOR V=1 TO 12
1305 PRINT PAPER 7; BRIGHT 1;E$(V)
1306 NEXT V
1307 PRINT AT 17,0; PAPER 0; INK 7; BRIGHT 1;"MEGJ:"
1310 PRINT AT 19,2; PAPER 7; BRIGHT 1;"_=""A"" _=""B"" _=""C"" _=""D"" _=""E""";AT 20,6;"_=""F"" _=""G"" _=""H"""
1311 IF S=2 THEN RETURN
1312 IF S >= 1 THEN PRINT 1;AT 0,0; FLASH 1; PAPER 2; BRIGHT 1; INK 7;"MASIK ADAT=/M/GOMB": GOTO 1317
1315 PRINT 1;AT 0,2; FLASH 1; PAPER 2; INK 7; BRIGHT 1;"LAPOZAS=/L/GOMB"
1317 PRINT 1;AT 0,19; FLASH 1; PAPER 2; INK 7; BRIGHT 1;"VEGE=/V/GOMB"
1320 PAUSE 0: LET I$=INKEY$
1325 IF I$="L" AND S=0 THEN RETURN
1327 IF I$="M" AND S >= 1 THEN RETURN
1330 IF I$="V" THEN GOTO 800
1335 GOTO 1320
1500 REM EGY NAP KIIRASA
1501 GOSUB 1503
1503 PAPER 5: BORDER 5: CLS
1504 LET S=1
1506 PRINT AT 10,1; PAPER 6; INK 0; BRIGHT 1;"MELYIK NAPOT KIVANOD LATNI?"
1510 INPUT FLASH 0; PAPER 7; BRIGHT 1;"HANYADIK HONAP? ";F
1515 INPUT FLASH 0; PAPER 7; BRIGHT 1;"HANYADIKA? ";FF
1520 LET F$=STR$ F+"."+STR$ FF+"."
1525 FOR N=1 TO 35
1530 IF A$(1,N)( TO LEN F$)=F$ THEN GOTO 1550
1535 NEXT N
1540 CLS : PRINT AT 10,1; PAPER 2; INK 7; BRIGHT 1; FLASH 1;"A KERT NAP NINCS A ""NOTESZBAN""!"
1542 PAUSE 300: RETURN
1550 PAPER 6: BORDER 6: CLS
1555 PRINT AT 1,13; PAPER 0; INK 7; BRIGHT 1;A$(1,N)( TO 9)
1557 LET I=-1
1560 FOR M=2 TO 13
1565 LET I=I+1: IF I>7 THEN LET I=0
1570 PRINT PAPER I; INK 9; BRIGHT 1;AT M+2,5;A$(M,N)
1575 NEXT M
1580 PRINT AT 17,5; BRIGHT 1;D$(N)
1585 GOSUB 1300
1587 IF S=2 THEN RETURN
1590 GOTO 1500
1599 STOP
2000 REM KERESES
2002 BORDER 5: PAPER 5: CLS
2004 GOSUB 8500
2006 CLS
2010 PRINT PAPER 6; BRIGHT 1;AT 7,0;"IRJ BE EGY SZIMBOLUNOT ES A GEP KIIRJA JEGYZETED AZT A SORAT MELYET EZZEL A SZIMB.-AL IRTAL "
2015 BRIGHT 1: GOSUB 8522: BRIGHT 0
2020 INPUT PAPER 1; BRIGHT 1; INK 7; FLASH 1;"KEREM A SZIMBOLUMOT ";J$
2025 IF CODE J$<144 OR CODE J$>151 THEN GOTO 2020
2030 PAPER 6: CLS
2035 PRINT 1;AT 1,7; PAPER 2; INK 7; BRIGHT 1; FLASH 1;"KERESEM MAR!"
2040 FOR N=8 TO 35
2042 LET Y=0
2045 FOR M=2 TO 13
2050 FOR K=1 TO 5
2055 POKE 23692,255
2060 IF A$(M,N)(K)=J$ THEN PRINT TAB 8; PAPER 0; INK 7; BRIGHT 1;A$(1,N)( TO 9);'; PAPER 7; BRIGHT 1; INK 0;E$(M-1); PAPER 6;A$(M,N)
2061 POKE 23692,255
2062 IF D$(N)(K)=J$ AND Y=0 THEN PRINT TAB 8; PAPER 0; INK 7; BRIGHT 1;A$(1,N)( TO 9);'; PAPER 7; BRIGHT 1; INK 0;"MEGJ:"; PAPER 6;D$(N): LET Y=1
2065 NEXT K
2070 NEXT M
2075 NEXT N: INPUT ""
2076 PRINT 1;AT 0,0; PAPER 1; INK 7; BRIGHT 1;"A ""NOTESZBAN"" NINCS TOBB PROGRAM";AT 1,10; PAPER 7; INK 0; FLASH 1;J$; FLASH 0; PAPER 1; INK 7;"-AL JELOLVE"
2077 PAUSE 200
2079 INPUT ""
2080 LET S=3: GOSUB 1312
2090 CLS : GOTO 2010
2499 STOP
2500 GOTO 7000
3000 REM BEIRAS A JEGYZETBE
3002 LET S=2
3005 BORDER 5: CLS
3010 GOSUB 8500
3015 BORDER 5: PAPER 5: CLS : PRINT AT 10,0; PAPER 2; INK 7; BRIGHT 1;"""NOTESZOD"" MELYIK ""LAPJARA"" KI- ";AT 11,5;"VANSZ ADATOT BEIRNI?"
3020 GOSUB 1510
3022 IF N>35 THEN GOTO 3015
3025 INPUT PAPER 7; BRIGHT 1;AT 0,0; FLASH 1;"MELYIK ORA?/CSAK AZ ELSO SZAMOT IRD BE!/MEGJEGYZESBE IRNI=30 ";T
3027 INPUT PAPER 7; BRIGHT 1;AT 0,0; FLASH 1;"IRD BE A JEGYZETEDET,A SZIMBOLU-MOKKAL VAGY ANELKUL! ";H$
3030 LET O=0
3035 FOR K=0 TO 22 STEP 2
3040 LET O=O+1
3045 IF K=T THEN LET A$(O+1,N)=H$: GOTO 3065
3050 NEXT K
3055 IF T=30 THEN LET D$(N)=H$: GOTO 3065
3060 GOTO 3025
3065 GOSUB 1550
3070 GOSUB 1312
3075 GOTO 3015
3499 STOP
3500 GOTO 9990
6999 STOP
7000 REM TELEFON REG.
7005 PAPER 3: BORDER 3: CLS
7010 PRINT AT 4,12; FLASH 1; PAPER 6; BRIGHT 1;"VALASSZ!"
7012 PRINT AT 7,3; PAPER 7; BRIGHT 1; INK 0; FLASH 1;"U";AT 7,5; FLASH 0; PAPER 6;"UJ TELEFONSZAM BEIRASA";AT 9,3; PAPER 7; FLASH 1;"K";AT 9,5; FLASH 0; PAPER 6;"TELEFONSZAM KERESESE";AT 11,3; PAPER 7; FLASH 1;"T";AT 11,5; FLASH 0; PAPER 6;"TELEFONREGISZTER KIIRASA"
7015 PRINT AT 18,6; PAPER 0; INK 7; BRIGHT 1;"/U/VAGY/K/VAGY/T/GOMB"
7020 PAUSE 0: LET I$=INKEY$
7025 IF I$="U" THEN GOTO 7300
7030 IF I$="K" THEN GOTO 7050
7035 IF I$="T" THEN GOTO 7200
7040 GOTO 7020
7050 REM SZAM KERESESE
7055 BORDER 3: PAPER 3: CLS : PRINT AT 10,1; FLASH 0; PAPER 2; INK 7; BRIGHT 1;"IRD BE KINEK A SZAMAT KERESED?"
7060 INPUT PAPER 7; BRIGHT 1; INK 2;"VIGYAZZ! PONTOS NEVET IRJ! ";J$
7061 IF LEN J$>15 THEN LET J$=J$( TO 15)
7062 PAPER 7: INK 0: BRIGHT 0: BORDER 7: CLS
7065 FOR N=1 TO 100
7067 IF J$="" THEN GOTO 7080
7070 IF C$(N)( TO LEN J$)=J$ THEN CLS : PRINT AT 6,8; PAPER 1; INK 7; BRIGHT 1;C$(N);AT 8,10; PAPER 2; BRIGHT 1; INK 7;"HIVOSZAMA:";AT 10,12; PAPER 0; INK 7; FLASH 1;B(N): GOTO 7085
7075 NEXT N
7080 CLS : PRINT AT 10,0; PAPER 0; INK 7; BRIGHT 1; FLASH 1;"ILYEN NEV NINCS A REGISZTERBEN!": PAUSE 150: GOTO 7055
7085 PRINT 1;AT 0,7; PAPER 7; INK 0; BRIGHT 1;"MASIK SZAM=/M/GOMB"
7087 PRINT 1;AT 1,7; PAPER 7; INK 0; BRIGHT 1;"VISSZA=/V/GOMB";AT 2,7;"MENU=/SPACE/GOMB"
7090 PAUSE 0: LET I$=INKEY$
7095 IF I$="M" THEN GOTO 7055
7100 IF I$="V" THEN GOTO 7005
7102 IF I$=CHR$ 32 THEN GOTO 800
7105 GOTO 7090
7200 REM KIIRAS
7202 BORDER 5: PAPER 5: CLS
7203 GOSUB 7325
7210 GOTO 800
7299 STOP
7300 REM BEIRAS
7302 CLS : FOR N=1 TO 100
7305 IF C$(N)( TO 1)=" " THEN LET R=N: LET S=1: GOTO 7380
7310 NEXT N
7315 LET S=0: PRINT AT 10,0; PAPER 1; INK 7; BRIGHT 1;"NINCS A REGISZTERBEN SZABAD HELY";AT 12,3; PAPER 0; FLASH 1;"NEZD AT A REG.-T ES IRJ EGY ";AT 13,4;"REGI ADAT HELYERE ,UJAT!"
7320 PAUSE 250: CLS : GOSUB 7325
7322 GOTO 7375
7325 FOR N=1 TO 100 STEP 20
7326 PRINT AT 0,6; PAPER 2; INK 7; BRIGHT 1;"ELOFIZETO NEVE";AT 0,23;"T.SZAM"
7327 FOR M=0 TO 19
7330 PRINT PAPER 7; BRIGHT 1; INK 0;AT M+2,2;N+M;".";TAB 6;C$(N+M);" ";AT M+2,24;B(N+M)
7337 NEXT M
7339 GOTO 7350
7340 NEXT N
7345 GOTO 7368
7350 PRINT 1;AT 0,7; PAPER 0; INK 7; BRIGHT 1;"TOVABB=/T/ GOMB";AT 1,1;"STOP=/S/ GOMB";AT 1,15;"COPY=/C/ GOMB"
7355 PAUSE 0: LET I$=INKEY$
7360 IF I$="T" THEN CLS : GOTO 7340
7361 IF I$="C" THEN COPY : GOTO 7340
7365 IF I$="S" THEN RETURN
7367 GOTO 7355
7368 PRINT 1;AT 0,4; PAPER 7; BRIGHT 1; INK 0;"A LISTA VEGERE ERTUNK!";AT 1,10; PAPER 1; INK 7; BRIGHT 1;"UJRA=/U/GOMB"
7369 PAUSE 0: IF INKEY$="U" THEN INPUT "": GOTO 7325
7372 GOTO 7369
7375 INPUT BRIGHT 1; INK 0; PAPER 6;"IRD BE MELYIK SORSZAMRA KERUL AZ UJ SZAM? ";R
7380 CLS : INPUT PAPER 1; BRIGHT 1; INK 7; FLASH 0;"ELOFIZETO NEVE: ";C$(R)
7385 INPUT PAPER 2; BRIGHT 1; INK 7; FLASH 0;"TELEFONSZAM? ";B(R)
7387 CLS : GOSUB 7500
7390 CLS : PRINT AT 8,4; PAPER 7; BRIGHT 1; FLASH 1;"U"; FLASH 0; PAPER 6;"=UJ ADAT BEIRASA"
7395 PRINT AT 10,4; PAPER 7; BRIGHT 1; FLASH 1;"V"; FLASH 0; PAPER 6;"=VISSZA A T.REGISZTERHEZ"
7400 PRINT AT 12,4; PAPER 7; BRIGHT 1; FLASH 1;"F"; FLASH 0; PAPER 6;"=FOMENU / UTMUTATO"
7405 PRINT AT 4,2; PAPER 2; INK 7; FLASH 1; BRIGHT 1;"IRD BE A MEGFELELO KARAKTERT"
7410 PAUSE 0: LET I$=INKEY$
7420 IF I$="U" THEN GOTO 7302
7425 IF I$="V" THEN GOTO 7005
7430 IF I$="F" THEN BRIGHT 0: GOTO 800
7435 GOTO 7410
7500 REM BUBOREK RENDEZES
7505 PRINT AT 10,0; PAPER 6; BRIGHT 1; INK 0;"A TELEFONKONYVET BETURENDBE REN-DEZI A GEP,EGY KIS TURELMET KER!"
7510 FOR N=1 TO 100
7520 IF C$(N)(1)=" " THEN GOTO 7540
7530 NEXT N
7535 LET N=100
7540 FOR M=1 TO N-1
7545 LET Z=0
7550 FOR K=1 TO N-M
7555 IF C$(K) <= C$(K+1) THEN GOTO 7580
7560 LET K$=C$(K): LET X=B(K)
7565 LET C$(K)=C$(K+1): LET B(K)=B(K+1)
7570 LET C$(K+1)=K$: LET B(K+1)=X
7575 LET Z=1
7580 NEXT K
7585 IF Z=0 THEN GOTO 7600
7590 NEXT M
7600 CLS : RETURN
7999 STOP
8000 REM B$() A() E$() FELTOLTESE
8005 RESTORE 8050
8010 FOR N=1 TO 7: READ B$(N): NEXT N
8015 RESTORE 8060
8020 FOR N=1 TO 12: READ A(N): NEXT N
8025 RESTORE 8070
8030 FOR N=1 TO 12: READ E$(N): NEXT N
8050 DATA "SZOMBAT","VASARNAP","HETFO","KEDD","SZERDA","CSUTORTOK","PENTEK"
8060 DATA 31,28,31,30,31,30,31,31,30,31,30,31
8070 DATA "00-02","02-04","04-06","06-08","08-10","10-12","12-14","14-16","16-18","18-20","20-22","22-24"
8100 RETURN
8110 REM UDG
8115 RESTORE 8140
8120 FOR N=0 TO 63
8125 READ D
8130 POKE USR "A"+N,D
8135 NEXT N: RETURN
8140 DATA 0,252,32,46,40,44,40,46
8145 DATA 0,248,34,36,42,42,46,42
8150 DATA 0,48,72,64,55,10,74,55
8155 DATA 54,73,73,65,34,20,8,8
8160 DATA 144,208,176,144,153,13,11,9
8165 DATA 138,146,162,194,162,146,138,0
8170 DATA 70,169,136,134,129,169,70,0
8175 DATA 98,146,130,98,18,146,98,0
8500 REM TAJEKOZTATO RUTIN
8505 PAPER 7: BORDER 6: BRIGHT 1: CLS
8510 PRINT AT 0,4; PAPER 2; INK 7; BRIGHT 1;"TAJEKOZTATO A BEIRASHOZ";AT 1,5;"ES A VISSZAKERESESHEZ"
8520 PRINT AT 2,0;"HA HASZNALOD NAPI FELADATAID ROGZITESENEL ES VISSZAKERESNEL AZ ALABBI SZIMBOLUMOKAT,AKKOR A GEP AZOKAT FELISMERVE TUDJA KERESNI.EZEN KIVUL TERMESZETESEN BARMIT IRHATSZ A MEGFELELO NAP,MEGFELE-LO ORAJAHOZ MAX.27 KAR.HOSSZBAN,ILL.A MEGJEGYZESI ROVATBA 59 KA-RAKTERES HOSSZUSAGBAN."
8521 PRINT AT 12,0; INVERSE 1;"A SZIMBOLUMOKAT MINDIG A SOR EL-SO 5 HELYENEK VALAMELYIKERE TEDD"
8522 RESTORE 8535
8524 FOR N=0 TO 7: READ H$: BEEP .15,N
8525 PRINT "GRAF. ";CHR$ (65+N);"= "; PAPER 6;CHR$ (144+N); PAPER 7;" "; PAPER 2; INK 7;H$
8530 NEXT N
8535 DATA "FONTOS TELEFON","TARGYALAS,MEGBESZELES","SZULETESNAP","TALALKOZO A KEDVESSEL","NEVNAP","KIKULDETES","CSALADI PROGRAM","SZABADIDO,SZORAKOZAS"
8540 PRINT 1; FLASH 1; PAPER 0; INK 7; BRIGHT 1;AT 0,5;"NYOMJ MEG EGY GOMBOT!"
8545 PAUSE 0: BRIGHT 0: RETURN
9989 REM SAVE-VERIFY
9990 CLS : PRINT AT 10,10; PAPER 2; INK 7; BRIGHT 1; FLASH 1;"MENTES": SAVE "NOTESZ" LINE 80
9997 GOTO 800
KARÁCSONYI DALOK A SPECTRUM 128K
SZINTETIZÁTORÁRA
Leírás:
A program - menüből választva - hat karácsonyi dalt tartalmaz, sztereó, háromszólamos zenével.
1. Rudi, a vörös orrú rénszarvas
2. Csilingelő harangok
3. Úgy várjuk már a karácsonyt
4. Deres már a hóember
5. Tánc a karácsonyfa körül
6. Vidám a világ

1 REM Ujjgyakorlatok
128K+2 szintetizatorara
es 2002 karacsonyara
2 REM NyitraiSOFT 2002'
3 REM irta: a jatekgyaros
4 REM betukod CODE 48000,768
POKE 23606,160
POKE 23607,186
5 BORDER 0: PAPER 0: INK 0: CLS
6 GOSUB 1030: BORDER 0: GOTO 860
7 BRIGHT 0
8 REM Rudi, a vorosorru renszarvas zene
10 BORDER 1
11 LET x$="T180N3g3a5g5e5C5a8g1&3g3a3g3a5g5C7b1&3f3g5f5d5b5a7g1&3g3a3g3a5g5a9e1&3g3a5g5e5C5a7g1&3g3a3g3a5g5C7b1&3f3g5f5d5b5a8g2&3g3a3g3a5g5D7C2&5a5a5C5a5g5e7g1&5f5a5g5f7e2&5d5e5g5a5b5b7b5C5C5b5a5g5f7d2&3ga5geCa8g1&3gaga5gC7b2&3fg5fdba8g3gaga5gD8C"
20 LET y$="T180NO4N8g5Ca8g8g5C7b1&8f5ba8g7g5a9e3&8g5Ca8g8g5C7b8f5ba8g8g5D7C5&5aa5Cage7g5fagf7e5degabb7b5CCbagf7d8g5Ca8gg5C7b7&7f5ba8gg5D8C"
30 ţx$,y$
40 RETURN
45 REM csilingelo harangok zene
50 BORDER 2
51 LET c$="T180N5cagf8c1&3cc5cagf7d5d5$bag7e1&5CC$bg7a1&5cagf7c1&5cagf8d1&5d$bagCCCCDC$bg7fC5aa7a1&5aa7a5aC6f3g7a1&5$b$b6$b3$b5$baa3aa5agga7gC5aa7a5aa7a5aC6f3g7a5$$b$b6$b3$b5$b5aa3aa5CC$bg8f"
60 LET d$="T180NO4N5cagf8c1&3cc5cagf7d5d5$bag7e1&5CC$bg7a9_2&7c1&5cagf8d1&5d$bagCCCCDC$bg7fC9_9&5aC6f3g7a1&5$b$b6$b3$b5$baa3aa5agga7gC5aa7a5aa7a5aC6f3g7a5$$b$b6$b3$b5$b5aa3aa5CC$bg8f"
70 ţ c$,d$
80 RETURN
85 REM Ugy varjuk mar a karacsonyt zene
90 BORDER 3
91 LET E$= " 5gC3CDCb5aaaD3DEDC5bgg5E3EFED5Ca3gg5aDb7C2&5gCCC7b5bCba7g5DEDCGg3gg5aDb7C2&5gC3CDCb5aaaD3DEDC5bggE3EFED5C5a3gg5aDb7C"
100 LET F$="T180NO4N5g8C7a5a8D7b5g8E5Ca3gg5aDb7C2&5g8C7b5b8C7g5D8E5Gg3gg5aDb7C2&5g8C7a5a8D5b5b5g8E5Ca3gg5aDb7C"
110 ţE$,F$
120 RETURN
125 REM Deres mar a hoember zene
130 BORDER 4
131 LET G$= "T180N(7&7g6e3f5g7C3bC5DCba8g3bC5DCb3aa5gCe3ga5gfef8g5&7g6e3f5g7C3bC5DCba8g3bC5DCb3aa5gCe3ga5gfed8c2&5caaCCbagefagf8e5eddggbbD3Db5DCba7ggg6e3f5g7C3bc5DCba8g3bC5DCb3aa5gCe3ga5gfed8c)"
140 LET H$="T180NO4(7&9g5g8C5DCba9g5DC7b5gC7e9g8g5&9g5g8C5DCba8g3bC5DC7b5gC7e5gfed8c2&5c7aC5ba7g5fagf8e5e7d7g7b6D3b5DCba7gg9g5g7C3bC5DCba8g3bC5DC7b5gCe3ga5gfed8c)"
150 ţG$,H$
160 RETURN
165 REM Tanc a karacsonyfa korul zene
170 BORDER 5
171 LET I$= "(T180N7&3CC5CDDC3C6D3CC5ED$bg8e7&3DD5DEED3D6E3DD5CCD$ba8&3CC5CDDC3C6D3CC5ED$b3g8e3DD5DEED3D6E3DD5CCDEF)"
180 LET J$="(T180NO4N7&7CDC5D5CED$bg8e7&7DED5EDCCD$ba8&7CDC5DCED$b3g8e7DED5EDCCDEF)"
190 ţI$,J$
200 RETURN
205 REM Vidam a vilag zene
210 BORDER 6
211 LET K$= "T180N(7&7C6b3a7g5&5f7ed8c5g8a5a8b5b9C8_5CCCbag6g3f5eCCbag6g3f5eeeee3ef8g3fe5ddd3de8f3ed5c7C5a6g3f5ef7edc)"
220 LET L$="T180NO4N(7&9C7g5&5f9e9c9a9b9_8C5CC9C9g9C9g9e8g5f9d8f5e5c8C6g3f5ef7edc)"
230 ţK$,L$
240 RETURN
250 LET M$= "T100N(5&5dgg3ab5gg3bC5DDE7C3ab5CCDbb3gb5aeg7f5dgg3ab5gg3bC5DDE7C3ab5CCDbb3gb5aef7g)"
260 LET N$="T100NO4N(5&5d8g8g7D5E7C3ab8C8B8A8f8g7g3bC7D5E7C3ab7C5D7b3gb5aef7g)"
270 ţM$,N$
280 RETURN
290 LET O$= "T140N5aag7a5C7b5a8g5abC7D5b8a7a5E7D5C7b5C7b5a8g5aga7D5b8C8C5aag7a5C7b5a8g5abC7D5b8a7a5E7D5C7b5C7b5a8g5aga7D5b8C8C"
300 LET P$="T140NO4N8a7a5C8b8g5abC7D5b8_7a5E8D7B5C8b8g5aga8D8_8c8a7a5c8b8g5abc7D5b8_7a5E8D8b7b5a8g5aga9D8_8c"
310 ţO$,P$
320 RETURN
855 REM a program fomenuje
860 LOAD ! "kar2"CODE 16384,6912
861 PRINT INK 5;AT 9,22;"Boldog";: FOR i=1 TO 10: LET b$="karţcsonyi"
862 PRINT INK 6;AT 10,19+i;b$(i);: PAUSE 15: NEXT i:ţ"7C"
863 FOR i=1 TO
9: LET c$="ţnnepeket"864 PRINT INK 5;AT 11,19+i;c$(i);: PAUSE 15: NEXT i:ţ"7G": PRINT INK 6;AT 12,22;"kţvţn"
865 PRINT INK 5;AT 17,7;"Karţcsonyi ";AT 18,12;"dalok";AT 19,14;"orgonţn"
866 PRINT INK 2;AT 13,20;"Speccyseknek"; INK 6;AT 14,25;"a";AT 15,
20;"jţtţkgyţros";: PRINT 0;" NyitraiSOFT 2002 karţcsony "868 ţ"M8W0UX14000N9C": PAUSE 200: GOSUB 50
869 BORDER 0: PAPER 0: INK 4: CLS : RESTORE 860: DIM a$(6,19): FOR f=1 TO 6: READ a$(f): NEXT f: DATA " Rudi,a rénszarvas","Csilingelő harangok",
"Várjuk a karácsonyt"," Deres a hóember","A karácsonyfa körül"," Vidám a világ"870 FOR f=0 TO 5 STEP 2: INK 5: PLOT 30-f,164+f: DRAW 0,-96-(f*2): DRAW 164+(f*2),0: DRAW 0,96+(f*2): DRAW -164-(f*2),0: BEEP .01,f: NEXT f
875 REM az itt a vurtlitzer
88
0 INK 0: GOSUB 1020: PRINT AT 1,26; INK 4;"ţ""$%"'AT 2,26;":&"; PAPER 0;"'("; PAPER 0;")"'AT 3,26;";";"*"; PAPER 0;"+,";"-";AT 4,26;";";"."; PAPER 0;"/0"; PAPER 0;"1";AT 5,26;";"; PAPER 0;"2"; PAPER 0;"34"; PAPER 0;"5"; PAPER 0'AT 6,26;"="; PAPER 0;"6"; PAPER 0;"78";"9"; PAPER 0;"<": GOSUB 1010: FOR f=6 TO 2 STEP -1: PRINT AT 20,0; INK 2; BRIGHT 1;" Szintetizátor a 128K+2 Speccy-n": FOR g=1 TO 5: NEXT g: NEXT f890 PRINT INK 2;AT 7,26;"128K+2 ";AT 8,25;"zenegép";AT 11,25;"Nyitrai";AT 12,25;"Lászl";AT 13,25;" 2002 "
900 INVERSE 1: FOR f=1 TO 6: POKE 23606,198: POKE 23607,251: PRINT AT f*2,2; INK f;" ";: POKE 23606,0: POKE 23607,60: PRINT PAPER 0; INK f;f;: POKE 23606,198: POKE 23607,251: PRINT INK f;"!";: POKE 23606,160: POKE 23607,186: PRINT INK f; INV
ERSE 0; PAPER 0; BRIGHT 1;a$(f): NEXT f: INVERSE 0: PRINT 1;AT 0,4;"NyitraiSOFT - jţtţkgyţros"910 PRINT AT 15,0; INK INT (RND*8); BRIGHT 1;" Kţv. zene: ";TAB 31;" ": LET z$=INKEY$: IF z$ >= "1" AND z$ <= "6" THEN PRINT INK 6;AT 15,0; BRIGHT 1;"Ezt hall
od: ";a$(VAL z$): GOTO 930920 GOTO 910
930 REM OUT 254, VAL z$-1: PLAY "M14V13O4N7cO0UX3000W6N4cX1000N1cX3000N4cX1000N1cV15O8N6B3&O0UX8000W0N9c","O2N7d","O2N7d": FOR f=1 TO 50: NEXT f
940 IF z$="1" THEN GOSUB 10
950 IF z$="2" THEN GOSUB 50
960 IF z$="3" THEN GOSUB 90
970 IF z$="4" THEN GOSUB 130
980 IF z$="5" THEN GOSUB 170
990 IF z$="6" THEN GOSUB 210
1000 OUT 254,7: PRINT AT 17,0; INK 3;"Ezt játszottam most le: ";TAB 31;" ";a$(VAL z$);TAB 31;" ": GOTO 910
1010 POKE 23606,160: POKE 23607,186: RETURN
1020 POKE 23606,198: POKE 23607,251: RETURN
1030 ţ"3ffdO4bV14&bO5&e&V13e&egV12gabaV11aae&V10d&f&V9f&feeV8feffV7dO4b&bV6O5&e&eV5ggabV4aaaeV3&d&fV2&f&V1feef"
1035 RETURN
1040 CLEAR : SAVE "kardal" LINE 860: VERIFY "kardal"
HAJÓVERSENY
Leírás: Igazi verseny, kis hajómodellekkel, 4 hajóra lehet fogadni, kezdetben 100 ezer forintunk van. Fogadási esély 4:1-hez, a nyeremény a tét háromszorosa. A hajókat a számítógép véletlenszerűen mozgatja, igazi versenyt láthatunk. A program látványos, a sikert, a kudarcot sztereó hanghatásokkal, kis animációval mutatja, fűszerezi. A program a különleges betűs - Garry Rowland féle - PDF-es segédrendszerrel készült.

1 REM ***********************
(c) NyitraiSOFT 2002' *
***********************
2 REM ***********************
*** HAJOVERSENY ***
*** a PDF rendszerrel**
*** 3 csatornas hang **
***********************
3 DIM z$(10,7)
4 LET z$(1,)="{L9880}": LET z$(2,)="{L9881}": LET z$(3,)="{L9883}"
5 LET z$(4,)="{L9884}": LET z$(5,)="{L9886}": LET z$(6,)="{L9887}": LET z$(7,)="{L9882}"
6 LET z$(8,)="{L9885}"
8 GOSUB 9890: RANDOMIZE 9900 AND USR ua
10 DEFFN u(l,x,y,a)=9905 AND USR ua
11 PRINT 4;"{L9880"
12 BORDER 1: PAPER 2: INK 7: CLS
13 GOSUB 2000
15 PRINT 4; INK 6;AT 165,55;"{L9880 | NyitraiSOFT 2002'| "; INK 7;AT 30,20;"{L9881 |Ez a program 128K+2-es SPECCY-n keszult|"; INK 5;AT 140,15;"{L9885 a program cime : "; INK 7;"{L9882 |Hajoverseny|": PRINT 0; INK 6;" NYOMJ EGY GOMBOT A KEZDESHEZ!!": LET d=FN u(9010,4,7,4)
30 GOSUB 8531: PAUSE 0: CLS
31 RESTORE 1140
32 LET a$=" kek piros lila zold"
35 FOR f=1 TO 7: FOR g=0 TO 7: READ a: POKE USR CHR$ (143+f)+g,a: NEXT g: NEXT f
40 RANDOMIZE
50 REM
100 GOTO 1000
105 REM megrajzoljuk a versenypalyat
110 BORDER 2: PAPER 5: INK 1: CLS
115 FOR f=1 TO 5
120 PLOT 10,f*30: INK 1: DRAW 240,0: GOSUB 8502: NEXT f
130 INK 1: DRAW 0,-120
140 PRINT 4; INK 1;AT 170,20; "{L9885 Modell-"; INK 3;"hajo"; INK 2;" verseny "; INK 4;" 2002'"
141 OVER 1: PRINT 4; INK 1;AT 170,19; "{L9885 Modell-"; INK 3;"hajo"; INK 2;" verseny "; INK 2;" 2002'": OVER 0
145 GOSUB 8570: GOSUB 8670
150 DIM x(4)
160 PRINT 4;AT 25,10;"{L9881 Teted ";tet;" forint, ";"a ";a$(ch*5-4 TO ch*5);" hajora fogadtal"
165 PRINT 4; INK 2;AT 13,30;"Ha nyersz, ";tet*3;" forintot kapsz"
201 FOR f=1 TO 4
210 INK f: PRINT AT f*4,x(f);" "; "_____"
215 INK 1: PRINT AT (f*4)+1,x(f);">>>"; "_____"
220 LET x(f)=x(f)+RND*1.5
230 IF x(f)>24 THEN GOTO 500
240 NEXT f
250 GOTO 200
500 INK 0: PRINT 4;AT 25,10;"{L9881 Hajoversenynek vege, "
510 PRINT 4;AT 25,130; "{L9881 a ";a$((f-1)*5+1 TO f*5);" hajo gyozott "
515 PRINT 4; PAPER 5;AT 13,30;" "
520 GOSUB 8570
600 CLS
610 IF ch=f THEN GOTO 700
620 GOSUB 8665: PRINT 4;AT 115,11;"{L9882 | Elvesztetted a versenyt......|"
621 PAUSE 1: PRINT 4; INK 7;AT 115,11;"{L9882 | Elvesztetted a versenyt......|"
622 PAUSE 1: PRINT 4; INK 2;AT 115,11;"{L9882 | Elvesztetted a versenyt......|"
623 PAUSE 1: PRINT 4; INK 5;AT 115,11;"{L9882 | Elvesztetted a versenyt......|"
624 PRINT 4; INK 0;AT 115,11;"{L9882 | Elvesztetted a versenyt......|": INK 1: PRINT AT 15,24;"_"; INK ch;"_____"; INK 1;"_": PRINT 4;AT 60,10;ch;"{L9881 -s hajod a remenyeiddel elsullyedt...": GOSUB 8615
630 LET forint=forint-tet: IF forint>0 THEN GOTO 800
640 INK 2: PRINT 4;AT 80,20;"{L9886 Neked elfogyott a penzed.."
645 IF forint<0 THEN GOTO 900
646 IF forint=0 THEN GOTO 900
650 STOP
700 BORDER 1: PAPER 2: INK 7: CLS : GOSUB 2000
701 PRINT 4;AT 115,10; "{L9882 |Nyertel,a tet haromszorosat!|"
705 GOSUB 8580
710 PRINT 4; INK 6;AT 80,30;"{L9881| Nyeremenyed 3x";tet;"=";3*tet;" forint|": GOSUB 8535: PAUSE 200
720 LET forint=forint+3*tet
800 BORDER 4: PAPER 5: INK 0: CLS
810 GOTO 1020
900 PRINT AT 14,1;" "
901 PRINT AT 15,1;" "
904 PRINT 4;AT 60,0; "{L9881 Kerjel kolcson penzt, "
910 PRINT 4;AT 50,15;"{L9881 es akkor,folytathatod a fogadasokat.. "
920 INK 0: GOSUB 2000: GOSUB 8645
940 PAUSE 100: GOTO 3000
945 REM kezdodik a verseny, fogadjunk a gyoztesre
1000 BORDER 2: PAPER 5: INK 0: CLS
1010 LET forint=100000
1015 GOSUB 2000
1020 PRINT 4; INK 2;AT 165,10;"{L9885 | Motoros-"; INK 1;" hajomodell-"; INK 3;" verseny |"
1021 GOSUB 2000
1022 INK 1: PRINT 4;AT 130,40; "{L9881 Neked ";forint;" forintod van,"
1025 PRINT 4;AT 120,30;"{L9881 melyik szamu hajora fogadsz 1-4 ?"
1030 FOR f=1 TO 4
1040 INK 1: PRINT 4;AT 115-(20*f),30; INK f;f;". . . . ";a$(f*5-4 TO f*5)
1045 PRINT INK f;AT 7+f*2.5,15;"_____"
1046 PRINT INK 7;AT 8+f*2.5,15;"_____"
1050 GOSUB 8502: NEXT f
1060 PRINT 4; PAPER 7; INK 0;AT 40,175;"{L9883}fogadasi feltetel: ";AT 30,175;" az esely: 1/4 ";AT 20,175;" nyeremeny: ";AT 10,175;"tet haromszorosa"
1100 INPUT ch
1105 IF ch<1 OR ch>4 THEN BEEP .1,10: GOTO 1100
1110 PRINT 4;AT 20,20;"{L9881 Mennyi tetet teszel?": GOSUB 8531
1115 PRINT 4; INK 0;AT 10,20;"{L9883}most ";forint;" forintod van"
1120 INPUT tet
1122 IF tet>forint THEN LET tet=forint
1125 IF tet<0 THEN BEEP .1,20: GOTO 1120
1130 CLS : GOTO 110
1140 DATA 0,8,8,8,8,60,255,255
1150 DATA 7,3,3,63,255,255,255,255
1160 DATA 224,128,192,252,214,255,255,255
1170 DATA 0,0,1,1,0,49,255,255
1180 DATA 0,0,0,192,128,224,255,255
1190 DATA 255,127,31,5,12,0,0,0
1200 DATA 254,252,248,192,0,0,0,0
2000 PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
2010 PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173
2020 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
2025 PLOT 6,6: DRAW 243,0: DRAW 0,163: DRAW -243,0: DRAW 0,-163
2050 RETURN
3000 REM
3010 BORDER 1: PAPER 2: INK 7: CLS : GOSUB 2000: GOSUB 8531
3020 PRINT 4;AT 115,30; "{L9882 |UJRA VAN PENZED ? I/N|": PAUSE 0
3030 LET a$=INKEY$
3035 IF a$="i" OR a$="I" THEN RUN
3040 IF a$="n" OR a$="N" THEN GOSUB 8640: RANDOMIZE USR 0
8500 REM zene128K ping
8502 _"UX6000W7C": RETURN
8503 REM zene128K rovid tus
8505 LET x$="T170O3N1gbD3C"
8510 LET y$="T170O5N1gbD3C"
8515 LET z$="T170O7N1gbD3C"
8520 _x$,y$,z$: RETURN
8525 REM zene128K csilingeles
8530 FOR n=1 TO 4
8531 _"T240UX1000W0O7N2cfgEA": RETURN
8535 REM zene128K eredmeny tus
8540 LET p$="T240O3cN2ccN3eN4ce9g"
8545 LET q$="T240O6cN2ccN3eN4ce9g"
8560 _p$,q$: RETURN
8565 REM zene128K hosszu csilingeles
8570 _"T240UX500W7N2CDECDECDECDECDECDECDECDECDECDE9C"
8572 RETURN
8575 REM zene128K gyozelmi tus
8580 FOR n=1 TO 2
8590 LET x$="T240O2bb9E2bEb3E9B"
8595 LET y$="T240O4bb9E2bEb3E9B"
8605 _x$,y$
8610 NEXT n: RETURN
8615 REM zene128K mely baljos zene
8620 LET x$="T95UX6000W7O1BBGGFFEEDDCN1_9C"
8625 LET y$="T95UX6000W7O1BBGGFFEEDDCN1_9C"
8635 _x$,y$: RETURN
8640 REM zene128K vegso,mely zene
8645 LET x$="T240O2N1_9EO3N1_4D$DDDN1_EGN1_6$GGGCGD$DCO1V14CV13CV12CV10CV9CV8CV7CV6CV5CV4CV3CV2CV1N1_9C"
8650 LET y$="T240O2N1_9EO3N1_4D$DDDN1_EGN1_6$GGGCGD$DCO1V14CV13CV12CV11CV10CV8CV7CV6CV5CV4CV3CV2CV1N1_9C"
8660 _x$,y$: RETURN
8665 REM zene128K
1 channel track 128K
SPECCY's thinking sound
alaphang !!!
egy masikat meghivva,
elhallgat
8670 LET q=65533: LET l=49149
8675 FOR n=0 TO 7
8680 FOR m=0 TO 15
8685 OUT q,7: OUT l,62
8690 OUT q,1: OUT l,n
8695 OUT q,8: OUT l,n
8700 OUT q,m: OUT l,8
8705 NEXT n: NEXT m
8710 RETURN
8720 REM program memory
8725 PRINT AT 16,0; PAPER 1; INK 6;" PROGRAM MEMORIA"
8730 LET stk=PEEK 23653+256*(PEEK 23654)
8735 LET rmt=PEEK 23730+256*(PEEK 23731)
8740 LET prg=PEEK 23635+256*(PEEK 23636)
8745 LET vrs=PEEK 23627+256*(PEEK 23628)
8750 LET mem=rmt-stk
8755 LET lth=vrs-prg
8760 PRINT ''"PROGRAM: ";lth;" bajtbol all"
8765 PRINT "Maradek tarhely: ";mem;" ";"bajt"
8770 PAUSE 0: STOP
9000 REM amand
HANOI TORONY
Leírás:
A régmúltat idéző program, a legendás Hanoi (Brahma?) tornyai matematikai fejtörő játék. A három rúd van, az elsőről kell a harmadik rúdra átpakolni a korongokat, de csak úgy lehet, hogy mindig nagyobbra lehet tenni kisebbet. Amikor a papok ezzel végeznek, akkor jön el majd a világ vége. Persze 10 korongnál ez 1023 lépés, de 100 korongnál már 1.267.650.000.000 lépés lenne... A játékban tehát 6 korongnál ne válasszunk többet (így van beállítva, de ez megváltoztatható), mert nem lehet a végére jutni (kinek van erre ideje és türelme??)
Érdekesség, hogy minden létező (Sinclair) gépre elkészítettem, így ZX81, Spectrum, QL, és 128k+2-es gépre is

10 REM NYITRAI LÁSZLÓ 2001'
20 REM
30 REM ***********************
40 REM *****HANOI TORONY******
42 REM *****LOGIKAI JÁTÉK*****
43 REM ***********************
45 REM 1983 16K ZX81-EN*******
47 REM 1985 48K SPECTRUMON****
48 REM 1998 128K QL EMULÁTORON
49 REM 2001 128K Z80-AS*******
50 REM *****EMULÁTORON********
51 REM ***********************
60 REM
70 RESTORE : DATA 0,15,63,127,63,79,48,15,0,240,252,254,252,242,12,240,0,255,255,255,255,255,0,255
80 DATA 0,3,15,31,15,19,12,3,0,192,240,248,240,200,48,192
85 DATA 60,60,60,60,60,60,60,60
90 FOR i=USR "a" TO USR "f"+7: READ a: POKE i,a: NEXT i
100 BORDER 2: PAPER 1: INK 6: CLS
110 GO SUB 1090
120 PRINT AT 2,8;"HANOI TORNYAI";AT 3,8;"-------------"
130 PRINT AT 5,5;"2 KORONG 3 LÉPÉS";AT 6,5;"3 KORONG 7 L1/4P1/4S";AT 7,5;"4 KORONG 15 L1/4P1/4S";AT 8,5;"5 KORONG 31 L1/4P1/4S";AT 9,5;"6 KORONG 63 L1/4P1/4S"
140 PRINT AT 10,5;"7 KORONG 127 L1/4P1/4S";AT 11,5;"8 KORONG 255 L1/4P1/4S";AT 12,5;"9 KORONG 511 L1/4P1/4S"
150 PRINT AT 14,2;"10 KORONG 1023 L1/4P1/4S LENNE";AT 15,2;"50 KORONG:1.125.899.900.015";AT 16,1;"100 KORONG:1.267.650.600.030";AT 18,4;"LÉPÉST KELLENE MEGTENNI!!"
152 LET b$="NYITRAI 2001"
154 FOR i=1 TO 13
156 PRINT INK 5;AT 3+i,31;b$(i);
157 BEEP .01,i
158 NEXT i
160 GO SUB 970
170 INPUT "KORONGOK SZ"MA ? (2-6) ";m
180 IF m<=1 OR m>6 THEN GO TO 170
185 LET m=m+1
190 BORDER 1: PAPER 6: INK 0: CLS
192 DIM a(3,m)
194 DIM a$(7,11)
195 LET a$(1)="u"
200 PRINT AT 21,6;"1";TAB 15;"2";TAB 26;"3"
210 FOR x=13 TO 19-m
220 PRINT AT x,6;a$(1);TAB 15;a$(1);TAB 26;a$(1): INK 0
230 NEXT x
240 GO SUB 890
270 LET a$(1)=" u"
280 LET a$(2)=" uo·"
290 LET a$(3)=" öo¸"
300 LET a$(4)=" öooo¸"
310 LET a$(5)=" öooooo¸"
320 LET a$(6)=" öooooooo¸"
330 LET a$(7)="öooooooooo¸"
340 FOR z=m TO 1 STEP -1
350 LET a(1,z)=1
360 LET a(2,z)=z
370 LET a(3,z)=1
380 NEXT z
390 LET c=1
400 FOR z=1 TO 3
410 FOR y=m TO 1 STEP -1
420 INK z-1: PRINT AT y+12,z*11-12;a$(a(z,y))
425 BEEP .01,m
430 NEXT y
440 NEXT z
450 PRINT AT y+12+m+1,0;"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
460 PRINT AT 0,24;"L1/4P1/4S:";c
470 IF a(1,2)=2 OR a(3,2)=2 THEN GO TO 810
480 PRINT AT 0,0;" "
490 PRINT AT 0,0;" HONNAN?"
500 INPUT j
510 GO SUB 1060
520 PRINT AT 0,0;j;" HOVÁ? "
530 INPUT k
540 GO SUB 1060
550 PRINT AT 0,0;j;"-T A ";k;"-RÉDRA "
560 IF j>3 OR j<1 OR k>3 OR k<1 THEN GO TO 750
570 IF k=j THEN GO TO 750
580 FOR d=1 TO 7
590 IF a(j,d)=1 THEN GO TO 630
600 LET p=d
610 LET q=a(j,d)
620 GO TO 650
630 NEXT d
640 GO TO 750
650 FOR d=1 TO m
660 IF a(k,d)=1 THEN GO TO 690
670 IF a(k,d)<q THEN GO TO 750
680 IF a(k,d)>1 THEN GO TO 700
690 NEXT d
700 LET d=d-1
710 LET a(k,d)=a(j,p)
720 LET a(j,p)=1
730 LET c=c+1
740 GO TO 400
750 REM ROSSZ L1/4P1/4S
760 GO SUB 1060
770 FOR u=0 TO 50
780 PRINT AT 0,0;"SZABÁLYTALAN!"
790 NEXT u
800 GO TO 480
810 PRINT AT 0,0;"SIKERÜLT "ÁTRAKNOD A KORONGOKAT ";c-1;" LÉPÉSBEN!"
820 GO SUB 990
830 PRINT AT 5,10;"ISMÉTELSZ?"
840 INPUT s$
850 GO SUB 1060
860 IF s$(1)="i" OR s$(1)="I" THEN RUN
870 STOP
880 CLEAR : SAVE "hanoi"LINE 70
890 LET ksz=0
900 FOR l=1 TO m-1
910 LET ksz=ksz*2+1
920 NEXT l
930 PRINT AT 3,6;"IDE"LIS L1/4P1/4SSZ"M:";ksz
940 GO SUB 1060
950 RETURN
960 REM CSILINGEL1/4S
970 ?"T240UX500W7N2CDECDECDECDECDECCDECDECDECDE9C"
980 RETURN
990 REM ORGONA-JUTALOM
1000 FOR n=1 TO 2
1010 LET x$="T240O2bb9E2bEb3E9B"
1020 LET y$="T240O4bb9E2bEb3E9B"
1030 LET z$="T240O6bb9E2bEb3E9B"
1040 ?x$,y$,z$
1050 RETURN
1060 REM PING
1070 ?"UX6000W7C"
1080 RETURN
1090 REM DUPLA KERET
1100 INK 6: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175: PLOT 2,2: DRAW 251,0: DRAW 0,171: DRAW -251,0: DRAW 0,-171
1110 RETURN
1120 REM TÁBLA 6 RÉSZES
1130 FOR A=1 TO 6: PRINT AT A*3,3;A: PLOT 20,181-A*24: DRAW 100,0: DRAW 0,-21: DRAW -100,0: DRAW 0,21: NEXT A
1140 REM KIS KERET A TÁBLA KÖRÜL
1150 INK 1: PLOT 17,160: DRAW 106,0: DRAW 0,-147: DRAW -106,0: DRAW 0,147
1160 REM "ÁRNYÉKOLÁS
1170 FOR A=0 TO 7: PLOT 124+A,150: DRAW 0,-145: PLOT 25,12-A: DRAW 100,0: NEXT A
1180 REM KIS KERET+ÁRNYÉK
1190 PLOT 166,14: DRAW 65,0: DRAW 0,13: DRAW -65,0: DRAW 0,-13: FOR A=0 TO 3: PLOT 232+A,21: DRAW 0,-10: PLOT 170,13-A: DRAW 65,0: NEXT A
1200 PRINT INK 2;AT 19,21;"VÁLASZ?"
A NAPRENDSZER BOLYGÓI
Leírás:
Látványos bemutató program a PDF rendszer segítségével, körülnézhetünk saját naprendszerünkben, adatokat, érdekességeket olvashatunk a naprendszerünk minden bolygójáról, nagyságáról, NAP távolságáról, összetételéről, légköréről, holdjairól...

3 REM
6 REM A NAPRENDSZER BOLYGÓI
8 REM
10 REM NYITRAI 99'
15 REM
20 GO SUB 9890: RANDOMIZE 9900 AND USR ua
30 DEF FN u(l,x,y,a)=9905 AND USR ua
40 PRINT 4;"{L9883"
50 GO SUB 100: GO SUB 160
60 GO TO 50
90 REM FOCIM KEP
105 BORDER 0: PAPER 0: INK 2: BRIGHT 1: CLS : LET g=FN u(9010,0,5,2)
120 PRINT 4; PAPER 0; INK 5;AT 175,0;"|N A P R E N D S Z E R B O L Y G O I.|"
122 PRINT 4;"{L9886"
125 PRINT 4;AT 52,120;"|Nyitrai Laszlo 1999'|"
130 PRINT 4; INK 2;AT 25,110 ; PAPER 8;"{L9884}A program szabadon terjesztheto!"
132 PRINT 4; INK 6;TAB 125;"Indulunk a Naprendszerbe?"
134 PRINT 4; INK 6;AT 145,160;"{L9884}1-MERKUR";AT 135,160;"2-VENUSZ";AT 125,160;"3-FOLD";AT 115,160;"4-MARS";AT 105,160;"5-JUPITER";AT 95,160;"6-SZATURNUS";AT 85,160;"7-URANUSZ";AT 75,160;"8-NEPTUNUSZ";AT 65,160;"9-PLUTO"
140 PAUSE 0: RETURN
150 REM menu+instrukciok
160 PAPER 0: CLS : LET d=FN u(9011,0,2,0): LET d=FN u(9010,12,8,0): PRINT 4; INK 7; PAPER 1;AT 175,0;"{L9886} A BOLYGOK RENDSZERE. "
165 PRINT 4; INK 5;AT 115,0;"{L9884}1-MERKUR,2-VENUSZ,3-FOLD,4-MARS"'"5-JUPITER,6-SZATURNUSZ,7-URANUSZ"'"8-NEPTUNUSZ,9-PLUTO"
170 PRINT 4; INK 4;AT 80,0;"{L9884} BOLYGOK neve es"'" szama 1-tol 9-ig"; INK 5;''" NYOMD le az 1-9-et"'" a BOLYGOK"'" kivalasztasara"; INK 2;''" NYOMD a SPACE-t"'" VISSZA a"'" FOMENU-hoz"
180 PAUSE 0: LET k$=INKEY$: IF (k$<"1" OR k$>"9") AND k$<>" " THEN GO TO 180
190 BEEP .05,28: BEEP .08,31: BEEP .02,36: IF k$=" " THEN GO TO 160
195 REM bolygok adatai
200 PAPER 4: CLS : PRINT 4; INK 0;AT 171,8;k$;"-BOLYGO": RESTORE 2000+VAL k$: READ n$: PRINT PAPER 0;AT 2,0,,,,,,,,: PRINT 4; PAPER 8; INK 4;AT 154,8;"{L9883}|~";n$;"~| ";k$: LET d=FN u(9000+VAL k$,16,1,0)
210 PRINT 4;"{L9884": RESTORE 2000+10*VAL k$
220 FOR y=15 TO 20: PRINT AT y,16; PAPER 1;" ": NEXT y: READ f$: PAPER 8: INK 6: PRINT 4;AT 50,136;"TAVOLSAGA A NAPTOL:"'TAB 136;f$;" millio km": READ f$: PRINT 4;AT 30,136;"KERINGESI IDEJE:"'TAB 136;f$
230 INK 0: READ f$: PRINT 4;AT 120,8;"ATMERO: ";f$;" Km": READ f$: PRINT 4;AT 110,8;"A FELSZIN HOMERSEKLETE:"'TAB 8;f$: READ f$: PRINT 4;AT 92,8;"A FELSZIN ANYAGA:"'TAB 8;f$
240 READ f$: PRINT 4;AT 74,8;"ATMOSZFERA:"'TAB 8;f$: IF f$(LEN f$)="," THEN READ f$: PRINT 4;TAB 8;f$
250 READ f$: PRINT 4'TAB 8;"HOLDAK: "'TAB 8;f$
1000 INK 7: GO TO 180
2000 REM Bolygo adatok
2001 DATA "M E R K U R"
2002 DATA "V E N U S Z"
2003 DATA "F O L D"
2004 DATA "M A R S"
2005 DATA "J U P I T E R"
2006 DATA "SZATURNUSZ"
2007 DATA "U R A N U S Z"
2008 DATA "NEPTUNUSZ"
2009 DATA "P L U T O"
2010 DATA "58","88 nap","4.878","-180c to 425c","Bazalt-por es szikla","Nincs","Nincs"
2020 DATA "108","225 nap","12.100","477c","Bazalt es granit szikla","Szendioxid,kengaz es eso","forditott tengelyforgasu!"
2030 DATA "150","365 nap","12.756","-88c to 57c","Viz, granit,bazaltko","Nitrogen, oxigen, vizpara","1, a Hold"
2040 DATA "229","687 nap","6.794","-111c to 26c","Bazalt por es szikla","Szendioxid,nitrogen","2, Phobos es a Deimos"
2050 DATA "779","11.9 ev","143.200","-153c","Folyekony,suru hidrogen","Hidrogen,helium,ammonia,","metan-gazok","16"
2060 DATA "1,427","29.5 ev","120.000","-183c","Folyekony,suru hidrogen","Hidrogen,helium,ammonia,","metan-gazok","21"
2070 DATA "2,871","84 ev","51.800","-210c","Nem ismert","Hidrogen,helium,metan-gazok","15"
2080 DATA "4,496","164.8 ev","49.500","-223c","Nem ismert","Hidrogen,helium,metan-gazok","3"
2090 DATA "5,913","247.7 ev","3.100","-233c","Fagyott metan-jeg","Nincs","1, Charon"
8990 REM grafikak
9000 REM plane
9001 REM mercu
9002 REM venus
9003 REM earth
KINCSES SZIGET
Leírás:
A kalózok által több évszázada elrejtett INKA RELIEF aranykincset kell megtalálni különböző szempontok (ezek a program fokozatai) alapján. Kövesd a MENÜ-t!!
1 RELIEF BEMUTATÓ_ - KEZDŐKNEK"
2 HIDEG/MELEG JÁTÉK-UTASITÁS
3 ÖSSZEADOTT ELTÉRÉS A CÉLTÓL
4 ÉGTÁJAK SZERINT (É, D, K, NY)
5 FOK '' ELTÉRÉS SZERINT
6 EREDŐ 'VEKTOR' IRÁNY
7 HIDEG/MELEG + EGY LÉPÉS
8 ÖSSZEADOTT ELTÉRÉS+EGY LÉPÉS
9 ÉGTÁJAK + EGY LÉPÉS
0 FOK''ELTÉRÉS + EGY LÉPÉS

0 REM ***********************
****KINCSES SZIGET*****
***** 128K BASIC*******
****KERESD A KICSET****
**MEMÓRIA KALANDJÁTÉK*
******NYITRAI 2001*****
***********************
2 GOSUB 5000
3 INK 6: PRINT AT 2,5;" NYITRAI L_SZL_ 2001'": INK 2: PRINT AT 5,3;"A KINCSES SZIGETEN ELREJTETT"; INK 5;AT 6,10;"INKA EREDET
Ű "; INK 6;AT 7,10;"ARANY RELIEF"; INK 7;AT 16,5;"A JÁTÉK SORÁN EZT KELL";AT 17,10;"MEGTALÁLNOD!"4 PRINT AT 10,15; INK 7; PAPER 2; BRIGHT 1;"__ ";AT 11,15;"___";AT 12,15;"___"
5 _"UX6000W7C": PRINT 1;AT 0,0; INK 0; PAPER 5; BRIGHT 1;" M_SOLSZ,VAGY FOLYTATOD? "
6 LET k$=INKEY$: IF k$="" THEN GOTO 6
7 IF k$="m" OR k$="M" THEN BEEP .1,15: COPY : GOTO 10
8 IF k$ <> "f" AND k$ <> "F" THEN _"UX6000W7C": GOTO 6
9 BEEP .1,15
10 LET g=1: LET t=0: LET f=0: GOSUB 90
20 PRINT AT 8,0;"KÉRED A JÁTÉK MAGYARÁZATÁT ?"
25 PRINT AT 10,8;" IGEN / NEM "
30 LET k$=INKEY$: IF k$="" THEN GOTO 30
31 _"UX6000W7C"
35 IF k$="n" OR k$="N" THEN GOTO 100
40 IF k$ <> "i" AND k$ <> "I" THEN _"UX6000W7C": GOTO 30
50 CLS : GOSUB 91
52 PRINT INK 2;AT 6,15;"IME"; INK 3;AT 8,0;" AZ ELRABOLT INKA RELIEF,"
54 PRINT AT 10,15; INK 7; PAPER 2; BRIGHT 1;"__ ";AT 11,15;"___";AT 12,15;"___"
56 PRINT INK 5;AT 14,0;"MELYET EGY KIS KARIBI SZIGETEN REJTETTEK EL A SPANYOL PIZARRO KALANDOR HAJÓSAI 500 ÉVVEL EZEL
ŐTT,ÉS E KINCS MÁR CSAK A LEGENDÁKBAN ÉL."58 GOSUB 95
60 GOSUB 1000: GOSUB 95
62 GOSUB 90
64 PRINT INK 2;AT 4,0;" MEG KELL KERESNED AZ ELREJTETT TITOKZATOS INKA ARANYRELIEFET,"
66 PRINT AT 8,10; FLASH 1;"( 4 , 5 )"
68 PRINT INK 2;AT 10,0;" IGY BEIRT KOORDINÁTÁK MEGADÁSÁVAL."
70 GOSUB 95: GOSUB 1000: LET x=4: LET y=5: LET c$="BUMM!": GOSUB 3000: GOSUB 95
72 GOSUB 90
74 PRINT INK 5;AT 4,0;" A FŐMENŰBEN KIVÁLASZTOTT NE- HÉZSÉGI PONTOK ALAPJÁN,TALÁL- GATÁSSAL LEHET MEGKER
ESNI AZ ELREJTETT INKA KICSET."76 INK 6: PRINT AT 9,0;" LEHETŐSÉG SZERINT,FOKOZATOSAN VÁLASZD KI A MENŰPONTOKAT,AZ UTOLSÓ HÁROM-NÉGY FOKOZAT NAGYON NEHÉZ."
78 GOSUB 95: LET f=1: GOSUB 100: LET f=0: GOSUB 95: GOSUB 90
80 PRINT INK 2;AT 8,0;" HA AZONBAN PROFINAK ÉRZED MAGADAT,KEZDD CSAK AZ UTOL- SÓKKAL,DE AZTÁN NE BOSSZAN- KODJ,ÉN FIGYELMEZTETTELEK."
82 PRINT INK 3;AT 14,0;" PERSZE,HA CSAK ISMERKEDSZ AZ ILYEN TIPUSU JÁTÉKOKKAL,AKKOR KEZDJ AZ 1 MENŰPONTTAL."
84 GOSUB 95: GOTO 100
90 BORDER 0: PAPER 0: INK 7: CLS
91 PRINT AT 0,0;" K I N C S E S S Z I G E T "
93 RETURN
95 PAUSE 100: PRINT 1;AT 1,3; BRIGHT 1; FLASH 1;"NYOMD AZ F-ET A FOLYTATÁSHOZ"
96 LET k$=INKEY$: IF k$="" THEN GOTO 96
97 IF CODE INKEY$ <> 70 AND CODE INKEY$ <> 102 THEN BEEP .5,0: GOTO 96
98 _"T240UX500W7N2CDECDECDECDECDECDE9C": RETURN
99 REM *******************
100 REM ***** M E N
Ű *****101 REM *******************
102 BORDER 1: PAPER 1: INK 6: BRIGHT 1: CLS
105 PRINT AT 0,0;" K I N C S E S S Z I G E T "
110 PRINT AT 1,0;" (c) NYITRAI L_SZL_ 2001'"
112 PRINT BRIGHT 0;" "
115 PRINT
" 1 RELIEF BEMUTATÓ - KEZDŐKNEK"120 PRINT '" 2 HIDEG/MELEG JÁTÉK-UTASITÁS"
125 PRINT '" 3 ÖSSZEADOTT ELTÉRÉS A CÉLTÓL"
130 PRINT '" 4 ÉGTÁJAK SZERINT (É,D,K,NY)"
135 PRINT '" 5 FOK '_' ELTÉRÉS SZERINT"
140 PRINT '" 6 EREDŐ 'VEKTOR' IRÁNY"
145 PRINT '" 7 HIDEG/MELEG + EGY LÉPÉS"
150 PRINT '" 8 ÖSSZEADOTT ELTÉRÉS+EGY LÉPÉS"
155 PRINT '" 9 ÉGTÁJAK + EGY LÉPÉS"
160 PRINT '" 0 FOK'_'ELTÉRÉS + EGY LÉPÉS"
161 IF f=1 THEN RETURN
165 PRINT 1; INK 2;AT 1,3; BRIGHT 1;"VÁLASSZ EGY MENŰ PONTOT:"
170 LET k$=INKEY$: IF k$="" THEN GOTO 170
180 IF CODE k$>57 OR CODE k$<48 THEN BEEP .5,5: GOTO 170
181 LET t=VAL k$: IF t=0 THEN LET t=10
185 _"UX6000W7C": IF t<4 OR t=7 OR t=8 THEN GOTO 500
190 BORDER 2: PAPER 2: INK 7: CLS
195 REM **********************
200 REM ** MÁSOD MENŰPONTOK **
201 REM **********************
202 REM
203 PRINT AT 0,0; INK 6;" K I N C S E S S Z I G E T "
205 PRINT AT 7,0;" MELYIK LEHETŐSÉGET VÁLASZTOD ?"
210 PRINT AT 10,0;" G PONT MINDIG MÁS POZÍCIÓHOZ ?"
215 PRINT AT 13,0;" H PONT UTOLSÓ KÉRÉS POZICIÓHOZ?"
220 PRINT AT 18,7; INVERSE 1; BRIGHT 1;" NYOMD 'G' VAGY 'H' ? "
230 LET k$=INKEY$: IF k$="" THEN GOTO 230
231 LET k=CODE k$
235 IF k<97 THEN LET k=k+32: LET k$=CHR$ k
240 IF k<103 OR k>104 THEN BEEP .5,10: GOTO 230
250 _"UX6000W7C": LET t$=k$
255 REM
500 REM *********************
501 REM ***ELLEN
ŐRZŐ HUROK***505 REM *********************
506 REM
510 GOSUB 900
515 LET G=1
520 GOSUB 1000
530 GOSUB 1500
540 IF x=hx AND y=hy THEN GOTO 3300
550 GOSUB 2000
570 GOSUB 3000
580 LET g=g+1: IF g=11 THEN GOTO 3400
590 GOTO 530
900 LET hx=INT (RND*9)
910 LET hy=INT (RND*9)
920 RETURN
925 REM
1000 REM *********************
1001 REM * AZ ÁSATÁSOK HELYE *
1002 REM *********************
1003 REM
1005 BORDER 4: PAPER 5: INK 0: CLS
1016 PRINT INK 2;AT 1,23;"KUTATÁSI";AT 2,23;"HELYSZÍN"
1017 FOR k=6 TO 16: PRINT AT k,25;"_": NEXT k
1018 PRINT AT 17,21;"__________"
1019 PRINT AT 1,0;
1020 FOR k=1 TO 9
1025 PRINT INK 2; BRIGHT 1;" "; INVERSE 1;10-k; INVERSE 0; INK 1;"___________________ "
1030 PRINT INK 1; BRIGHT 1;" _ _ _ _ _ _ _ _ _ _ "
1035 NEXT k
1040 PRINT INK 2; BRIGHT 1;" 0"; INK 1;"___________________ "
1045 PRINT BRIGHT 1; INK 2;" 0 1 2 3 4 5 6 7 8 9 "
1050 PRINT INK 1;AT 4,21;"TIPP_LÉPÉS";AT 5,21;"__________"
1055 GOSUB 5080
1060 _"T240UX1000W0O7N2cfgEA"
1065 IF t <> 1 THEN RETURN
1070 PRINT AT 18-(hy*2),1+(hx*2); INK 7; PAPER 2; BRIGHT 1;"__ ";AT 19-(hy*2),1+(hx*2);"___";AT 20-(hy*2),1+(hx*2);"___"
1080 RETURN
1500 REM *****************
1501 REM **KÉRÉS POZICIÓ**
1502 REM *****************
1503 PRINT 1,AT 1,1; PAPER 5; BRIGHT 1;"KÉREM A KOORDINÁTÁT:(PL:5,5) ";g
1505 LET l=25: PRINT AT 19,23;" "
1507 PRINT AT 18,21;"VISSZ,FÜGG"
1510 LET k$=INKEY$: IF k$="" THEN GOTO 1510
1520 IF CODE k$<58 AND CODE k$>47 AND l<33 THEN _"UX6000W7C": GOTO 1560
1525 IF CODE k$=13 AND l=33 THEN BEEP .1,15: GOTO 1600
1530 IF CODE k$ <> 12 THEN _"UX6000W7C": GOTO 1510
1531 _"UX6000W7C"
1535 IF l=25 THEN BEEP .5,10: GOTO 1510
1540 IF l=33 THEN PRINT AT 19,29; FLASH 1;"?": LET l=29: PRINT AT 20,24;" ": GOTO 1510
1550 GOTO 1505
1560 PRINT AT 19,l; INK 2; FLASH 1;k$
1570 IF l=25 THEN LET x=VAL k$: PRINT AT 19,29; FLASH 1;"?"
1580 IF l=29 THEN LET y=VAL k$: PRINT AT 20,24; FLASH 1; BRIGHT 1;"ENTER"
1590 LET l=l+4: GOTO 1510
1600 PRINT AT 20,24;" "
1610 RETURN
1620 REM
2000 REM ********************
2001 REM ***KÉRÉSRE-VÁLASZ***
2002 REM ********************
2005 REM
2020 IF t<7 THEN GOTO 2000+(50*t)
2025 GOTO 1750+(t*50)
2050 LET c$="HIBA!": RETURN
2100 LET d=ABS (hx-x)+ABS (hy-y)
2105 IF d>10 THEN LET c$="FAGYOS": RETURN
2110 GOSUB 2130+d
2115 IF t<7 THEN RETURN
2120 GOTO 2500
2131 LET c$="TÜZES": RETURN
2132 LET c$="ÉGETŐ": RETURN
2133 LET c$="FORRÓ": RETURN
2134 LET c$="MELEG": RETURN
2135 LET c$="LANGY": RETURN
2136 LET c$="HŰVÖ
S": RETURN2137 LET c$="HIDEG": RETURN
2138 LET c$="BRRRR": RETURN
2139 LET c$="HAVAS": RETURN
2140 LET c$="JEGES": RETURN
2150 LET d=ABS (hx-x)+ABS (hy-y)
2155 IF d<10 THEN LET c$=" "+STR$ d: GOTO 2115
2160 LET c$=" "+STR$ d
2165 GOTO 2115
2200 LET c$=" ": IF t$="h" THEN GOTO 2230
2205 IF y<hy THEN LET c$=c$+"É"
2210 IF y>hy THEN LET c$=c$+"D"
2215 IF x<hx THEN LET c$=c$+"K"
2220 IF x>hx THEN LET c$=c$+"NY"
2225 GOTO 2248
2230 IF y<hy THEN LET c$=c$+"D"
2235 IF y>hy THEN LET c$=c$+"É"
2240 IF x<hx THEN LET c$=c$+"NY"
2245 IF x>hx THEN LET c$=c$+"K"
2248 IF t>6 THEN GOTO 2500
2249 RETURN
2250 LET c=0: LET dx=hx-x: LET dy=hy-y: LET ax=ABS dx: LET ay=ABS dy
2251 IF dx=0 OR dy=0 THEN GOTO 2254
2252 LET c=INT (((ATN (ay/ax))/PI)*180)
2254 IF dx >= 0 AND SGN dy=1 THEN LET c=c+0: GOTO 2260
2255 IF dx>0 AND dy <= 0 THEN LET c=c+90: GOTO 2260
2256 IF dx <= 0 AND SGN dy=-1 THEN LET c=c+180: GOTO 2260
2257 IF SGN dx=-1 AND dy >= 0 THEN LET c=c+270
2260 IF t$="h" AND c <= 180 THEN LET c=c+180
2261 IF t$="h" AND c>180 THEN LET c=c-180
2265 IF c >= 100 THEN LET c$=(STR$ c)+"_": GOTO 2290
2270 IF c<10 THEN LET c$=" "+(STR$ c)+"_": GOTO 2290
2275 LET c$=" "+STR$ c+"_"
2290 IF t>6 THEN GOTO 2500
2295 RETURN
2296 REM
2297 REM **********************
2300 REM **** VEKTOR-EREDŐ ****
2301 REM **********************
2302 REM
2305 LET c$="": IF t$="h" THEN LET dx=x-hx: LET dy=y-hy: GOTO 2320
2310 LET dx=hx-x: LET dy=hy-y
2320 IF dx >= 0 THEN LET c$=" "
2325 LET c$=c$+STR$ dx
2330 IF dy >= 0 THEN LET c$=c$+" "
2335 LET c$=c$+STR$ dy
2340 IF t>6 THEN GOTO 2500
2345 RETURN
2500 LET dx=0: LET dy=0: LET dx=INT (RND*3)-1: IF dx <> 0 THEN GOTO 2530
2505 LET dy=INT (RND*3)-1
2530 IF hy+dy >= 0 AND hy+dy<10 THEN LET hy=hy+dy
2540 IF hx+dx >= 0 AND hx+dx<10 THEN LET hx=hx+dx
2550 RETURN
2560 REM
3000 REM *******************
3001 REM **A KÉRÉS TALÁLT***
3002 REM *****KIJELZÉS******
3003 REM *******************
3005 REM
3010 PRINT AT 5+g,21;"(";x;",";y;")";AT 5+g,26;c$
3015 PRINT AT 19-(y*2),2+(x*2); INK 2; PAPER 6; FLASH 1; BRIGHT 1;"_"
3017 LET w$="T170O3N1cge3C"
3020 LET x$="T170O5N1cge3C"
3025 LET y$="T170O7N1cge3C"
3027 _w$,x$,y$
3030 PRINT AT 19-(y*2),2+(x*2); INK 2; PAPER 6; FLASH 1; BRIGHT 1;g
3050 RETURN
3055 REM
3100 REM ********************
3300 REM ***** HEURÉKA! *****
3301 REM *** MEGTALÁLTAM! ***
3302 REM ********************
3305 REM
3310 LET c$="IGEN!"
3315 PRINT AT 5+g,21;"(";x;",";y;")";AT 5+g,26;c$
3320 PRINT AT 19-(y*2),2+(x*2); INK 2; PAPER 6; FLASH 1; BRIGHT 1;"_"
3321 FOR n=1 TO 2
3322 LET x$="T240O2bb9E2bEb3E9B"
3323 LET y$="T240O4bb9E2bEb3E9B"
3324 LET z$="T240O6bb9E2bEb3E9B"
3325 _x$,y$,z$
3326 NEXT n
3327 PRINT AT 18-(y*2),1+(x*2); INK 7; PAPER 2; BRIGHT 1;"__ ";AT 19-(y*2),1+(x*2);"___";AT 20-(y*2),1+(x*2);"___"
3330 PRINT 1;AT 1,0;" "; BRIGHT 1; PAPER 6; INK 2;" MEGTAL_LTAD ";g;" L_P_SBEN!!! "
3340 PAUSE 200
3350 PRINT 1;AT 0,1;" "; BRIGHT 1; PAPER 6; INK 2;" NYOMD AZ M-ET MÁSOLÁSHOZ ";AT 1,1;" AZ F-ET A FOLYTATÁSHOZ "
3355 LET k$=INKEY$: IF k$="" THEN GOTO 3355
3360 IF k$="M" OR k$="m" THEN _"UX6000W7C": COPY : GOTO 3500
3365 IF k$ <> "f" AND k$ <> "F" THEN _"UX6000W7C": GOTO 3355
3370 GOSUB 98
3375 GOTO 3500
3380 REM
3398 REM **********************
3399 REM ******ELHIBÁZTAD******
3400 REM *ÜZENET 10 LÉPÉS UTÁN*
3401 REM **********************
3402 GOSUB 98
3403 PRINT 1;AT 1,1; INK 0; PAPER 5; BRIGHT 1; FLASH 1;"A KINCS ELREJTVE( ";hx;" , ";hy;" )-NÁL"
3405 PRINT AT 18-(hy*2),1+(hx*2); INK 7; PAPER 2; BRIGHT 1;"__ ";AT 19-(hy*2),1+(hx*2);"___";AT 20-(hy*2),1+(hx*2);"___"
3410 LET c$="ITT!!"
3420 PRINT AT 5+g,21; BRIGHT 1; FLASH 1;"(";hx;",";hy;")";AT 5+g,26;c$
3425 PAUSE 500: GOTO 3350
3430 REM
3500 REM *******************
3501 REM ****JÁTÉK VÉGE*****
3503 REM *******************
3505 REM
3510 PAPER 5: INK 1: BORDER 5: CLS
3512 GOSUB 5080
3515 PRINT AT 1,0; PAPER 7; INK 3;"_________________________________K I N C S E S S Z I G E T __________________________________"
3520 PRINT AT 5,7; INK 2;"J Á T É K V É G E,"
3525 PRINT AT 7,2;"VAGY MÉG VÁLASZTÁSI LEHETŐS-";AT 8,5;" GET ADOK NEKED:"
3530 PRINT AT 10,1;" 1. JÁTSZOL MÉGEGYSZER A VÁ-";AT 11,5;" LASZTOTT FOKOZATTAL?"
3535 PRINT AT 13,1;" 2. MÁSIK FOKOZATOT AKARSZ";AT 14,5;" VÁLASZTANI?"
3540 PRINT AT 16,1;" 3. BEFEJEZED A JÁTÉKOT,SOHA";AT 17,5;"TÖBBÉ NEM AKAROD AZ _ÁSATÁ";AT 18,5;"SOKAT VEZETNI?"
3545 PRINT AT 20,8; BRIGHT 1; FLASH 1;"VÁROM A VÁLASZT!"
3550 LET k$=INKEY$: IF k$="" THEN GOTO 3550
3560 IF CODE k$<49 OR CODE k$>51 THEN _"UX6000W7C": GOTO 3550
3565 GOTO 3560+(VAL k$*10)
3570 PRINT AT 9,1; BRIGHT 1; FLASH 1; INK 2;"1": PAUSE 150: GOTO 500
3580 PRINT AT 11,1; BRIGHT 1; FLASH 1; INK 2;"2": PAUSE 150: GOTO 100
3590 PRINT AT 13,1; BRIGHT 1; FLASH 1; INK 2;"3": PAUSE 150
3595 REM
3600 REM *******************
3601 REM **VÉGE ÉS KILÉPÉS**
3602 REM *******************
3603 REM
3610 CLS
3615 PRINT AT 10,2; FLASH 1; PAPER 0; INK 2;"JÓL MEGGONDOLTAD A KILÉPÉST?"
3620 PRINT AT 12,10;" IGEN / NEM ?"
3625 LET k$=INKEY$: IF k$="" THEN GOTO 3625
3630 GOSUB 98
3635 IF k$="I" OR k$="i" THEN RANDOMIZE USR 0
3640 IF k$="n" OR k$="N" THEN GOTO 3500
3645 _"UX6000W7C": GOTO 3625
5000 REM ***************
5001 REM *** U D G-k ***
5002 REM ***************
5010 FOR k=65368 TO 65471
5015 READ a: POKE k,a
5020 NEXT k
5022 BORDER 0: PAPER 0: INK 7: CLS
5050 DATA 24,24,24,255,255,24,24,24
5052 DATA 0,0,0,255,255,0,0,0
5054 DATA 24,24,24,24,24,24,24,24
5056 DATA 0,0,16,56,84,16,16,16
5058 DATA 24,24,0,0,0,85,85,127
5060 DATA 16,16,48,175,175,48,16,16
5062 DATA 120,48,48,243,243,0,0,0
5064 DATA 16,16,16,19,19,0,0,0
5066 DATA 99,99,99,227,247,0,0,24
5068 DATA 127,73,91,255,201,65,85,127
5070 DATA 0,0,0,240,240,0,0,0
5072 DATA 48,72,72,48,0,0,0,0
5074 DATA 0,73,42,0,99,0,42,73
5080 INK 1: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
5085 PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173
5090 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
5100 RETURN
5105 REM
5110 REM *******************
5115 REM **a JÁTÉK MENTÉSE**
5120 REM *******************
5125 REM
5200 SAVE "inka" LINE 2
5210 CLEAR 29999: SAVE "betukod"CODE 30000,768
5215 SAVE "ekezet"CODE USR "n",56
5220 POKE 23606,0: POKE 23607,148
5230 REM ÉKEZETES BET
ŰK q=Á r=É o=Ó p=Ő r=É s=Ű5235 REM
5240 REM a program befejezve 2001 febr.
FORMA 1 NYILVÁNTARTÓ PROGRAM
Leírás: A Spectrum nemcsak játékra volt használható, hanem nyilvántartásra is. Erre bizonyíték e program, mely 1999-es igazi adatokat tartalmaz. Egy teljes éven át készült, mindig beírva a verseny állásokat.

0 REM FORMA1 NYILVÁNTARTÓ
1 REM ÍRTA:
2 REM NYITRAI LÁSZLÓ
3 REM 1998-BAN
5 LET STOP=PEEK 23613+256*PEEK 23614: REM BREAK VÉDELEM
6 POKE STOP,0: POKE STOP+1,0
8 GO TO 200
10 DIM n$(20,15): REM NEVEK
12 DIM i$(20,10): REM ISTÁLLÓK
20 DIM f$(16,15): REM FUTAMOK
22 DIM p(32): REM PONTOK
30 LET m0=55000: REM MEMÓRIA RAKTÁR-CÍM
40 DIM k(6): DIM t$(6,13): DIM e$(4,32)
50 REM ÚJ ÉV KEZDÉSE
100 INPUT "MELYIK ÉVET AKAROD ?",b$
110 IF b$="UJ" THEN LET nm=0: LET fm=0: GO TO 200
115 REM ADATOK BETÖLTÉSE
120 LOAD "NEV"+b$ DATA n$()
130 LOAD "IST"+b$ DATA i$()
140 LOAD "FUT"+b$ DATA f$()
150 LOAD "PON"+b$ DATA p()
160 LET nm=p(31): LET fm=p(32)
170 LOAD "FORMA1"+b$ CODE m0,fm*212
180 REM KERETEZuS uS FÜCÁM
200 BORDER 1: PAPER 6: INK 1: CLS : GO SUB 9250: GO SUB 9001
201 FOR A=1 TO 6: PRINT AT 3*A,3;: PLOT 20,181-A*24: DRAW 100,0: DRAW 0,-21: DRAW -100,0: DRAW 0,21: NEXT A
205 LET STOP=PEEK 23613+256*PEEK 23614: REM BREAK VÉDELEM
206 POKE STOP,0: POKE STOP+1,0
210 PRINT PAPER 6; INK 2;AT 0,5;"FŐMENŰ:": PRINT AT 3,20;"FORMA 1"; INK 3;AT 5,17;"VILÁGBAJNOKI";
INK 5;AT 7,17; INK 1;"VERSENYNAPTÁR";AT 9,18;"ÉS EREDMÉNY-";AT 11,18;"NYILVÁNTARTÓ"; INK 2;AT 13,20;"NYITRAI"; INK 1;AT 15,19;"BASIC-BEN"212 PRINT INK 2;AT 17,19;" 1999"
220 PRINT INK 1;AT 3,3;"1.ÚJ ADATOK";AT 4,5;"BEIRÁSA"
230 PRINT INK 3;AT 6,3;"2. KERESÉS";AT 7,4;"ADATOK UTÁN"
232 PRINT INK 1;AT 9,3;"3.98'NAPTÁR"; INK 0;AT 10,3;"FEKETE OLDAL"
233 PRINT INK 2;AT 12,3;"4.HUNG.RING";AT 13,3;"MAGYARORSZÁG"
234 PRINT INK 1;AT 15,3;"5.99'NAPT"R,";AT 16,4;"VERSENYZŐK"
240 PRINT INK 2;AT 18,3;"6.ISTÁLLÓK";AT 19,4;"SZPONZOROK"
243 INK 1: PLOT 17,160: DRAW 106,0: DRAW 0,-147: DRAW -106,0: DRAW 0,147
244 FOR A=1 TO 7: PLOT 124+A,150: DRAW 0,-145: PLOT 25,12-A: DRAW 100,0: NEXT A
247 PRINT INK 1;AT 20,17;"MELYIKET"; INK 3;AT 21,25;"KÉRED?"
248 PAUSE 5: PRINT INK 2;AT 3,17;X$(1 TO 12): BEEP .01,-10: LET X$=X$(2 TO )+X$(1)
255 REM ÚJ ADATOK
260 IF INKEY$="1" THEN GO TO 1000
265 REM KERESÉS
270 IF INKEY$="2" THEN GO TO 2000
271 REM 1998 NAPTÁR
272 IF INKEY$="3" THEN GO TO 6100
273 REM HUNGARORING
274 IF INKEY$="4" THEN GO TO 6200
275 REM 1999 NAPTÁR
276 IF INKEY$="5" THEN GO TO 6300
277 REM ISTÁLLÓK
280 IF INKEY$="6" THEN GO TO 6400
282 REM NYOMTATÁS
285 IF INKEY$="M" THEN GO SUB 9200
290 GO TO 248
1000 REM ADATOK BEVITELE
1005 CLS
1010 LET nr=nm
1020 PRINT AT 12,0;"EZ LESZ A ";fm+1;".VILÁGBAJNOKI FUTAM!"
1030 INPUT "KÉREM A FUTAM-HELYSZÍN-NEVÉT !",f$(fm+1)
1040 IF LEN f$(fm+1)>15 THEN GO TO 1030
1050 FOR w=1 TO 6
1060 LET d$="A ": IF w=1 OR w=5 THEN LET d$="AZ "
1070 PRINT AT 2,0;d$;w;". HELYEZETT ADATAIT KÉREM!"
1080 IF fm=0 THEN GO TO 1150
1090 FOR n=1 TO nr
1100 PRINT n;TAB (4);n$(n)
1110 NEXT n
1120 INPUT "SZEREPEL A KERESETT NÉV ?",a$
1130 IF a$="i" OR a$="I" THEN GO TO 1210
1140 IF a$<>"n" AND a$<>"N" THEN GO TO 1120
1150 LET nm=nm+1
1160 INPUT "A VERSENYZŐ NEVE ?",n$(nm)
1170 IF LEN n$(nm)>20 THEN GO TO 1160
1180 INPUT "AZ ISTÁLLÓ NEVE?",i$(nm)
1190 IF LEN i$(nm)>10 THEN GO TO 1180
1200 LET k(w)=nm: GO TO 1250
1210 INPUT "A VERSENYZŐ KÓDJA ?",a
1220 IF a<1 OR a>nm OR a<>INT (a) THEN GO TO 1210
1230 LET k(w)=a
1250 INPUT "IDŐEREDMÉNYE ?",t$(w)
1260 IF LEN t$(w)>13 THEN GO TO 1250
1270 NEXT w
1280 REM A BEÍRT ADATOK MEGJELENÍTÉSE
1300 CLS : PRINT AT 1,5;f$(fm+1): PRINT
1310 FOR w=1 TO 6
1320 PRINT w;". ";n$(k(w))
1330 PRINT TAB (10);i$(k(w))
1340 PRINT TAB (15);t$(w)
1350 NEXT w
1360 INPUT "MEGFELELNEK AZ ADATOK ? ";a$
1370 IF a$="N" OR a$="n" THEN LET nm=nr: GO TO 1020
1380 IF a$<>"I" AND a$<>"i" THEN GO TO 1360
1400 CLS : PRINT AT 5,10;"MEGJEGYZÉSEK"
1410 FOR w=1 TO 4
1420 INPUT e$(w)
1430 IF LEN e$(w)>32 THEN GO TO 1420
1440 PRINT e$(w)
1450 NEXT w
1470 INPUT "MEGFELELNEK AZ ADATOK ?",a$
1480 IF a$="N" OR a$="n" THEN GO TO 1400
1490 IF a$<>"I" AND a$<>"i" THEN GO TO 1470
1500 CLS : PRINT "KIS TÜRELMET KÉREK,RAKTÁROZOM!"
1510 LET k1=m0+fm*212
1520 FOR w=1 TO 6
1530 POKE k1,k(w): LET k1=k1+1
1540 NEXT w
1550 FOR w=1 TO 6
1560 FOR i=1 TO 13
1570 POKE k1,CODE t$(w,i): LET k1=k1+1
1580 NEXT i
1590 NEXT w
1600 FOR w=1 TO 4
1610 FOR i=1 TO 32
1620 POKE k1,CODE e$(w,i): LET k1=k1+1
1630 NEXT i
1640 NEXT w
1650 LET fm=fm+1
1660 LET p(k(1))=p(k(1))+10
1670 LET p(k(2))=p(k(2))+6
1680 LET p(k(3))=p(k(3))+4
1690 LET p(k(4))=p(k(4))+3
1700 LET p(k(5))=p(k(5))+2
1710 LET p(k(6))=p(k(6))+1
1750 INPUT "FOLYTATOD AZ ADATBEVITELT ? ",a$
1760 IF a$="I" OR a$="i" THEN GO TO 1000
1770 IF a$<>"N" AND a$<>"n" THEN GO TO 1750
1780 LET p(31)=nm: LET p(32)=fm
1800 INPUT "MELYIK ÉV?",b$
1810 IF LEN b$>2 THEN GO TO 1800
1820 GO TO 200
1825 REM ADATMENTÉS-TÁROLÁS
1830 SAVE "NEV"+b$ DATA n$()
1840 SAVE "IST"+b$ DATA i$()
1850 SAVE "FUT"+b$ DATA f$()
1860 SAVE "PON"+b$ DATA p()
1870 SAVE "FORMA1"+b$ CODE m0,fm*212
1872 SAVE "F1UDG"CODE USR "A",168
1875 SAVE "F1"LINE 200
1880 GO TO 200
2000 REM VISSZAKERESÉS
2005 CLS
2010 PRINT INK 2;AT 1,3;"MI ALAPJÁN AKARSZ KERESNI ?"
2012 BEEP .01,10
2015 FOR A=1 TO 6: PRINT AT A*3,3;: PLOT 20,181-A*24: DRAW 210,0: DRAW 0,-21: DRAW -210,0: DRAW 0,21: NEXT A
2016 INK 1: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175: PLOT 2,2: DRAW 251,0: DRAW 0,171: DRAW -251,0: DRAW 0,-171
2020 PRINT INK 1;AT 3,5;"1.FUTAMOK-HELYSZÍNEI"
203
0 PRINT INK 3;AT 6,5;"2.VERSENYZŐK-NEVEI"2040 PRINT INK 0;AT 9,5;"3.FUTAM-GYŐZTESEK"
2050 PRINT INK 1;AT 12,3;"4.VERSENYZŐK PONTVERSENYE"
2060 PRINT INK 3;AT 15,3;"5.ISTÁLLÓK PONTVERSENYE"
2070 PRINT INK 2;AT 18,6;"6.VISSZA A FŐMENŰHÖZ"
2072 PRINT INK 1;AT 21,5;" VÁROM A VÁLASZT 1-6 ?"
2080 INPUT a$: CLS
2085 IF A$="M" THEN GO SUB 9200
2090 LET a=VAL (a$)
2100 IF a<1 OR a>6 OR a<>INT (a) THEN GO TO 2000
2110 GO TO 3000+a*1000
4001 REM FUTAMHELYSZÁNEK
4004 CLS : PRINT : PRINT INK 2;" 1999 ÉVI FORMA 1 HELYSZÍNEK:": PRINT
4005 PRINT "AUSZTRALIA"'" BRAZILIA"'" SAN MARINO"'" MONTE-CARLO"'" SPANYOLORSZAG"'" CANADA"'" FRANCIAORSZAG"'" ANGLIA"
4007 PRINT " AUSZTRIA"'" NEMETORSZAG1"'" MAGYARORSZAG"'" BELGIUM"'" OLASZORSZAG"'" NEMETORSZAG2"'" MALAYSIA"'" JAPAN"
4010 INPUT "KÉREM A LISTÁBÓL A FUTAMNEVET!",v$
4020 IF LEN v$>15 THEN GO TO 4010
4025 CLS
4030 LET v$=(v$+" ")(1 TO 15)
4040 FOR w=1 TO fm
4050 IF f$(w)=v$ THEN GO TO 4100
4060 NEXT w
4070 PRINT INK 2;"NEM SZEREPEL ILYEN FUTAMNÉV !"
4075 PAUSE 0
4080 IF INKEY$="" THEN GO TO 4080
4090 GO TO 2000
4100 LET wr=w
4110 BORDER 6: PAPER 6: INK 1: CLS
4112 PRINT AT 2,5;"A HELYSZÍN: ";f$(wr)
4120 LET k1=m0+(wr-1)*212
4130 FOR w=1 TO 6
4140 LET k(w)=PEEK (k1): LET k1=k1+1
4150 NEXT w
4160 DIM x(6)
4165 LET y=28
4170 FOR f=1 TO 6: BEEP .005,2: BEEP .005,-5
4175 INK (f-1): PRINT AT 3+2*f,y-x(f);"?1o "
4180 LET x(f)=x(f)+RND*2.5
4185 IF x(f)>26 THEN GO TO 4200
4190 NEXT f
4195 GO TO 4170
4200 REM EREDMÉNYEK
4201 FOR w=1 TO 6
4210 PRINT AT 3+2*w,1; INK 2;w;".";n$(k(w))
4220 PRINT INK 1;AT 3+2*w,20;i$(k(w))
4230 REM PRINT INK 1;TAB (14);" ";
4250 FOR i=1 TO 13
4260 PRINT CHR$ (PEEK (k1));: LET k1=k1+1
4270 NEXT i
4280 PRINT " "
4285 NEXT w
4286 GO SUB 9500
4290 PRINT INK 3;AT 18,5;"HELYEZÉSEK 1-6-IG"; INK 1;AT 20,0;"NYOMJ EGY GOMBOT-TOVÁBBLÉPÉSHEZ"
4300 IF INKEY$="" THEN GO TO 4300
4305 IF INKEY$="M" THEN GO SUB 9200
4310 CLS : PRINT TAB (5);f$(wr)
4320 PRINT AT 5,10;"MEGJEGYZÉSEK": PRINT
4330 FOR w=1 TO 128
4340 PRINT CHR$ (PEEK (k1));: LET k1=k1+1
4350 NEXT w
4360 IF INKEY$="" THEN GO TO 4360
4370 GO TO 2000
5000 REM KERESÉS VERSENYZŐK UTÁN
5015 CLS : INK 2: PRINT " HELYEZÉST ELÉRT VERSENYZŐK:": PRINT : INK 1
5020 FOR n=1 TO nm
5030 PRINT AT N+1,1;"NuV: ";N$(n);AT N+1,24;"KÂD:";n;"."
5040 NEXT n
5050 INPUT "A VERSENYZŐ KÓDJA ? ",a
5060 IF a<1 OR a>nm OR a<>INT (a) THEN GO TO 5050
5070 CLS : PRINT INK 2;AT 0,3;"A KERESETT VERSENYZŐ:";AT 2,1; INK 1;n$(a);i$(a)
5100 FOR n=1 TO fm
5110 LET k1=m0+(n-1)*212
5120 FOR w=1 TO 6
5130 IF a=PEEK (k1) THEN PRINT INK 1;AT N+3,2;f$(n);w;".": GO TO 5155
5140 LET k1=k1+1
5150 NEXT w
5155 IF w=1 THEN PRINT INK 3;AT 3+N,20;"DOBOGÓS 10P."
5156 IF w=2 THEN PRINT INK 3;AT 3+N,20;"DOBOGÓS 6P."
5157 IF w=3 THEN PRINT INK 3;AT 3+N,20;"DOBOGÓS 4P."
5158 IF w=4 THEN PRINT AT 3+N,20;"HELYEZÉS 3P."
5159 IF w=5 THEN PRINT AT 3+N,20;"HELYEZÉS 2P."
5160 IF w=6 THEN PRINT AT 3+N,20;"HELYEZÉS 1P."
5161 IF a<>PEEK (k1) THEN PRINT INK 2;AT N+3,0;f$(n);"NINCS HELYEZÉS"
5162 NEXT n
5165 PRINT INK 3;AT 20,2;"EDDIGI EREDMÉNYE:";p(a);" PONT"
5170 PRINT AT 21,5;"NYOMJ EGY GOMBOT !"
5180 IF INKEY$="" THEN GO TO 5180
5185 IF INKEY$="M" THEN GO SUB 9200
5190 GO TO 2000
6000
REM FUTAMGYŐZTESEK PONTJAI6001 CLS : GO SUB 9001
6002 PRINT INK 2;AT 2,3;"A GYŐZELEMÉRT JÁRÓ PONTOK:"
6003 PRINT INK 1;AT 8,2;"ELSŐ HELYEZETT:10 PONT";AT 9,2;"MÁSODIK HELYEZETT: 6 PONT";AT 10,2;"HARMADIK HELYEZETT: 4 PON
T"6004 PRINT AT 11,2;"NEGYEDIK HELYEZETT: 3 PONT";AT 12,2;"ÖTÖDIK HELYEZETT: 2 PONT";AT 13,2;"HATODIK HELYEZETT: 1 PONT"
6006 PRINT AT 21,6;"NYOMJ EGY GOMBOT": PAUSE 0
6010 REM KERESÉS-FUTAMGYŐZTESEK UTÁN
6015 CLS : PRINT INK
2;AT 1,4;"1999 ÉVI FUTAMGYŐZTESEK:";AT 2,4;"-----------------------"; INK 3;AT 3,2;" HELYSZÍN: VERSENYZŐK:"6020 FOR w=1 TO fm
6030 LET k1=m0+(w-1)*212
6045 PRINT AT W+4,0; INK 3;w;"."; INK 1;AT W+4,3;f$(w); INK 2;AT W+4,17;n$(PEEK (k1))
6048 BEEP .01,W
6050 NEXT w
6060 PRINT 0;" NYOMJ EGY GOMBOT"
6065 REM FUTAMMÁSODIKOK
6070 PAUSE 0: BORDER 4: PAPER 4: CLS
6071 PRINT INK 2;AT 1,4;"1999 ÉVI FUTAM-MÁSODIKOK:";AT 2,4;"-------------------------"; INK 3;AT 3,2;" HELYSZÍN
: VERSENYZŐK:"6072 FOR w=1 TO fm: LET k1=m0+(w-1)*212: LET k1=k1+1
6073 PRINT AT W+4,0; INK 2;w;"."; INK 1;AT W+4,3;f$(w); INK 3;AT W+4,17;n$(PEEK (k1)): BEEP .02,-W: NEXT W
6074 PRINT 0;" NYOMJ EGY GOMBOT"
6075 REM FUTAMHARMADIKOK
6076 PAUSE 0: BORDER 1: PAPER 1: INK 7: CLS
6077 PRINT INK 2;AT 1,4;"1999 uVI FUTAM-HARMADIKOK:";AT 2,4;"-------------------------"; INK 6;AT 3,2;" HELYSZÍN: VERSENYZŐK:"
6078 FOR w=1 TO fm: LET k1=m0+(w-1)*212: LET k1=k1+2
6079 PRINT AT W+4,0; INK 2;w;"."; INK 6;AT W+4,3;f$(w); INK 3;AT W+4,17;n$(PEEK (k1)): BEEP .02,-W: NEXT W
6083 PRINT 0;" NYOMJ EGY GOMBOT"
6084 IF INKEY$="" THEN GO TO 6084
6085 IF INKEY$="M" THEN GO SUB 9200
6086 BORDER 1: PAPER 6: INK 0: CLS
6090 GO TO 2000
6100 REM 1998 BAJNOKI NAPTÁR
6110 CLS : GO SUB 9001
6120 PRINT AT 1,1;" 1998 ÉVI VERSENY-NAPTÁR:"
6122 PRINT INK 2;AT 3,1;"1.AUSZTRÁLIA ALBERT PARK MÁRC 8"
6124 PRINT INK 3;AT 4,1;"2.BRAZILIA INTERLAGOS MÁRC 29"
6126 PRINT INK 1;AT 5,1;"3.ARGENTINA GALVEZ ÁPRILIS 12"
6128 PRINT INK 2;AT 6,1;"4.SAN MARINO IMOLA ÁPRILIS 26"
6130 PRINT INK 0;AT 7,1;"5.SPANYOLO. CATALUNYA MÁJUS 10"
6133 PRINT INK 1;AT 8,1;"6.MONTE-CARLO MONACO MÁJUS 24"
6135 PRINT INK 2;AT 9,1;"7.CANADA VILLENEUVE JÚNIUS 7"
6137 PRINT INK 3;AT 10,1;"8.FRANCIAO. NERVERS JÚNIUS 28"
6139 PRINT INK 1;AT 11,1;"9.ANGLIA SILVERSTONE JÚLIUS 12"
6140 PRINT INK 2;AT 12,1;"10.AUSZTRIA ZELTWEG JÚLIUS 26"
6142 PRINT INK 3;AT 13,1;"11.NÉMETO. HOCKENHEIM AUG 2"
6144 PRINT INK 0;AT 14,1;"12.MAGYARO. HUNGARORING AUG 16"
6146 PRINT INK 2;AT 15,1;"13.BELGIUM SPA-F.CHAMPS AUG 30"
6150 PRINT INK 1;AT 16,1;"14.OLASZORSZÁG MONZA SZEPT 13"
6155 PRINT INK 0;AT 17,1;"15.NÉMETO.NÜRBURGRING SZEPT 27"
6160 PRINT INK 2;AT 18,1;"16.JAPÁN SUZUKA NOVEMBER 1"
6166 BRIGHT 1: PRINT INK 1;AT 20,6;"NYOMJ EGY GOMBOT": BRIGHT 0
6167 PAUSE 0: CLS : GO TO 6210
6200 REM HUNGARORING- MAGYARORSZÁG
6202 CLS : GO SUB 9001
6203 PRINT INK 2;AT 1,3;"HUNGARORING-MAGYARORSZÁG"
6204 PRINT INK 3;AT 2,3;"A PÁLYA 1985-BEN ÉPÜLT.";AT 3,1;"AZ ELSŐ VERSENY 1986-BAN VOLT."
6205 PRINT INK 1;AT 4,1;"A KÖRÖK SZÁMA: 77.";AT 5,1;"A VERSENYTÁV: 305.536 KM.."
6206 PRINT INK 1;AT 6,1;"A P
ÁLYAHOSSZ: 3968 MÉTER."; INK 2;AT 7,5;"AZ EDDIGI GYŐZTESEK:"6207 PRINT INK 1;AT 8,1;"1986 NELSON PIQUET";AT 9,1;"1987 NELSON PIQUET";AT 10,1;"1988 AYRTON SENNA";AT 11,1;"1989 NIGEL MANSELL";AT 12,1;"1990 THIERRY BOUTSEN";AT 13,1;"1991 AYRTON SENNA";AT 14,1;"1992 AYRTON SENNA"
6208 PRINT INK 1;AT 15,1;"1993 DAMON HILL";AT 16,1;"1994 MICHAEL SCHUMACHER";AT 17,1;"1995 DAMON HILL";AT 18,1;"1996 JACQUES VILLENEUVE";AT 19,1;"1997 JACQUES VILLENEUVE";AT 20,1;"1998 MICHAEL SCHUMACHER";AT 21,1;"1999 MIKA HAKKINEN"
6209 PAUSE 0: CLS : GO TO 200
6210 GO SUB 9001
6215 REM 1998 VÉGEREDMÉNY
6220 PRINT AT 1,1;"1998 ÉVI VILÁGBAJNOKSÁG VÉGE:"
6222 PRINT INK 2;AT 3,1;"1.MIKA HAKKINEN FINNO.100 PONT"
6224 PRINT INK 3;AT 4,1;"2.MIC.SCHUMACHER NÉMET 86 PONT"
6226 PRINT INK 1;AT 5,1;"3.DAVID COULTHARD SKÓT 56 PONT"
6228 PRINT INK 2;AT 6,1;"4.EDDIE IRVINE ANGOL 47 PONT"
6230 PRINT INK 0;AT 7,1;"5.JA.VILLENEUVE CANADA 21 PONT"
6232 PRINT INK 2;AT 8,1;"6.DEMON HILL ANGOL 20 PONT"
6234 PRINT INK 3;AT 9,1;"7.HEINZ FRENTZEN NÉMET 17 PONT"
6236 PRINT INK 1;AT 10,1;"8.ALEXANDER WURZ AUSZ. 17 PONT"
6238 PRINT INK 0;AT 11,1;"9.G.FISICHELLA OLASZO. 16 PONT"
6240 PRINT INK 3;AT 12,1;"10.R.SCHUMACHER NÉMET 14 PONT"
6242 PRINT INK 0;AT 13,1;"11.JEAN ALESI FRANCIAOR.9 PONT"
6245 PRINT INK 2;AT 14,1;"12.RUBEN BARICHELLO BRA.4 PONT"
6250 PRINT INK 1;AT 15,1;"13.PEDRO DINIZ BRAZILIA 3 PONT"
6255 PRINT INK 3;AT 16,1;"14.MIKA SALO FINNORSZÁG 3 PONT"
6260 PRINT INK 1;AT 17,1;"15.JAN MAGNUSSEN DÁNIA 1 PONT"
6265 PRINT INK 2;AT 18,1;"16.JOHNN.HERBERT ANGLIA 1 PONT"
6266 PRINT INK 0;AT 19,1;"17.JARNO TRULLI OLASZO. 1 PONT"
6268 PRINT INK 2;AT 21,5;" NYOMJ EGY GOMBOT "
6270 PAUSE 0
6271 REM ISTÁLLÓK 1998-BAN
6272 CLS : GO SUB 9001
6274 PRINT AT 1,1;"ISTÁLLÓK VÉGEREDMÉNYE 1998-BAN"
6276 PRINT AT 6,1;"1. MCLAREN-MERCEDES 156 PONT"
6278 PRINT AT 7,1;"2. FERRARI 133 PONT"
6280 PRINT AT 8,1;"3. WILLIAMS MACACHROME 38 PONT"
6282 PRINT AT 9,1;"4. JORDAN-MUGEN-HONDA 34 PONT"
6284 PRINT AT 10,1;"5. BENETTON MECACHROME 33 PONT"
6286 PRINT AT 11,1;"6. SAUBER-PATRONAS 10 PONT"
6287 PRINT AT 12,1;"7. ARROWS-TWR 6 PONT"
6288 PRINT AT 13,1;"8. STEWARD-FORD 5 PONT"
6289 PRINT AT 14,1;"9. PROST-PEUGEOT 1 PONT"
6290 PRINT INK 2;AT 21,5;" NYOMJ EGY GOMBOT ": PAUSE 0
6291 BORDER 0: PAPER 0: INK 7: CLS : GO SUB 9500
6292 INK 7: PRINT AT 2,5;"FORMA1 FEKETE OLDALA";AT 3,5;"--------------------";AT 4,1;"ÉLETÜKET VESZTETTÉK A FORMA 1 CIRKUSZNÁL:"
6293 PRINT AT 8,0;"ALBERTO ASCARI 1955,36 ÉVES VOLT";AT 9,0;"JIM CLARK 1968,32 ÉVES VOLT"
6294 PRINT AT 10,0;"GRAHAM HILL 1975,46 ÉVES VOLT";AT 11,0;"MIKE HAWTHORN 1959,29 ÉVES VOLT"
6295 PRINT AT 12,0;"BRUCE MCLAREN 1970,32 ÉVES VOLT";AT 13,0;"DIDIER PIRONI 1987,32 ÉVES VOLT"
6296 PRINT AT 14,0;"JOCHEN RINDT 1970,24 ÉVES VOLT"
6297 PRINT AT 15,0;"AYRTON SENNA 1994,32 ÉVES VOLT";AT 16,0;"G.VILLENEUVE 1982,32 ÉVES VOLT"
6298 PRINT AT 19,6;"NYOMJ EGY GOMBOT": PAUSE 0
6299 GO TO 200
6300 REM 1999 BAJNOKI NAPTÁR ÉS VERSENYZŐK
6301 CLS : GO SUB 9001
6302 PRINT AT 1,1;" 1999 ÉVI VERSENYZŐK:"
6303 PRINT AT 4,1;"MIKA HAKKINEN","DAVID COULTHARD"
6304 PRINT AT 5,1;"MIC.SCHUMACHER","EDDIE IRVINE"
6305 PRINT AT 6,1;"JOHNNY HERBERT","R.BARRICHELLO"
6306 PRINT AT 7,1;"JEAN ALESI","PEDRO DINIZ"
6307 PRINT AT 8,1;"OLIVER PANIS","JARNO TRULLI"
6308 PRINT AT 9,1;"MARC GENE","LUCA BADOER"
6309 PRINT AT 10,1;"J.VILLENEUVE","RICARDO ZONTA"
6310 PRINT AT 11,1;"ALEX ZANARDI","RALF SCHUMACHER"
6311 PRINT AT 12,1;"DE LA ROSA","TORA TAKAGI"
6312 PRINT AT 13,1;"G.FISICHELLA","ALEX WURZ"
6313 PRINT AT 14,1;"H.H.FRENTZEN","DAMON HILL"
6314 INK 2: PRINT AT 16,2;"MIKA SALO (FERRARI) PILÓTA";AT 17,1;"HELYETTESÍTETTE AZ ANGLI"BAN";AT 18,1;"KARAMBOLOZOTT M.SCHUMACHERT,";AT 19,1;"AKI MALAYSIÁBAN VISSZATÉRT": INK 1
6318 PRINT INK 3;AT 21,4;" NYOMJ EGY GOMBOT TOVÁBB ": PAUSE 0: CLS
6319 GO SUB 9001
6320 PRINT AT 1,1;" 1999 ÉVI VERSENY-NAPTÁR:"
6322 PRINT INK 2;AT 3,1;"1.AUSZTRÁLIA ALBERT PARK MÁRC 7"
6324 PRINT INK 3;AT 4,1;"2.BRAZILIA INTERLAGOS "PR 11"
6326 PRINT INK 2;AT 5,1;"3.SAN MARINO IMOLA MÁJUS 2"
6328 PRINT INK 1;AT 6,1;"4.MONTE-CARLO MONACO MÁJUS 24"
6330 PRINT INK 0;AT 7,1;"5.SPANYOLO. CATALUNYA MÁJUS 30"
6335 PRINT INK 2;AT 8,1;"6.CANADA VILLENEUVE JÚNIUS 13"
6337 PRINT INK 3;AT 9,1;"7.FRANCIAO. NERVERS JÚNIUS 27"
6339 PRINT INK 1;AT 10,1;"8.ANGLIA SILVERSTONE JÚLIUS 11"
6340 PRINT INK 2;AT 11,1;"9.AUSZTRIA ZELTWEG JÚLIUS 26"
6342 PRINT INK 3;AT 12,1;"10.NÉMETO. HOCKENHEIM AUG 1"
6344 PRINT INK 0;AT 13,1;"11.MAGYARO. HUNGARORING AUG 15"
6346 PRINT INK 2;AT 14,1;"12.BELGIUM SPA-F.CHAMPS AUG 29"
6350 PRINT INK 1;AT 15,1;"13.OLASZORSZÁG MONZA SZEPT 12"
6355 PRINT INK 0;AT 16,1;"14.NÉMETO.NÜRBURGRING SZEPT 26"
6358 PRINT INK 2;AT 17,1;"15.MALAYSIA SEPANG OKTÓBER 17"
6360 PRINT INK 3;AT 18,1;"16.JAPÁN SUZUKA OKTÓBER 31"
6370 PRINT AT 21,2;" NYOMJ EGY GOMBOT A MENŰHÖZ "
6398 PAUSE 0
6399 GO TO 200
6400 REM ISTÁLLÓK CIMEI
6410 CLS : GO SUB 9001
6420 PRINT INK 2;AT 2,5;"MELYIKET KÉRED ?"
6425 PRINT INK 1;AT 5,2;"A. WEST-MCLAREN MERCEDES"
6430 PRINT AT 6,2;"B. FERRARI"
6435 PRINT AT 7,2;"C. BAR-SUPERTEC"
6438 PRINT AT 8,2;"D. JORDAN-MUGEN-HONDA"
6440 PRINT AT 9,2;"E. SAUBER PETRONAS"
6445 PRINT AT 10,2;"F. ARROWS TWR"
6448 PRINT AT 11,2;"G. PROST PEUGEOT"
6450 PRINT AT 12,2;"H. STEWART-FORD"
6455 PRINT AT 13,2;"I. BENETTON SUPERTEC"
6458 PRINT AT 14,2;"J. WILLIAMS SUPERTEC"
6460 PRINT AT 15,2;"K. BENETTON MECACHROME"
6465 PRINT AT 16,2;"L. MINARDI-FORD"
6470 PRINT INK 2;AT 21,1;"NYOMJ EGY BETŰT,'V-t'MENŰHÖZ"
6480 PAUSE 0
6500 LET A$=INKEY$: CLS
6505 IF INKEY$="M" THEN GO SUB 9200
6507 IF INKEY$="V" THEN GO TO 200
6510 IF INKEY$="A" THEN GO TO 6600
6520 IF INKEY$="B" THEN GO TO 6700
6525 IF INKEY$="C" THEN GO TO 6800
6528 IF INKEY$="D" THEN GO TO 6900
6590 GO TO 200
6600 REM WEST-MCLAREN MERCEDES
6602 GO SUB 9001
6605 PRINT INK 2;AT 4,2;"WEST-MCLAREN MERCEDES"
6610 PRINT INK 1;AT 6,2;"MCLAREN INTERNATIONAL LTD."
6615 PRINT AT 7,2;" WOKING BUSINESS PARK."
6617 PRINT AT 8,2;" ALBERT DRIVE ,WOKING"
6620 PRINT AT 9,2;" SURREY GU21 5JY."
6625 PRINT AT 10,2;" UNITED KINGDOM"
6630 PRINT INK 2;AT 12,2;" VERSENYZŐK:"
6635 PRINT AT 14,5;" MIKA HAKKINEN";AT 16,5;" DAVID COULTHARD"
6645 PRINT INK 2;AT 18,5;"SZPONZOR:WEST CO."
6685 PRINT INK 1;AT 21,1;"EGY GOMBOT AZ ISTÁLLÓK MENŰ
HÖZ"6686 PAUSE 0
6690 CLS : GO TO 6400
6700 REM FERRARI ISTÁLLÓ
6702 GO SUB 9001
6704 PRINT AT 4,2;" FERRARI"
6710 PRINT AT 6,2;" FERRARI SPA"
6715 PRINT AT 7,2;" VIA ASCARI 55/57"
6720 PRINT AT 8,2;" 41053 MARANELLO"
6725 PRINT AT 9,2;" MODENA"
6730 PRINT AT 10,2;" ITALY"
6734 PRINT AT 12,2;" VERSENYZŐK:"
6740 PRINT AT 14,5;" MICHAEL SCHUMACHER";AT 15,7;"(MIKA SALO)";AT 16,5;" EDDIE IRVINE"
6745 PRINT INK 2;AT 18,5;"SZPONZOR:MARLBORO";AT 19,5;"ÉS A SHELL CORP."
6785 PRINT AT 21,1;"EGY GOMBOT AZ ISTÁLLÓK MENŰHÖZ"
6786 PAUSE 0
6790 CLS : GO TO 6400
7000 REM VERSENYZÜK PONTÁLLÁSA
7002 BORDER 1: PAPER 1: INK 6: CLS
7005 PLOT 20,12: DRAW 222,0: DRAW 0,157: DRAW -222,0: DRAW 0,-157
7006 LET z=10
7007 FOR x=21 TO 28
7008 PLOT x,z: DRAW 222,0: LET z=z-1: NEXT x
7009 LET Z=12
7010 FOR x=244 TO 251
7011 PLOT x,z: DRAW 0,157: LET z=z-1: NEXT x
7019 PRINT AT 0,5;"VERSENYZŐK PONTVERSENYE:"
7020 DIM s(nm,2)
7030 FOR w=1 TO nm
7040 LET s(w,1)=p(w): LET s(w,2)=w
7050 NEXT w
7060 FOR w=1 TO nm-1
7070 FOR n=nm-1 TO w STEP -1
7080 IF s(n+1,1)<=s(n,1) THEN GO TO 7110
7090 LET se=s(n,1): LET s(n,1)=s(n+1,1): LET s(n+1,1)=se
7100 LET se=s(n,2): LET s(n,2)=s(n+1,2): LET s(n+1,2)=se
7110 NEXT n
7120 PRINT AT W+1,3;w;". ";AT W+1,6;n$(s(w,2));AT W+1,25;s(w,1)
7130 NEXT w
7140 PRINT AT 19,3;w;". ";AT 19,6;n$(s(w,2));AT 19,25;s(w,1)
7145 PRINT 0;" NYOMJ EGY GOMBOT"
7150 PAUSE 0
7151 BORDER 1: PAPER 6: INK 1: CLS : GO SUB 9001
7152 PRINT INK 2;AT 1,4;"1999-BEN NINCS HELYEZÉSÜK: "
7153 INK 3: PRINT AT 7,2;"LUCA BADOER";AT 9,2;"J.VILLENEUVE";AT 11,2;"RICARDO ZONTA";AT 13,2;"ALEX ZANARDI"
7155 INK 1: PRINT AT 7,18;"MINARDI";AT 9,18;"BAR";AT 11,18;"BAR";AT 13,18;"WILLIAMS"; INK 3;AT 15,2;"TORA TAKAGI"; INK 1;AT 15,18;"ARROWS"
7158 PRINT INK 2;AT 21,5;"NYOMJ EGY GOMBOT"
7159 PAUSE 0
7160 GO TO 2000
8000 REM ISTÁLLÓK PONTJAI
8005 CLS : INK 1: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175: PLOT 2,2: DRAW 251,0: DRAW 0,171: DRAW -251,0: DRAW 0,-171
8010 PRINT INK 2;AT 2,1;"A KONSTRUKTŐRÖK PONTVERSENYE": PRINT : PRINT : PRINT
8020 DIM s(nm,2)
8030 LET s(1,1)=p(1): LET s(1,2)=1
8040 LET sm=1
8050 FOR w=2 TO nm
8060 FOR n=1 TO sm
8070 IF i$(w)=i$(s(n,2)) THEN LET s(n,1)=s(n,1)+p(w): GO TO 8100
8080 NEXT n
8090 LET sm=sm+1: LET s(sm,1)=p(w): LET s(sm,2)=w
8100 NEXT w
8110 FOR w=1 TO sm-1
8120 FOR n=sm-1 TO w STEP -1
8130 IF s(n+1,1)<=s(n,1) THEN GO TO 8160
8140 LET se=s(n,1): LET s(n,1)=s(n+1,1): LET s(n+1,1)=se
8150 LET se=s(n,2): LET s(n,2)=s(n+1,2): LET s(n+1,2)=se
8160 NEXT n
8170 PRINT TAB (4);w;". ";TAB (7);i$(s(w,2));" ";s(w,1);" PONT"
8180 NEXT w
8190 PRINT TAB (4);w;".";TAB (7);i$(s(w,2));" ";s(w,1);" PONT"
8195 INK 1: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175: PLOT 2,2: DRAW 251,0: DRAW 0,171: DRAW -251,0: DRAW 0,-171
8196 PRINT INK 2;AT 21,6;" NYOMJ EGY GOMBOT "
8200 IF INKEY$="" THEN GO TO 8200
8210 GO TO 2000
9000 GO TO 200
9001 REM DUPLA KERETEZÉS
9005 PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175: PLOT 2,2: DRAW 251,0: DRAW 0,171: DRAW -251,0: DRAW 0,-171: BEEP .01,10
9010 RETURN
9200 REM
AZ AKTUÁLIS KÉPERNYŐ NYOMTATÁSA9210 COPY
9220 RETURN
9250 LET X$="?11/2o FORMA 1 ?11/2o FORMA 1 ?11/2o FORMA 1 ?11/2o FORMA 1 ?11/2o FORMA 1 "
9260 RETURN
9415 BORDER 1: PAPER 6: INK 1: CLS
9420 RETURN
9500 REM DÍSZKERET
9510 INK 1
9520 PLOT 10,0: DRAW -10,10,PI/2: DRAW 0,155
9530 DRAW 10,10,PI/2: DRAW 235,0
9540 DRAW 10,-10,PI/2: DRAW 0,-155
9550 DRAW -10,-10,PI/2: DRAW -235,0
9560 RETURN
9998 REM A PROGRAM MINDEN VERSENYNAP UTÁN AKTUALIZÁLÁSRA KERÜL
9999 REM UTOLSÓ MÓDOSÍTÁS 1999 AUGUSZTUS 16
IZOTÓP KERESÉS
Leírás: Az USA haditengerészete véletlenül beleejtett több atombombát 1991-ben az Atlanti-óceánba, és ezt kell megkeresnünk egy búvárhajó segítségével. Munkánkat akadályozzák a sugárzás miatt rövidre szabott kutatási idő, a megkergült - mutáns-kék - polipok, és a nagyra nőtt hínár. Irányítás a kurzorgombokkal, három életünk van.

5 REM
10 REM *******************
20 REM * IZOTOP KERESES *
30 REM * *
40 REM * ugyessegi jatek *
50 REM * *
70 REM * NYITRAI 2000' *
80 REM *******************
85 REM
90 POKE 23609,10: POKE 23658,8: GO SUB 1140: GO SUB 1010: GO SUB 330: GO TO 110
100 GO SUB 1010: GO SUB 330
110 PAPER 5: CLS : POKE 23624,8: BORDER 1
120 GO SUB 770: GO SUB 820
130 LET x1=x: LET y1=y
140 PRINT AT y1,x1;" ";AT y1+1,x;" "
150 IF IN 32766=190 THEN GO SUB 520
160 LET x=x+(IN 57342=190)-(IN 57342=189): LET y=y+(IN 65022=190)-(IN 64510=190)
170 IF pu=1 THEN GO SUB 300
180 LET y=y+(y<1)-(y>16)
190 LET x=x-(x>30)+(x<0)
200 LET l=USR 60000
210 IF ATTR (y,x)<>40 OR ATTR (y+1,x)<>40 OR ATTR (y,x+1)<>40 OR ATTR (y+1,x+1)<>40 THEN GO SUB 860
212 REM *********************
213 REM * A BUVAR-HAJO *
214 REM *********************
220 PRINT INK 0;AT y,x;""1/4";AT y+1,x;"1/23/4"
230 IF ido=1 THEN GO TO 730
240 IF ido<100 THEN PRINT AT 21,16; PAPER 7;" ": IF ido<10 THEN PRINT AT 21,15; PAPER 7;" "
250 IF pu=1 THEN GO SUB 280
260 LET ido=ido-1: PRINT AT 21,14; PAPER 7;ido
270 GO TO 130
275 REM *********************
276 REM * RADIOAKTIV BOMBA *
277 REM *********************
280 PRINT AT y+2,x;"ÁÂ";AT y+3,x;"3Ş"
290 RETURN
300 PRINT AT y1+2,x1; PAPER 5;" ";AT y1+3,x1;" "
310 RETURN
315 REM *********************
320 REM * JATEK MAGYARAZAT *
325 REM *********************
326 BRIGHT 1
330 PAPER 0: CLS : INK 7: POKE 23624,15: CLS : BORDER 1
340 PRINT AT 0,0; INK 1;" KUTATAS AZ IZOTOP BOMBA UTAN "
350 PRINT INK 6;AT 2,0;" EBBEN A JATEKBAN, AZ AMERIKAILEGIERO ALTAL ELVESZTETT HAROMIZOTOP-BOMBAT KELL AZ ATLANTI"
360 INK 6: PRINT "OCEANBOL KIHALASZNOD. "; INK 2;"MUNKADATNEHEZITI A SUGARFERTOZESTOL MEGKERGULT NEHANY ORIAS KEK-POLIP."
370 INK 4: PRINT "A SUGARZASTOL SZINTEN VESZELYESLETT FENEKEN LEVO HINAR, EHHEZSEM LEHET HOZZAERNI,MERT AZ ELE-TEIDNEK HAMAROSAN VEGE LESZ."
380 PRINT INK 5;"IGYEKEZNED IS KELL,MERT A SUGAR-DOZIS MIATT LEALLITJAK A MUNKAT."
390 INK 7: PRINT AT 20,3;"Q=FEL;A=LE;O=BALRA;P=JOBBRA";AT 19,7;"SPACE=FELVESZ/LERAK"
400 PRINT AT 15,11;; INK 4;"? "; INK 2;"ÁÂ "; INK 6;" "1/4"
410
PRINT AT 16,11; INK 4;"y "; INK 2;"3Ş "; INK 6;" 1/23/4"420 PRINT INK 5;AT 18,0;" POLIP"; INK 4;" HINAR"; INK 2;" IZOTOP"; INK 6;" BUVAR-HAJO"
430 PRINT 0; INK 6;" Ketyeg a "; FLASH 1;"GEIGER"; FLASH 0;" szamlalo, NYOMD AZ 'I' GOMBOT !"
460 LET im=1
465 PRINT AT 0,0; INK im;" KUTATAS AZ IZOTOP BOMBA UTAN ": LET im=im+1: IF im=8 THEN LET im=1
467 PRINT AT 15,3; INK im;"·u";AT 16,3;"Üü"
470 PAUSE 6
480 IF INKEY$="i" OR INKEY$="I" THEN GO TO 510
490 PRINT AT 15,3; INK im;"ö¸";AT 16,3;"ou"
495 BEEP .01,im/10
500 PAUSE 6: GO TO 465
510 PAPER 5: CLS : BORDER 1: INK 0: BRIGHT 0: RETURN
520 IF y=16 THEN GO TO 550
530 IF y=1 THEN GO TO 580
540 IF y<>16 OR y<>1 THEN RETURN
550 IF ATTR (y+2,x)<>42 OR ATTR (y+2,x+1)<>42 THEN GO TO 620
560 LET pu=1: POKE 60230,INT (RND*6)+16: FOR n=10 TO 150 STEP 10: POKE 60228,n: LET l=USR 60227: NEXT n: PRINT AT y+2,x;" ";AT y+3,x;" ": BORDER 1
570 RETURN
580 IF x<10 OR x>20 OR pu=0 THEN RETURN
590 PRINT AT y1+2,x1;" ";AT y1+3,x1;" "
600 POKE 60230,INT (RND*6)+16: FOR n=150 TO 10 STEP -10: POKE 60228,n: LET l=USR 60227: NEXT n: BORDER 1
610 LET pu=0: LET pont=pont+100: PRINT AT 21,26; PAPER 7;pont: PAPER 5: LET can=can+1: LET puf=ft-can: IF can=ft+1 THEN GO TO 630
620 RETURN
625 REM ***********************
630 REM * SIKERES MEGTALALAS *
* UJABB FOKOZAT *
635 REM ***********************
640 CLS : PRINT INK 2;AT 4,2;"GRATULALOK,szuper buvar vagy!";AT 8,8;"ÁÂ
ÁÂ ÁÂ ÁÂ ÁÂ";AT 9,8;"3Ş 3Ş 3Ş 3Ş 3Ş"; INK 6;AT 12,3;" MEGTALALTAD AZ OSSZES RADIOAKTIV BOMBAT!!"650 PRINT AT 14,1; INK 1;"A SZERZETT IDOD: ";ido;" masodperc"
660 PRINT AT 16,2; INK 2; FLASH 1;"JUTALOM-pontjaid: ";ido;" pont": LET pont=pont+ido
670 FOR n=9 TO 90: POKE 60181,n: LET l=USR 60179: NEXT n
680 PRINT 0;" NYOMJ EGY GOMBOT,A KOVETKEZO FOKOZATHOZ!"
690 BORDER 1: PAUSE 0
700 LET can=0: LET ft=ft+1: LET puf=ft: LET pc=pc-3: IF ft=9 THEN LET ft=9
710 IF pc<1 THEN LET pc=1
720 CLS : LET y=1: LET ido=200+50*ft: LET z=z+1: GO SUB 1010: LET x=15: GO TO 120
730 CLS : PRINT AT 3,8; FLASH 1; INK 2;"LEJART AZ IDO!"; FLASH 0; INK 1;AT 5,1;"·u ö¸ ·u ö¸ ·u ö¸ ·u ö¸ ou ou ou ou ou ou ou ou"
740 PRINT INK 1;AT 9,2;"A RADIOAKTIV KIJELZOD SZERINT"''" TUL NAGY SUGARADAGOT KAPTAL"''" << HOLNAPIG >> "''" A KUTATAST MEGSZAKITOTTAM!"
750 FOR n=130 TO 9 STEP -1: POKE 60181,n: LET l=USR 60179: NEXT n
760 PAUSE 600: GO TO 910
770 FOR m=0 TO puf: FOR n=pc TO pc+puf*3 STEP 3: PRINT AT 18,n; INK 2;"ÁÂ": NEXT n: NEXT m
780 FOR m=0 TO puf: FOR n=pc TO p
c+puf*3 STEP 3: PRINT AT 19,n; INK 2;"3Ş": NEXT n: NEXT m790 INK 4: FOR n=0 TO 32 STEP 3: PRINT AT 16,n;"?": NEXT n: FOR n=0 TO 32 STEP 3: PRINT AT 17,n;"y": NEXT n
800 FOR n=0 TO 32 STEP 3: PRINT AT 18,n;"y": NEXT n: FOR n=0 TO 32 STEP 3: PRINT AT 19,n;"y": NEXT n
810 INK 0: RETURN
820 PRINT AT 20,0; PAPER 6;l$
830 PRINT AT 21,0; PAPER 7;l$: PRINT AT 21,0; PAPER 7;"ELET=";elet;" IDO= ";ido;" PONT= ";pont
840 PRINT AT 0,10;"1 ZSILIP o"
850 RETURN
860 POKE 60139,40: LET elet=elet-1: PRINT AT 21,5; PAPER 7;elet
870 LET car=can
880 LET l=USR 60201
890 IF elet=0 THEN GO TO 910
900 LET pu=0: LET y=1: LET x=16: CLS : GO TO 120
905 REM ******************
906 REM * A JATEK VEGE *
907 REM ******************
910 PAPER 0: POKE 23624,0: PAUSE 300
920 PRINT AT 20,0; PAPER 0; INK 6;" A JATEKNAK VEGE "
930 POKE 60230,17: FOR n=0 TO 19: POKE 60228,170: PRINT AT 21,0; PAPER 0;l$: LET l=USR 3280: RANDOMIZE USR 60227: NEXT n: BORDER 1
940 POKE 60181,255: PRINT AT 7,5; INK 5;"NE SIRJ,PROBALD UJRA !!": FOR n=0 TO 4: LET l=USR 60179: NEXT n
950 BORDER 1
960 PAUSE 30: PRINT AT 10,5; INK 4;"ELERT PONTSZAMOD: ";pont; INK 2;AT 12,6;"ELETEIDNEK SZAMA:";elet: LET l=USR 60201
970 PRINT 0;" NYOMJ EGY GOMBOT A JATEK FOLYTATASAHOZ !!"
980 INK 0: LET z=2: LET can=0: LET pc=10: LET ft=2: LET puf=ft: LET y=3: LET x=16
990 FOR n=42000 TO 42050: POKE n,0: NEXT n
1000 PAUSE 0: LET elet=9: LET ido=200: LET pont=0: GO TO 100
1005 REM ***********************
1006 REM * A POLIPOK SZAMA 1-5 *
1007 REM ***********************
1010 POKE 42000,4: POKE 42001,14: POKE 42002,1: POKE 42003,0: POKE 42004,1: POKE 42005,255
1020 CLS : LET a=42005
1030 FOR f=1 TO z
1040 POKE a,INT (RND*29+2)
1050 POKE a+1,INT (RND*10+4)
1060 POKE a+2,1
1070 POKE a+3,1
1080 IF NOT PEEK (a+2) AND NOT PEEK (a+3) THEN GO TO 1060
1090 POKE a+4,1
1100 POKE a+5,255
1110 LET a=a+5
1120 NEXT f
1130 RETURN
1135 REM ***********************
1136 REM *A SPRITE-K GEPI KODJA*
1137 REM ***********************
1140 LET osszeg=0: FOR n=60000 TO 60247: READ a: POKE n,a: LET osszeg=osszeg+a: NEXT n
1150 IF osszeg<>28578 THEN PRINT "HIBA AZ ADATOKBAN,NEHOGY FUTTASD !!": STOP
1160 DATA 221,33,16,164,221,126,0,254,255,40,34,95,221,86,1,6,2,62,22,215,122,215,123,215,62,32,215,62,32,215,20,16,240,221,35,221,35,221,35,221,35,221,35,24,215,221,33,16,164,221,126
1170 DATA 0,254,255,200,221,134,2,254,255,40,4,254,31,32,8,221,126,2,237,68,221,119,2,221,126,1,254,2,40,4,254,14,32,8,221,126,3,237,68,221,119,3,221,126,0,221,134,2,221,119
1180 DATA 0,221,126,1,221,134,3,221,119,1,14,144,221,203,4,126,40,10,221,203,4,190,62,4,129,79,24,4,221,203,4,254,221,126,4,203,191,198,40,50,143,92,221,86,1,6,2,62,22,215
1190 DATA 122,215,221,126,0,215,121,215,12,121,215,12,20,16,238,221,35,221,35,221,35,221,35,221,35,195,145,234
1200 DATA 243,14,255,62,16,237,163,65,16,254,62,7,237,163,65,16,254,13,32,239,251,201,6,35,197,33,0,3,17,1,0,229,205,181,3,225,17,16,0,167,237,82,32,240,193,16,233,201,14,0,62,16,211,254
1210 DATA 65,16,254,62,7,211,254,65,16,254,13,32,239,201
1215 REM *******************
1216 REM * AZ UDG-K *
1217 REM *******************
1220 RESTORE 1220: FOR n=USR "a" TO USR "t"+7: READ a: POKE n,a: NEXT n
1230 DATA 0,0,0,0,1,3,5,71,0,0,0,0,128,192,164,234,166,30,11,180,201,18,17,34,105,112,246,217,36,34,17,12
1240 DATA 0,0,0,0,33,67,69,37,0,0,0,0,128,195,164,168,39,159,139,116,9,17,98,12,233,242,244,216,37,34,32,16
1250 DATA 0,82,44,56,60,120,120,60,60,120,120,60,60,120,120,60,25,63,126,255,254,254,254,185,152,252,126,255,127,127,127,157,185,255,254,255,255,120,63,25,157,255,127,255,255,30,252,152
1260 DATA 255,127,63,31,15,7,3,1,252,248,244,252,244,240,254,0,0,7,15,28,60,231,127,255,0,128,248,132,178,177,161,255,104,238,109,235,104,63,31,12,213,255,214,252,248,240,224,96
1270 LET z=2: LET x=16: LET y=1: LET elet=5: LET pont=0: LET ido=200
1280 LET l$=" ": LET pu=0
1290 LET can=0: LET pc=1: LET ft=2: LET puf=ft
1300 RETURN
1305 REM *************
1306 REM * MENTES *
1307 REM *************
1310 SAVE "izotop": POKE 23736,181: GO TO 100
DÓRI UNOKÁM KALANDJAI A KISÉRTET-KASTÉLY-BAN
Leírás:
A DÓRI sorozat harmadik darabja, egy igazi ATIC-ATAC klón (persze nem olyan minőségű grafikával), itt is az elveszett testvérét kell megtalálnia 30 pályán keresztül. Szuper hanghatásokkal, sok meglepetéssel. Irányítás a kurzorgombokkal. Magyarázat a Menü-ben.

3 REM ************************
4 REM * (c) NyitraiSOFT 2002'*
5 REM ************************
6 REM
7 REM ********************
10 REM ** DORI unokam _ ***
** kalandjai _ ***
** a KISERTET- ***
** KASTELY-ban ***
11 REM ********************
15 REM
50 POKE 23609,4
55 GOTO 6011
100 FOR c=1 TO 2: FOR i=1 TO 2
120 LET x1=x+(INKEY$="6")-(INKEY$="7"): LET y1=y+(INKEY$="8")-(INKEY$="5")
130 IF ATTR (x1,y1) <> 7 OR ATTR (x1+1,y1) <> 7 THEN GOTO 1200
140 PRINT AT x,y;" ";AT x+1,y;" ";AT x1,y1;a$(i);AT x1+1,y1;b$(i): LET x=x1: LET y=y1
200 LET a1=a+(x>0 AND ATTR (a+1,b)=7 )-(x<a AND ATTR (a-1,b)=7): LET b1=b+(y>b AND ATTR (a,b+1)=7)-(y<b AND ATTR (a,b-1)=7)
230 IF c=1 THEN LET a1=a: LET b1=b
240 PRINT AT a,b;" "; INK 6;AT a1,b1;k$(i): LET a=a1:: LET b=b1
400 IF INKEY$="0" THEN GOSUB 1500
950 NEXT i: NEXT c: GOTO 100
1210 LET p=ATTR (x1,y1): LET q=ATTR (x1+1,y1)
1220 IF p=6 OR q=6 THEN GOTO 1600
1240 IF p=4 OR q=4 THEN RANDOMIZE USR 65055: GOTO 2700
1270 IF p<4 OR q<4 THEN LET x1=x: LET y1=y
1280 IF p=5 OR q=5 THEN LET e=1: POKE z+3,50: POKE z+5,2: POKE z+24,29: FOR j=1 TO 12: LET l=USR z: NEXT j: PRINT AT 14,3;" "; PAPER 1;AT 19,24; FLASH 1;"IGEN"
1295 GOTO 140
1510 POKE z+3,180: POKE z+5,3: POKE z+24,28
1514 IF b<y THEN GOTO 1800
1521 IF ATTR (x,y+1)<6 OR ATTR (x+1,y+1)<6 THEN RETURN
1522 FOR j=1 TO 2: PRINT AT x,y;"__";AT x+1,y;"__"
1525 LET l=USR z
1570 PRINT AT x,y;"_ ";AT x+1,y;"_ ": LET l=USR z: POKE z+5,2: POKE z+24,29: NEXT j
1580 IF y=b-2 AND x=a THEN PRINT AT a,b; OVER 1;"_": POKE z+5,5: LET l=USR z: PRINT AT a,b;" ": LET a=8+INT (RND*7): LET b=3+INT (RND*17): LET s=s+15: PRINT PAPER 1;AT 12,25;s
1599 RETURN
1610 POKE z+3,80: POKE z+5,11: POKE z+24,28
1620 LET l=USR z
1630 LET t=t-5: IF t<1 THEN LET t=0
1640 PRINT PAPER 1;AT 9,25;t;" "
1650 IF t=0 THEN GOTO 1700
1660 LET x1=x: LET y1=y
1699 GOTO 1221
1710 PRINT PAPER 1; FLASH 1;AT 8,24;"ENERGIA"
1730 POKE z+3,0: POKE z+5,19: POKE z+24,28: LET l=USR z
1740 PRINT FLASH 1; PAPER 1;AT 0,2;"NYOMD MEG AKARMELYIK GOMBOT"
1760 IF INKEY$ <> "" THEN GOTO 1760
1770 IF INKEY$="" THEN GOTO 1770
1799 GOTO 6900
1821 IF ATTR (x,y-1)<6 OR ATTR (x+1,y-1)<6 THEN GOTO 1599
1822 FOR j=1 TO 2
1825 LET l=USR z
1870 PRINT AT x,y-1;" _";AT x+1,y-1;" _": LET l=USR z: POKE z+3,200: POKE z+24,29: NEXT j
1880 IF y=b+2 AND x=a THEN PRINT AT a,b; OVER 1;"_": POKE z+5,5: LET l=USR z: PRINT AT a,b;" ": LET a=8+INT (RND*7): LET b=3+INT (RND*17): LET s=s+15: PRINT PAPER 1;AT 12,25;s
1890 GOTO 1599
2700 LET r=r+(6*((x=16)-(x=5)))+(y=19)-(y=3)
2720 IF x=16 THEN LET x1=5
2725 IF x=5 THEN LET x1=16
2730 IF y=19 THEN LET y1=3
2735 IF y=3 THEN LET y1=19
2740 FOR j=2 TO 20: PRINT AT j,0;" ": NEXT j
2745 LET a=x: LET b=y
2750 GOSUB 3000+r*100
2790 GOTO 1271
3100 INK 3: GOSUB 9000: GOSUB 9330: GOSUB 9310
3190 PRINT INK 6;AT 9,9;g$;AT 10,9;h$;AT 13,14;i$;AT 14,14;j$: RETURN
3200 INK 1: GOSUB 9200: GOSUB 9320: GOSUB 9330
3270 PRINT INK 3;AT 8,6;"_";AT 9,6;"_._";AT 13,16;"_";AT 14,16;"_": RETURN
3300 INK 2: GOSUB 9000: GOSUB 9320: GOSUB 9310
3370 PRINT INK 2;AT 13,5;"____"; INK 6;"___";AT 10,11;"_";AT 11,11;"_": RETURN
3400 INK 3: GOSUB 9000: GOSUB 9310: GOSUB 9330
3470 PRINT INK 3;AT 8,7;"_ _ _";AT 9,7;"_._,_"; INK 6;AT 13,11;"_ _ _";AT 14,10;"__.____": RETURN
3500 INK 3: GOSUB 9000: GOSUB 9320: GOSUB 9330
3570 PRINT INK 2; OVER 1;AT 3,9;"_ _";AT 4,9;"_ _": FOR j=7 TO 15: PRINT INK 6;AT j,11;"_": NEXT j: RETURN
3600 INK 1: GOSUB 9200: GOSUB 9320: GOSUB 9310
3670 PRINT INK 6;AT 10,10;i$;AT 11,10;j$; INK 3;h$;g$;AT 14,5; INVERSE 1;"*****";AT 15,5;"*****"; INK 4;AT 11,20;"_": RETURN
3700 INK 3: GOSUB 9200: GOSUB 9300: GOSUB 9330
3770 PRINT INK 3;AT 7,15;g$;AT 8,15;h$; INK 1; INVERSE 1;AT 10,9;">>>>";AT 11,9;">>>>": RETURN
3800 INK 2: GOSUB 9000: GOSUB 9320: GOSUB 9330: GOSUB 9310
3870 PRINT INK 3;AT 9,8;"_______";AT 11,9;"_"; INK 6;AT 8,6;"_";AT 13,10;"__": RETURN
3900 INK 3: GOSUB 9000: GOSUB 9200: GOSUB 9300: GOSUB 9320: GOSUB 9310
3970 PRINT INK 6;AT 7,9;i$;" _";i$;AT 8,9;i$;"._";j$;AT 12,5;g$;k$;g$;AT 13,5;h$;h$;h$: RETURN
4000 INK 2: GOSUB 9000: GOSUB 9300: GOSUB 9310
4070 PRINT INK 6;AT 10,6;i$;" ";i$;AT 11,6;i$;"_______";j$;AT 13,8;CHR$ 150;AT 14,8;"_": RETURN
4100 INK 3: GOSUB 9000: GOSUB 9330: GOSUB 9310
4170 PRINT INK 3;AT 3,9;CHR$ 150;CHR$ 32;CHR$ 150;CHR$ 32;CHR$ 150;AT 4,9;"_ _ _";AT 11,9;"_____";AT 12,14;h$; INK 2;AT 14,14;g$;AT 15,14;;h$: RETURN
4200 INK 2: GOSUB 9000: GOSUB 9300: GOSUB 9320
4270 PRINT INK 6;AT 6,7;"_";AT 7,7;"_";AT 9,8;"________";AT 10,11;"_";AT 12,11;"_": RETURN
4300 INK 3: GOSUB 9200: GOSUB 9310
4370 PRINT INK 6;AT 8,10;i$;AT 9,10;i$;AT 14,8;"______"; INK 4;AT 3,10;"_ _";AT 4,10;"___"; INVERSE 1;AT 11,2;"_": RETURN
4400 INK 3: GOSUB 9200: GOSUB 9300: GOSUB 9310
4470 FOR j=5 TO 17 STEP 3: PRINT INK 3;AT 10,j;"_";AT 11,j;"_";AT 14,j+1;"_": NEXT j: RETURN
4500 INK 2: GOSUB 9000: GOSUB 9300: GOSUB 9310: GOSUB 9330
4570 PRINT INK 6;AT 8,10;"______";AT 13,8;h$;"__";h$: RETURN
4600 INK 3: GOSUB 9000: GOSUB 9300: GOSUB 9320: GOSUB 9330
4630 PRINT INK 6;AT 7,6;"_______";AT 8,11;h$; INK 2; INVERSE 1;AT 13,6;"_OVODA_"
4640 IF e=1 THEN POKE z+3,0: POKE z+5,19: POKE z+24,29: GOSUB 9500
4690 RETURN
4700 INK 2: GOSUB 9000: GOSUB 9320: GOSUB 9300: GOSUB 9330
4770 PRINT INK 3;AT 14,12;g$;AT 15,12;h$;AT 8,8;"_.._";AT 9,11;"_": RETURN
4800 INK 3: GOSUB 9200: GOSUB 9320
4870 PRINT INK 2;AT 10,8;i$;AT 11,8;j$; INK 6;h$;h$: RETURN
4900 INK 3: GOSUB 9000: GOSUB 9300: GOSUB 9320
4970 PRINT INK 2;AT 8,14;"_";AT 9,14;"_";AT 13,8;"_.___."; INK 6;g$: RETURN
5000 INK 1: GOSUB 9000: GOSUB 9300: GOSUB 9320
5070 PRINT INK 6;AT 11,9;"_";AT 13,10;"______"; INK 2; INVERSE 1;AT 8,5;"<<<<<"'AT 9,5;"<<<<<": RETURN
5100 INK 3: GOSUB 9000: GOSUB 9300: GOSUB 9310: GOSUB 9330
5170 PRINT INK 3;AT 8,6;"______";AT 12,12;"_.____"; INK 6;AT 15,7;"___": RETURN
5200 INK 3: GOSUB 9200: GOSUB 9320: GOSUB 9330: GOSUB 9310
5270 PRINT INK 3;AT 13,8;"_ __ _";AT 14,8;"_.__._._____": RETURN
5300 INK 3: GOSUB 9200: GOSUB 9320: GOSUB 9330
5370 PRINT INK 6;AT 12,13;"_";AT 13,11;"_._"; INK 1; INVERSE 1;AT 9,8;"******";AT 10,88;"******": RETURN
5400 INK 3: GOSUB 9000: GOSUB 9310: GOSUB 9320
5470 PRINT INK 4;AT 3,7;"_ _ _ _ _ _";AT 4,7;"___________"; INK 6;AT 8,5;"__";AT 14,11;h$;"____": RETURN
5500 INK 2: GOSUB 9000: GOSUB 9300: GOSUB 9330
5570 PRINT INK 6;AT 8,8;g$;AT 9,8;h$;AT 14,10;"_";AT 15,10;"_";AT 9,14;"___";i10,14;"_"; INVERSE 1; INK 4;AT 11,2;"_": RETURN
5600 INK 3: GOSUB 9000: GOSUB 9200: GOSUB 9320: GOSUB 9330
5670 FOR j=7 TO 13: PRINT INK 6;AT j,10;"__": NEXT j: PRINT INK 3;AT 14,10;i$;"_";AT 15,10;i$;"._": RETURN
5700 INK 1: GOSUB 9200: GOSUB 9320: GOSUB 9300
5770 PRINT INK 6;AT 13,10;"_._~_";AT 9,4;"_~_._ "; INK 3;i$;AT 8,9;"_";i$: RETURN
5800 INK 3: GOSUB 9000: GOSUB 9300: GOSUB 9330
5870 FOR j=11 TO 14: PRINT INK 6;AT j,11;"_": NEXT j: PRINT INK 3;AT 8,12;"______";AT 9,12;h$;h$;h$: RETURN
5900 INK 3: GOSUB 9200: GOSUB 9330: GOSUB 9320
5960 PRINT INK 3;AT 10,15;i$;AT 11,15;j$: FOR j=7 TO 13 STEP 3: PRINT INK 6;AT j,10;g$;AT j+1,10;h$: NEXT j: RETURN
6000 INK 6: GOSUB 9000: GOSUB 9320: GOSUB 9300
6001 PRINT INK 6;AT 7,8;"__";AT 9,6; INK 3;g$;i$;AT 10,6;h$;j$;"_";AT 11,10;"_": RETURN
6005 REM a jatek indul
6012 PAPER 0: INK 7: BORDER 0: CLS
6013 IF PEEK USR "_"=112 THEN LET z=65237: GOTO 6060
6014 CLEAR 65236: RESTORE 6030
6015 LET d=0: LET z=65237
6020 FOR i=z TO z+61
6025 READ j: POKE i,j: LET d=d+j: NEXT i
6026 RESTORE 6076
6027 FOR i=USR "_" TO USR "_"+7
6028 READ j: POKE i,j: LET d=d+j: NEXT i
6030 DATA 243,17,16,2,38,1,58,72,92,31,31,31,14,254,238,16,237,121,67,16,254,37,32,244,1,21
6040 DATA 32,232,251,201
6041 DATA 128,208,248,232,232,168,224,196
6042 DATA 3,4,4,1,2,3,1
6043 DATA 68,248,224,224,144,8,7,7
6044 DATA 0,255,0,0,0,1,7,7
6060 REM a kis cofis A C _ _ DORI B D _ _
6076 DATA 112,154,159,61,93,117,124,56: REM A=_
6077 DATA 8,62,93,157,21,116,119,7: REM B=_
6078 DATA 14,89,249,188,186,174,62,28: REM C=_
6079 DATA 16,124,186,185,168,46,238,224: REM D=_
6080 DATA 56,185,186,252,60,30,15,3: REM E=_
6081 DATA 40,28,56,20,4,53,30,4: REM F=_
6082 DATA 30,63,79,123,59,158,192,124: REM G=_
6083 DATA 30,63,79,123,123,126,62,0 : REM H=_
6084 DATA 8,126,137,8,126,137,8,126 : REM I=_
6085 DATA 0,32,80,136,7,39,87,143: REM J=_
6086 DATA 0,4,10,17,224,228,234,241 : REM K=_
6087 DATA 9,7,63,67,128,128,0,0: REM L=_
6088 DATA 144,224,252,194,1,1,0,0: REM M=_
6089 DATA 1,11,31,23,23,21,7,35: REM N=_
6090 DATA 192,32,32,128,64,192,192,128: REM O=_
6091 DATA 34,31,7,7,9,16,224,224: REM P=_
6092 DATA 0,255,0,0,0,128,224,224: REM Q=_
6093 DATA 7,24,35,79,35,88,135,128: REM R=_
6094 DATA 224,24,196,242,196,26,229,5: REM S=_
6095 DATA 64,64,32,16,78,161,76,55: REM T=_
6096 DATA 10,10,20,8,113,138,52,202: REM U=_
6100 LET k$="__": LET g$="__": LET h$="__": LET i$="__": LET j$="__"
6110 LET a$="__": LET b$="__"
6120 LET s=0: LET h=0
6900 LET t=500: LET x=10: LET y=10: LET a=8: LET b=19: LET e=0: LET f=INT (RND*29): LET r=16
6910 IF s>h THEN LET h=s
6911 CLS : INK 6: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
6912 PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173: PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
6913 PRINT AT 1,1;"_";AT 1,30;"_";AT 2,1;"_";AT 2,30;"_";AT 1,5;"(c) NyitraiSOFT 2002'"
6914 PRINT AT 5,1;"DORI unokam keresi elveszett";AT 6,1;"testveret a KISERTET-hazban."
6915 PRINT INK 5;AT 8,3;"Iranyitas kurzorral,vagy";AT 9,3;"egerrel,vivas:'0' gombbal";AT 12,3;"Ellenfel,ami sarga szinu:";AT 14,3;"_ _ _ _ __ __ __ __";AT 15,1;"virag koponya csontvaz pokok."
6916 PRINT AT 17,3;"Meg kell keresned ezeket:";AT 18,4;"_ szelvesz,_ REKA,_ herceg";AT 19,11;" _ _"; INK 6;AT 19,1;"_"; INK 2;AT 20,1;"_"; INK 5;AT 19,30;"_"; INK 7;AT 20,30;"_"
6917 INK 7
6918 PRINT 0;" nyomd az ENTER-t !": GOSUB 9600
6921 CLS : LET s=0
6925 FOR j=2 TO 20: PRINT AT j,24; PAPER 1;" ": NEXT j
6930 RESTORE 6932: PLOT 248,160: FOR j=1 TO 8: READ k,l: DRAW k,l: NEXT j
6932 DATA 0,-153,-57,0,0,153,57,0,7,-7,0,-153,-57,0,-7,7
6935 PLOT 249,6: DRAW 5,-5
6950 PRINT PAPER 1;AT 8,24;"ENERGIA";AT 9,25;t;AT 11,25;"PONT:";AT 12,26;s;AT 14,24;"CSUCS:";AT 15,26;h;AT 17,24;"GYEREK";AT 18,24;"MEGVAN?";AT 19,24; PAPER 2;"NINCS"
6960 PRINT 0;AT 0,1; INK 6;"__"; INK 3;"K I S E R T E T "; INK 2;"_";AT 1,1; INK 2;"__"; INK 4;" K A S T E L Y"; INK 7;" _"
6965 FOR j=4 TO 18 STEP 2: PRINT 0; INK 1;AT 0,j;"_"; INK 2;AT 1,j;"_": NEXT j
6970 GOSUB 4600
6972 PLOT 196,148: DRAW 47,0: DRAW 0,-24: DRAW -47,0: DRAW 0,23
6975 PRINT INK 5;AT 9,6;"_"
6981 PRINT INK 6;AT a,b;"_";AT a+1,b;"_"; PAPER 1;AT 5,29;"_"; INK 7;AT 5,27;"_"; INK 5;AT 4,25;"_"; INK 7;" _ _"
6989 FOR k=1 TO 3: GOSUB 1500: NEXT k: PRINT AT 9,6;" "
6990 GOSUB 9600: GOTO 100
9010 RESTORE 9000: PLOT 34,158
9020 FOR j=1 TO 17: READ k,l: DRAW k,l: NEXT j
9030 DATA 115,0,34,-34,0,-82,-34,-34,-115,0,-34,34,0,82,34,34
9040 DATA 7,-22,101,0,19,-19,0,-67,-19,-19,-101,0,-19,19,0,67,19,19
9050 RESTORE 9060: FOR j=1 TO 7: READ k,l,m,n: PLOT k,l: DRAW m,n: NEXT j
9060 DATA 142,135,7,22,161,116,22,7,161,49,22,-7,142,30,7,-22,22,49,-22,-7,22,116,-22,7
9065 DATA 41,30,-7,-22,22,49,-22,-7,22,116,-22,7
9090 GOSUB 9340: RETURN
9210 RESTORE 9230: PLOT 0,158: FOR j=1 TO 15: READ k,l: DRAW k,l: NEXT j
9230 DATA 183,0,0,-150,-183,0,0,150,22,-22,139,0,22,22,-22,-22,0,-105,22,-22,-22,22,-139,0,-22,-22,22,22,0,105
9240 GOSUB 9340: RETURN
9300 INK 4: PLOT 97,136: DRAW 3,15: DRAW -15,0: DRAW 3,-15: INK 7: RETURN
9310 INK 4: PLOT 97,31: DRAW 3,-15: DRAW -15,0: DRAW 3,15: INK 7: RETURN
9329 INK 4: PLOT 22,80: DRAW -14,-3: DRAW 0,15: DRAW 14,-3: INK 7: RETURN
9330 INK 4: PLOT 161,80: DRAW 14,-3: DRAW 0,15: DRAW -14,-3: INK 7: RETURN
9345 IF r=f AND e=0 THEN PRINT INK 5;AT 14,3;"_"
9390 RETURN
9490 REM elert pontszamok
9510 LET f=INT (RND*29): PRINT AT x1,y1;"_";AT x1+1,y1;"_";AT 10,11; FLASH 1;"_": LET s=s+200: PRINT PAPER 1;AT 12,25;s
9520 LET l=USR z: PRINT AT 10,11;" ";AT 19,29; PAPER 2;"__"; PAPER 1;" ": LET e=0: RETURN
9600 FOR l=-52 TO -28 STEP 12: PAUSE 4: RESTORE 9660: FOR j=1 TO 31: READ k: BEEP .11,k+l: IF INKEY$ <> "" THEN RETURN
9610 NEXT j: NEXT l: GOTO 9600
9660 DATA 60,36,48,58,34,46,60,36,48,55,31,43,31,46,48,31,55,43,34,58,46,31,55,43,34,
58,46,36,60,48,60
DENEVÉR-TORONY
Leírás:
Még annak idején (2000-ben) írtam nagyobbik unokámnak egy, kis létrás, mászkálós progit, mely a Dóri címet viselte. A dolog apropóját az adja, hogy most újra elővettem, és fő pontjainak felhasználásával megírtam a folytatását A progi hasonló, de itt nem kis szörnyeket kell elkerülni, és nem létrákon kell felmenni a legfelső szintre (5 pályán át), mint az elsőben.
Itt - a denevér-torony progiban - szintén 5 emeletet kell megmászni, de mivel ez egy elhagyott, régi skót várkastély, mindenhol Drakula követei, a denevérek röpködnek.
Az emeleteken már nincsenek lépcsők, padlók is csak itt-ott, azokat már lerombolta az enyészet, csak hosszabb-rövidebb kötelek lógnak mindenhonnan, és csak akkor lehet kimenni a fenn lévő, jobboldali ajtón, ha adózunk az ötödik szinten lévő, minket váró szellemeknek, ugyanis össze kell szedni a mindenhol szétszórt harangokat (ezekért kapjuk a pontszámokat) és majd meglátjátok, jutalmul az összes szellem, - az ötödik szinten - saját testükből építve a padló-gerendákat, biztosítják továbbhaladásunkat. A játék során el kell kerülni a denevéreket, mert elveszik egy-egy életünket.
Mivel - csak három életünk van - így nagyon nehézre sikerült a játék, alapállapotban az ütközések ki vannak kapcsolva, (2242 és 2342 sorokban), csak ha megismertétek a pályákat, csak akkor érdemes a két helyen lévő REM-eket eltávolítani, és így megpróbálni a szinteken való feljutást.

10 rem DENEVÉR-TORONY
12 REM JÁTÉKGYÁROS 2002
15 GOTO 6000
200 IF ATTR (x1,y1) <> 6 THEN PRINT INK 5;AT x1+1,y1;"_": GOSUB 300: LET e=e+1: PRINT INK 6; PAPER 0; FLASH 1; OVER 0;AT 0,e*3;"_"
210 IF x1=1 AND y1=31 AND e=9 THEN LET z=z+1: LET s=s+100: FOR j=0 TO 20: BEEP .01,j: BEEP .01,j+10: BEEP .01,j-10: NEXT j: GOTO 8000
229 RETURN
300 LET s=s+45: PRINT 0; OVER 0;AT 0,15-LEN STR$ s; INK 6; PAPER 1;s
310 FOR j=x1+1 TO 0 STEP -1: PRINT INK 8; FLASH 8;AT j,y1;"_": BEEP .005,40-j*2: PRINT INK 8; FLASH 8;AT j,y1;"_"
320 RETURN
2000 FOR k=1 TO 2
2040 LET x1=x+3*((ATTR (x+2,y)=7)-(INKEY$=m$(3) AND ATTR (x-1,y)=4))
2070 LET y1=y+(INKEY$=m$(2) AND y<31)-(INKEY$=m$(1) AND y>0)
2080 IF ATTR (x1+1,y1)=6 THEN GOSUB 200
2090 PRINT AT x,y;a$(k);AT x+1,y;b$(k)
2095 PRINT AT x1,y1;a$(3-k);AT x1+1,y1;b$(3-k): LET x=x1: LET y=y1
2199 IF k=2 THEN GOTO 2262
2200 LET b1=b+(y>b)-(y<b)
2230 LET a1=a+3*(((x+1)>a AND ATTR (a+1,b)<12)-((x+1)<a AND ATTR (a-2,b)<12))
2242 REM IF y=b1 THEN IF x+1=a1 THEN GOTO 4000
2245 IF b1=b AND RND>.8 AND b1<27 THEN LET b1=b1+5
2250 PRINT AT a,b;"_";AT a1,b1;"_"
2260 LET a=a1: LET b=b1
2261 GOTO 2361
2300 LET d1=d+(y>d)-(y<d)
2330 LET c1=c+3*(((x+1)>c AND ATTR (c+1,d)<12)-((x+1)<c AND ATTR (c-2,d)<12))
2342 REM IF y=d1 THEN IF x+1=c1 THEN GOTO 4000
2345 IF d1=d AND RND>.8 AND d1>4 THEN LET d1=d1-5
2347 IF d1=b1 AND a1=c1 THEN LET d1=INT (RND*32): LET c1=(3*(2+(INT (RND*6))))-1
2350 PRINT AT c,d;"_";AT c1,d1;"_"
2360 LET c=c1: LET d=d1
2999 NEXT k: GOTO 2000
4005 PRINT AT a,b;"_";AT c,d;"_"
4010 FOR j=41 TO 1 STEP -4: PRINT AT x,y;a$(3-k);AT x+1,y;b$(3-k): BEEP .014,j: NEXT j
4030 INK 8: PAPER 8: FLASH 8
4040 LET v=1: LET w=1: LET i=x: LET j=y: PRINT AT i,j;"_"
4041 FOR u=63031 TO 63000 STEP -1: BEEP .05,(PEEK u)-28
4044 IF i>20 OR i<1 THEN LET v=-v
4045 IF j>30 OR j<1 THEN LET w=-w
4046 PRINT AT i,j;"_"
4047 LET i=i+v: LET j=j+w
4048 PRINT AT i,j;"_"
4050 NEXT u
4051 PRINT AT i,j;"_"
4052 INK 7: PAPER 0: FLASH 0
4060 LET l=l-1: IF l<1 THEN GOTO 4400
4080 FOR i=7 TO 0 STEP -1: BORDER i: PAUSE 2: NEXT i
4399 GOTO 8500
4401 LET t=0
4405 PRINT OVER 0; PAPER 2; INK t;AT 7,4;" ";AT 8,4;" J_TEK V_GE ";AT 9,4;" ";AT 10,4;"NYOMD A 2-T UJ J_T_KHOZ";AT 11,4;" "
4410 PRINT 0;AT 0,26; PAPER 1;" ";AT 1,26; PAPER 1;" "
4430 LET t=t+1: IF t>7 THEN LET t=0
4450 IF INKEY$ <> "2" THEN GOTO 4450
4452 CLS : GOTO 8800
6000 LET g=0: LET p$="_____": LET a$="__": LET b$="__": LET s=0: LET h=0
6001 RESTORE : PAPER 0: BORDER 0: INK 7: OVER 0: CLS : DIM q$(5,15)
6002 FOR i=USR "a" TO USR "o"+7: READ j: POKE i,j: NEXT i
6003 LET q$(1)="ELSO SZINT": LET q$(2)="MASODIK SZINT": LET q$(3)="HARMADIK SZINT": LET q$(4)="NEGYEDIK SZINT": LET q$(5)="TORONYSZOBA"
6004 GOSUB 9800: GOSUB 9400: GOSUB 9200: GOSUB 8800
6005 DATA 112,154,159,61,85,125,76,56,8,62,93,157,21,116,119,7,14,89,249,188,170,190,50,28,16,124,186,185,168,46,238,224
6010 DATA 187,187,187,0,238,238,238,0,16,8,24,16,8,24,16,8,24,24,24,60,36,36,36,60
6015 DATA 255,231,255,0,0,0,0,0,255,0,16,56,124,84,68,108,255,255,183,221,107,170,84,0
6020 DATA 129,219,255,126,24,0,0,0
6025 DATA 0,24,60,126,126,126,255,0
6026 DATA 60,126,255,255,255,255,255,159,255,0,0,0,0,0,0,0
6027 DATA 56,186,186,252,60,30,15,3
7700 LET z=1: IF s>h THEN LET h=s
7710 LET l=3: LET s=0
8005 IF z>5 THEN LET z=1
8006 OVER 0: INK 7: PAPER 0: CLS
8011 PRINT PAPER 4; INK 0;AT 21,0;" ";z;" PÁLYA ";" .... ";q$(z)
8014 FOR i=2 TO 20 STEP 3: PRINT INK 5;AT i,0;" ": NEXT i
8015 RESTORE 8000+100*z
8017 PRINT INK 6;AT 1,31;"_";AT 2,31;"_"
8020 READ x,y: IF x=99 THEN GOTO 8050
8025 PRINT INK 3; PAPER 6;AT x,y;"______": GOTO 8020
8050 READ x,y: IF x=99 THEN GOTO 8061
8060 PRINT AT x,y; INK 0; PAPER 6; INVERSE 1;p$(z); INK 2; PAPER 6;"____"; INK 0; PAPER 5; INVERSE 1;p$(z): GOTO 8050
8062 READ x,y: IF x=99 THEN GOTO 8065
8064 PRINT INK 4; PAPER 1;AT x,y;"______": GOTO 8062
8070 READ x,y: IF x=99 THEN GOTO 8072
8071 FOR i=0 TO 4: PRINT PAPER 5; INK 0; INVERSE 1;AT x,y+i;p$(z): NEXT i: GOTO 8070
8072 READ x,y: IF x=99 THEN GOTO 8074
8073 PRINT INK 4;AT x,y;"_";AT x+1,y;"_";AT x+2,y;"_";AT x,y; OVER 1;"_": GOTO 8072
8080 LET e=0
8093 PRINT AT 0,0; INK 0; PAPER 4; INVERSE 1;"________________________________";AT 1,3;"_ _ _ _ _ _ _ _ _"
8095 INK 4: FOR w=1 TO 4: LET i=3*((INT (RND*9))+1): LET u=14+(INT (RND*7)): FOR j=2 TO u: PRINT AT j,i;"_": NEXT j: NEXT w: INK 7
8097 FOR i=1 TO 9: READ x,y: PRINT INK 6;AT x,y;"_": NEXT i
8100 DATA 3,23,3,26,6,24,9,6,12,25,15,15,18,0,18,2,99,0
8105 DATA 6,0,6,2,6,8,6,20,9,11,12,20,18,10,18,12,99,0
8110 DATA 9,26,12,2,12,6,12,12,18,19,99,0
8115 DATA 3,0,3,5,15,10,15,21,99,0
8120 DATA 18,19,3,8,3,28,6,6,6,22,9,13,9,22,12,24,12,10,15,19,18,11,18,24,99,0
8121 DATA 2,0,2,24,5,12,8,16,8,28,11,30,14,16,17,4,17,14
8200 DATA 9,2,12,6,12,7,12,24,12,26,13,24,13,26,19,8,19,12,99,0
8201 DATA 6,16,9,8,15,0,15,2,15,16,15,18,18,24,18,26,99,0
8202 DATA 3,18,3,20,3,26,6,26,18,8,18,12,99,0
8203 DATA 6,6,6,11,9,18,9,23,12,1,12,13,20,8,20,13,99,0
8204 DATA 3,18,6,20,6,27,9,13,9,25,12,29,15,4,15,17,15,29,18,4,18,26,99,0,5,7,5,31,8,8,8,23,11,1,11,30,14,0,20,7,20,31
8300 DATA 9,13,18,3,18,13,18,23,99,0
8301 DATA 3,3,3,13,3,23,3,26,12,13,99,0
8302 DATA 6,8,6,18,15,8,15,18,99,0
8303 DATA 99,0
8304 DATA 3,8,3,13,3,23,6,13,9,18,12,18,15,23,18,3,18,28,99,0
8305 DATA 2,4,2,17,5,10,8,16,11,13,14,13,17,4,17,13,20,31
8400 DATA 3,26,6,24,6,25,9,1,9,11,15,16,15,26,18,0,18,2,99,0,3,16,9,5,12,21,13,0,13,4,15,20,18,20,18,23,99,0
8401 DATA 3,20,6,0,6,11,12,0,12,4,99,0,6,6,12,16,12,26,14,0,14,5,99,0
8402 DATA 3,16,6,1,6,27,9,16,9,27,12,31,15,21,18,5,18,27,99,0,2,20,5,0,5,29,8,12,11,6,11,24,14,16,17,1,17,28
8500 DATA 3,24,3,26,6,20,9,3,9,5,12,19,15,2,18,18,18,26,99,0,6,25,9,15,9,18,12,0,12,3,15,16,18,0,99,0
8501 DATA 3,2,3,5,3,14,3,16,12,11,15,24,15,25,18,10,99,0,6,0,6,6,6,11,12,27,15,9,99,0
8502 DATA 3,10,3,20,3,29,6,22,9,16,12,16,15,4,15,20,18,3,18,20,99,0,2,2,2,24,5,15,8,10,11,1,11,20,11,28,14,2,17,29
8509 LET c=3*(2+(INT (RND*5)))-1: LET d=INT (RND*32): LET x=19: LET y=0: LET x1=x: LET y1=y: LET a=2: LET b=INT (RND*32)
8510 PRINT 0; PAPER 1; INK 4;AT 0,0;"_ __ _"
8515 PRINT 0; INK 6; PAPER 1;AT 0,4;"PONT: 00000"; INK 5;AT 1,4;"CSUCS: 00000"; INK 4;AT 1,18;"_LETEK"
8516 PRINT 0;AT 0,15-LEN STR$ s; INK 6; PAPER 1;s;AT 1,15-LEN STR$ h; INK 5; PAPER 1;h
8590 OVER 1: INK 8: PAPER 8
8700 LET i=1: PRINT AT x,y;a$(i);AT x+1,y;b$(i);AT a,b;"_";AT c,d;"_"
8705 PRINT 0;AT 0,25;: FOR j=1 TO l: PRINT 0; PAPER 1;" _";: NEXT j
8710 PRINT 0;AT 1,25;: FOR j=1 TO l: PRINT 0; PAPER 1; INK 5;" _";: NEXT j
8715 IF g=1 THEN FOR j=63000 TO 63007: BEEP .1,(PEEK j)-40: FOR i=1 TO 20: NEXT i: NEXT j: LET z=z+1
8716 IF g=1 THEN LET f=f+1: IF f<5 THEN GOTO 8000
8717 IF f=5 THEN GOTO 8800
8720 FOR j=-20 TO 0 STEP 1: BEEP .005,j: BEEP .005,j+2: NEXT j
8725 FOR j=0 TO -20 STEP -1: BEEP .005,j: BEEP .005,j+2: NEXT j
8730 IF g=0 THEN GOTO 2000
8800 IF PEEK 63000 <> 17 THEN RESTORE 9540: FOR i=63000 TO 63063: READ n: POKE i,n: NEXT i
9000 OVER 0: CLS
9004 INK 5: RESTORE 9520
9010 PRINT AT 1,3;"ITKOK A";AT 2,3;"DENEVÉR";AT 3,2;"TORONYBAN"
9013 PLOT 11,169: DRAW 27,0: PLOT 21,168: DRAW 0,-7
9015 PLOT 86,145: DRAW 7,-7: DRAW 3,0: DRAW 0,3: DRAW -85,0
9090 PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
9092 PLOT 64,0: DRAW 17,112: DRAW 2,-24: DRAW 24,22
9100 PLOT 102,0
9110 FOR m=1 TO 5: READ i,j: DRAW i,j: NEXT m
9130 PLOT 165,44: DRAW 90,-44
9132 FOR m=1 TO 6: READ i,j: PLOT 64+i,j: DRAW -2,12: DRAW 4,4: DRAW 4,-8: DRAW 2,-12: DRAW -7,3: NEXT m
9140 FOR m=1 TO 2: READ i,j: PLOT i+64,j: DRAW 1,12: DRAW 3,8: DRAW 3,-4: DRAW -1,-12: DRAW -5,-4: NEXT m
9144 PRINT INK 2;AT 11,21;"_"
9145 PLOT 164,60: DRAW -35,44,4.5
9147 LET f=0: LET g=0: INK 7
9148 PRINT 0;AT 1,1; INK 2;"0=PÁLYA BEMUTATÓ 1=JÁTÉK INDUL"
9150 FOR i=63063 TO 63000 STEP -1: LET n=(PEEK i)-40
9157 BEEP .13,n
9158 IF INKEY$ <> "" THEN GOTO 9160
9159 NEXT i: GOTO 9150
9160 IF INKEY$="0" THEN LET g=1: GOTO 6005
9170 IF INKEY$="1" THEN GOTO 6005
9175 GOTO 9150
9180 REM HÁROMSZOROS KERET
9181 CLS
9182 PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
9184 PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173
9186 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
9188 RETURN
9200 GOSUB 9180: PRINT INK 3;AT 1,1;"_ TITOKZATOS DENEVÉR-TORONY _"
9201 PRINT INK 5;AT 4,1;"EBBEN A JÁTÉKBAN FEL KELL JUT-";AT 5,1;"NOD A DENEVÉR-TORONYBA."
9205
PRINT AT 7,1; INK 6;"SEGÍTS A COFIS KISLÁNYNAK A ";AT 8,1;"REPKEDŐ DENEVÉREKET ELKERÜLNI."9206 PRINT AT 10,1; INK 4;"ÉTKOZBEN ÖSSZE KELL SZEDNI A";AT 11,1;"A SZÉTDOBÁLT HARANGOKAT,_S ";AT 12,1;"AKKOR LEHET A KOVETKEZŐ";AT 13,1;"SZINTRE AZ AJTÓN BEMENNI."
9207 PRINT AT 16,1; INK 5;"5 SZINTET KELL TELJESÍTENI,";AT 17,1;"A DENEVÉR ELVESZI EGY ÉLETED."; INK 2;AT 19,3;"SOK SZERENCSÉT A JÁTÉKHOZ."
9402 PRINT 0;AT 0,5; INK 5;"_";AT 0,24;"_";AT 1,5; INK 5;"_ NYOMD AZ ENTER-T ";"_"
9440 PAUSE 1: PAUSE 0
9455 IF INKEY$ <> "" THEN GOTO 9455
9460 CLS : RETURN
9520 DATA 6,138,5,-28,38,-21,2,24,18,-112
9521 DATA 51,84,66,76,81,68
9522 DATA 110,20,125,12,140,4
9525 DATA 16,63,29,73
9540 DATA 17,29,41,53,53,41,29,17,19,31,43,55,55,43,31,19,22,34,46,58,58,46,34,22,24,36,48,60
9541 DATA 60,48,36,24,24,60,48,36,22,58,46,34,19,55,43,31,17,53
9542 DATA 41,29,53,17,29,41,55,19,31,43,58,22,34,46,60,24,36,48
9804 INK 3
9805 RESTORE 9860: READ nk
9807 LET m$="": CLS
9808 PRINT AT 4,6;"A JÁTÉK IRÁNYITÁSA:"''''
9810 FOR i=1 TO nk
9811 READ d$: PRINT " ";d$'': NEXT i: INK 6
9815 RESTORE 9860: READ nk
9816 PRINT AT 0,0;: PRINT '''''''
9818 FOR i=1 TO nk: READ d$
9819 LET m$=m$+CHR$ 0
9820 PRINT '" ";d$;
9822 FOR j=1 TO 12-LEN d$: PRINT "_";: NEXT j
9825 PRINT FLASH 1;"?";CHR$ 8;
9827 PAUSE 1: PAUSE 0
9830 LET k$=INKEY$
9832 FOR j=1 TO LEN m$
9833 IF m$(j)=k$ THEN GOTO 9827
9834 NEXT j
9840 LET m$(i)=k$: PRINT k$: BEEP .05,30: NEXT i: INK 7
9858 IF INKEY$ <> "" THEN GOTO 9858
9859 RETURN
9860 DATA 3,"BALRA","JOBBRA","KOTÉLMÁSZÁS"
9999 SAVE "TORONY" LINE 1: RUN
TIX-TAX JÁTÉK
Leírás:
szabály-hibakódok
1. korongokat csak vízszintesen és függőlegesen is lehet mozgatni.
2. a saját színű koronggal lehet csak lépni.
3. amikor lépsz a koronggal, akkor lehet kiütni a másikat, de csak a tábla szélén, ha lehet, akkor a másik korongot kötelező kiütni.
4. Ha nincs ütésben lévő korong, csak akkor lökheted arrébb az ellenfeled korongjait

0 REM tix-tax logikai játék
ötlet:
1960-as búvár könyvek
matematikai játékok
kiadványa alapján
(c) NyitraiSOFT 2002'
készítette:játékgyáros
5 POKE PEEK 23635+256*PEEK 23636+1,0
10 REM Így készítsd a 0-ás sort!!!
40 DEFFN a$(x)=("__" AND x <> 71)+("__" AND x=71)
50 DEFFN b$(x)=("__" AND x <> 71)+("__" AND x=71)
60 RANDOMIZE
70 DATA 1,7,31,63,63,127,127,255,128,224,248,252,252,254,254,255
80 RESTORE : FOR x=0 TO 7
90 READ y: POKE USR "a"+x,y: POKE USR "c"+7-x,y
100 NEXT x
110 FOR x=0 TO 7: READ y
120 POKE USR "b"+x,y: POKE USR "d"+7-x,y
130 POKE USR "e"+x,1: POKE USR "f"+x,128
140 POKE USR "g"+x,1: POKE USR "h"+7-x,128
150 NEXT x: POKE USR "e"+7,255: POKE USR "f"+7,255
160 POKE USR "g",255: POKE USR "h",255
165 GOSUB 1000
170 PAPER 0: BORDER 0: INK 5: BRIGHT 1: CLS : LET i=4: LET i2=2
180 PRINT INK 2;AT 0,14;"szabály-hibakó dok:"
190 PRINT AT 1,14;"1.korongokat csa
k vízszintesen És függőlegesen is lehet mozgatni."191 RANDOMIZE USR 65055: PAUSE 50: PRINT AT 5,14; INK 6;"2.a saját színű koronggal lehet csak lépni."
192 RANDOMIZE USR 65055: PAUSE 50: PRINT AT 8,14; INK 3;"3.amikor lépsz a koronggal,akkor lehet kiütni a másikat,de csak a tábla szélén,"
200 PRINT INK 3;AT 13,14;" ha lehet,akkor a másik korongot
kötelező kiütni."210 RANDOMIZE USR 65055: PAUSE 50: PRINT INK 5;AT 16,14;"4.ha nincs ütésben lévő korong,csak akkor lökheted arrébb az ellen- feled korongjait"
220 RANDOMIZE USR 65055: PAUSE 50: FOR x=0 TO 10 STEP 2: FOR y=0 TO 10 STEP 2
225 BEEP .01,x
230 INK i: IF (x=0 OR x=10) THEN INK i2: IF y/4=INT (y/4+.001) THEN LET i2=6-i2: GOTO 260
240 IF y=0 OR y=10 THEN INK i2: IF y=10 AND x/4=INT (x/4+.001) THEN LET i2=6-i2: GOTO 260
250 IF y <> 0 AND y <> 10 AND y <> 8 THEN LET i=6-i
260 PRINT AT x,y;"__";AT x+1,y;"__";
270 NEXT y: PRINT INK 7;CHR$ (97+x/2): NEXT x
280 INK 7
290 PRINT " 1 2 3 4 5 6"
300 PRINT 0;" (c) NyitraiSOFT tix-tax játék"
310 LET a$="zöld": LET b$="piros"
320 LET r=18: LET g=18: DIM a(2): DIM b(2): DIM c(2): DIM x(12)
330 IF RND <= .5 THEN GOTO 350
340 IF RND >= .5 THEN GOTO 360
350 LET p$=a$: LET gt=66: LET p=68: GOSUB 500
360 IF r=0 THEN LET w$=a$: GOTO 820
370 LET p$=b$: LET gt=68: LET p=66: GOSUB 500
380 PRINT INK 4;AT 15,1;"zöld :";g;" ";AT 16,1; INK 2;"piros:";r;" ": PRINT : PRINT
390 IF g=0 THEN LET w$=b$: GOTO 820
400 GOTO 350
410 LET i$=INKEY$: IF i$<"a" OR i$>"f" THEN GOTO 410
420 BEEP .05,30
430 LET x=2*(CODE i$-97): PRINT i$;
440 LET i$=INKEY$
450 IF i$=CHR$ 12 THEN PRINT CHR$ 8; OVER 0;" ";CHR$ 8;: GOTO 410
460 IF i$<"1" OR i$>"6" THEN GOTO 440
470 BEEP .05,20
480 LET y=2*(VAL i$-1): PRINT i$;
490 RETURN
500 PRINT AT 20,0; PAPER 0; INK p-64;"a ";p$;" l_p "; PAPER 0
510 PRINT INK 4;AT 15,1;"zöld :";g;" ";AT 16,1; INK 2;"piros:";r;" ": PRINT : PRINT
515 RANDOMIZE USR 65055
520 GOSUB 410: PRINT TAB 2;"-ró l ";
530 LET a(1)=x: LET a(2)=y: GOSUB 410
540 LET b(1)=x: LET b(2)=y: LET c=2
550 IF a(1)=b(1) AND a(2)=b(2) THEN GOTO 500
560 IF a(1) <> b(1) THEN LET c=1: IF a(2) <> b(2) THEN LET il=1: GOTO 760
570 IF ATTR (a(1),a(2)) <> p THEN LET il=2: GOTO 760
580 FOR x=0 TO 11: LET c(c)=x: LET c(3-c)=a(3-c)
590 LET x(x+1)=ATTR (c(1),c(2))-64
600 NEXT x: LET got=0
610 FOR x=a(c) TO b(c)-2*SGN (b(c)-a(c)) STEP SGN (b(c)-a(c))*2
620 LET c(c)=x-(x/2 <> INT (x/2)): LET c(3-c)=a(3-c)
630 BEEP .1,c(c)
640 LET c1=ATTR (c(1),c(2)): PRINT INK 7;AT c(1),c(2);"__";AT c(1)+1,c(2);"__"
650 LET c(c)=c(c)+2*SGN (b(c)-a(c)): IF c(c)>10 OR c(c)<0 THEN GOTO 700
660 LET c2=ATTR (c(1),c(2)): PRINT INK c1-64;AT c(1),c(2);"__";AT c(1)+1,c(2);"__"
670 LET c1=c2
680 IF c1 <> 71 THEN GOTO 650
690 GOTO 720
700 IF c1=p THEN LET il=3: GOTO 780
710 IF c1=gt THEN LET got=got+1: GOTO 720
720 NEXT x
730 LET r=r-got*(gt=66): LET g=g-got*(gt=68)
740 IF NOT got AND ABS (a(c)-b(c))>2 THEN LET il=4: GOTO 780
750 RETURN
760 BEEP 1,0: OVER 0: PRINT AT 21,0;il;"-s szab_ly!": PAUSE 1: PAUSE 100
770 PRINT AT 21,0;" ": GOTO 500
780 FOR x=0 TO 11 STEP 2: LET c(c)=x: LET c(3-c)=a(3-c)
790 PRINT AT c(1),c(2); INK x(x+1);FN a$(x(x+1)+64);AT c(1)+1,c(2);FN b$(x(x+1)+64)
800 NEXT x
810 GOTO 760
820 REM játÉk vÉge,ÉrtÉkelÉs
830 PRINT INK 4;AT 15,0;"zöld :";g;" ";AT 16,0; INK 2;"piros:";r;" "
840 PRINT INK 6;AT 20,0;"a ";w$;" győzött!"; INK 5;TAB 0;"nyomd az enter-t,az új játékhoz"
850 BEEP 1,30
860 PAUSE 1: PAUSE 0: RUN
1000 REM f?cÍm-keret
1005 BORDER 1: PAPER 1: BRIGHT 1: INK 0: CLS
1010 FOR i=0 TO 31: PRINT INK INT (2+RND*6);AT 0,0+i;"_": BEEP .02,i: NEXT i
1020 FOR i=0 TO 21: PRINT INK INT (2+RND*6);AT 0+i,0;"_": BEEP .02,i: NEXT i
1022 FOR i=0 TO 31: PRINT INK INT (2+RND*6);AT 21,0+i;"_": BEEP .02,i: NEXT i
1028 FOR i=0 TO 21: PRINT INK INT (2+RND*6);AT 0+i,31;"_": BEEP .02,i: NEXT i
1032 PRINT AT 6,7;"______a"
1033 PRINT AT 7,7;"______b"
1034 PRINT AT 8,7;"______c"
1035 PRINT AT 9,7;"______d"
1036 PRINT AT 10,7;"______e"
1037 PRINT AT 11,7;"______f"
1038 PRINT INK 7;AT 12,7;"123456"
1040 PRINT INK 6;AT 2,5;"NyitraiSOFT be
mutatja:"; INK 5;AT 6,20;"TIX-TAX";AT 7,22;"nevű"; INK 3;AT 9,20;"logikai";AT 10,20;"játékát"; INK 2;AT 12,20;"(c) 2002'"1050 PRINT INK 6;AT 16,10;"készítette:"; INK 2;AT 17,9;"'játékgyáros'"
1060 PRINT INK 7;AT 19,2;"Nyomj egy gombot a kezdéshez!"
1065 PAUSE 0
1070 RETURN
OTHELLO-REVERSI
Leírás:
Angliában lesz egy Demo party, ahol Basic és Gépi kódú programokat várnak (sajna csak angol nyelven fogadják) melynek beküldési határideje 2002 október.
Erre készítettem egy Othello-Reversi nevű táblás játékot. Persze egy ilyen progi volt a 2002 év első programja is, de ez sokban eltér az előzőtől.
A játék lehetőségei:
még nem láttam olyan játékot, amelyik ezeket tudta volna:
1. lehetőség van elrontott lépés visszavonására, bárhonnan,
2. a játék kimentése-visszatöltése
3. a játék állás - az összes lépés kilistázása
A játékban négy erősségi fokozat van, (érdekességképpen a 3-4 fokozatban nem engedi a Spectrum (és én Ny. L.) a visszalépéseket, ekkor kimentjük az adott állást, gyengébb fokozatban indítjuk el a játékot, és visszatöltjük a mentett változatot és akkor - backup-olunk, visszalépünk.
A játék a kedvenc betűtípusommal készült, és ismerős hanghatásokat fogtok hallani.

1 REM FORMAT \ATTR ^NOT -]NOT aa,??????
2 REM NOT @fNOT NOT |fNOT POINT fNOT !eNOT GeNOT DRAW dNOT PLOT dNOT ?bNOT ?b?????????????????^??????^????a??????????a
3 REM NOT ágNOT CLOSE hNOT giNOT ngNOT Yg???6?NOT ?g:?b RETURN ? !> COPY 2 BORDER !\~ RETURN ? IF <g(? PLOT ?wx<G RETURN Z NEW :?b RETURN ?:?b RETURN ? ?>bNOT REM a! STEP INVERSE \~ RETURN ? PAUSE CLOSE \CODE 2 READ \<>PRINT OR : OR :STR$ STR$ LET >CODE 2BIN h2 OR h2 AND h2<=h> COPY 2?b2NOT h!??" LLIST \">=h RETURN "LINE h" TO h" DEF FN h2 LPRINT \!~ NEW á RETURN ?CHR$ ACS hCODE 2 DATA \ STEP CLOSE \: READ \ RETURN ?LINE ACS h: LPRINT \ STEP PLOT aCODE 2?b:?b RETURN g:?b RETURN ? POKE gi: BORDER \ RETURN COPY ?: READ \oCODE g" LLIST \* LLIST \" FORMAT h:?b RETURN
100 REM ***********************
* Author - L.Nyitrai *
***********************
102 REM **************************
2002 NyitraiSOFT
**************************
110 GO SUB 500
150 DIM m$(40,6,1)
170 GO TO 1000
200 BORDER 1: PAPER 1: INK 7: BRIGHT 0: CLS
210 PRINT INK te+7;AT 1,3;"1 2 3 4 5 6 7 8 Reversi"
211 PRINT INK te+6;AT 1,3;"1 2 3 4 5 6 7 8 "; OVER 1; PAPER 6; INK be;"·······"
220 PRINT INK be;" ńiiiiiiiiiiiiiiiie"; INK 5;" level ";hlev
230 FOR i=1 TO 8 STEP 2
240 GO SUB 450
260 NEXT i
270 PRINT INK be;" áaaaaaaaaaaaaaaaaÔ"
280 PRINT INK te;AT 4,20;"spectrum"
290 PRINT INK te+6;AT 5,20;"move"
300 PRINT INK te+7;AT 7,20;"humans"
310 PRINT INK te+7;AT 8,20;"move"
320 PRINT INK te;AT 10,20;"spectrum = "; INK ch1;"·"
330 PRINT INK te+7;AT 11,20;"human = "; INK ch2;"·"
340 PRINT INK be+3;AT 13,20;"move=row col"
350 PRINT INK be+3;AT 14,20;"or =option"
360 PRINT INK be+3;AT 15,20;"or =?(help)"
370 PRINT INK te+2;AT 17,20;"score at"
380 PRINT INK te+3;AT 18,20;"play 1"
390 PRINT INK te;AT 19,20;"spectrum 2"
400 PRINT INK te+7;AT 20,20;"human 2"
410 PRINT INK 6;AT 20,1;"ę 2002 NyitraiSOFT"
440 RETURN
450 PRINT INK be;" a";
452 FOR j=1 TO 4: PRINT PAPER bbg1; INK bbg1;"ö¸"; PAPER bbg2; INK bbg2;"ö¸";: NEXT j
454 PRINT INK be;"e"
456 PRINT CHR$ (i+48); INK be;"a";
460 FOR j=1 TO 4: PRINT PAPER bbg1; INK bbg1;"ou"; PAPER bbg2; INK bbg2;"ou";: NEXT j
462 PRINT INK be;"e"
464 PRINT INK be;" a";
466 FOR j=1 TO 4: PRINT PAPER bbg2; INK bbg2;"ö¸"; PAPER bbg1; INK bbg1;"ö¸";: NEXT j
470 PRINT INK be;"e"
475 PRINT INK te;CHR$ (i+49); INK be;"a";
480 FOR j=1 TO 4: PRINT PAPER bbg2; INK bbg2;"ou"; PAPER bbg1; INK bbg1;"ou";: NEXT j
485 PRINT INK be;"e"
495 RETURN
500 LET sbg=5
510 LET bbg1=3
520 LET bbg2=4
530 LET ch1=0
540 LET ch2=7
550 LET be=2
560 LET te=0
570 RESTORE 650
580 BORDER sbg
590 PAPER sbg
600 FOR i=1 TO 5: READ p$
610 FOR j=0 TO 7
620 READ a: POKE USR p$+j,a
630 NEXT j
640 NEXT i
645 RETURN
650 DATA "a",0,0,3,15,31,31,63,63
660 DATA "b",0,0,BIN 11000000,BIN 11110000,BIN 11111000,BIN 11111000,BIN 11111100,BIN 11111100
670 DATA "c",63,63,31,31,15,3,0,0
680 DATA "d",BIN 11111100,BIN 11111100,BIN 11111000,BIN 11111000,BIN 11110000,BIN 11000000,0,0
690 DATA "e",BIN 00111100,BIN 01111110,255,255,255,255,BIN 01111110,BIN 00111100
1000 BORDER 1: PAPER 0: INK 7: BRIGHT 1: CLS
1001 PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
1002 PLOT 2,2: DRAW 251,0: DRAW 0,171: DRAW -251,0: DRAW 0,-171
1003 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
1004 FOR n=2 TO 7
1005 PRINT INK n;AT 7,8;"OTHELLO/REVERSI"
1008 PAUSE 10
1009 RANDOMIZE USR 65034: NEXT n
1010 PRINT AT 20,1; INK n;"Do you want instructions?(y/n)"
1011 PRINT INK 5;AT 2,9;"NyitraiSOFT";AT 3,11;"present"; INK 6;AT 13,11;"written";AT 14,8;"Leslie Nyi
trai"; INK 5;AT 18,6;"ę 2002 NyitraiSOFT"1012 IF INKEY$<>"" THEN GO TO 1014
1013 GO TO 1004
1014 BRIGHT 0: INPUT z$
1015 IF z$="y" THEN GO SUB 5400: GO SUB 5000: CLS
1016 PRINT
1017 CLS
1018 PLOT 84,155: DRAW 64,0: DRAW 0,18: DRAW -64,0: DRAW 0,-18: PRINT AT 1,11;"REVERSI"
1019 PRINT AT 7,5;"What level player are you?",,," beginner = 1"," moderate = 2"," advanced = 3"," expert = 4"
1020 INPUT hlev
1030 IF hlev<1 OR hlev>4 THEN LET hlev=4
1040 PRINT ,,"Would you like to go first?(y/n)"
1050 LET f=255
1060 INPUT z$
1070 IF z$(1)="n" THEN LET f=0
1100 LET seg1=23760
1110 LET seg2=25066
1120 LET seg3=26372
1130 POKE seg3+19,0
1200 POKE seg2+33,hlev
1210 LET i=USR (seg2+6)
1220 GO SUB 4700
1230 LET play=PEEK (seg2+32)
1830 RANDOMIZE 0
1860 IF f=255 THEN POKE seg3+17,INT (RND*3): GO TO 3320
1865 LET m$(1,1)=CHR$ 0: LET m$(1,2)=CHR$ 0
1867 POKE seg3+17,INT (RND*4)
1870 PRINT AT 5,25; PAPER 7; INK 0; FLASH 1;"working"
1900 LET i=USR seg3
2500 IF PEEK (seg2+31)=0 THEN GO TO 2530
2510 PRINT AT 5,25; PAPER 0; INK 7;"no move"
2515 LET row=0: LET col=0
2520 GO TO 2800
2530 POKE seg3+15,INT (RND*30)
2550 LET i=USR (seg3+3)
2560 LET best=PEEK (seg3+18)
2650 LET row=INT (best/10)
2660 LET col=best-1-row*10
2670 PRINT AT 5,25; PAPER 0; INK 7;" ";row;" ";col;" "
2680 POKE seg1+16,best
2690 POKE seg1+20,0
2700 LET i=USR (seg2+9)
2710 LET c=PEEK (seg1+19)
2720 LET cc=PEEK (seg2+35)
2730 LET hc=PEEK (seg3+16)
2740 LET cc=cc+c
2750 LET hc=hc-c+1
2760 PRINT AT 19,29;cc;" "
2770 PRINT AT 20,29;hc;" "
2780 POKE seg2+35,cc
2790 POKE seg3+16,hc
2795 POKE seg1+16,best
2797 LET i=USR (seg2+18)
2800 LET play=PEEK (seg2+32)
2805 LET m$(play,3)=CHR$ row
2810 LET m$(play,4)=CHR$ col
2820 LET m$(play,5)=CHR$ hc
2830 LET m$(play,6)=CHR$ cc
2840 LET play=play+1
2845 POKE seg2+32,play
2850 PRINT AT 18,25; INK te;play
2855 PRINT AT 8,25; PAPER 7; INK 0; FLASH 1;"working"
2860 IF USR (seg3+20)=255 THEN GO TO 3320
3130 IF PEEK (seg2+31)=255 OR hc+cc=64 THEN GO TO 3160
3140 PRINT AT 8,25; PAPER 7; INK 0;"no move"
3145 LET m$(play,1)=CHR$ 0: LET m$(play,2)=CHR$ 0
3150 GO TO 1870
3160 LET mrgn=cc-hc
3165 PRINT AT 21,0;
3170 IF mrgn<0 THEN PRINT PAPER 7; INK 0; FLASH 1;"You win by ";-mrgn;" chips"
3180 IF mrgn=0 THEN PRINT PAPER 7; INK 0; FLASH 1;"Game drawn"
3190 IF mrgn>0 THEN PRINT PAPER 7; INK 0; FLASH 1;"You lose by ";mrgn;" chips"
3320 LET messg=0
3325 PRINT AT 8,25; PAPER 7; INK 0; FLASH 1;"? "
3327 RANDOMIZE USR 65034
3330 INPUT z$
3335 IF messg=255 THEN PRINT AT 8,30; PAPER 7; INK 0;" "
3340 LET z$=z$+" "
3350 LET row=CODE z$(1)-48
3360 LET col=CODE z$(3)-48
3370 PRINT AT 8,25; PAPER 7; INK 0;" ";z$(1 TO 3);" "
3390 IF z$(1)="f" THEN GO TO 4300
3400 IF z$(1)="d" THEN GO TO 8000
3410 IF z$(1)="l" THEN GO TO 5100
3420 IF z$(1)="n" THEN GO TO 1200
3430 IF z$(1)="r" THEN GO TO 4650
3440 IF z$(1)="s" THEN GO TO 100
3460 IF z$(1)="?" THEN GO TO 5060
3462 IF z$(1)="b" THEN GO TO 6000
3464 IF z$(1)="i" THEN GO TO 4400
3470 IF row<1 OR row>8 OR col<1 OR col>8 THEN GO TO 3600
3510 LET q=row*10+col+1
3515 POKE seg1+16,q
3517 POKE seg1+20,1
3520 LET i=USR (seg3+12)
3540 LET c=PEEK (seg1+19)
3550 IF c<>0 THEN GO TO 3620
3600 PRINT AT 8,30; PAPER 7; INK 0; FLASH 1;"??"
3605 LET messg=255
3610 GO TO 3327
3620 LET m$(play,1)=CHR$ row
3630 LET m$(play,2)=CHR$ col
3640 LET cc=PEEK (seg2+35)-c+1
3650 LET hc=PEEK (seg3+16)+c
3654 POKE seg2+35,cc
3658 POKE seg3+16,hc
3660 PRINT AT 19,29; INK te;cc;" "
3665 RANDOMIZE USR 65055
3670 PRINT AT 20,29; INK te;hc;" "
3680 POKE seg1+16,q
3690 POKE seg1+20,1
3700 LET i=USR (seg2+9)
3710 POKE seg1+16,q
3715 LET i=USR (seg2+21)
3720 GO TO 1870
4000 STOP
4300 PRINT AT 21,0; INK te;"Filename of game to be saved?"
4310 INPUT z$
4320 LET m$(40,1)=CHR$ (PEEK (seg2+32))
4330 SAVE z$ DATA m$()
4350 PRINT AT 21,0;" "
4360 GO TO 3325
4400 PRINT AT 21,0; INK te;"Filename of game to be input?"
4410 INPUT z$
4414 PRINT AT 21,0; INK te;"Start tape then press 'enter'"
4418 INPUT a$
4420 LOAD z$ DATA m$()
4430 LET b=CODE m$(40,1)
4440 LET jj=b
4450 GO TO 6140
4650 GO SUB 4700
4660 GO TO 3325
4700 GO SUB 200
4710 LET i=USR (seg2+3)
4720 PRINT AT 18,25;PEEK (seg2+32)
4730 PRINT AT 19,29;PEEK (seg2+35)
4740 PRINT AT 20,29;PEEK (seg3+16)
4750 RETURN
5000 CLS
5030 BORDER 2: PAPER 2: CLS : PRINT AT 0,0; INK te+7;" Options are:",,,," b - backup. Correct a bad move by going back one or"," several moves. This mode"," can also be used to set up a game or allow 2 to play",,," f - save game on cassette",,," i - input a saved game",,," l - list move summary",,," n - new game, same level",,," s - new game, start afresh",,," ? - display options",,," Press 'enter' to continue"
5040 INPUT z$
5045 BORDER 5: PAPER 5: INK te: CLS
5050 RETURN
5060 GO SUB 5000
5070 GO SUB 4700
5080 GO TO 3325
5100 GO SUB 5200
5110 FOR i=1 TO PEEK (seg2+32)-1
5120 IF i<>16 AND i<>32 THEN GO TO 5130
5122 GO SUB 5300
5124 GO SUB 5200
5140 PRINT INK te+7;" ";i+1;TAB 7;CODE m$(i,1);" ";CODE m$(i,2);TAB 14;CODE m$(i,3);" ";CODE m$(i,4);TAB 20;CODE m$(i,5);TAB 27;CODE m$(i,6)
5150 NEXT i
5160 GO SUB 5300
5170 GO SUB 4700
5180 GO TO 3325
5200 CLS
5210 PRINT
5220 PRINT INK te+6;" play human comp human comp"
5230 PRINT INK te+5;TAB 7;"move move score score"
5240 PRINT
5250 RETURN
5300 PRINT
5310 PRINT INK te+5;" press 'enter' to continue"
5320 INPUT z$
5330 RETURN
5400 BORDER 2: PAPER 2: INK 5: CLS
5410 PRINT INK te+5;"The object of the game is to","place your chip "; INK ch2;"·"; INK te+5;" on the board","in such a way as to bracket the","computers chips "; INK ch1;"·"; INK te+5;".",,,"You capture all the bracketed","chips, vertically, horizontally","and diagonally.",,,,"Moves are made by entering the","row number followed by 'space'","followed by column number eg 5 3",,"Various options are available.","These are selected by entering","an option letter or ? instead ofa move value. ? causes the","options to be displayed.",,,"Illegal move is indicated by ??",,,"Press 'enter' to continue"
5420 INPUT z$
5430 CLS
5440 RETURN
6000 CLS
6010 PRINT
6020 PRINT "Move back up",,"____________",,,,"Several options are available.","Enter either",,,," n - back up to play 'n'","or -n - back up 'n' plays","or 0 - pre-load the game move"," by move."," 'p' is then used to pass";" 's' to start the game.",,,
6025 PRINT "Current play = ";PEEK (seg2+32)
6030 INPUT b
6040 IF b=0 THEN LET jj=40: GO TO 6140
6050 IF hlev<>4 THEN GO TO 6100
6070 PRINT "Expert players never back up!"
6075 PAUSE 500
6080 GO SUB 4700
6090 GO TO 3325
6100 LET play=PEEK (seg2+32)
6110 IF b<0 THEN LET jj=play+b
6120 IF b>0 THEN LET jj=b
6130 IF jj>=play OR jj<1 THEN PRINT "Cannot back-up to play ";jj: GO TO 6075
6140 LET i=USR (seg2+6)
6150 GO SUB 4700
6152 IF b=0 THEN PRINT AT 21,0; PAPER 0; INK 7;"Pre-loading game, p=pass s=start": GO TO 6155
6153 PRINT AT 21,0; PAPER 0; INK 7;"Backing up to play ";jj
6155 LET play=PEEK (seg2+32)
6157 IF play=jj THEN GO TO 6820
6160 IF b<>0 THEN GO TO 6300
6170 PRINT AT 8,25; PAPER 7; INK 0; FLASH 1;"? "
6180 BEEP 0.25,12: BEEP 0.25,5
6190 INPUT z$
6200 LET z$=z$+" "
6210 PRINT AT 8,25; PAPER 7; INK 0;" ";z$(1 TO 3);" "
6220 LET row=CODE z$(1)-48
6230 LET col=CODE z$(3)-48
6240 IF z$(1)="p" THEN LET row=0: LET col=0
6250 IF z$(1)="s" THEN GO TO 6820
6260 IF row<0 OR row>8 OR col<0 OR col>8 THEN GO TO 6348
6280 LET m$(play,1)=CHR$ row
6290 LET m$(play,2)=CHR$ col
6300 LET row=CODE m$(play,1)
6310 LET col=CODE m$(play,2)
6320 IF row=0 THEN GO TO 6470
6330 POKE seg1+16,10*row+col+1
6340 POKE seg1+20,1
6342 LET i=USR (seg3+12)
6344 LET c=PEEK (seg1+19)
6346 IF c<>0 THEN GO TO 6350
6348 PRINT AT 8,30; PAPER 7; INK 0; FLASH 1;"??": GO TO 6180
6350 LET i=USR (seg2+9)
6360 LET c=PEEK (seg1+19)
6370 LET cc=PEEK (seg2+35)-c+1
6380 LET hc=PEEK (seg3+16)+c
6390 POKE seg2+35,cc
6400 POKE seg3+16,hc
6410 LET m$(play,5)=CHR$ hc
6420 LET m$(play,6)=CHR$ cc
6430 PRINT AT 18,25; INK te;play
6440 PRINT AT 19,29; INK te;cc;" "
6450 PRINT AT 20,29; INK te;hc;" "
6460 LET i=USR (seg2+21)
6470 IF b<>0 THEN GO TO 6600
6480 PRINT AT 5,25; PAPER 7; INK 0; FLASH 1;"? "
6490 BEEP 0.25,12: BEEP 0.25,5
6500 INPUT z$
6510 LET z$=z$+" "
6520 PRINT AT 5,25; PAPER 0; INK 7;" ";z$(1 TO 3);" "
6530 LET row=CODE z$(1)-48
6540 LET col=CODE z$(3)-48
6550 IF z$(1)="p" THEN LET row=0: LET col=0
6560 IF z$(1)="s" THEN GO TO 6830
6570 IF row<0 OR row>8 OR col<0 OR col>8 THEN GO TO 6648
6580 LET m$(play,3)=CHR$ row
6590 LET m$(play,4)=CHR$ col
6600 LET row=CODE m$(play,3)
6610 LET col=CODE m$(play,4)
6620 IF row=0 THEN GO TO 6770
6630 POKE seg1+16,10*row+col+1
6640 POKE seg1+20,0
6642 LET i=USR (seg3+12)
6644 LET c=PEEK (seg1+19)
6646 IF c<>0 THEN GO TO 6650
6648 PRINT AT 5,30; PAPER 7; INK 0; FLASH 1;"??": GO TO 6490
6650 LET i=USR (seg2+9)
6660 LET c=PEEK (seg1+19)
6670 LET cc=PEEK (seg2+35)+c
6680 LET hc=PEEK (seg3+16)-c+1
6690 POKE (seg2+35),cc
6700 POKE (seg3+16),hc
6720 PRINT AT 19,29; INK te;cc;" "
6730 PRINT AT 20,29; INK te;hc;" "
6740 LET m$(play,5)=CHR$ hc
6750 LET m$(play,6)=CHR$ cc
6760 LET i=USR (seg2+18)
6770 LET play=play+1
6780 POKE seg2+32,play
6790 PRINT AT 18,25; INK te;play
6800 LET i=USR (seg3+20)
6810 GO TO 6157
6820 PRINT AT 21,0;" ": GO TO 3325
6830 PRINT AT 21,0;" ": GO TO 1870
8000 STOP

(Sajnos az év végén nem voltam a díjazottak között, megint - szerintem - az értelmetlen csitt-csatt DEMÓ-k vitték el a pálmát.)
SZÍNKERESZT
Leírás:
Az összekevert szín-négy- (majd háromszögeket) négy irányban mozgatva újra össze kell rakni, négy nehézségi fokozata van, mozgatás a kurzorbillentyűkkel.

0 REM SZÍNKERESZT NYITRAI 99'
2 REM 0-ÁS SOR: POKE PEEK 23635+256*PEEK 23636+1,0
9 POKE 25854,4: POKE 25855,4: LET x=USR 25798: GO TO 40
10 BORDER 1: PAPER 1: INK 7: CLS
15 RANDOMIZE
35 LET x=USR 25798
37 GO SUB 1000
38 PRINT INK 6;AT 6,0;"GOMBOKKAL ";AT 3,0;"I = INDUL"; INK 6;AT 4,0;"IRÁNYÍTÁS";AT 5,0;"A KURZOR "
40 FOR i=0 TO 1 STEP 0
50 LET c$=INKEY$: GO SUB 500
100 NEXT i
500 IF c$="U" THEN POKE 25854,4: POKE 25855,4: LET x=USR 25798: BEEP .4,0: BEEP .4,-7: BEEP .4,-12: GO TO 35
505 IF c$="i" OR c$="I" THEN POKE 25854,4: POKE 25855,4: LET x=USR 25798: FOR k=1 TO nf: LET c$=CHR$ (53+INT (4*RND)): GO SUB 510: NEXT k: PRINT AT 2,0;"U=ÉJBÓL"
510 IF c$="5" THEN LET x=USR 25320: BEEP .1,-9
520 IF c$="6" THEN LET x=USR 25633: BEEP .1,-11
530 IF c$="7" THEN LET x=USR 25512: BEEP .1,-4
540 IF c$="8" THEN LET x=USR 25416: BEEP .1,-6
545 PRINT AT 4,10;"K";AT 5,9;"PSL";AT 6,10;"Z"
550 RETURN
1000 PRINT INK 2;AT 6,0;"4=ÖNGYILKOS"; INK 6;AT 20,20;"SZÍN-KERESZT";AT 3,0;"1=KÖNNY
Ű"; INK 3;AT 21,20;"NYITRAI 1999";AT 4,0;"2=KÖZEPES"; INK 5;AT 5,0;"3=NEHÉZ"1020 IF INKEY$="1" THEN LET nf=10: RETURN
1022 IF INKEY$="2" THEN LET nf=20: RETURN
1024 IF INKEY$="3" THEN LET nf=30: RETURN
1026 IF INKEY$="4" THEN LET nf=50: RETURN
1030 GO TO 1020
MAYA (AWARI-AWALE-BABSZEM-KAVICS) JÁTÉK
Leírás:
Maya, vagy Awari-Awale kavicsjáték, egyes források szerint régi maya, mások szerint afrikai eredetű játék. Európába azon rabszolga-kereskedők hozták be, akik az Amerikába tartó hajóút alatt az elfogott-szállított rabszolgáktól tanulták el.
Mindenki előtt hat kis tálka van, oldalt egy nagyobb gyűjtő-tállal, és a tálkákban 1-6 golyó, kavics, babszem stb. van, attól függően, hogy melyik országban játsszák. Tetszés szerinti tálkát választva, ki lehet venni a tálka tartalmát.
Arra kell törekedni, hogy az utolsó golyó olyan tálkába kerüljön, amellyel szemben van még néhány golyó, azt mind el lehet venni. Az nyer, akinek a végére több golyója lesz.

A kommentált lista:
5 REM
6 REM *********************
10 REM *** awari/awale ***
*** babszem/kavics **
**** MAYA golyós ****
**** játék ****
11 REM *********************
20 REM * Nyitrai MAYA 2001'*
30 REM *** hatfokozatos ***
35 REM *** logikai játék ***
36 REM
40 REM UDG karakterek
45 REM
50 REM r=" d=u k=Á l=Â g=Ü e=ü n=Ş m=3 j=y a=ö b=¸ c=o d=u f=u g=Ü h=ü i=? q=" r=1/4 s=1/2 o=1 p=o
60 REM
70 REM UDG CODE USR "A",168
85 REM beállítjuk az alapszíneket
90 BRIGHT 0: BORDER 4: PAPER 4: INK 0: CLS
95
REM alaphelyzetben a pontszám c és s nulla,b és g számtömb 14 helyiértékű,a lépéstömb=51100 LET c=0: LET s=0: RANDOMIZE : DIM b(14): DIM g(14): DIM f(51)
105 GO SUB 9000
107 BRIGHT 0: BORDER 4: PAPER 4: INK 0: CLS
210 GO SUB 460: GO SUB 1580
220 GO SUB 940: GO SUB 720
225 REM a b(14) a számítógépé,a b(7) az én babszemeimet jelöli
230 IF (b(7)-20)*(b(14)-20)<=0 OR e=0 THEN PRINT AT 4,0;" Vége! ": FOR l=1 TO 300: NEXT l: GO TO 330
240 IF m<>h THEN GO TO 260
250 GO SUB 710: GO SUB 1820: GO SUB 1770
255 REM ha e=0 a jatéknak vége,nem maradt a számitógépnek már babszem a kupákban
260 IF e=0 THEN PRINT AT 4,0;" Vége! ": FOR i=1 TO 300: NEXT i: GO TO 330
270 IF s=0 THEN GO SUB 1640
280 GO SUB 1750: GO SUB 1240: GO SUB 1890
285 REM ha e=0 a jatéknak vége,nem maradt a számítógépnek már babszem a kupákban
290 IF e=0 THEN PRINT AT 4,0;" Vége! ": FOR i=1 TO 300: NEXT i: GO TO 330
300 IF m<>h THEN GO TO 320
310 GO SUB 940: GO SUB 1840: GO SUB 1240: GO SUB 1890: GO SUB 1870
320 IF e>0 THEN GO TO 220
325 REM vége a játéknak,az értékelés következik
330 CLS : PRINT INK 2;AT 0,1;"ö1/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/4¸"
332 PRINT INK 2;AT 1,1;"Á";AT 1,31;"Â";AT 2,1;"Á";AT 2,31;"Â";AT 3,1;"Á";AT 3,31;"Â";AT 4,1;"Á";AT 4,31;"Â";AT 5,1;"Á";AT 5,31;"Â";AT 6,1;"Á";AT 6,31;"Â";AT 7,1;"Á";AT 7,31;"Â"
334 PRINT INK 2;AT 1,1;"Á";AT 1,31;"Â";AT 2,1;"Á";AT 2,31;"Â";AT 3,1;"Á";AT 3,31;"Â";AT 4,1;"Á";AT 4,31;"Â";AT 5,1;"Á";AT 5,31;"Â";AT 6,1;"Á";AT 6,31;"Â";AT 7,1;"Á";AT 7,31;"Â"
335 PRINT INK 2;AT 8,1;"Á";AT 8,31;"Â";AT 9,1;"Á";AT 9,31;"Â";AT 10,1;"Á";AT 10,31;"Â";AT 11,1;"Á";AT 11,31;"Â";AT 12,1;"Á";AT 12,31;"Â";AT 13,1;"Á";AT 13,31;"Â";AT 14,1;"Á";AT 14,31;"Â"
336 PRINT INK 2;AT 15,1;"Á";AT 15,31;"Â";AT 16,1;"Á";AT 16,31;"Â";AT 17,1;"Á";AT 17,31;"Â";AT 18,1;"Á";AT 18,31;"Â";AT 19,1;"Á";AT 19,31;"Â";AT 20,1;"Á";AT 20,31;"Â"
338 PRINT INK 2;AT 20,1;"o"""""""""""""""""""""""""""""u"
339 PRINT AT 4,6;" Vége a játéknak !"
340 LET d=b(7)-b(14)
350 IF d>=0 THEN GO TO 370
355 REM ha a b(14) értéke nagyobb,mint b(7),a számítógép nyert
360 PRINT AT 8,5;"én nyertem ! ";-d;" golyóval": GO TO 420
370 LET m=m+1: IF d<>0 THEN GO TO 390
375 REM ha a b(14) értéke megegyezik b(7)-el,akkor döntetlen
380 PRINT AT 8,10;"Döntetlen !": GO TO 420
385 REM ha a b(7) értéke nagyobb,mint b(14),a játékos nyert
390 PRINT INK 6;AT 6,5;"Végeredmény:"; INK 1;b(7);"-"; INK 2;b(14);" goly1"; INK 1;AT 8,5;"te nyertél ! ";d;" golyóval"; INK 2;AT 12,10;"gratulálok !"
395
REM győzelmi zene400 RESTORE 410: FOR n=1 TO 22: READ j,b: BEEP j,b: NEXT n
410 DATA .2,0,.2,2,.2,4,.4,5,.3,0,.2,5,.2,4,.2,5,.4,7,.2,2,.2,2,.2,4,.2,5,.3,9,.2,7,.2,7,.2,5,.2,5,.2,4,.2,2,.2,4,.2,5,.2,5
420 INPUT " Mégegyszer ? (I/N) ";c$
430 IF c$="I" OR c$="i" THEN GO TO 90
435 REM ha nincs újabb játék , a számítógép udvariasan elköszön
440 CLS : PRINT INK 2;AT 5,5;"Befejeztük a játékot !"; INK 1;AT 9,1;"Visszlát,méltó ellenfél voltál!": STOP
450 REM *** a képernyőtábla *** megrajzolom a küzdőteret
460 CLS
461 PRINT 0;" (c) Nyitrai MAYA 2001'"
462 PRINT INK 2;AT 0,1;"ö1/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/4¸"
465 INK 2: PRINT AT 1,1;"AWARI"; INK 5;" régi"; INK 1;" MAYA"; INK 3;" golyós "; INK 2;"játék"
466 PRINT AT 2,1;"o""""""""""""""""""""""""""""u"
467 PRINT INK 2;AT 6,0;"ö1/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/4¸"
470 PRINT AT 7,0;"Á Â"
471 PRINT AT 8,0;"Á Â"
472 PRINT AT 9,0;"Á Â"
473 PRINT AT 10,0;"Á Â"
474 PRINT AT 11,0;"Á Â"
475 PRINT AT 12,0;"Á Â"
476 PRINT AT 13,0;"Á Â"
478 PRINT AT 14,0;"Á Â"
479 PRINT AT 15,0;"Á Â"
480 PRINT AT 16,0;"Á Â"
481 PRINT AT 16,0;"o""""""""""""""""""""""""""""""u"
484 FOR m=1 TO 5: LET n=.01
485 REM a kupák kerek körvonala
490 LET kozep=64: LET iv=100: LET sugar=14
500 INK 2: CIRCLE kozep,iv,sugar: BEEP n,m
510 CIRCLE kozep+25,iv,sugar: BEEP n,m
520 CIRCLE kozep+50,iv,sugar: BEEP n,m
530 CIRCLE kozep+75,iv,sugar: BEEP n,m
540 CIRCLE kozep+100,iv,sugar: BEEP n,m
550 CIRCLE kozep+125,iv,sugar: BEEP n,m
560 INK 1: FOR i=96 TO 91 STEP -1
570 CIRCLE 212,i-12,15: BEEP .01,i/10: NEXT i
580 CIRCLE kozep+125,iv-27,sugar: BEEP n,m
590 CIRCLE kozep+100,iv-27,sugar: BEEP n,m
600 CIRCLE kozep+75,iv-27,sugar: BEEP n,m
610 CIRCLE kozep+50,iv-27,sugar: BEEP n,m
620 CIRCLE kozep+25,iv-27,sugar: BEEP n,m
630 CIRCLE kozep,iv-27,sugar: BEEP n,m
640 INK 1: FOR i=105 TO 100 STEP -1: INK 2
650 CIRCLE 38,i-14,15: BEEP .01,i/10: NEXT i
655 REM a rajzolás közben egy kis hanghatás
660 INK 1: LET n=0: FOR i=1 TO 6: BEEP .01,i: PRINT AT 15,i+n+7;i;AT 5,24-i-n;i: LET n=n+2: NEXT i
665 LET x$="Spectrum": LET y$="Játékos"
668 FOR i=1 TO 8
670 PRINT INK 2;AT 7+i,1;x$(i);
672 NEXT i
674 FOR i=1 TO 7
675 PRINT INK 1;AT 7+i,30;y$(i);
676 NEXT i
680 RETURN
690 REM *** lépések ***
700 GO TO 720
705
REM ha a gyűjtőbe sikerült lépnünk,jutalomként újra léphetünk710 BEEP .05,25: PRINT INK 2;AT 17,3; FLASH 1;"Ism3t"; FLASH 0: GO SUB 1820: GO TO 730
715 GO SUB 1660: GO SUB 1680
721 REM a kupák kiválasztása korlátozva,hogy csak 1-6 között legyen
730 BEEP .01,10: PRINT PAPER 7; INK 1;AT 3,11;" te lépsz "
731 RANDOMIZE USR 65055
735 LET a$=INKEY$: IF a$<"1" OR a$>"6" THEN GO TO 735
740 LET m=VAL a$
750 IF b(m)=0 THEN GO TO 735
760 LET n=0
770 FOR x=1 TO 6
780 IF a$<>STR$ x THEN LET n=n+2: NEXT x
790 GO SUB 1730
800 LET h=7: LET m=x
810 GO SUB 830
820 GO TO 940
830 LET k=m: GO SUB 1120
840 LET e=0: IF k<=6 THEN GO TO 860
850 LET k=k-7
860 LET c=c+1: IF c>=9 THEN GO TO 880
870 LET f(m)=f(m)*6+k
880 FOR i=1 TO 6: IF b(i)<>0 THEN GO TO 900
890 NEXT i: RETURN
900 FOR i=8 TO 13: IF b(i)=0 THEN GO TO 920
910 LET e=1: RETURN
920 NEXT i: RETURN
930 REM *** lépés kijelzés ***
940 LET z=0: FOR i=1 TO 6
945
REM a gyűjtőkosárban lévő babszemek kiírása és törlése950 IF b(i)>=10 THEN PRINT AT 12,i+z+6;b(i): GO TO 980
960 IF b(i)=0 THEN PRINT AT 12,i+z+6;" ": GO TO 980
970 BEEP .01,i: PRINT AT 12,i+z+7;b(i)
980 LET z=z+2: PAUSE 30: NEXT i
990 IF b(7)>=10 THEN PRINT AT 11,26;b(7): GO TO 1010
995
REM a játékos kosarában lévő babszemek száma1000 PRINT AT 11,26;b(7)
1015 PRINT INK 2;AT 18,1;"ö1/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/4¸"
1016 INK 2: PRINT AT 19,1;"Á";AT 19,6;"az ŞllŞs ";b(14);"-";b(7);" goly1 ";AT 19,30;"Â"
1017 PRINT INK 2;AT 20,1;"o""""""""""""""""""""""""""""u"
1020 LET z=0: FOR i=8 TO 13
1030 IF b(i)>=10 THEN PRINT AT 9,30-i-z;b(i): GO TO 1060
1040 IF b(i)=0 THEN PRINT AT 9,30-i-z;" ": GO TO 1060
1050 BEEP .01,i: PRINT AT 9,31-i-z;b(i)
1060 LET z=z+2: PAUSE 30: NEXT i
1070 IF b(14)>=10 THEN PRINT AT 10,4;b(14): GO TO 1090
1075
REM a SPECTRUM gyűjtőkosarában lévő babszemek száma1080 PRINT AT 10,4;b(14)
1090 INK 1: PRINT AT 19,6;"az állás "; INK 2;b(14); INK 2;"-"; INK 1;b(7); INK 3;" golyó"
1100 RETURN
1110 REM *** lepésismétlések ***
1120 LET p=b(m): LET b(m)=0
1130 FOR p=p TO 1 STEP -1
1140 LET m=m+1: IF m<=14 THEN GO TO 1160
1150 LET m=m-14
1160 LET b(m)=b(m)+1
1170 NEXT p
1180 IF b(m)<>1 THEN GO TO 1210
1190 IF (m-7)*(m-14)=0 THEN GO TO 1210
1200 IF b(14-m)<>0 THEN GO TO 1220
1210 RETURN
1220 LET b(h)=b(h)+b(14-m)+1: LET b(m)=0: LET b(14-m)=0: RETURN
1230 REM *** a számitógép lép ***
1240 LET kl=6: LET d=-99: LET h=14
1250 FOR i=1 TO 14: LET g(i)=b(i): NEXT i
1260 FOR j=13 TO 8 STEP -1: IF b(j)=0 THEN GO TO 1520
1270 LET q=0: LET m=j: GO SUB 1120
1275 REM hangjelzés kíséretében a lépés utáni állapot kijelzés
1280 IF s=0 THEN FOR i=1 TO 6
1290 BEEP .05,-10*i
1300 IF b(i)=0 THEN GO TO 1400
1310 LET l=b(i)+1: LET r=0
1320 IF l<=14 THEN GO TO 1340
1330 LET l=l-14: LET r=1: GO TO 1320
1340 IF b(l)<>0 THEN GO TO 1370
1350 IF (l-7)*(l-14)=0 THEN GO TO 1370
1360 LET r=b(14-l)+r
1370 IF s=0 THEN GO TO 1380
1380 IF r<=q THEN GO TO 1400
1390 LET q=r
1400 NEXT i
1410 IF s=0 THEN LET q=b(14)-b(7)-q
1420 IF c>8 THEN GO TO 1490
1430 LET k=j: IF k<=7 THEN GO TO 1450
1440 LET k=k-7
1450 FOR i=1 TO m-1
1460 IF f(m)*7+k<>INT (f(i)/7^(7-c)+1) THEN GO TO 1480
1470 LET q=q-2
1480 NEXT i
1490 FOR i=1 TO 14: LET b(i)=g(i): NEXT i
1500 IF q<d THEN GO TO 1520
1510 LET a=j: LET d=q
1515 REM amíg a számítógép keresi a legjobb megoldást,villogva kiírja- gondolkodom - más és más színnel
1520 LET kl=kl-1: PRINT FLASH 1; INK kl;AT 3,11;"GONDOLKODOM!": NEXT j: PRINT FLASH 0;AT 3,11;" "
1530 LET m=a: GO SUB 1780: GO TO 830
1540 REM ha a babszem 1 és 6 között van
1550 FOR i=1 TO 14: LET b(i)=INT (RND*6)+1: NEXT i
1560 LET b(14)=0: LET b(7)=0
1570 RETURN
1600 GO TO 1620
1610 GO SUB 1550
1611 RETURN
1612 REM ha a babszem = 1
1614 FOR i=1 TO 14: LET b(i)=1: NEXT i: LET b(7)=0: LET b(14)=0: RETURN
1616 REM ha a babszem = 2
1618 FOR i=1 TO 14: LET b(i)=2: NEXT i: LET b(7)=0: LET b(14)=0: RETURN
1620 RETURN
1625 REM ha a babszem = 3
1630 FOR i=1 TO 14: LET b(i)=3: NEXT i: LET b(7)=0: LET b(14)=0: RETURN
1632 REM ha a babszem = 4
1633 FOR i=1 TO 14: LET b(i)=4: NEXT i: LET b(7)=0: LET b(14)=0: RETURN
1634 REM ha a babszem = 5
1635 FOR i=1 TO 14: LET b(i)=5: NEXT i: LET b(7)=0: LET b(14)=0: RETURN
1636 REM ha a babszem = 6
1637 FOR i=1 TO 14: LET b(i)=6: NEXT i: LET b(7)=0: LET b(14)=0: RETURN
1640 BEEP .05,1: PRINT PAPER 7; INK 2;AT 3,11;"Spectrum l3p"
1650 RETURN
1660 BEEP .05,1: PRINT AT 3,11;" "
1670 RETURN
1675 REM a játékos választása,a kiírás betűnként,látványosan
1680 LET u$="Melyik kupából veszel?": FOR u=1 TO 22
1690 BEEP .01,u/10: PRINT AT 17,1+u;u$(u): NEXT u: PRINT PAPER 7; INK 1;AT 3,11;" te lépsz "
1700 RETURN
1710 PRINT INK 0;AT 15,i+n+7;i
1720 RETURN
1725 REM a játékos lép
1730 BEEP .05,1: PRINT PAPER 7; INK 1;AT 3,11;" te l3psz "; FLASH 1; BRIGHT 1;AT 15,x+n+7;x
1740 RETURN
1745 REM a babszemeket tartalmazó kupák beszámozása
1750 PRINT AT 17,1;" ": BEEP .05,1: PRINT INK 0;AT 15,7;" 1 2 3 4 5 6"
1760 RETURN
1770 PRINT AT 17,3;" ": RETURN
1780 LET y=0: FOR o=1 TO 6
1790 IF m-7<>o THEN LET y=y+2: NEXT o
1800 PRINT FLASH 1; BRIGHT 1; PAPER 7; INK 1;AT 5,24-y-o;o
1810 FOR g=1 TO 40: NEXT g: RETURN
1815 REM a lépések utáni új állapot kiírása
1820 PRINT FLASH 0; BRIGHT 0; INK 0;AT 15,x+n+7;x
1830 RETURN
1835
REM ha sikerült éppen a gyűjtőbe tenni az utolsó babszemet,akkor jutalomból újra léphet1840 LET k$="Ismét lépek "
1850 FOR i=1 TO 12: BEEP .02,i: PRINT AT 3,11+i;k$(i): NEXT i
1860 RETURN
1870 PRINT AT 3,11;" "
1880 RETURN
1890 PRINT FLASH 0; BRIGHT 0; INK 0;AT 5,24-y-o;o
1900 RETURN
1901 REM mentés
1910 SAVE "maya"
1912 SAVE "kod"CODE 40760,24400
1914 SAVE "udg"CODE USR "a",168
9001 REM *********************
9002 REM **** MEN
ŰKEZELŐ ****9003 REM ********************* REM
9004 BORDER 4: PAPER 4: INK 0: CLS
9010 DIM S$(1,16*32)
9020
REM **** Főcím ****9030 PRINT AT 1,5; PAPER 2; INK 7;" (c) NyitraiSOFT 2001' ";AT 3,10; PAPER 1; INK 5;"MAYA játék"; 0;AT 0,0; BRIGHT 1; PAPER 7; INK 1;"Kiválasztás a nyilakkal + ENTER."
9040 LET oldal=1: RESTORE 9088
9044 DIM d(7): FOR f=1 TO 7: READ d(f): NEXT f
9046 DIM n$(d(6)): DIM Q$(d(5),d (6))
9048 READ n$: FOR f=1 TO d(5): READ Q$(f): NEXT f
9050 PAPER d(3): INK d(4)
9052 LET x=d(1): LET y=d(2)
9054 PRINT AT x,y; INVERSE 1;" ";n$;" "
9056 LET b$=" "( TO d(6)+2)
9058 PRINT AT x+1,y;b$: FOR f=1 TO d(5): PRINT AT x+1+f,y;" ";Q$(f);" ": NEXT f: PRINT AT x+2+d(5),y;b$
9060 LET x=x+d(5)+3
9062 FOR f=1 TO d(6)+2: PRINT AT x,y+f; PAPER d(7);" ": NEXT f
9064 FOR f=1 TO d(5)+2: PRINT AT x-f,y+d(6)+2; PAPER d(7);" ": NEXT f
9066 LET x=d(2)*8: LET y=167-d(1)*8
9068 PLOT x,y: DRAW 0,-d(5)*8-15: DRAW d(6)*8+15,0: DRAW 0,d(5)*8+15: INK 6
9070 LET x=d(1)+2: LET y=d(2)+1: LET val=1
9072 PRINT AT x,y; INVERSE 1;Q$(val);AT X, Y+(LEN Q$(val)-3)
9074 LET i$=INKEY$: IF NOT (i$=CHR$ 10 OR i$=CHR$ 11 OR i$=CHR$ 13) THEN GO TO 9074
9076 IF i$=CHR$ 13 THEN GO TO oldal
9078 PRINT AT x,y;Q$(val)
9080 IF i$=CHR$ 10 THEN LET x=x+1: LET val=val+1: IF val>d (5) THEN LET val=1: LET x=x-d(5)
9082 IF i$=CHR$ 11 THEN LET x=x-1: LET val=val-1: IF val<1 THEN LET val=d(5): LET x=x+d(5)
9088
REM ***adatok a menűhöz***9090 DATA 5,5,1,6,11,18,0," Menű-választék:"
9092 DATA "goly
ók száma: 1-1","golyók száma: 2-2","golyók száma: 3-3","golyók száma: 4-4","golyók száma: 5-5","golyók száma: 6-6","véletlenszerű: 1-6","játék magyarázata","a programmozóról!!","kilépés a játékból","vissza az 1.sorra."9220 REM a választott sorra ugrás
9230 IF val=1 THEN LET oldal=1612
9232 IF val=2 THEN LET oldal=1618
9236 IF val=3 THEN LET oldal=1625
9237 IF val=4 THEN LET oldal=1632
9238 IF val=5 THEN LET oldal=1634
9239 IF val=6 THEN LET oldal=1636
9240 IF val=7 THEN LET oldal=1540
9241 IF val=8 THEN LET oldal=9300
9242 IF val=9 THEN LET oldal=9320
9243 IF val=10 THEN LET oldal=9350
9244 IF val=11 THEN LET oldal=9000
9245 GO TO 9072
9300 REM magyarázat
9301 CLS
9305 PRINT "Maya,vagy Awari-Awale kavicsjáték,egyes források szerint
régi maya,mások szerint afrikai eredetű játék.Európába azon rabszolga-kereskedok hozták be,akik az Amerikába tartó hajóút alatt az elfogott-szállított rabszolgáktól tanulták el."9307 PRINT "Mindenki előtt hat kis tálka van,oldalt egy nagyobb gyűjtő- tállal,és a tálkákban 1-6 golyó,kavics,babszem stb.van,attól függően,hogy melyik országban játsszák.Teszés szerinti tálkát választva,ki lehet venni a tálka tartalmát."
9309 PRINT "Arra kell torekedni,hogy az utolsó golyó olyan tálkába kerüljön,amellyel szemben van még néhány golyó,azt mind el lehet venni.Az nyer,akinek a végére több golyója lesz."
9319 PAUSE 0: CLS : GO TO 9000
9320 REM a MAYA játék programmozójáról
9322 CLS
9325 PRINT : PRINT : PRINT "Nyitrai LÁszlÓ nyugdijas informatikus,aki 38 évesen(!!),1982- ben a ZX81-el kezdett programmozni,majd 1984-ben a SPECTRUM következett.1986-tól a PC-s korszak,mint rendszergazda,dBASE, Clipper stb.1995-ig.A Spectrum Basic iránti szerelem a mai napig is tart,bár az alapgép helyett,most Spectrum emulátorokat használ az éj programokhoz,fejlesztésekhez."
9330 PRINT : PRINT "Programjai megtalálhatók a magyar Sinclair WEB oldalon www.sinclair.hu-n,valamint a World of Spectrum www.worldofspectrum. org web-címen."
9336 PRINT 0;" Nyomj gombot a men
űhöz !!"9349 PAUSE 0: CLS : GO TO 9000
9350 REM kilépés
9355 RANDOMIZE USR 62994
9358 RANDOMIZE USR 0
9400 REM befejezve 2001 decemberében
NÉGYZET KERESŐ JÁTÉK
Leírás:
SZEDD ÖSSZE A SÁRGA NÉGYZETEKET, SIESS, MERT FOGY AZ IDŐD! Irányítás a kurzorgombokkal, 10 pályán keresztül.

0 REM NYITRAISOFT 2002'
2 REM KESZITETTE:JATEKGYAROS
9 BORDER 0: PAPER 0: INK 7: CLS
10 POKE 23658,9: GO SUB 9000
14 LET PONT=0: LET ALAP=1000: LET O$="O": LET P$="P": LET Q$="Q": LET A$="A"
18 LET TABLA=10: LET EGESZ=20: LET AMA=0: LET VEGSO=10: LET FAZIS=4000: LET RONT=600: LET SC=4: LET J$="ü": LET X=18: LET Y=2
20 CLS : PRINT INK 5; BRIGHT 1;AT 1,6;"NEGYZET KERESO JATEK";AT 2,8;"JATEKGYAROS 2002'"
22 PRINT 0; INK 7; PAPER 1;" (C) NYITRAISOFT 2002' "
50 PRINT INK 3;AT 10,10;O$; INK 7;" ...BALRA"; INK 3;AT 12,10;P$; INK 7;" ...JOBBRA"; INK 3;AT 14,10;Q$; INK 7;" ...FEL"; INK 3;AT 16,10;A$; INK 7;" ...LE"
55 PRINT INK 6;AT 4,7;"CSUCS.....0000000";AT 4,24-LEN (STR$ ALAP); INK 6;ALAP;AT 6,7;"ELOZO.....0000000";AT 6,24-LEN (STR$ PONT); INK 6;PONT
60 PRINT AT 19,1;" NYOMD AZ 'S'-T INDITASHOZ ";AT 21,1;"NYOMD AZ 'R'-T A BEALLITASHOZ"
65 FOR W=1 TO 7: PRINT AT 19,13; INK W;"S";AT 21,11;"R"
70 FOR F=24 TO -22 STEP -12: RESTORE 9666: FOR S=1 TO 36: READ A: BEEP .09,A-F: BEEP .003,A+24
72 IF INKEY$="S" THEN GO TO 100
75 IF INKEY$="R" THEN GO TO 8100
85 NEXT S
90 NEXT F: NEXT W: GO TO 65
100 CLS : GO SUB 9800
110 PRINT INK 6; PAPER 0;AT 3,12;"BEALLITAS"; INK 2;AT 7,12;"FOKOZAT:?"; INK 5;AT 10,10;"0 KONNYU";AT 12,10;"1 KOZEPES";AT 14,10;"2 EROS";AT 16,10;"3 NEHEZ";AT 18,10;"4 ONGYILKOS"
120 BEEP .01,25: PAUSE 0
130 IF CODE INKEY$<48 OR CODE INKEY$>52 THEN GO TO 120
140 LET FOK=VAL INKEY$
160 PRINT INK 3;AT 7,20;INKEY$
170 BEEP .001,40
180 FOR Y=1 TO 50: NEXT Y
208 CLS : LET PONT=0: LET X=19: LET Y=2
218 PRINT BRIGHT 1; INK 5;AT 10,8;"SZEDD OSSZE"; INK 6;AT 11,5;"A SARGA NEGYZETEKET!"; INK 2;AT 12,3;"SIESS,MERT FOGY AZ IDOD!"
220 FOR F=1 TO 2: RESTORE 221: FOR A=1 TO 15: READ AS: BEEP .09,AS: NEXT A: NEXT F
221 DATA 12,16,12,16,14,17,14,17,16,19,16,19,17,14,17
228 RANDOMIZE USR 6e4
230 GO SUB FAZIS
240 LET X=19: LET Y=2
260 PRINT INK 7; PAPER 0; BRIGHT 1;AT X,Y;"uÜ";AT X-1,Y;"u·"
270 POKE 23672,0: POKE 23673,0: POKE 23674,0
300 LET A=(65536*PEEK 23674+254*PEEK 23673+PEEK 23672)/100: PRINT AT 0,30-LEN (STR$ INT (A));INT A
301 IF INKEY$=P$ THEN GO SUB 1100
305 IF INKEY$=O$ THEN GO SUB 1200
310 IF INKEY$=Q$ THEN GO SUB 1300
320 IF INKEY$=A$ THEN GO SUB 1400
322 IF A>=EGESZ THEN GO TO 1800
410 IF AMA=TABLA THEN GO SUB 8000: GO SUB 4000
500 GO TO 300
1100 IF ATTR (X,Y+2)=1 THEN RETURN
1105 IF ATTR (X,Y+2)=2 THEN GO TO 2000
1110 IF ATTR (X,Y+2)=6 THEN GO SUB 3000
1118 IF Y>27 THEN RETURN
1120 PRINT INK 4; PAPER 0;AT X,Y;"¸o";AT X-1,Y;"iö": LET Y=Y+2: PRINT INK 7; PAPER 0; BRIGHT 1;AT X,Y;"uÜ";AT X-1,Y;"u·"
1190 BEEP .01,20: RETURN
1200 IF ATTR (X,Y-1)=1 THEN RETURN
1205 IF ATTR (X,Y-1)=2 THEN GO TO 2000
1210 IF ATTR (X,Y-1)=6 THEN GO SUB 3000
1218 IF Y<4 THEN RETURN
1220 PRINT INK 4; PAPER 0;AT X,Y;"¸o";AT X-1,Y;"iö": LET Y=Y-2: PRINT INK 7; PAPER 0; BRIGHT 1;AT X,Y;"uÜ";AT X-1,Y;"u·"
1290 BEEP .01,20: RETURN
1300 IF ATTR (X-2,Y)=1 THEN RETURN
1305 IF ATTR (X-2,Y)=2 THEN GO TO 2000
1310 IF ATTR (X-2,Y)=6 THEN GO SUB 3000
1318 IF X<4 THEN RETURN
1320 PRINT INK 4; PAPER 0;AT X,Y;"¸o";AT X-1,Y;"iö": LET X=X-2: PRINT INK 7; PAPER 0; BRIGHT 1;AT X,Y;"uÜ";AT X-1,Y;"u·"
1390 BEEP .01,20: RETURN
1400 IF ATTR (X+2,Y)=1 THEN RETURN
1405 IF ATTR (X+2,Y)=2 THEN GO TO 2000
1410 IF ATTR (X+2,Y)=6 THEN GO SUB 3000
1418 IF X>18 THEN RETURN
1420 PRINT INK 4; PAPER 0;AT X,Y;"¸o";AT X-1,Y;"iö": LET X=X+2: PRINT INK 7; PAPER 0; BRIGHT 1;AT X,Y;"uÜ";AT X-1,Y;"u·"
1490 BEEP .01,20: RETURN
1800 LET SC=SC-1: PRINT INK 0;AT 0,14;" ": FOR F=1 TO SC: PRINT INK 7; BRIGHT 1;AT 0,13+F;J$: NEXT F:: PRINT AT 0,30-LEN (STR$ INT (A)); INK 2;INT A
1810 BEEP .1,0: BEEP .1,-10: FOR F=1 TO 50: NEXT F
1820 PRINT INK 7;AT 0,23;"LEJART": FOR F=1 TO 50: NEXT F
1830 FOR F=7 TO 0 STEP -1: PRINT INK F;AT 0,23;"LEJART": BEEP .01,30-F: NEXT F
1840 IF SC=0 THEN GO TO 2100
1850 LET FAZIS=FAZIS-100: PRINT AT X,Y;"¸o";AT X-1,Y;"iö": GO SUB 4000: GO TO 240
2000 FOR F=30 TO 31 STEP .2: BEEP .0007,F: BEEP .006,10: NEXT F: LET SC=SC-1
2003 PRINT AT 0,14;" ": FOR F=1 TO SC: PRINT INK 7;AT 0,13+F;J$: NEXT F
2005 IF SC=0 THEN GO TO 2500
2010 GO TO 300
2500 FOR F=1 TO 100: PRINT PAPER 0; INK 7; FLASH 1;AT 8,10;" ";AT 9,10; FLASH 1;" JATEK VEGE ";AT 10,10;" ": NEXT F: CLS
2600 IF PONT>ALAP THEN GO SUB 9800: FOR F=1 TO 7: FOR A=1 TO 7: PRINT INK A;AT 10,7;" CSUCS UJ CSUCS";AT 12,13;PONT: BEEP .009,20+F: BEEP .0007,40: NEXT A: NEXT F: LET ALAP=PONT
2650 RANDOMIZE USR 6E4: GO TO 18
3000 LET AMA=AMA+1: LET PONT=PONT+100: PRINT AT 21,15-LEN STR$ PONT;PONT: BEEP .005,35: BEEP .05,40: RETURN
3500 LET RONT=0: GO SUB 2000: GO TO 300
4004 FOR F=1 TO SC: PRINT INK 7;AT 0,13+F;J$: NEXT F
4005 FOR F=2 TO 18 STEP 2: PRINT INK 4; PAPER 0;AT F,2;"iöiöiöiöiöiöiöiöiöiöiöiöiöiö";AT F+1,2;"¸o¸o¸o¸o¸o¸o¸o¸o¸o¸o¸o¸o¸o¸o": NEXT F
4006 PRINT INK 4; PAPER 0;AT 2,30;"?": FOR F=3 TO 19: PRINT INK 4; PAPER 0;AT F,30;"e": NEXT F: PRINT INK 4; PAPER 0;AT 20,2;"ÂÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁy"
4010 LET FAZIS=FAZIS+100: GO SUB FAZIS: LET AMA=0
4011 IF FAZIS>6100 THEN LET FAZIS=4000: GO TO 4000
4012 PRINT AT 0,2;"EGESZ ";EGESZ: PRINT AT 21,2;"PONTOK ";AT 21,15-LEN STR$ PONT;PONT;AT 21,17;" CSUCS ";AT 21,30-LEN STR$ ALAP;ALAP;AT 0,23;" IDO 00"
4014 LET X=19: LET Y=2: PRINT INK 7; PAPER 0; BRIGHT 1;AT X,Y;"uÜ";AT X-1,Y;"u·"
4020 FOR F=1 TO 2: RESTORE 4022: FOR A=1 TO 12: READ D: BEEP .09,D: NEXT A: NEXT F
4022 DATA 12,16,19,12,16,19,14,17,21,14,17,21
4097 POKE 23672,0: POKE 23673,0: POKE 23674,0
4099 RETURN
4102 LET EGESZ=20+FOK: LET TABLA=10: LET TIN=6: LET RTE=1: LET ROT=2
4120 RESTORE 4130: FOR F=1 TO 10: READ A,B: PRINT INK TIN; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
4130 DATA 2,2,8,2,18,6,2,14,6,12,10,12,18,14,2,28,8,28,18,24
4140 RESTORE 4145: FOR F=1 TO 10: READ A,B: PRINT INK RTE; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
4145 DATA 4,4,12,6,10,10,16,14,8,14,10,18,6,18,16,28,4,22,2,26
4150 RESTORE 4155: FOR F=1 TO 19: READ A,B: PRINT INK ROT; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
4155 DATA 6,2,10,2,16,6,18,4,6,8,2,10,4,14,16,12,16,16,18,22,16,20,16,22,16,24,14,22,10,24,10,26,10,28,12,26,8,26
4180 RETURN
4202 LET EGESZ=16+FOK: LET TIN=6: LET RTE=1
4220 RESTORE 4230: FOR F=1 TO 10: READ A,B: PRINT INK TIN; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
4230 DATA 4,4,10,2,18,10,10,12,4,14,16,20,2,20,8,24,2,28,16,28
4240 RESTORE 4250: FOR F=1 TO 23: READ A,B: PRINT INK RTE; PAPER 0;AT A,B;"
3Ş";AT A+1,B;"1o": NEXT F4250 DATA 12,2,18,4,16,4,12,6,6,6,6,4,4,10,16,8,12,12,8,14,4,16,6,16,8,16,16,18,12,20,4,20,2,22,8,22,10,24,8,26,16,26,12,28,4,28
4290 RETURN
4302 LET EGESZ=12+FOK: LET TIN=6: LET RTE=2: LET ROT=1
4320 RESTORE 4330: FOR F=1 TO 10: READ A,B: PRINT INK TIN; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
4330 DATA 2,8,2,22,8,14,8,16,10,10,10,20,12,12,12,18,18,14,18,16
4340 RESTORE 4350: FOR F=1 TO 10: READ A,B: PRINT INK RTE; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
4350 DATA 14,6,14,24,8,10,8,12,8,18,8,20,10,12,10,18,12,14,12,16
4360 RESTORE 4370: FOR F=1 TO 10: READ A,B: PRINT INK ROT; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
4370 DATA 4,8,4,22,6,8,6,10,6,20,6,22,10,14,10,16,16,14,16,16
4390 RETURN
4402 LET EGESZ=12+FOK: LET TIN=6: LET ROT=2
4410 RESTORE 4420: FOR F=1 TO 10: READ A,B: PRINT INK ROT; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
4420 DATA 8,8,8,12,8,16,8,20,8,24,12,6,12,10,12,14,12,18,12,22
4430 RESTORE 4440: FOR F=1 TO 10: READ A,B: PRINT INK TIN; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
4440 DATA 8,6,8,10,8,14,8,18,8,22,12,8,12,12,12,16,12,20,12,24
4490 RETURN
4502 LET EGESZ=10+FOK
4510 RESTORE 4520: FOR F=1 TO 14: READ A,B: PRINT INK 2; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
4520 DATA 6,6,8,8,10,10,12,12,14,14,16,16,18,18,2,10,4,12,6,14,8,16,10,18,12,20,14,22
4530 RESTORE 4540: FOR F=1 TO 10: READ A,B: PRINT INK 6; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
4540 DATA 2,6,4,8,6,10,8,12,10,14,12,16,14,18,16,20,18,22,2,28
4590 RETURN
4602 LET EGESZ=20+FOK: LET TIN=6: LET RTE=2
4610 RESTORE 4230: FOR F=1 TO 10: READ A,B: PRINT INK TIN; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
4614 RESTORE 4250: FOR F=1 TO 23: READ A,B: PRINT INK RTE; PAPER 0;AT A,B;"3
Ş";AT A+1,B;"1o": NEXT F4690 RETURN
4702 LET EGESZ=10+FOK: LET TIN=1: LET RTE=6: LET ROT=2
4720 GO SUB 4310
4790 RETURN
4802 LET EGESZ=12+FOK: LET TIN=6: LET ROT=1
4820 GO SUB 4410
4830 PRINT INK 1; PAPER 0;AT 10,10;"3Ş";AT 11,10;"1o";AT 10,20;"3Ş"
;AT 11,20;"1o"4890 RETURN
4900 LET EGESZ=12+FOK: LET TIN=1: LET RTE=6: LET ROT=2: GO SUB 4110
4950 RETURN
5002 LET EGESZ=16+FOK: LET TIN=6: LET RTE=2: GO SUB 4210
5010 RESTORE 5020: FOR F=1 TO 9: READ A,B: PRINT INK 2; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1
o": NEXT F5020 DATA 2,16,18,12,14,14,14,6,14,10,14,22,14,26,18,18,4,6
5050 RETURN
5100 LET ROT=1: LET EGESZ=25+FOK: LET TABLA=69
5110 FOR A=2 TO 28 STEP 2: FOR F=2 TO 18 STEP 2: PRINT INK 6; PAPER 0;AT F,A;"u·";AT F+1,A;"uÜ": NEXT F: NEXT A
5120 FOR F=4 TO 28 STEP 4: FOR J=2 TO 18 STEP 2: PRINT INK ROT; PAPER 0;AT J,F;"3
Ş";AT J+1,F;"1o": NEXT J: NEXT F5130 FOR F=8 TO 24 STEP 8: PRINT INK 6; PAPER 0;AT 18,F;"u·";AT 19,F;"uÜ": NEXT F
5140 FOR F=4 TO 28 STEP 8: PRINT INK 6; PAPER 0;AT 2,F;"u·";AT 3,F;"uÜ": NEXT F
5190 RETURN
5200 LET EGESZ=20+FOK: LET TABLA=10: LET ROT=6: LET RTE=1
5210 RESTORE 5220: FOR F=1 TO 10: READ A,B: PRINT INK ROT; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
5220 DATA 2,2,12,2,4,14,4,16,2,28,10,8,10,22,14,12,14,18,12,28
5230 RESTORE 5240: FOR F=1 TO 10: READ A,B: PRINT INK RTE; PAPER 0;AT A,B;"3
Ş";AT A+1,B;"1o": NEXT F5240 DATA 2,6,2,24,10,4,10,10,10,20,10,26,12,8,12,22,14,10,14,20
5250 RESTORE 5260: FOR F=1 TO 20: READ A,B: PRINT INK 2; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
5260 DATA 4,2,4,12,4,18,4,28,6,8,6,14,6,16,6,22,8,6,8,24,12,10,12,14,12,16,12,20,14,2,14,28,16,12,16,18,18,4,18,26
5290 RETURN
5300 LET EGESZ=16+FOK
5310 RESTORE 5320: FOR F=1 TO 10: READ A,B: PRINT INK 6; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
5320 DATA 6,6,6,14,6,22,10,6,10,14,10,22,14,6,14,14,14,22,10,28
5330 RESTORE 5340: FOR F=1 TO 10: READ A,B: PRINT INK 1; PAPER 0;AT A,B;"3
Ş";AT A+1,B;"1o": NEXT F5340 DATA 10,2,6,10,10,10,14,10,6,18,10,18,14,18,6,26,10,26,14,26
5350 RESTORE 5360: FOR F=1 TO 12: READ A,B: PRINT INK 2; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
5360 DATA 4,6,8,6,12,6,16,6,4,14,8,14,12,14,16,14,16,22,12,22,8,22,4,22
5390 RETURN
5400 LET EGESZ=22+FOK
5410 RESTORE 5420: FOR F=1 TO 10: READ A,B: PRINT INK 6; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
5420 DATA 2,2,14,2,2,12,2,20,2,28,18,8,10,28,14,24,14,28,16,16
5430 RESTORE 5440: FOR F=1 TO 17: READ A,B: PRINT INK 2; PAPER 0;AT A,B;"3
Ş";AT A+1,B;"1o": NEXT F5440 DATA 2,10,2,14,6,24,10,2,12,6,14,4,14,10,14,22,14,26,16,2,16,8,16,14,16,18,16,26,18,6,18,16,18,22
5450 RESTORE 5460: FOR F=1 TO 20: READ A,B: PRINT INK 1; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
5460 DATA 8,12,2,18,2,24,4,18,4,6,6,6,6,8,6,10,6,12,6,18,8,22,8,24,8,26,8,28,10,12,12,12,12,22,12,24,12,26,12,28
5470 RETURN
5500 LET EGESZ=18+FOK
5510 RESTORE 5520: FOR F=1 TO 10: READ A,B: PRINT INK 6; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
5520 DATA 2,16,2,24,2,28,8,10,8,18,8,24,14,6,14,12,14,18,18,28
5530 RESTORE 5540: FOR F=1 TO 30: READ A,B: PRINT INK 2; PAPER 0;AT A,B;"3
Ş";AT A+1,B;"1o": NEXT F5540 DATA 2,14,2,26,4,12,4,18,4,24,6,10,6,16,6,22,8,8,8,14,8,20,8,26,10,6,10,12,10,18,10,24,12,4,12,10,12,16,12,22,14,2,14,8,14,14,14,20,16,6,16,12,16,18,16,28,18,4,18,16
5550 RETURN
5600 LET EGESZ=16+FOK: LET ROT=1: LET RTE=6: GO SUB 5210
5610 RETURN
5700 LET EGESZ=20+FOK
5710 RESTORE 5720: FOR F=1 TO 10: READ A,B: PRINT INK 6; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
5720 DATA 2,2,2,28,4,8,6,2,14,28,16,24,16,26,18,6,18,16,4,16
5730 RESTORE 5740: FOR F=1 TO 9: READ A,B: PRINT INK 1; PAPER 0;AT A,B;"3
Ş";AT A+1,B;"1o": NEXT F5740 DATA 2,14,4,2,4,14,4,26,4,28,6,14,8,2,16,14,18,14
5750 RESTORE 5760: FOR F=1 TO 18: READ A,B: PRINT INK 2; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
5760 DATA 6,16,8,14,10,12,10,18,12,2,12,4,12,6,12,16,12,24,14,14,14,26,16,4,16,6,16,22,16,28,18,4,18,24,18,26
5790 RETURN
5800 LET EGESZ=16+FOK
5810 RESTORE 5820: FOR F=1 TO 10: READ A,B: PRINT INK 6; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
5820 DATA 10,20,6,6,6,14,6,24,10,10,10,24,14,6,14,14,14,20,16,24
5830 RESTORE 5840: FOR F=1 TO 15: READ A,B: PRINT INK 2; PAPER 0;AT A,B;"3
Ş";AT A+1,B;"1o": NEXT F5840 DATA 16,26,6,4,6,26,8,4,8,26,10,4,10,8,10,22,10,26,12,4,12,22,12,26,14,4,14,22,14,26
5850 PRINT INK 2; PAPER 0;AT 4,4;"3Ş3Ş3Ş3Ş3Ş3Ş3Ş3Ş3Ş3Ş3Ş3Ş";AT 5,4;"1o1o1o1o1o1o1o1o1o1o1o1o";AT 8,8;"3Ş3Ş3Ş3Ş3Ş3Ş3Ş3Ş";AT 9,8;"1o1o1o1o1o1
o1o1o"5860 PRINT INK 2; PAPER 0;AT 12,8;"3Ş3Ş3Ş3Ş3Ş3Ş";AT 13,8;"1o1o1o1o1o1o";AT 16,4;"3Ş3Ş3Ş3Ş3Ş3Ş3Ş3Ş3Ş3Ş";AT 17,4;"1o1o1o1o1o1o1o1o1o1o"
5890 RETURN
5900 LET EGESZ=20+FOK
5910 RESTORE 5920: FOR F=1 TO 10: READ A,B: PRINT INK 6; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
5920 DATA 2,2,6,2,6,24,8,26,10,18,10,24,10,28,12,26,14,2,14,24
5930 RESTORE 5940: FOR F=1 TO 17: READ A,B: PRINT INK 2; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
5940 DATA 2,6,2,18,4,2,4,22,6,4,6,18,8,14,10,12,10,16,12,14,14,18,16,2,16,4,16,8,16,22,18,8,18,18
5950 RESTORE 5960: FOR F=1 TO 9: READ A,B: PRINT INK 1; PAPER 0;AT A,B;"3Ş";AT A+1,B;"1o": NEXT F
5960 DATA 4,14,6,26,8,22,10,6,10,8,10,26,12,22,14,26,16,14
5990 RETURN
6000 LET EGESZ=25+FOK: LET TABLA=15
6010 RESTORE 6020: FOR F=1 TO 15: READ A,B: PRINT INK 6; PAPER 0;AT A,B;"u·";AT A+1,B;"uÜ": NEXT F
6020 DATA 2,2,2,28,4,8,4,16,4,24,8,8,8,16,8,24,12,8,12,16,12,24,16,8,16,16,16,24,18,28
6030 RESTORE 6040: FOR F=1 TO 25: READ A,B: PRINT INK 2; PAPER 0;AT A,B;"3Ş";AT A+1,B
;"1o": NEXT F6040 DATA 4,4,4,12,4,20,4,28,6,8,6,16,6,24,8,4,8,12,8,20,8,28,10,8,10,16,10,24,12,4,12,12,12,20,12,28,14,8,14,16,14,24,16,4,16,12,16,20,16,28
6050 RETURN
6100 LET ROT=2: LET EGESZ=25+FOK: LET TABLA=69: GO SUB 5110: RETURN
6200 GO SUB 9800
6210 LET JUTALOM=50000
6220 PRINT INK 5;AT 7,8;"JUTALOM "; INK 2;JUTALOM;" ";AT 6,8;" "; INK 5;AT 8,8;" PONT "; INK 2;PONT;" ";AT 9,8;" "
6225 PAUSE 100
6230 FOR F=1 TO 50: LET JUTALOM=JUTALOM-1000: PRINT AT 7,17;" ";AT 7,22-LEN (STR$ JUTALOM); INK 2;JUTALOM
6240 BEEP .0004,43: LET PONT=PONT+1000: PRINT AT 8,22-LEN (STR$ PONT); INK 2;PONT: BEEP .0004,40: NEXT F
6250 LET SC=SC+1
6300 PRINT INK 6;AT 18,5;" NYOMD LE AZ ENTER-T"
6400 FOR F=1 TO 10: RESTORE 6410: FOR Q=1 TO 14: READ A: FOR G=1 TO 2: BEEP .08,A: IF INKEY$<>"" THEN GO TO 6430
6405 NEXT G: NEXT Q: NEXT F
6410 DATA 12,16,19,23,24,21,17,14,17,21,24,23,19,16
6430 RANDOMIZE USR 6E4: RETURN
7000 STOP
8000 RANDOMIZE USR 6E4: LET PONT=PONT+100*(100-A)
8030 RETURN
8100 CLS : BEEP .1,18: GO SUB 9800: PRINT INK 7; BRIGHT 1;AT 2,6;"NEGYZET KERESO JATEK"
8110 LET T$="BALRA:": LET POS=6: GO SUB 8200: PAUSE 0: LET O$=INKEY$: BEEP .01,20: PRINT AT 6,19;INKEY$
8120 LET T$="JOBBRA:": LET POS=8: GO SUB 8200: PAUSE 0: LET P$=INKEY$: BEEP .01,20: PRINT AT 8,19;INKEY$
8130 LET T$="FEL:": LET POS=10: GO SUB 8200: PAUSE 0: LET Q$=INKEY$: BEEP .01,20: PRINT AT 10,19;INKEY$
8140 LET T$="LE:": LET POS=12: GO SUB 8200: PAUSE 0: LET A$=INKEY$: BEEP .01,20: PRINT AT 12,19;INKEY$
8150 PRINT AT 16,12; INK 5; BRIGHT 1;"JO ?": PAUSE 0
8160 IF INKEY$="N" THEN GO TO 8100
8170 RANDOMIZE USR 6E4: GO TO 18
8200 FOR F=0 TO 7
8210 PRINT INK F;AT POS,8;T$: BEEP .003,40+F: PAUSE 5: NEXT F
8220 RETURN
9000 RESTORE 9010: FOR F=USR "A" TO USR "P"+7: READ A: POKE F,A: NEXT F: RETURN
9010 DATA 254,254,254,254,254,254,254,254
9020 DATA 255,255,255,255,255,255,255,0
9030 DATA 254,254,254,254,254,254,254,0
9050 DATA 255,255,255,234,245,234,245,234
9055 DATA 255,254,252,168,84,168,84,168
9060 DATA 245,234,245,234,245,234,192,128
9065 DATA 84,168,84,168,84,168,0,0
9070 DATA 255,131,171,151,171,151,255,255
9075 DATA 128,192,224,240,240,240,240,240
9080 DATA 112,176,80,240,0,0,0,0
9085 DATA 85,170,85,255,0,0,0,0
9090 DATA 213,106,53,31,0,0,0,0
9091 DATA 191,223,239,247,251,253,254,255,254,252,248,240,224,192,128,0
9092 DATA 254,253,250,245,234,213,170,85,128,64,160,80,168,84,170,85
9200 CLEAR 64568: RESTORE 9210: FOR F=65338 TO 65365: READ A: POKE F,A: NEXT F: RANDOMIZE USR 65338
9210 DATA 33,0,61,17,57,252,1,0,3,126,203,47,182,18,19,35,11,121,176,32,244,33,57,251,34,54,92,201
9300 RESTORE 9310: FOR F=6E4 TO 60034: READ A: POKE F,A: NEXT F: GO TO 14
9310 DATA 42,118,92,17,0,88,1,0,3,237,176,33,0,88,126,167,40,5,53,40,2,203,193,35,124,254,91,32,241,203,41,56,234,201
9666 DATA 4,7,11,14,12,9,5,9,12,14,11,7,4,7,11,14,12,9,5,9,12,16,19,17,14,11,14,17,19,17,14,11,7,11,14,12
9777 DATA 0,4,2,5,4,7,5,9,7,11,9,5,7,4,5,2
9800 PRINT INK 7; PAPER 2; FLASH 1;AT 0,0;"i i i i i i i i i i i i i i i i ";AT 21,0;" i i i i i i i i i i i i i i i i"
9810 FOR F=1 TO 20 STEP 2: PRINT INK 7; PAPER 2; FLASH 1;AT F,0;" ";AT F,31;"i";AT F+1,0;"i";AT F+1,31;" ": NEXT F
9820 RETURN
ROBOT A MARSRÓL
Leírás:
Robot a Marsról rajzos, szöveges kalandjáték SPECTRUM 128K+2-es gépen.
Ez a program, A ROBOT A MARSRÓL, persze ez is csak régen lett volna nagy szám, de nem akarok versenyezni a mai 100 megás programokkal, Én ugyan nagyon jól elszórakoztam vele, csak néha nem tudtam a mondatokat (melyek a változókban (füzérekben) több részből is állnak) igazán összehozni, de talán ezeket nézzétek el majd nekem, ha ilyen hibára akadtok. (a fene a magyar ragokba!!)
A program azt a történetet dolgozza fel, melyet még 1896-ban H. G. WELLS nevű amerikai szerző, egy fantasztikus könyvben írt le, a Marsbéliek támadásáról a Föld ellen, (The War of the World) A Világok Háborúja címmel. Érdekessége az, hogy a könyvből annakidején (1936-ban!!) rádiójátékot írtak, és amikor ezt leadták, sokan igaznak fogták fel, És Amerika több városában pánik tört ki, hogy a Földet (Amerikát) marsi támadás érte.
Azt már nem is vették észre a pánikolók, hogy nem is Amerikában, hanem Franciaországban landoltak a kerek-cilinderfejű-teleszkópos-háromlábú-lézerágyús-robot-szörnyek, akik azért is voltak oly ijesztőek, mert miden mozgásra tüzeltek.
Az említett városok: (pontértékük (ezek a játék fokozatai, minél messzebb vannak a céltól, a feladat annál nehezebb (1-6 nehéz-könnyű), melyet a játékosok és a városok kiválasztásánál kapunk, a megteendő távolságtól függ)
1. DIEPPE
2. LA HAVRE
3. CHERBOURG
4. ST MALO
5. LA ROCHELLE
6. BORDEAUX
Ezek a városok - az első három Franciaország északi részén a La Manche csatornánál vannak, az alsó három helység pedig az ország nyugati kikötővárosai. Legdélebbre - tehát a célhoz a legközelebbi a Bordeaux városa. Mivel a végcél a délkeleti Mont Blanc - fehér hegycsúcsai, mindig jobbra és lefelé, vagyis keletre és délre kell mennünk, illetve jobbra és balra csak akkor kell menni, ha valamilyen akadályba ütközünk.
Ha a megfelelő irányba megyünk, (meglátjátok Dieppen át Párizstól Tolouse-ig) akkor azok a városok következnek, melyek ott vannak a térképen, még olyan részletekre is ügyeltem, pl. ha Bordeux-ban vagyunk - ami közismert bortermő vidék-, akkor a szőlőskertek sövényeivel gyűlik meg a bajunk (nem tudunk néha átmenni rajta, és kerülnünk kell).
A robotok kb. öt emelet-templomtorony-magasságúak, több tonnásak, könnyen el lehet bújni előlük, ki lehet kerülni őket.
A témát egy zenés játékban - musical-ben - Jeff Wayne is feldolgozta, sőt ezt a 48K Spectrumra is elkészítették, (Érdemes megkeresni a WOS archívumában The War of the Worlds játékot!!!, rajta van a Sinclair 1-es CD-n is!!)
A játék abból áll, hogy 1-4 fős csapatot állítunk össze (mi nem katonák vagyunk!!, csak menekülő civilek), és persze nem is kell harcolunk, hanem csak el kell tűnnünk a robotok elől, kihasználva azt, hogy azok csak a sík terepen tudnak haladni, korlátozott a látás-mozgásterük, És el lehet bújni előlük. Nekünk el kell jutnunk a Franciaország délkeleti- hegyes (ALPOK) részére, a Mont Blanc-hoz, a "fehér hegycsúcsokhoz", És akkor megmenekülünk.
Érdemes először elővenni a térképet, megkeresni rajta az említett városokat, és megnézni, hogy egyáltalán merre is kell mennünk.
Maga a könyv sem foglalkozik azzal, hogy mi is lesz ezután, ezt gondolom, a későbbi folytatásokra szánta H. G. WELLS, de a folytatásokból semmi nem lett.
A játék nyolc nap története, alul a 12 piros kijelző mutatja, hogy még mennyi időnk van, ha leszáll az est, akkor a másik játékos következik, persze mindannyiukat egy személy is irányíthatja. A lehetőségek:
BAL balra,
JOBB jobbra az adott részen, vagy
LÉP másik területre léphetünk-haladhatunk, (néha nem tudunk lépni, mert mocsár, láp, erdő, mérges vad bika stb. akadályoz, akkor kerülnünk kell)
H hátizsák, a felvett, megtalált tárgyak raktára
A állapot, az életerőnk, sugárvédettségünk és energiánk állapota
1 a tárgyat felvesz,
2 a tárgyat ledob, otthagy
ESZIK időnként ennünk is kell, mert az energiánk elfogy
Persze, amikor a fenti képernyő részen kiírás, utasítás van, és nézelődünk, hogy mi is az, (és fogy az időnk!), a SPACE lenyomásával meg lehet (kell) a játékot állítani, hogy tanulmányozhassuk, hogy mit is tegyünk, a megállítás alatt az időnk áll.
A legfontosabb ha esetleg a program kiakad, pl. sokáig nyomunk egy funkció billentyűt, SOHA NE INDÍTSUK ÚJJRA "RUN-nal, mert a füzérekben lévő változókat törli e parancs, mindig GOTO 1-el (alaphelyzet, vagy GOTO 455-el, a megszakított játék folytatása).
A fő D$ string (szöveg+értékek DIM D$(26, 15) 26 változó 15 karakter hosszan), a változók külön programmal készültek, majd ide a 54682 címtől 10854 hosszan lettek betöltve, persze ez tartalmazza az átalakított nagyobb karaktereket is, az 64000, 768 cím+hosszon.
pl. a D$ füzér első hat sora így néz ki
MOZGAS 020
ELETERO 020
ENERGIA 020
SUGÁRVEDETTSEG 020
TERKEP 001
EREKLYE 199 stb.
ezek "láthatatlanul" vannak a programban, És mind köztudott, a RUN parancs minden változót kitöröl a memóriából, a program hibaüzenettel leáll. Persze egy kis trükkel meg lehet szemlélni a programot magát is, de ezt aki akarja, találja ki, hogyan.
Amikor kóborlunk a vidékeken, néha találunk is valamit, akkor a hátizsákunkban lehet tárolni, de arra is kell ügyelnünk, hogy teherbírásunk véges, kb. csak 20 kg-t tudunk vinni, az energiánk ekkor vészesen fogy, segítségként annyi, ha megnézzük, az hogy állunk, "A ALLAPOT" menünket, mindig plusz energiát kapunk. Ne felejtsük el, hogy a SPACE-val mindig állítsuk meg ilyenkor a játékot (látjuk a MEGSZAKITVA feliratot, hogy ne fogyjon az időnk amíg értékeljük az itt írtakat, addig a program áll.
A program mindig figyelmeztet, hogy merre is vannak a robotok (ez a képen is látszik), és három eset van:
NINCS ROBOT-VESZÉLY
A ROBOT A KÖZELBEN VAN
A ROBOT FELETTED VAN, igazán csak ez a veszélyes helyzet
Ha az ELBÚJÁS-t válasszuk, akkor a program jelzi, hogy szerencsénk volt, vagy valami mást kell tennünk.
Ha nincs szerencsénk, és sokszor akadunk össze a ROBOT-okkal, akkor tőlük sugárfertőzést szerezhetünk, mely életünkre végzetes előbb-utóbb végzetes lehet.
Az időjárást (amely lehet napos, esős és felhős) is mindig figyelni kell, mert mikor a robot ránk talál, több lehetőség közül választhatunk:
ELBÚJNI
TÜKRÖZNI (elvakítani a szenzorait, persze, ha süt a nap)
RÁDIÓZNI (megzavarni a kommunikációját)
HÁTIZSÁKBÓL VALAMIT KIVENNI (ha van valami fegyverünk, megpróbálhatjuk megtámadni)
vagy harcolni, ha már találtunk fegyvereket:
GRÁNÁTOT DOBNI
PUSKÁVAL LŐNI
NE FELEJTSÜK EL, HOGY LEHETŐSÉGEINK NAGYON KORLÁTOZOTTAK, NEM KELL HŐSKÖDNI, INKÁBB EL KELL BÚJNI, EL KELL MENEKÜLNI, HA LEHETSÉGES.
Ugyanis, ha véletlenül sikerül legyőzünk egy robotot, csak annyit érünk el, hogy az riadóztatja a többit is, úgyhogy életünk a túlerővel szemben hamar véget ér.
Némi humort is becsempésztem, (hogy ne legyen az életünk fenékig tejfel), előfordul, hogy a mezőn vagy a szőlősben egy mérges gazdával, a lápon egy vad bikával, az erdőben farkassal, akadunk össze, persze, ha van már DÁRDÁNK, KÉSÜNK,, akkor el tudjuk zavarni őket, vagy pl. a nyuszival, de ezt csak akkor foghatjuk el, ha már rendelkezünk HUROK-kal az elfogáshoz.
Útközben találunk összehajtható csónakot is, mely a folyókon való átkelésben segít, szerezhetünk pénzt az élelem vásárlására.
A program befejezése szeszélyes, mert van, hogy valamelyik este-leszálltakor véget ér, de van, mikor engedi a játékot továbbjátszani, persze ezt a beépített véletlen szám generátor produkálja.
Normális esetben minden nyolcadik nap után lehetőségünk van a játék mentésére, vagy pedig a játék folytatására, ekkor a napok újra kezdődnek, de a megszerzett javak nálunk maradnak.
Talán minden 20 próbálkozásra tudunk csak a kijutást elérni, érdemes mindig menteni, És onnan - máskor - folytatni. (persze emulátornál bármikor elmenthetjük, és onnan folytathatjuk)
_
0 REM ROBOT A MARSROL
102 REM HG.WELLS VILAGOK HABORUJA C.KONYVE UTAN SZABADON
103 REM NYITRAISOFT 2003
105 POKE 23607,213: POKE 23606,216: POKE 56360,0
110 BORDER 0: GOSUB 9900: LET oldal=1: LET szerez=0
114 POKE VAL "23609",VAL "50": POKE VAL "23658",VAL "8"
121 LET c(1)=9999: LET jatek=0
155 FOR j=1 TO 9: LET h$(j)=b$: NEXT j
157 LET cmp=3: LET pc=60: LET pr=42: PAPER 4: INK 1: GOSUB 4186
160 LET h$(1)=" VALASZD KI,MIVEL INDULSZ:"
163 LET h$(2)=" "
165 LET h$(3)=" -KIMENTETT JATEKOT FOLYTATSZ,"
170 LET h$(4)=" -VAGY - UJ JATEKOT KEZDESZ. "
172 LET h$(5)=" "
174 LET h$(6)=" MARSLAKOK LESZALLTAK FRANCIA-"
175 LET h$(7)=" ORSZAGBAN - DIEPPE-BEN......."
179 PRINT AT 21,0;" NYOMD 'U'/'K' GOMBOT"
180 PRINT INK 1;AT 16,0;"TAMADO-ROBOT HARCIGEP A MARSROL."
181 PRINT INK 1;AT 17,0;" RAJZOS KALANDJATEK H.G.WELLS"
182 PRINT INK 1;AT 18,0;"VILAGOK HABORUJA REGENYE ALAPJAN"
183 PRINT 0; INK 5;" NYITRAISOFT 2003 - JATEKGYAROS"
184 BRIGHT 1: PRINT AT 19,0; INK 6;"AZ UTOLSO NAPOD TORTENETE ESTIG,";AT 20,0;"ELETED SOTETEDESKOR VEGETER...."
185 GOSUB 5005
186 RANDOMIZE 0
190 IF k$="U" THEN GOTO 210
195 IF k$="K" THEN GOTO 280
198 IF K$ <> "" THEN GOTO 210
199 IF K$="" THEN GOTO 210
200 GOTO 160
210 FOR j=1 TO 4: LET x$(j)=b$: NEXT j
215 LET lepes=4: GOTO 455
280 PRINT AT 18,0;"TEDD A MAGNOBA A SZALAGOT,";AT 19,0;"ES INDITSD A LEJATSZAST.."
284 PRINT AT 16,0;: LOAD "RAKTAR" DATA s$(): PRINT AT 17,0: LOAD "ALLAPOT" DATA x$()
285 GOSUB 5000: LET lepes=1
455 LET jatek=0
456 FOR p=4 TO 1 STEP -1
457 IF x$(p,1 TO 10)=" " THEN LET jatek=p
458 NEXT p: IF jatek=1 THEN GOTO 620
459 LET h$(1)="JATEKOS ALLAPOT ERTEK"
460 FOR p=1 TO 4
462 LET h$((p+1),1)=STR$ p
465 LET h$((p+1),3 TO 13)=x$(p,1 TO 10)
470 LET h$((p+1),15 TO 20)=x$(p,11 TO 16)
475 LET h$((p+1),23 TO 26)=x$(p,17 TO 20)
480 NEXT p
485 LET h$(7)="KERSZ MEG A CSAPATBA ": LET z$="MASIK JATEKOST? I/N ": IF jatek=4 THEN LET h$(7)=b$
490 IF lepes<4 THEN LET h$(8)="TOROLTEM "(lepes*8-7 TO lepes*8)+z$: GOTO 740
600 IF jatek=0 AND k$ <> "T" THEN GOTO 790
605 LET h$(8)="MEG EGY JATEKOST? I/N": IF p=1 THEN LET h$(8)=h$(10): LET h$(7)=b$
610 GOSUB 5005: IF k$="N" THEN GOTO 790
620 LET p=jatek: PAPER 4: INK 0: PRINT AT 21,0;"IRD BE A JATEKOS NeVET ";: BEEP .1,10: LET z$=""
621 IF INKEY$ <> "" THEN GOTO 621
622 LET k$=INKEY$: IF k$=CHR$ 13 AND z$ <> "" THEN GOTO 629
623 IF k$=CHR$ 12 AND z$ <> "" THEN LET z$=z$(1 TO LEN z$-1): PRINT CHR$ 8;CHR$ 32;CHR$ 8;: GOTO 621
624 IF (k$<"A" OR k$>"z") AND k$ <> " " OR LEN z$=10 THEN GOTO 622
625 LET z$=z$+k$
626 BEEP .01,50: PRINT k$;: GOTO 621
629 LET x$(p,1 TO 10)=z$: PRINT AT 21,0;b$
630 IF x$(p,1 TO 10)=" " THEN GOTO 455
635 LET x$(p,11 TO 16)=" UJ"
640 LET h$(1)="A ROBOTOK ITT SZALLTAK LE:"
645 LET h$(2)=" 1 - DIEPPE"
650 LET h$(3)=" 2 - LA HAVRE"
655 LET h$(4)=" 3 - CHERBOURG"
660 LET h$(5)=" 4 - ST MALO"
665 LET h$(6)=" 5 - LA ROCHELLE"
670 LET h$(7)=" 6 - BORDEAUX"
675 LET h$(8)="MELYIK VAROST VALASZTOD?"
680 GOSUB 5005
685 IF k$>"6" OR k$<"1" THEN GOTO 640
690 LET x$(p,17 TO 20)="062212161106180444075407"(VAL k$*4-3 TO VAL k$*4)
715 GOTO 455
740 GOSUB 5005
745 IF k$="N" THEN LET lepes=lepes+1: GOTO 455
746 PAPER 4: INK 0: PRINT AT 21,0;"A JATEKOS SZAMA"
750 IF INKEY$ <> "" THEN GOTO 750
751 LET k$=INKEY$: IF k$<"1" OR k$>"4" THEN GOTO 751
752 LET p=VAL k$: PRINT AT 21,0;b$
755 IF p<1 OR p>4 THEN GOTO 750
760 IF x$(p,1 TO 10)=" " THEN GOTO 455
765 LET x$(p,11 TO 16)=" MEGSZAKITVA"(lepes*6-5 TO lepes*6)
780 GOTO 455
790 FOR p=1 TO 4
795 IF x$(p,11 TO 13) <> " UJ" THEN GOTO 860
800 LET oldal=2*p-1
805 FOR q=1 TO 26
810 LET s$(q,oldal TO oldal+1)="00"
815 NEXT q
820 LET amt=20
825 FOR j=2 TO 4: LET sx=j: GOSUB 5525: NEXT j
845 LET sx=8: GOSUB 5525
850 LET sx=16: GOSUB 5525
852 LET amt=15: LET sx=1: GOSUB 5525: LET amt=1: LET sx=5: GOSUB 5525: LET sx=14: GOSUB 5525
855 LET x$(p,11 TO 16)="AKTIV "
860 NEXT p
861 LET napok=1
1005 LET w$="NAPOS": LET tst=RND*8.9: LET adj=2
1010 IF tst>5 THEN LET w$="FELHOS": LET adj=0
1015 IF tst>7 THEN LET w$="ESOS": LET adj=-2
1020 FOR i=1 TO 20: LET t$(i)=CHR$ 0+CHR$ 0: NEXT i
1030 FOR p=1 TO 4
1035 IF x$(p,11) <> "A" THEN GOTO 1110
1040 FOR j=1 TO 3
1045 LET sx=j: GOSUB 5515: LET amt=amt+adj
1050 GOSUB 5525
1055 NEXT j
1056 LET q=0
1060 LET pr=VAL x$(p,17 TO 18): LET pc=VAL x$(p,19 TO 20)
1065 LET d=ABS (64-pc)+ABS (30-pr)
1070 LET prob=1-d/100
1075 LET gen=RND: IF gen>prob THEN LET q=q+1: IF q<5 THEN GOTO 1075
1080 LET q=q+1: IF q>5 THEN GOTO 1110
1085 LET tr=INT (RND*7.9)+pr-3: LET tc=INT (RND*7.9)+pc-3
1100 LET t$(q+p*5-5,1)=CHR$ tr
1101 LET t$(q+p*5-5,2)=CHR$ tc
1105 GOTO 1075
1110 NEXT p
1205 LET c=9999
1210 LET p=0
1215 FOR j=4 TO 1 STEP -1
1220 IF x$(j,11)="A" THEN LET p=j
1225 NEXT j
1230 IF p <> 0 THEN GOTO 1235
1231 LET q=0: FOR p=1 TO 4
1232 IF x$(p,11)="E" THEN LET x$(p,11 TO 16)="AKTIV ": LET q=q+1
1233 NEXT p: IF q=0 THEN GOTO 6700
1234 GOTO 1005
1235 GOSUB 9900
1236 LET r$=x$(p,17 TO 18): LET c$=x$(p,19 TO 20): LET oldal=2*p-1
1237 LET pr=VAL r$: LET pc=VAL c$
1238 GOSUB 4185
1239 PAPER 1: INK 6: PRINT AT 3,0;"JELENLEGI AKTIV JATEKOS:";x$(p,1 TO 10)
1240 PRINT AT 6,0;h$(10): IF INKEY$="" THEN GOTO 1240
1250 GOSUB 5001
1280 LET c(1)=PEEK 23673: LET lap=0
1295 PAPER 4: INK 0: PRINT AT 19,0;"AZ IDOJAROS MOST ";w$
1301 PRINT INK 2;AT 21,0;" AZ IDOSKALA ______________"
1315 LET a(1)=0: LET a(2)=0
1385 GOSUB 4800
1387 LET meter=99: LET j=1
1390 LET dr=CODE t$(j,1)-pr+4
1400 LET dc=CODE t$(j,2)-pc+4
1410 IF dr=4 AND dc=4 THEN LET meter=0: GOTO 1445
1415 IF dr<3 OR dr>5 THEN GOTO 1430
1420 IF dc<3 OR dc>5 THEN GOTO 1430
1425 LET meter=4
1430 LET j=j+1: IF j<21 THEN GOTO 1390
1435 LET h$(1)="ITT NINCS ROBOT-VESZELY.."
1440 IF meter=4 THEN LET h$(1)="VIGYAZZ,A ROBOT KOZELIT.."
1445 IF meter=0 THEN LET h$(1)="VIGYAZZ,A ROBOT FELETTED VAN"
1446 IF meter=99 THEN GOTO 1460
1447 LET h$(8)=" ROBOT/BAL/JOBB/LEP ": GOSUB 5005
1448 IF tf=2 THEN GOTO 3501
1449 IF k$="R" THEN GOSUB 2000: GOTO 1722
1450 IF k$="B" OR k$="J" THEN GOSUB 4025
1451 IF k$ <> "L" THEN GOTO 1440
1455 GOSUB 2725: GOTO 4033
1460 RANDOMIZE 0: IF szerez=1 THEN GOTO 1651
1461 LET a(1)=0: LET a(2)=0: LET ex=0: LET z=0
1462 LET z$=f$(fx,14 TO 20)
1463 LET z$=z$(RND*6+1 TO 7)+z$
1470 LET z$=z$(1): IF z$=" " THEN GOTO 1610
1475 LET ex=CODE z$-64
1480 LET prob=VAL e$(ex,10)
1485 IF RND*8.9>prob THEN GOTO 1610
1515 LET vx=CODE (e$(ex,9))-64
1520 LET z$=v$(vx): LET qq=19: GOSUB 3160
1525 LET h$(3)="TE "+z$+e$(ex,1 TO 8)
1560 FOR k=1 TO 2: LET st=9+2*k: LET a(k)=VAL e$(ex,st TO st+1)
1590 NEXT k: GOTO 1650
1610 LET q=INT (1+RND*2.9)
1620 LET halad=19+2*q: LET a(1)=VAL (f$(fx,halad TO halad+1))
1650 IF A(1)=0 THEN LET A(1)=A(2): LET A(2)=0
1651 FOR J=1 TO 2
1652 IF a(j)=0 THEN GOTO 1665
1653 LET cnt=cnt+1
1655 LET ax=a(j): LET vx=CODE a$(ax,1)-64
1656 LET z$=v$(vx): LET qq=19: GOSUB 3160
1660 LET h$(j+4)="MOST "
1661 LET h$(j+4,9 TO )=z$+a$(ax,2 TO 10): LET h$(j+4,32)=STR$ j
1665 NEXT j
1670 LET H$(8)="BAL/LEP/JOBB/H/ALLAPOT/1/2/ESZIK": GOSUB 5005
1680 IF tf=2 THEN GOTO 3501
1681 IF k$="B" OR k$="J" THEN GOSUB 4025: GOTO 1730
1685 IF k$="L" AND a(1)=0 AND a(2)=0 THEN GOTO 4033
1695 IF k$="H" THEN GOSUB 5560: GOTO 1651
1700 IF k$="A" THEN GOSUB 5655: GOTO 1651
1706 IF k$ <> "E" THEN GOTO 1710
1707 LET sx=8: GOSUB 5515: IF amt=0 THEN PAPER 4: INK 0: PRINT AT 16,0;"NINCS ENNIVALOD": BEEP 1.5,-1: PRINT AT 16,0;b$: GOTO 1710
1708 LET amt=amt-1: GOSUB 5525: LET sx=3: GOSUB 5515: LET amt=amt+4: GOSUB 5525: LET sx=2: GOSUB 5515: LET amt=amt+4: GOSUB 5525: PRINT AT 16,0;U$(10): BEEP 1.5,20: PRINT AT 16,0;b$
1710 IF k$<"1" OR k$>"2" THEN GOTO 1725
1712 LET ax=0: IF k$="1" THEN LET ax=a(1): LET j=1
1715 IF k$="2" THEN LET ax=a(2): LET j=2
1716 IF ax=0 THEN GOTO 1670
1717 GOSUB 3005
1722 IF x$(p,11)="C" THEN GOTO 6505
1724 LET sx=2: GOSUB 5515: IF amt=0 THEN GOTO 6600
1725 LET sx=1: GOSUB 5515: IF amt>1 THEN GOTO 1730
1727 PAPER 4: INK 0: PRINT AT 16,0;"NINCS ENERGIAD ": GOTO 3501
1730 GOTO 1651
2000 LET sx=4: GOSUB 5515: LET eletero=amt-4
2005 IF eletero<0 THEN LET eletero=0
2010 LET sx=17: GOSUB 5515: LET tukor=amt
2015 LET sx=18: GOSUB 5515: LET gla=amt
2020 LET sx=24: GOSUB 5515: LET lan=amt
2025 LET sx=21: GOSUB 5515: LET rdo=amt
2030 LET sx=25: GOSUB 5515: LET granat=amt
2035 LET sx=26: GOSUB 5515: LET puska=amt
2040 IF meter=0 THEN GOTO 2450
2050 LET h$(1)="A ROBOT KOZEL VAN"
2055 LET h$(2)="MEGPROBALHATOD:"
2075 LET h$(3)=" NYOMD 'E' - ELREJTOZOL"
2175 LET h$(4)=" 'T' - TUKROZOL"
2185 LET h$(5)=" 'R' - RADIOZOL"
2190 LET h$(6)=" 'H' - KERESGELSZ VALAMIT"
2195 GOSUB 5005: IF tf=2 THEN RETURN
2196 IF k$="E" THEN GOTO 2695
2200 IF k$="T" THEN GOTO 2230
2210 IF k$="R" THEN GOTO 2320
2215 IF k$="H" THEN GOSUB 5560
2220 GOTO 2050
2230 IF tukor=0 THEN LET h$(1)="NINCS NALAD TUKOR": GOTO 2055
2235 IF w$ <> "NAPOS" THEN LET h$(1)="NEM SUT A NAP": GOTO 2055
2240 IF RND<0.5 THEN GOTO 2355
2245 LET h$(1)="ELKAPRAZTATTAD A ROBOTOT"
2250 LET h$(2)="AZ EROS TUKORREL."
2255 GOTO 2425
2285 IF RND<0.5 THEN GOTO 2055
2320 IF rdo=0 THEN LET h$(1)="NEKED nINCS radioD": GOTO 2055
2325 IF RND<0.5 THEN GOTO 2355
2330 LET h$(1)="SIKERULT MEGZAVARNOD A"
2335 LET h$(2)="ROBOT OSSZEKOTTETESET A"
2340 LET h$(3)="RADIO ADOVEVOVEL."
2345 GOTO 2425
2355 LET h$(2)="NEM SIKERULT A HARCOD"
2360 LET h$(3)="LEFOZOTT TEGED"
2365 LET h$(4)="A ROBOT."
2385 LET eletero=eletero-1
2390 LET h$(6)=h$(10): GOSUB 5005: GOTO 2810
2425 LET h$(5)="ROBOTOD MAXIMUMON VAN ": LET h$(9)=h$(10)
2430 GOSUB 5005
2435 LET eletero=20: GOTO 2810
2450 IF eletero=0 THEN LET x$(p,11 TO 16)="LEFOZOTT": RETURN
2460 LET eletero=eletero-2: IF eletero<0 THEN LET eletero=0
2464 IF eletero>0 THEN GOTO 2495
2465 LET h$(1)="ENERGIAD ELFOGYOTT"
2470 LET h$(3)="A ROBOT FELULMULT"
2485 LET h$(6)="FEGYVEREID MEGSEMMISULTEK."
2486 LET h$(8)=h$(10)
2490 GOSUB 5005
2495 LET h$(1)="SAROKBA SZORITOTTAK,"
2500 LET h$(2)="HARCOLNOD KELL."
2505 LET h$(4)=" NYOMD 'G' - grAnaT"
2510 LET h$(5)=" 'S' - GEPAGYU"
2520 LET h$(6)=" 'H' - ELBUJSZ"
2525 GOSUB 5005: IF tf <> 0 THEN GOTO 2695
2535 IF k$="G" THEN GOTO 2565
2540 IF k$="S" THEN GOTO 2580
2550 IF k$="H" THEN GOTO 2695
2555 GOTO 2495
2565 IF granat=0 THEN LET z$="GRANAT": GOTO 2670
2570 LET granat=granat-1
2575 GOTO 2590
2580 IF puska=0 THEN LET z$="PUSKA": GOTO 2670
2585 LET puska=puska-1
2590 IF RND>0.6 THEN GOTO 2655
2595 LET h$(1)="LEGYOZTED EZT A ROBOTOT"
2600 LET h$(2)="DE MINDEN MAS ROBOTOT"
2605 LET h$(3)="EZ RIADOZTATOTT,SURGOSEN"
2610 LET h$(4)="MENEKULJ EL INNEN."
2616 LET h$(7)=h$(10)
2620 GOSUB 5005: LET eletero=0
2625 LET z$=(CHR$ (VAL r$))+(CHR$ (VAL c$))
2630 FOR j=1 TO 20
2635 IF t$(j)=z$ THEN LET t$(j)=CHR$ 0+CHR$ 0
2640 NEXT j
2645 GOTO 2810
2655 LET h$(1)="TAMADASOD NEM SIKERULT..."
2660 LET h$(5)=h$(10): GOSUB 5005: GOTO 2495
2670 LET h$(1)="NEKED "+z$
2675 LET h$(5)=h$(10): GOSUB 5005: GOTO 2495
2695 IF eletero=0 AND RND>0.7 THEN LET x$(p,11 TO 16)="LEFOZOTT": RETURN
2705 IF RND>0.5 THEN GOTO 2725
2710 LET h$(1)="MOST NAGYON NAGY"
2715 LET h$(8)=h$(10): GOSUB 5005: GOTO 2810
2735 LET h$(3)="SZERENCSED VOLT"
2740 LET h$(5)="A ROBOT MINDEN"
2745 LET h$(6)="ENERGIAJA A TIED."
2750 LET h$(8)=h$(10): GOSUB 5005
2755 LET eletero=eletero-2
2810 LET amt=eletero: LET sx=4: GOSUB 5525
2815 LET amt=granat: LET sx=25: GOSUB 5525
2820 LET amt=puska: LET sx=26: GOSUB 5525
2822 RETURN
3005 IF a$(ax,11 TO 12)=" " THEN GOTO 3010
3006 LET sx=CODE a$(ax,11)-64
3007 LET kell=VAL a$(ax,12)
3008 GOSUB 5515
3009 IF kell>amt THEN LET h$(j+4)="NEKED "+d$(sx,1 TO 10): LET a(j)=0: RETURN
3010 LET shf=0: LET a(1)=0: LET a(2)=0
3012 LET prob=VAL a$(ax,13)
3015 IF RND*8.9>prob THEN LET shf=7
3020 LET nyom1=15+shf
3030 FOR k=1 TO 2
3035 LET tst=3*(k-1)+nyom1
3040 LET z$=a$(ax,tst): IF z$=" " THEN GOTO 3055
3045 GOSUB 5500: GOSUB 5515
3050 LET amt=amt+VAL a$(ax,tst+1 TO tst+2): GOSUB 5525
3055 NEXT k
3100 IF a$(ax,14+shf)="S" THEN : RETURN
3102 IF a$(ax,14+shf)=" " THEN RETURN
3105 LET ux=CODE a$(ax,14+shf)-64
3145 LET h$(4+j)=u$(ux): LET h$(8)=h$(10): GOSUB 5005
3150 RETURN
3160 IF z$(qq) <> " " THEN GOTO 3175
3170 LET qq=qq-1: IF qq>1 THEN GOTO 3160
3175 LET z$=z$(1 TO qq)+" "
3180 RETURN
3501 LET q=0: FOR j=1 TO 4: IF x$(j,11)="C" OR x$(j,11)=" " THEN LET q=q+1
3502 NEXT j
3503 PAPER 0: INK 1: GOSUB 5000: GOSUB 4186: INK 7: PRINT AT 19,4;"KOZBEN EJSZAKA LETT ";x$(p,1 TO 10)
3505 LET szerez=1: LET tf=0: IF q=4 THEN GOTO 6700
3506 LET q=0: FOR j=1 TO 4: IF x$(j,11)="A" THEN LET q=q+1
3520 NEXT j
3525 IF q=1 THEN LET napok=napok+1
3530 LET x$(p,11 TO 16)="EOD "
3534 LET sx=1: GOSUB 5515: LET mv=amt
3535 LET sx=8: GOSUB 5515: LET fd=amt: IF fd>10 THEN LET fd=10
3536 LET amt=amt-fd: GOSUB 5525: LET sx=2: GOSUB 5515: LET amt=amt+fd+2: GOSUB 5525
3538 LET sx=3: GOSUB 5515: LET amt=amt+fd: GOSUB 5525
3540 LET sx=8: GOSUB 5515: LET amt=amt-fd: GOSUB 5525
3565 IF napok<8 THEN GOTO 3580
3580 LET tsuly=0
3585 FOR j=5 TO 26
3590 LET sx=j: GOSUB 5515: IF amt=0 THEN GOTO 3600
3595 LET tsuly=tsuly+amt*VAL (d$(sx,11))
3600 NEXT j
3605 LET mv=10-INT (tsuly/20)+fd
3610 LET sx=5: GOSUB 5515: IF amt <> 0 THEN LET mv=mv+5
3615 LET sx=7: GOSUB 5515: IF amt <> 0 THEN LET mv=mv+5
3618 LET sx=1: LET amt=mv: GOSUB 5525
3619 IF napok<8 THEN GOTO 1205
3620 GOSUB 5000: INK 7: PRINT AT 17,0;"JATEKOS ALLAPOT": FOR N=1 TO 4: PRINT AT 17+N,0;X$(N,1 TO 16): NEXT N: LET h$(3)=" M - MENTES"
3621 LET h$(1)=" LEHETOSEG:"
3623 LET h$(5)=" F - FOLYTATAS": GOSUB 5005
3624 IF k$="M" THEN GOTO 3630
3625 IF K$ <> "F" THEN GOSUB 5020: GOTO 3624
3626 GOTO 861
3630 PRINT AT 18,0;" TEDD BE A KAZETTAT ";AT 19,0;" INDITSD A MAGNOT ";B$;B$;: BEEP .1,50
3631 IF INKEY$ <> "" THEN GOTO 3631
3632 IF INKEY$ <> CHR$ 13 THEN GOTO 3632
3635 PRINT AT 20,0;: SAVE "RAKTAR" DATA s$(): PRINT AT 21,0;: SAVE "ALLAPOT" DATA x$()
3640 GOTO 861
4025 IF k$="J" THEN LET cmp=cmp+1
4030 IF k$="B" THEN LET cmp=cmp+7
4031 IF cmp>8 THEN LET cmp=cmp-8
4032 GOSUB 4185: RETURN
4033 LET dr=0: LET dc=0: LET szerez=0
4035 IF cmp=8 OR cmp=1 OR cmp=2 THEN LET dr=-1
4040 IF cmp=6 OR cmp=5 OR cmp=4 THEN LET dr=1
4045 IF cmp=8 OR cmp=7 OR cmp=6 THEN LET dc=-1
4050 IF cmp=2 OR cmp=3 OR cmp=4 THEN LET dc=1
4055 LET sx=1: GOSUB 5515: LET req=1: LET mov=amt
4065 LET mr=pr+dr: LET mc=pc+dc
4070 IF m$(mr,mc) <> "H" THEN GOTO 4090
4075 LET mr=mr+dr: LET mc=mc+dc
4080 LET sx=10: GOSUB 5515: IF amt=0 THEN LET req=7
4081 LET energia=0: LET sx=7: GOSUB 5525
4082 LET sx=9: GOSUB 5525
4090 LET fx=CODE m$(mr,mc)-64: IF fx<0 THEN GOTO 4120
4095 LET req=req+VAL f$(fx,12 TO 13)
4100 IF req <= mov THEN GOTO 4120
4105 PAPER 4: INK 0: PRINT AT 16,0;"ERRE NEM MEHETSZ": BEEP 1.5,-1: PRINT AT 16,0;b$
4115 GOTO 1651
4120 LET pr=mr: LET pc=mc
4122 IF m$(pr,pc)="*" THEN LET x$(p,11 TO 16)="GYOZTES": GOTO 6000
4125 LET energia=mov-req: LET sx=1: GOSUB 5525
4126 LET r$=STR$ pr: IF pr<10 THEN LET r$="0"+r$
4127 LET c$=STR$ pc: IF pc<10 THEN LET c$="0"+c$
4128 LET x$(p,17 TO 20)=r$+c$
4160 GOSUB 4185: GOTO 1385
4185 PAPER 4: INK 0: PRINT AT 17,0;"IRANYOD ";"E EKD KED DNN EN"(cmp*2-1 TO cmp*2): PAPER 4: INK 1
4186 PRINT AT 8,0;b$;b$;b$;b$;b$;b$;b$;b$
4187 FOR n=1 TO 10: PLOT 0,110-n*n/3: DRAW 255,0: NEXT n
4191 POKE 55998,64: POKE 55999,64
4192 POKE 55996,pc: POKE 55997,pr
4193 POKE 55995,cmp-1
4194 RANDOMIZE USR 56000
4195 RETURN
4800 LET z$=m$(pr,pc)
4805 LET fx=CODE z$-64
4810 IF z$ <> "R" THEN GOTO 4830
4815 FOR j=1 TO 59
4820 IF x$(p,17 TO 20)=l$(j,1 TO 4) THEN LET j$=l$(j,5 TO 15)
4825 NEXT j
4826 GOTO 4846
4830 LET ffx=VAL f$(fx,11)+26
4835 LET z$=f$(ffx,1 TO 10)
4840 LET qq=10: GOSUB 3160: LET j$=z$
4845 LET j$=j$+f$(fx,1 TO 10)
4846 LET z$=x$(p,1 TO 10): LET qq=10: GOSUB 3160
4850 INK 0: PRINT AT 20,0;b$;AT 20,0;z$;" MOST ";j$;"-BAN"
4855 RETURN
5000 PRINT AT 16,0;b$;b$;b$;b$;b$;b$: RETURN
5001 PAPER 1: INK 7: PRINT AT 0,0;b$;b$;b$;b$;b$;b$;b$;b$: RETURN
5005 PAPER 1: INK 6: GOSUB 5001: BEEP .1,.5
5010 PRINT AT 1,0;h$(1): LET h$(1)=b$: FOR l=2 TO 8: PRINT h$(l): LET h$(l)=b$: NEXT l
5011 LET ot=0: LET tf=0: PAPER 4: INK 0
5020 IF INKEY$ <> "" THEN GOTO 5020
5025 IF INKEY$="" THEN GOTO 5034
5026 LET k$=INKEY$
5028 IF k$ >= "a" THEN LET k$=CHR$ (CODE (k$)-32)
5029 IF k$ <> " " THEN RETURN
5030 PRINT AT 16,20;"MEGALLITVA": IF INKEY$ <> "" THEN GOTO 5030
5031 IF INKEY$ <> " " THEN GOTO 5031
5032 PRINT AT 16,0;B$: LET ot=PEEK 23673: GOTO 5020
5034 IF c(1)=9999 THEN GOTO 5025
5035 LET nt=PEEK 23673
5036 IF nt=ot THEN GOTO 5025
5037 LET ot=nt
5040 LET lap=lap+1
5050 IF lap<27 THEN GOTO 5060
5052 LET tf=2: RETURN
5060 LET l=INT ((2.5+lap)/2): PRINT AT 21,32-l;b$(1 TO l);: GOTO 5025
5500 LET sx=CODE (z$)-64
5505 RETURN
5515 LET energia=VAL (s$(sx,oldal TO oldal+1)): RETURN
5525 IF energia<0 THEN LET energia=0
5530 LET teljes=VAL d$(sx,12 TO 13): IF energia>teljes THEN LET energia=teljes
5535 LET z$=STR$ (energia): IF LEN z$=1 THEN LET z$="0"+z$
5540 LET s$(sx,oldal TO oldal+1)=z$
5545 RETURN
5560 LET h$(1)="HATIZSAKOD TARTALMA:"
5565 LET h$(2)="TETEL SULY MENNYI EGESZ": LET h$(8)=h$(10)
5570 LET lnct=3: LET tsuly=0
5575 FOR j=5 TO 26
5580 LET sx=j: GOSUB 5515: IF energia=0 THEN GOTO 5630
5585 LET h$(lnct,1 TO 10)=d$(sx,1 TO 10)
5590 LET h$(lnct,11)=d$(sx,11)
5595 LET h$(lnct,21 TO 22)=s$(sx,oldal TO oldal+1)
5600 LET lwt=energia*VAL (d$(sx,11)): IF lwt>99 THEN LET lwt=99
5606 LET z$=STR$ lwt: IF LEN z$=1 THEN LET z$="0"+z$
5610 LET h$(lnct,28 TO 29)=z$: LET tsuly=tsuly+lwt: LET lnct=lnct+1
5615 IF lnct<6 THEN GOTO 5630
5620 GOSUB 5005: IF tf=2 THEN LET j=27: NEXT j: RETURN
5621 LET lnct=3
5625 FOR l=3 TO 7: LET h$(l)=b$: NEXT l
5630 NEXT j
5635 LET h$(7)="TELJES SULY "+STR$ (tsuly)
5636 LET h$(8)=h$(10): GOSUB 5005: RETURN
5655 FOR j=1 TO 9: LET h$(j)=b$: NEXT j
5660 LET h$(1)="EGYENI ALLAPOT"
5665 LET h$(8)=h$(10)
5670 FOR j=2 TO 4
5675 LET z$="GYENGE"
5680 LET sx=j: GOSUB 5515
5685 IF energia>5 THEN LET z$="KOZEPES"
5690 IF energia>10 THEN LET z$="Jo"
5692 IF energia>14 THEN LET z$="NAGYON JO"
5695 IF energia>17 THEN LET z$="KIVALO"
5700 LET h$(j)=d$(j,1 TO 10)+" - "+z$
5705 NEXT j
5710 LET sx=1: GOSUB 5515
5715 LET h$(6)="MOST PEDIG "+STR$ (energia)+" ENERGIAT KAPSZ"
5720 GOSUB 5005: RETURN
6000 LET z$=x$(p,1 TO 10): LET qq=10: GOSUB 3160: LET h$(1)=z$+" JATEK VEGE"
6005 LET h$(3)="ELERTED A HEGYCSUCSOKAT!"
6010 LET h$(4)="ES SZABAD EMBER LETTEL"
6015 LET h$(5)="A ROBOT TAMADAST ELHARITOTTAD!"
6020 GOTO 6620
6505 LET h$(1)="ELFOGOTT ES LEGYOZOTT A ROBOT"
6510 LET h$(2)="ES MINDENT ELVESZTETTEL."
6511 GOTO 6605
6600 LET h$(1)="MINDEN EROD ELFOGYOTT."
6605 LET h$(3)="EGY MASIK JATEKBAN"
6610 LET h$(4)="UJRA MEGPROBALHATOD."
6615 LET h$(5)=" SOK-SOK SZERENCSET."
6616 LET h$(7)=h$(10)
6620 GOSUB 5005: LET x$(p)=b$: GOTO 1205
6700 FOR j=0 TO 21: PRINT PAPER RND*7; INK 9;AT j,0;"ROBOTOK GYOZTEK,A HABORUNAK VEGE": BEEP .01,J: NEXT j
6710 PRINT AT 21,0;h$(10): IF INKEY$="" THEN GOTO 6710
6720 GOTO 100
9900 PAPER 4: INK 1: BRIGHT 1: CLS : GOSUB 5001: RETURN
9910 SAVE "ROBOT" LINE 100: SAVE "KOD"CODE 54682,10854
FÜGGELÉK
MENŰKEZELŐ
Leírás:
Látványos, kurzorral (egérrel) kezelhető, árnyékolt, fénycsíkos menürendszer, bármilyen programba beépíthető, ahol több pontból választható ki az elágazás stb. (ilyennel dolgoztam a későbbi PC-s, CLIPPER-es nyilvántartó programoknál)

9001 REM ********************* REM
9002
REM **** MENŰKEZELŐ ****9003 REM ********************* REM
9004 BORDER 4: PAPER 4: INK 0: CLS
9010 DIM S$(1,16*32)
9020
REM **** Főcím ****9030 PRINT AT 1,5; PAPER 2; INK 7;" (c) NyitraiSOFT 2001' ";AT 3,10; PAPER 1; INK 5;"MAYA játék"; 0;AT 0,0; BRIGHT 1; PAPER 7; INK 1;"Kiválasztás a nyilakkal + ENTER."
9040 LET oldal=1: RESTORE 9088
9044 DIM d(7): FOR f=1 TO 7: READ d(f): NEXT f
9046 DIM n$(d(6)): DIM Q$(d(5),d (6))
9048 READ n$: FOR f=1 TO d(5): READ Q$(f): NEXT f
9050 PAPER d(3): INK d(4)
9052 LET x=d(1): LET y=d(2)
9054 PRINT AT x,y; INVERSE 1;" ";n$;" "
9056 LET b$=" "( TO d(6)+2)
9058 PRINT AT x+1,y;b$: FOR f=1 TO d(5): PRINT AT x+1+f,y;" ";Q$(f);" ": NEXT f: PRINT AT x+2+d(5),y;b$
9060 LET x=x+d(5)+3
9062 FOR f=1 TO d(6)+2: PRINT AT x,y+f; PAPER d(7);" ": NEXT f
9064 FOR f=1 TO d(5)+2: PRINT AT x-f,y+d(6)+2; PAPER d(7);" ": NEXT f
9066 LET x=d(2)*8: LET y=167-d(1)*8
9068 PLOT x,y: DRAW 0,-d(5)*8-15: DRAW d(6)*8+15,0: DRAW 0,d(5)*8+15: INK 6
9070 LET x=d(1)+2: LET y=d(2)+1: LET val=1
9072 PRINT AT x,y; INVERSE 1;Q$(val);AT X, Y+(LEN Q$(val)-3)
9074 LET i$=INKEY$: IF NOT (i$=CHR$ 10 OR i$=CHR$ 11 OR i$=CHR$ 13) THEN GO TO 9074
9076 IF i$=CHR$ 13 THEN GO TO oldal
9078 PRINT AT x,y;Q$(val)
9080 IF i$=CHR$ 10 THEN LET x=x+1: LET val=val+1: IF val>d (5) THEN LET val=1: LET x=x-d(5)
9082 IF i$=CHR$ 11 THEN LET x=x-1: LET val=val-1: IF val<1 THEN LET val=d(5): LET x=x+d(5)
9088
REM ***adatok a menűhöz***9090 DATA 5,5,1,6,11,18,0," Men
ű-választék:"9092 DATA "golyók száma: 1-1","golyók száma: 2-2","golyók száma: 3-3","golyók száma: 4-4","golyók száma: 5-5","golyók száma: 6-6","véletlenszerű: 1-6","játék magyarázata","a programmozóról!!","kilépés a játékból","vissza az 1.sorra."
9220 REM a választott sorra ugrás
9230 IF val=1 THEN LET oldal=1612
9232 IF val=2 THEN LET oldal=1618
9236 IF val=3 THEN LET oldal=1625
9237 IF val=4 THEN LET oldal=1632
9238 IF val=5 THEN LET oldal=1634
9239 IF val=6 THEN LET oldal=1636
9240 IF val=7 THEN LET oldal=1540
9241 IF val=8 THEN LET oldal=9300
9242 IF val=9 THEN LET oldal=9320
9243 IF val=10 THEN LET oldal=9350
9244 IF val=11 THEN LET oldal=9000
ALAPPROGRAM
Garry Rowland féle PDF rendszerrel
Leírás:
Minden 128K+2 programnál a speccyrajz, majd sztereó, háromcsatornás hangeffektek, és hatféle betűtípus használata...

1 REM ***********************
(c) NyitraiSOFT 2002' *
***********************
2 REM ***********************
*** HAJOVERSENY ***
*** a PDF rendszerrel**
*** 3 csatornas hang **
***********************
3 DIM z$(10,7)
4 LET z$(1,)="{L9880}": LET z$(2,)="{L9881}": LET z$(3,)="{L9883}"
5 LET z$(4,)="{L9884}": LET z$(5,)="{L9886}": LET z$(6,)="{L9887}": LET z$(7,)="{L9882}"
6 LET z$(8,)="{L9885}"
8 GOSUB 9890: RANDOMIZE 9900 AND USR ua
10 DEFFN u(l,x,y,a)=9905 AND USR ua
11 PRINT 4;"{L9880"
12 BORDER 1: PAPER 2: INK 7: CLS
13 GOSUB 2000
15 PRINT 4; INK 6;AT 165,55;"{L9880 | NyitraiSOFT 2002'| "; INK 7;AT 30,20;"{L9881 |Ez a program 128K+2-es SPECCY-n keszult|"; INK 5;AT 140,15;"{L9885 a program cime : "; INK 7;"{L9882 |Hajoverseny|": PRINT 0; INK 6;" NYOMJ EGY GOMBOT A KEZDESHEZ!!": LET d=FN u(9010,4,7,4)
8500 REM zene128K ping
8502 PLAY"UX6000W7C": RETURN
8503 REM zene128K rovid tus
8505 LET x$="T170O3N1gbD3C"
8510 LET y$="T170O5N1gbD3C"
8515 LET z$="T170O7N1gbD3C"
8520 PLAYx$,y$,z$: RETURN
8525 REM zene128K csilingeles
8530 FOR n=1 TO 4
8531 PLAY"T240UX1000W0O7N2cfgEA": RETURN
8535 REM zene128K eredmeny tus
8540 LET p$="T240O3cN2ccN3eN4ce9g"
8545 LET q$="T240O6cN2ccN3eN4ce9g"
8560 PLAYp$,q$: RETURN
8565 REM zene128K hosszu csilingeles
8570 PLAY"T240UX500W7N2CDECDECDECDECDECDECDECDECDECDE9C"
8572 RETURN
8575 REM zene128K gyozelmi tus
8580 FOR n=1 TO 2
8590 LET x$="T240O2bb9E2bEb3E9B"
8595 LET y$="T240O4bb9E2bEb3E9B"
8605 PLAYx$,y$
8610 NEXT n: RETURN
8615 REM zene128K mely baljos zene
8620 LET x$="T95UX6000W7O1BBGGFFEEDDCN1PLAY9C"
8625 LET y$="T95UX6000W7O1BBGGFFEEDDCN1PLAY9C"
8635 PLAYx$,y$: RETURN
8640 REM zene128K vegso,mely zene
8645 LET x$="T240O2N1PLAY9EO3N1PLAY4D$DDDN1PLAYEGN1PLAY6$GGGCGD$DCO1V14CV13CV12CV10CV9CV8CV7CV6CV5CV4CV3CV2CV1N1PLAY9C"
8650 LET y$="T240O2N1PLAY9EO3N1PLAY4D$DDDN1PLAYEGN1PLAY6$GGGCGD$DCO1V14CV13CV12CV11CV10CV8CV7CV6CV5CV4CV3CV2CV1N1PLAY9C"
8660 PLAYx$,y$: RETURN
8665 REM zene 1 channel track 128K
SPECCY's thinking sound
alaphang !!!
egy masikat meghivva,
elhallgat
8670 LET q=65533: LET l=49149
8675 FOR n=0 TO 7
8680 FOR m=0 TO 15
8685 OUT q,7: OUT l,62
8690 OUT q,1: OUT l,n
8695 OUT q,8: OUT l,n
8700 OUT q,m: OUT l,8
8705 NEXT n: NEXT m
8710 RETURN
8720 REM program memoria
8725 PRINT AT 16,0; PAPER 1; INK 6;" PROGRAM MEMORIA"
8730 LET stk=PEEK 23653+256*(PEEK 23654)
8735 LET rmt=PEEK 23730+256*(PEEK 23731)
8740 LET prg=PEEK 23635+256*(PEEK 23636)
8745 LET vrs=PEEK 23627+256*(PEEK 23628)
8750 LET mem=rmt-stk
8755 LET lth=vrs-prg
8760 PRINT ''"PROGRAM: ";lth;" bajtbol all"
8765 PRINT "Maradek tarhely: ";mem;" ";"bajt"
8770 PAUSE 0: STOP
MÁSODIK RÉSZ
3D MALOM
Leírás:
A játék egy kicsit különbözik a megszokottól, itt összesen csak három korongot kell egymás mellé tenni - malmot - csinálni, jóval kisebb pályán (csak kilenc hely van), de nagyon izgalmas, van mikor hamar véget ér, de van, mikor nagyon küzd a számítógép, és általában ő győz.

0 REM Harom korong
egy sorban
3D malomjatek
(c) jAtekgyaros 2003'
1 REM a program eredeti,ez az egy ilyen letezik !!
2 REM 0 -as sor
3 POKE PEEK 23635+256*PEEK 23636+1,0
5 BORDER 1: PAPER 1: INK 7: CLS
8 GO SUB 191: RANDOMIZE USR 65055: PAUSE 15: PRINT AT 5,12; INK 2;"Oø";AT 6,12;"÷ù": RANDOMIZE USR 65055: PAUSE 15: INK 2: PRINT AT 13,18;"Oø";AT 14,18;"÷ù"
9 RANDOMIZE USR 65055: PAUSE 15: INK 0
11 PRINT AT 1,1;;"(c) NyitraiSOFT 2003' 3D malom": PRINT 0;" Nyomj egy gombot": PAUSE 0
21 GO TO 1151
31 RESTORE
41 LET ap=0: LET s=0: LET i=0: LET o=0: LET lepes=0
51 FOR y=1 TO 4
61 READ x$
71 REM korongok UDG i
81 FOR w=0 TO 7
91 READ r: POKE USR x$+w,r
101 NEXT w: NEXT y
111 DATA "a",3,15,63,127,255,255,255,191,
"b",159,227,252,255,127,63,31,3,
"c",192,248,252,254,255,255,255,253,
"d",251,199,63,255,254,252,248,192
121 REM lepesek tarolasa tombokben
131 DIM d(9,3)
141 FOR a=1 TO 9
151 FOR b=1 TO 3
161 READ p: LET d(a,b)=p
171 NEXT b: NEXT a
181 DATA 0,12,5,0,17,5,0,22,5,0,20,9,0,18,13,0,13,13,0,8,13,0,10,9,0,12,5
191 BORDER 4: PAPER 5: INK 1: CLS
193 PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW 255,0: DRAW 0, 175
194 PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW 253,0: DRAW 0, 173
195 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW 247,0: DRAW 0, 167
201 RANDOMIZE USR 65034
211 PRINT AT 3,13;"1 2 3"
221 PRINT AT 9,8;"8";AT 10,24;" 4"
231 PRINT AT 18,8;"7 6 5"
241 FOR a=38 TO 48
251 PLOT 50,a: DRAW INK 2;118,0: DRAW INK 2;38,90
261 NEXT a
271 DRAW INK 0; 112,0: DRAW 44, 90
281 PLOT 104,128: DRAW 80,0: DRAW 30, 66: DRAW 80,0: DRAW 30,66: DRAW 50, 66
291 PLOT 74,62: DRAW 110,64: PLOT 111,62: DRAW 32,64: PLOT 90,96: DRAW 77,0
301 PRINT AT 9,15; INK 2;"Oø": PRINT AT 10,15; INK 2;"÷ù"
311 RETURN
321 REM lepesek
331 FOR t=1 TO 3
341 INPUT "Hova tegyem? ";x
351 IF x<1 OR x>8 OR d(x,1)<>0 THEN GO TO 341
361 LET d(x,1)=1
371 GO SUB 921
381 IF t=1 THEN GO SUB 421: GO SUB 921: BEEP .1,20
391 IF t=2 THEN GO SUB 511: GO SUB 721: GO SUB 921: BEEP .1,20
401 NEXT t
411 RETURN
421 REM hiba hangjelzEes
431 LET c=INT (RND*8)+1
441 IF d(c,1)<>0 OR c=ap THEN GO TO 431
451 LET d(c,1)=4: RETURN
461 REM lepes rutinok
471 FOR a=1 TO 7 STEP 2
481 IF d(a,1)=1 AND d(a+1,1)=1 AND d(a+2,1)=1 THEN GO SUB 921: GO TO 1011
491 NEXT a
501 RETURN
511 REM lepes rutinok
521 FOR a=1 TO 4
531 IF d(a,1)=4 AND d(a+4,1)=0 THEN LET d(a+4,1)=4: GO SUB 571: GO SUB 921: GO TO 1041
541 IF d(a,1)=0 AND d(a+4,1)=4 THEN LET d(a,1)=4: GO SUB 571: GO SUB 921: GO TO 1041
551 NEXT a
561 RETURN
571 FOR z=1 TO 8
581 IF d(z,1)=4 AND z<>a AND z<>a+4*(z<6) 4*(z>6) THEN LET d(z,1)=0: RETURN
591 NEXT z: RETURN
601 REM dontetlen
611 LET d(9,1)=d(1,1)
621 FOR a=1 TO 7 STEP 2
631 LET x=d(a,1)+d(a+1,1)+d(a+2,1)
641 IF a=7 THEN LET y=d(1,1)+d(2,1)+d(3,1)
651 IF a<7 THEN LET y=d(a+2,1)+d(a+3,1)+d(a+4,1)
661 IF x<>6 AND (d(a,1)<>4 OR x>6) AND x>3 AND (y<>6 OR d(a+1,1)=4) THEN GO TO 681
671 NEXT a
681 FOR b=1 TO 2
691 IF d(a+b,1)=4 THEN LET d(a+b,1)=0: LET o=d(9,1): LET d(1,1)=o: LET ap=a+b (8*(a+b=9)): RETURN
701 NEXT b
711 STOP
721 REM lepesek
731 LET d(9,1)=d(1,1)
741 FOR a=1 TO 7 STEP 2
751 LET e=d(a,1)+d(a+1,1)+d(a+2,1)
761 IF e=2 THEN GO TO 791
771 NEXT a
781 GO TO 831
791 FOR b=0 TO 2
801 LET w=a+b
811 IF d(w,1)=0 THEN LET d(a+b,1)=4: RETURN
821 NEXT b
831 GO SUB 421
841 RETURN
851 REM lepes kivalasztas
861 INPUT "Melyikkel lepsz ? ";h
871 INPUT "HovA tegyem ? ";i
881 PRINT AT 19,1;"Lepesek szama: ";lepes/2;" "
891 IF h<1 OR h>8 OR d(h,1)<>1 OR i<1 OR i>8 OR d(i,1)<>0 THEN GO TO 861
901 LET d(h,1)=0: LET d(i,1)=1
911 RETURN
921 REM korong a helyere
931 LET lepes=lepes+1
941 FOR r=1 TO 8
951 LET j=d(r,1)
961 LET k=d(r,3): LET l=d(r,2)
963 IF j=4 THEN LET j=2
965 IF j=1 THEN LET j=1
971 IF j=0 THEN PRINT AT k,l;" ";AT k+1,l;" "
981 IF j>0 THEN PRINT AT k,l; INK j; PAPER 5;"Oø";AT k+1,l; INK j; PAPER 5;"÷ù"
991 NEXT r
1001 RETURN
1011 PRINT AT 19,1;" "
1021 PRINT AT
18,3;"Győztel !!! ";lepes/2;" lepesben."1031 GO TO 1061
1041 PRINT AT 18,3; FLASH 1;"Vesztettel !!! "
1051 PRINT AT 19,1;" "
1061 FOR a=1 TO 20: BEEP .1,RND*30: NEXT a
1071 INPUT "MEgegyszer (i/n)? ";m$
1081 IF m$="i" THEN RUN
1091 CLS : PAPER 0: BORDER 7: CLS : PAUSE 100: PAPER 7: CLS
1101 PRINT 1;"(c) 1982 Sinclair Research Ltd."
1111 PAUSE 0
1121 GO SUB 191: PAUSE 100
1131 RANDOMIZE USR 62999
1141 STOP
1151 GO SUB 31
1161 GO SUB 321
1171 GO SUB 461
1181 GO SUB 511
1191 GO SUB 601
1201 GO SUB 721
1211 GO SUB 921
1221 BEEP .1,20
1231 GO SUB 851
1241 GO SUB 921
1251 GO TO 1171
1261 LET c=(INT (RND*4))*2+1
1271 SAVE "3egysor"LINE 1
1272 SAVE "kod"CODE 40760,24400
HUPIKÉK TÖRPIKÉK
Leírás:
A hupikék törpikék egyike Okoska, akivel mindig történik valami, elkóborolt a kunyhóból, hogy megkeresse a csodavirágot, a csodagombát, és a varázslatos ajándék dobozt.
Sietnie kell, mert ha lejár az ideje, akkor újból kell kezdeni a játékot.

1 REM HUPIKEK TORPIKEK A VADONBAN
101 REM (c) NYITRAI 2001'
102 BORDER 0: PAPER 0: INK 7: BRIGHT 1: CLS
105 LET hi=0
535 LET pit=0: LET ti=1200: LET re2=0: LET reg=0: LET re1=0: LET za3=0: LET t=30: LET tim=0: LET mar=0: LET x2=14: LET y2=14: LET x1=14: LET y1=14
540 LET p1=176: LET p2=254
545 LET a$="__": LET b$="__": LET c$="__": LET d$="__"
560 RANDOMIZE
700 REM JATEK MAGYARAZAT
701 CLS : PRINT INK 5;AT 1,0;"__ HUPIKEK TORPIKEK KALANDJAI __";AT 2,0;"__"; INK 4;AT 2,10;" A VADONBAN."; INK 5;AT 2,30;"__"; INK 7;AT 3,0;"__";AT 3,30;"__"; INK 6;AT 5,2;" A HUPIKEK TORPIKEK EGYIKE OKOSKA ,AKIVEL MINDIG TORTENIK VALAMI, ELKOBOROLT A KUNYHOBOL, HOGY MEGKERESSE A CSODAVIRAGOT,A CSODAGOMBAT ES A VARAZSLATOS AJANDEKDOBOZT.SIETNIE KELL,MERT HA LEJAR AZ IDEJE,AKKOR UJBOL KELL KEZDENI A JATEKOT."
702 PRINT INK 2;AT 13,7;"A JATEK BEALLITASA:": PRINT 0; INK 2;" (c) NYITRAI LASZLO 2001' "
703 PRINT INK 4;AT 15,4;"1. BILLENTYŰZET 'Q,A,O,P'";AT 16,4;"2. KEMPSTON JOY '6,7,8,9'"
704 PRINT INK 4;AT 17
,4;"3. JATEK VEGE";AT 18,4;"0. JATEK INDITAS"; INK 7;AT 20,3;"VALASZD A MEGFELELŐ SZAMOT!"705 PRINT FLASH 1; INK 4;AT 15,4;"1. BILLENTYŰZET": LET aa=64510: LET bb=65022: LET cc=57342: LET dd=cc: LET ee=190: LET ff=ee: LET gg=189: LET hh=ee
706 LET z$=INKEY$
707 IF z$="1" THEN PRINT FLASH 1; INK 4;AT 15,4;"1. BILLENTYŰZET": PRINT INK 4; FLASH 0;AT 16,4;"2. KEMPSTON JOY": LET aa=64510: LET bb=65022: LET cc=57342: LET dd=cc: LET ee=190: LET ff=ee: LET gg=189: LET hh=ee
708 IF z$="2" THEN PRINT FL
ASH 1; INK 4;AT 16,4;"2. KEMPSTON JOY": PRINT INK 4; FLASH 0;AT 15,4;"1. BILLENTYŰZET": LET aa=223: LET bb=223: LET cc=223: LET dd=223: LET ee=8: LET ff=4: LET gg=2: LET hh=1709 IF z$="3" THEN PRINT FLASH 1; INK 4;AT 17,4;"3. JATEK VEGE": STOP
710 IF z$="0" THEN PRINT FLASH 1; INK 4;AT 18,4;"0. JATEK INDITAS": GOSUB 750: GOTO 714
712 IF z$ <> "0" OR z$>"3" THEN GOTO 706
713 REM KEZDŐ KEPERNYŐ
714 CLS : PRINT INK 6; PAPER 6;AT 0,0;"________________________________________________________________________________________________"
715 PRINT 1; INK 6; PAPER 0; BRIGHT 1;AT 0,0;"________________________________________________________________"
720 FOR f=3 TO 21: PRINT INK 6; PAPER 6; BRIGHT 1;AT f,0;"__": NEXT f
725 FOR f=3 TO 21: PRINT INK 6; PAPER 6; BRIGHT 1;AT f,30;"__": NEXT f
730 PRINT INK 1; PAPER 6;AT 0,5;" PONT";AT 0,21;" CSUCS"
735 PRINT INK 2; PAPER 6;AT 1,4;"0000000": PRINT INK 3; PAPER 6;AT 1,21;"0000000"
737 PRINT INK 0; PAPER 6;AT 1,13;"OKOSKA"
740 POKE 23675,88: POKE 236
76,255: PRINT 0; INK 1; PAPER 5;AT 1,2;" IDŐ": PRINT 0; INK 2; PAPER 4;AT 1,6;"________": PRINT 0; INK 2; PAPER 6;AT 1,14;"________": PRINT 0; INK 4; PAPER 6;AT 1,22;"________"742 GOSUB 1200
745 GOSUB 800: GOTO 890
750 REM BEVEZETŐ ZENE
760 PAUSE 1: LET x=.2: BEEP x,25: BEEP x,27: BEEP x,25: BEEP x,22: BEEP x,25: BEEP x+x,23
770 PAUSE 8: BEEP x,23: BEEP x,25: BEEP x,23: BEEP x,20: BEEP x,23: BEEP x+x,22
780 PAUSE 8: BEEP x,22: BEEP x,23: BEEP x,22: BEEP x,18: BEEP x,22: BEEP x+x,20
785 PAUSE 8: BEEP x,20: BEEP x,22: BEEP x,20: BEEP x,17: BEEP x,20: BEEP x+x,18
790 RETURN
800 REM UTKOZESEK MEGOLDASA
805 LET reg=INT (RND*35)+36
810 LET reg=reg*100
815 LET zar=INT (RND*35)+36: IF zar=47 THEN LET zar=48
820 LET zar=zar*100
830 LET r=INT (RND*2)+1
835 IF r=1 THEN LET o$="__": LET p$="__"
840 IF r=2 THEN LET o$="__": LET p$="__"
880 RETURN
890 LET dir=4900
960 GOTO 1815
985 IF za3=3 AND dir=4900 AND x2=14 AND y2=14 THEN GOTO 1350
1000 IF ATTR (x2,y2) <> 71 OR ATTR (x2+1,y2) <> 71 OR ATTR (x2+2,y2) <> 71 OR ATTR (x2,y2+1) <> 71 OR ATTR (x2+1,y2+1) <> 71 OR ATTR (x2+2,y2+1) <> 71 THEN LET a=ATTR (x2,y2): LET b=ATTR (x2+1,y2): LET c=ATTR (x2+2,y2): LET d=ATTR (x2,y2+1): LET e=ATTR (x2+1,y2+1): LET h=ATTR (x2+2,y2+1): LET x2=x1: LET y2=y1: GOTO 1091
1008 POKE 23675,p1: POKE 23676,p2: PRINT INK 5;AT x2,y2;a$;AT x2+1,y2;b$: PRINT INK 7;AT x2+2,y2;c$: IF INKEY$ <> "" OR IN 223 <> 0 THEN BEEP .005,10: BEEP .005,15: PRINT INK 7;AT x2+2,y2;d$
1014 LET x1=x2: LET y1=y2
1016 IF INKEY$ <> "" OR IN 223 <> 0 THEN GOTO 1018
1017 GOTO 1070
1018 PRINT PAPER 8;AT x2,y2;" ";AT x2+1,y2;" ";AT x2+2,y2;" "
1020 IF IN aa=ee THEN LET x2=x1 2: LET p1=176: LET p2=254: LET a$="__": LET b$="__": LET c$="__": LET d$="__": GOTO 1070
1030 IF IN bb=ff THEN LET x2=x1+2: LET p1=176: LET p2=254: LET a$="__": LET b$="__": LET c$="__": LET d$="__": GOTO 1070
1040 IF IN cc=gg THEN LET y2=y1 2: LET p1=88: LET p2=255: LET a$="__": LET b$="__": LET c$="__": LET d$="__": GOTO 1070
1050 IF IN dd=hh THEN LET y2=y1+2: LET p1=88: LET p2=255: LET a$="__": LET b$="__": LET c$="__": LET d$="__"
1070 LET ti=ti 1
1080 LET tim=tim+1: IF tim=50 THEN LET tim=0: GOSUB 1100
1085 GOTO 980
1090 REM AZ ELREJTETT JUTALMAK
1093 IF a=118 OR b=118 OR c=118 OR d=118 OR e=118 OR h=118 THEN GOTO 1800
1094 POKE 23675,p1: POKE 23676,p2: PRINT INK 5;AT x2,y2;a$;AT x2+1,y2;b$: PRINT INK 7;AT x2+2,y2;c$
1095 IF a=2 OR b=2 OR c=2 OR d=2 OR e=2 OR h=2 THEN GOTO 1300
1096 IF a=4 OR b=4 OR c=4 OR d=4 OR e=4 OR h=4 THEN GOTO 1400
1097 GOTO 1008
1100 REM AZ IDŐ MULASA
1110 LET t=t 1: PRINT 0; INK 6; PAPER 6; BRIGHT 1;AT 1,t;" "
1115 IF t>6 THEN RETURN
1117 PRINT INK 5;AT x2,y2;a$;AT x2+1,y2;b$: PRINT INK 7;AT x2+2,y2;c$
1120 PRINT 0; INK 1; PAPER 5; FLASH 1;AT 1,2;"IDŐ!"
1130 FOR f=1 TO 10: BEEP .05,10: BEEP .05,12: BEEP .05,6: BEEP .05,15: BEEP .05,5: NEXT f
1140 PRINT INK 2; PAPER 6;AT 11,11;"JATEK VEGE!": FOR f=1 TO 200: NEXT f: GOTO 500
1150 REM DUPLA KERET
1151 INK 6: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW 255,0: DRAW 0, 175
1152 PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW 253,0: DRAW 0, 173
1153 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW 247,0: DRAW 0, 167
1155 RETURN
1200 REM PONTOZAS
1210 LET n=3
1220 IF mar<10^n 1 THEN GOTO 1240
1230 LET n=n+1: GOTO 1220
1240 PRINT INK 2; PAPER 6;AT 1,10 n+1;mar
1245 IF hi<mar THEN LET hi=mar
1250 LET n=3
1255 IF hi<10^n 1 THEN GOTO 1265
1260 LET n=n+1: GOTO 1255
1265 PRINT INK 3; PAPER 6;AT 1,27 n+1;hi: RETURN
1300 REM JUTALOM UTAN JARO PONTOK
1305 BEEP .05,15: BEEP .05,17: BEEP .05,19
1310 PRINT INK 7; PAPER 0;AT 7,6;" ";AT 8,6;" ": LET reg=0: LET mar=mar+15250: GOSUB 1200: GOTO 1008
1350 REM A JATEK VEGE
1352 GOSUB 1500: LET mar=mar+(ti*50): GOSUB 1200
1355 POKE 23675,104: POKE 23676,251: PRINT INK 2; PAPER 0;AT 14,14;"_";AT 15,14;"_";AT 16,14;"_": BEEP .005,0: BEEP .005, 2: FOR f=1 TO 100: NEXT f: PRINT INK 2; PAPER 0;AT 14,15;"_";AT 15,15;"_";AT 16,15;"_": BEEP .005,0: BEEP .005, 2: FOR f=1 TO 100: NEXT f
1360 GOSUB 750: PAUSE 6: GOSUB 750: GOTO 500
1400 REM BONUSZ KIIRASA
1405 BEEP .05,30: BEEP .05,40: BEEP .05,35
1410 PRINT INK 7; PAPER 0;AT 17,6;" ": LET za3=za3+1: LET zar=0: GOSUB 1500: IF za3=3 THEN RANDOMIZE USR 64000: BORDER 0
1415 LET mar=mar+(ti*50)+2500: GOSUB 1200: IF za3=3 THEN GOTO 1008
1420 GOSUB 800: GOTO 1008
1500 REM JUTALOM A MEGTALALT CSODAVIRAGERT
1510 POKE 23675,104: POKE 23676,251: FOR g=1 TO 5: FOR f=1 TO 5: PRINT INK f; PAPER 6;AT 1,13;"______": BEEP .005,10: BEEP .005,12: BEEP .005,15: NEXT f: NEXT g: PRINT INK 5; PAPER 6;AT 1,11;"CSODAVIRAG": RETURN
1600 REM ELREJTETT TARGY
1610 PRINT 1; INK 6; PAPER 6; BRIGHT 1;AT 0,14;"____"
1620 IF reg=dir THEN POKE 23675,176: POKE 23676,254: PRINT INK 2; PAPER 0; BRIGHT 0;AT 7,6;o$;AT 8,6;p$
1630 IF zar=dir THEN POKE 23675,104: POKE 23676,251: PRINT INK 4; PAPER 0; BRIGHT 0;AT 17,6;"__"; BRIGHT 1;AT 18,6;"__"
1650 RETURN
1800 REM BEALLITASI RUTINOK
1810 BEEP .005,20: BEEP .00,30: BEEP .005,25: BEEP .005,35
1812 IF y2+1=29 THEN GOTO 1825
1814 IF y2=2 THEN GOTO 1835
1815 IF x2=4 AND y2=16 THEN LET dir=dir+600: LET x2=18: GOTO dir
1817 IF x2=4 AND y2=14 THEN LET dir=dir+600: LET x2=18: GOTO dir
1820 IF x2+2=20 AND y2=16 THEN LET dir=dir 600: LET x2=4: GOTO dir
1822 IF x2+2=20 AND y2=14 THEN LET dir=dir 600: LET x2=4: GOTO dir
1825 IF y2+1=29 AND x2=6 THEN LET dir=dir+100: LET y2=2: GOTO dir
1830 IF y2+1=29 AND x2=8 THEN LET dir=dir+100: LET y2=2: GOTO dir
1831 IF y2+1=29 AND x2=14 THEN LET dir=dir+100: LET y2=2: GOTO dir
1832 IF y2+1=29 AND x2=16 THEN LET dir=dir+100: LET y2=2: GOTO dir
1835 IF y2=2 AND x2=6 THEN LET dir=dir 100: LET y2=28: GOTO dir
1840 IF y2=2 AND x2=8 THEN LET dir=dir 100: LET y2=28: GOTO dir
1842 IF y2=2 AND x2=14 THEN LET dir=dir 100: LET y2=28: GOTO dir
1843 IF y2=2 AND x2=16 THEN LET dir=dir 100: LET y2=28: GOTO dir
1850 GOTO dir
1900 REM UZENET TORLES
1902 FOR f=3 TO 21: PRINT AT f,2;" ": NEXT f: RETURN
1907 GOTO 1008
1950 REM A RENGETEG FAI
1960 POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 9,28;"__";AT 10,28;"__";AT 18,28;"__";AT 19,28;"__": PRINT INK 6;AT 6,28;"__";AT 14,28;"__": PRINT INK 5;AT 7,28;"__";AT 15,28;"__";AT 8,28;"__";AT 16,28;"__"
1970 RETURN
1975 REM A RENGETEG GOMBAI
1980 POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 6,2;"__";AT 7,2;"__";AT 8,2;"__";AT 9,2;"__";AT 10,2;"__";AT 17,2;"__";AT 18,2;"__": PRINT INK 6;AT 14,2;"__": PRINT INK 2;AT 15,2;"__";AT 16,2;"__"
1985 RETURN
2500 REM PALYAK MEGHATAROZASA
2502 REM 3 PALYA
2503 PRINT AT 2,3;"3.PALYA"
2505 POKE 23675,8: POKE 23676,254
2506 PRINT INK 4; PAPER 0;AT 3,4;"______";AT 3,19;"___ ___";AT 4,3;"___";AT 4,18;"____________"
2507 PRINT 0; BRIGHT 1; INK 6; PAPER 0;AT 0,14;"____"
2508 PRINT INK 4; PAPER 0;AT 5,2;"______";AT 6,2;"______";AT 21,8;"___";AT 21,11;"___";AT 21,18;"___";AT 21,21;"___";AT 21,26;"___"
2510 PRINT INK 6; PAPER 0;AT 7,2;"___";AT 8,2;"___";AT 9,27;"___";AT 10,27;"___"; INK 3;AT 9,3;"_";AT 11,28;"_"
2512 POKE 23675,16: POKE 23676,252: PRINT INK 4; PAPER 0;AT 3,2;"__";AT 4,2;"_";AT 3,10;"____";AT 4,10;"____";AT 5,24;"__";AT 6,24;"__";AT 7,24;"______";AT 8,24;"______";AT 13,2;"__";AT 14,2;"__";AT 15,2;"__";AT 16,2;"__";AT 15,28;"_";AT 16,29;"_";AT 17,29;"_";AT 21,6;"__";AT 21,24;"__";AT 21,29;"_"
2514 PRINT INK 4; PAPER 0;AT 4,7;"_";AT 7,5;"___";AT 8,5;"_";AT 9,4;"__";AT 9,24;"___";AT 10,26;"_";AT 11,26;"__";AT 21,14;"____"
2516 PRINT INK 6; PAPER 0;AT 5,8;"__";AT 10,2;"__";AT 15,8;"____";AT 12,28;"__";AT 18,28;"__";AT 19,2;"____": PRINT INK 2;AT 6,8;"__";AT 7,8;"__";AT 13,28;"__";AT 14,28;"__": PRINT INK 1;AT 11,2;"__";AT 12,2;"__";AT 19,28;"__";AT 20,28;"__": PRINT INK 3;AT 16,8;"____";AT 17,8;"____": PRINT INK 5;AT 20,2;"____";AT 21,2;"____"
2518 PRINT INK 2; PAPER 0;AT 5,26;"____";AT 6,26;"____";AT 17,2;"____";AT 18,2;"____"
2520 POKE 23675,184: POKE 23676,252: PRINT INK 5; PAPER 0;AT 15,21;"_______";AT 16,20;"_ _";AT 17,22;"_____"
2522 PRINT INK 5; PAPER 7;AT 16,21;"_______"
2585 RETURN
2600 REM 1 PALYA
2601 PRINT AT 2,3;"1.PALYA"
2605 POKE 23675,8: POKE 23676,254: PRINT INK 4; PAPER 0;AT 3,3;"___";AT 3,19;"___";AT 4,2;"______";AT 4,18;"______ ___";AT 5,2;"______";AT 5,18;"____________"
2610 PRINT INK 4;AT 19,9;"___";AT 19,28;"__";AT 20,3;"___ ______";AT 20,27;"___";AT 21,2;"____________";AT 21,24;"______"
2612 PRINT INK 6; PAPER 0;AT 11,20;"___";AT 12,20;"___": PRINT INK 2;AT 13,21;"_"
2614 POKE 23675,16: POKE 23676,252: PRINT INK 2; PAPER 0;AT 4,8;"____";AT 5,8;"____": PRINT INK 4;AT 4,12;"__";AT 5,12;"__";AT 12,11;"_";AT 20,18;"____";AT 21,18;"____";AT 20,26;"_"
2616 PRINT INK 6; PAPER 0;AT 11,24;"______";AT 19,22;"__": PRINT INK 2;AT 12,24;"______";AT 13,24;"______";AT 20,22;"__";AT 21,22;"__"
2618 POKE 23675,184: POKE 23676,252: PRINT INK 5; PAPER 0;AT 11,3;"_______";AT 12,2;"_ _";AT 13,3;"_____"
2620 PRINT INK 5; PAPER 7;AT 12,3;"_______"
2630 RETURN
2700 REM 2 PALYA
2701 PRINT AT 2,3;"2.PALYA"
2702 POKE 23675,8: POKE 23676,254: PRINT INK 4; PAPER 0;AT 3,3;"___";AT 3,19;"___";AT 4,2;"______ ___";AT 4,18;"______"
2704 PRINT INK 4;AT 5,2;"____________";AT 5,18;"______";AT 11,21;"___";AT 12,20;"______";AT 13,20;"______";AT 19,2;"_";AT 20,2;"___";AT 21,2;"___";AT 21,11;"___"
2706 PRINT INK 1;AT 19,5;"______";AT 20,5;"______": PRINT INK 6;AT 21,6;"_ _"
2708 POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 12,19;"_";AT 4,24;"__";AT 5,24;"__";AT 12,8;"__";AT 13,8;"__": PRINT INK 2;AT 4,26;"____";AT 5,26;"____";AT 20,22;"________";AT 21,22;"________"
2710 PRINT INK 6;AT 11,2;"______";AT 11,26;"____";AT 19,18;"____": PRINT INK 1;AT 12,2;"______";AT 13,2;"______": PRINT INK 3;AT 12,26;"____";AT 13,26;"____";AT 20,18;"____";AT 21,18;"____"
2722 POKE 23675,184: POKE 23676,252: PRINT INK 5; PAPER 0;AT 11,11;"_______";AT 12,10;"_ _";AT 13,12;"_____"
2724 PRINT INK 5; PAPER 7;AT 12,11;"_______"
2730 RETURN
2800 REM 4 PALYA
2801 PRINT AT 2,3;"4.PALYA"
2802 POKE 23675,8: POKE 23676,254: PRINT INK 4; PAPER 0;AT 5,18;"____________";AT 4,19;"___ ______";AT 3,25;"___";AT 19,3;;"___";AT 20,2;"______";AT 21,2;"____________"
2804 PRINT INK 3;AT 11,11;"___";AT 12,11;"___": PRINT INK 4;AT 13,12;"_": PRINT INK 2;AT 19,18;"___";AT 20,18;"___": PRINT INK 1;AT 21,19;"_": PRINT INK 6;AT 19,25;"___";AT 20,25;"___": PRINT INK 5;AT 21,26;"_"
2806 POKE 23675,16: POKE 23676,252: PRINT INK 6;AT 3,2;"____________";AT 11,28;"__": PRINT INK 2;AT 4,2;"____________";AT 5,2;"____________": PRINT INK 1;AT 12,28;"__";AT 13,28;"__"
2810 PRINT INK 4;AT 13,10;"__";AT 11,2;"____ __";AT 12,2;"________";AT 13,6;"__";AT 11,18;"__";AT 12,18;"__ _ __";AT 13,20;"_ _____";AT 20,28;"__";AT 21,28;"__"
2812 PRINT INK 2;AT 11,22;"____";AT 12,22;"____";AT 20,21;"____";AT 21,21;"____"
2820 RETURN
2900 REM 5 PALYA
2901 PRINT AT 2,3;"5.PALYA"
2905 POKE 23675,8: POKE 23676,254: PRINT INK 4; PAPER 0;AT 3,3;"___ ___";AT 3,19;"___ ___";AT 4,2;"____________";AT 4,18;"____________";AT 5,2;"____________";AT 5,18;"____________"
2908 PRINT INK 4;AT 12,19;"___";AT 13,18;"______": PRINT INK 2;AT 8,11;"___";AT 9,11;"___": PRINT INK 5;AT 10,12;"_";AT 19,18;"___";AT 20,18;"___": PRINT INK 4;AT 21,19;"_"
2910 POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 6,10;"__";AT 7,10;"__";AT 6,12;"__";AT 9,10;"_";AT 7,12;"__";AT 11,10;"____";AT 11,18;"____________";AT 12,24;"__";AT 13,24;"__";AT 19,2;"___";AT 20,2;"___";AT 21,2;"___";AT 19,21;"_________";AT 20,21;"_________";AT 21,21;"_________"
2912 PRINT INK 6;AT 11,2;"________": PRINT INK 3;AT 12,2;"____";AT 13,2;"____": PRINT INK 2;AT 12,6;"____";AT 13,6;"____"
2914 PRINT INK 2;AT 12,10;"____";AT 13,10;"____";AT 12,26;"____";AT 13,26;"____"
2916 POKE 23675,184: POKE 23676,252: PRINT INK 5; PAPER 0;AT 19,6;"_______";AT 20,5;"_ _";AT 21,7;"_____"
2918 PRINT INK 5; PAPER 7;AT 20,6;"_______"
2930 RETURN
3000 REM 6 PALYA
3001 PRINT AT 2,3;"6.PALYA"
3010 POKE 23675,8: POKE 23676,254: PRINT INK 4;AT 5,23;"___";AT 6,22;"______";AT 17,8;"______";AT 21,11;"___";AT 21,22;"___"
3012 PRINT INK 1;AT 3,2;"___";AT 4,2;"___": PRINT INK 2;AT 3,5;"___";AT 4,5;"___": PRINT INK 6;AT 5,3;"_ _";AT 17,18;"___";AT 18,18;"___": PRINT INK 2;AT 19,19;"_"
3013 PRINT AT 2,3;"7.PALYA"
3014 POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 3,22;"______";AT 4,22;"______";AT 5,4;"__";AT 5,7;"_";AT 6,2;"__";AT 6,13;"_";AT 7,13;"_";AT 8,13;"_";AT 9,8;"__";AT 9,13;"_";AT 10,2;"__";AT 10,8;"__";AT 10,13;"_";AT 11,2;"__";AT 11,8;"__";AT 11,13;"_______";AT 12,3;"_";AT 12,8;"__";AT 12,13;"_______";AT 13,8;"__";AT 14,8;"__";AT 15,8;"__";AT 16,8;"__";AT 17,14;"____";AT 17,21;"_____";AT 19,20;"_";AT 20,20;"_";AT 21,4;"_______"
3016 PRINT INK 4;AT 21,18;"____";AT 20,18;"__";AT 21,25;"__": PRINT INK 6;AT 3,8;"______";AT 7,2;"__";AT 13,2;"__";AT 16,2;"__";AT 19,2;"__";AT 9,26;"__";AT 12,26;"__";AT 15,26;"__"
3018 PRINT INK 2;AT 4,8;"______";AT 5,8;"______";AT 14,2;"__";AT 15,2;"__";AT 16,26;"__";AT 17,26;"__": PRINT INK 4;AT 10,26;"__";AT 11,26;"__";AT 8,2;"__";AT 9,2;"__";AT 17,2;"__";AT 18,2;"__";AT 20,2;"__";AT 21,2;"__": PRINT INK 1;AT 13,26;"__";AT 14,26;"__"
3019 PRINT INK 2;AT 3,18;"____";AT 4,18;"____";AT 7,26;"____";AT 8,26;"____";AT 9,14;"____";AT 10,14;"____"
3020 POKE 23675,184: POKE 23676,252: PRINT INK 5; PAPER 0;AT 18,22;"_______";AT 19,21;"_ _";AT 20,23;"_____"
3022 PRINT INK 5; PAPER 7;AT 19,22;"_______"
3030 RETURN
3500 REM A TOK
3510 GOSUB 1900: GOSUB 2800: GOSUB 1975: POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 4,14;"____";AT 5,14;"____": PRINT INK 6;AT 20,14;"____";AT 21,14;"____"
3520 GOSUB 1600: GOTO 980
3600 REM VIRAG
3610 GOSUB 1900: GOSUB 2700: POKE 23675,16: POKE 23676,252: PRINT INK 6;AT 19,14;"____": PRINT INK 5;AT 20,14;"____";AT 21,14;"____"
3620 GOSUB 1600: GOTO 980
3700 REM 3 AS TAJ
3710 GOSUB 1900: GOSUB 2700: GOSUB 1950: POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 19,15;"__";AT 20,14;"____";AT 21,14;"____"
3720 GOSUB 1600: GOTO 980
3800 REM 4 ES TAJ
3810 GOSUB 1900: GOSUB 2500
3820 GOSUB 1600: PRINT 0; INK 6; PAPER 0; BRIGHT 1;AT 0,14;"____": GOTO 980
3900 REM 5 OS TAJ
3910 GOSUB 1900: GOSUB 2600: GOSUB 1975: POKE 23675,16: POKE 23676,252: PRINT INK 6;AT 19,14;"____": PRINT INK 3;AT 20,14;"____";AT 21,14;"____"
3920 GOSUB 1600: GOTO 980
4000 REM 6 OS TAJ
4010 GOSUB 1900: GOSUB 2900: GOSUB 1950: POKE 23675,16: POKE 23676,252: PRINT INK 6;AT 19,14;"____": PRINT INK 3;AT 20,14;"____";AT 21,14;"____"
4020 GOSUB 1600: GOTO 980
4100 REM 7 ES TAJ
4110 GOSUB 1900: GOSUB 2600: GOSUB 1975: POKE 23675,16: POKE 23676,252: PRINT INK 2;AT 20,14;"____";AT 21,14;"____"
4120 GOSUB 1600: GOTO 980
4200 REM 8 AS TAJ
4210 GOSUB 1900: GOSUB 2900: GOSUB 1950
4220 GOSUB 1600: GOTO 980
4300 REM 9 ES TAJ
4310 GOSUB 1900: GOSUB 2600: GOSUB 1975: POKE 23675,16: POKE 23676,252: PRINT INK 2;AT 4,14;"____";AT 5,14;"____"
4320 GOSUB 1600: GOTO 980
4400 REM 10 ES TAJ
4410 GOSUB 1900: GOSUB 2700: POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 4,14;"____";AT 5,14;"____"
4420 GOSUB 1600: GOTO 980
4500 REM 11 ES TAJ
4510 GOSUB 1900: GOSUB 2800: GOSUB 1950
4520 GOSUB 1600: GOTO 980
4600 REM 12 ES TAJ
4610 GOSUB 1900: GOSUB 3000: GOSUB 1600: GOTO 980
4700 REM 13 AS TAJ
4710 GOSUB 1900: GOSUB 3000
4720 GOSUB 1600: GOTO 980
4740 GOTO 980
4800 REM 14 ES TAJ
4810 GOSUB 1900: GOSUB 3000
4820 GOSUB 1600: GOTO 980
4900 REM 15 OS TAJ
4920 GOSUB 1900: GOSUB 2500: GOSUB 1600
4922 REM
4925 POKE 23675,96: POKE 23676,253: PRINT INK 2; PAPER 0;AT 9,13;"____";AT 10,12;"______";AT 11,12;"______";AT 12,12;"______": PRINT INK 6; PAPER 0;AT 13,13;"____";AT 14,13;"_";AT 14,16;"_";AT 15,13;"_";AT 15,16;"_";AT 16,13;"_";AT 16,16;"_"
4927 IF pit=0 THEN LET pit=1: POKE 23675,104: POKE 23676,251: PRINT INK 2; PAPER 0;AT 14,14;"__";AT 15,14;"__";AT 16,14;"__": FOR f=1 TO 20: NEXT f: PRINT INK 7; PAPER 0;AT 14,15;" ";AT 15,15;" ";AT 16,15;" ": BEEP .005, 2: BEEP .005,0: FOR f=1 TO 50: NEXT f: PRINT INK 7; PAPER 0;AT 14,14;" ";AT 15,14;" ";AT 16,14;" ": BEEP .005, 2: BEEP .005,0: FOR f=1 TO 30: NEXT f
4930 PRINT 0; BRIGHT 1; INK 6; PAPER 0;AT 0,14;"____"
4935 GOTO 980
5000 REM 16 OS TAJ
5010 GOSUB 1900: GOSUB 2800: GOSUB 1975: POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 20,14;"____";AT 21,14;"____"
5020 GOSUB 1600: GOTO 980
5100 REM 17 ES TAJ
5110 GOSUB 1900: GOSUB 2600: POKE 23675,16: POKE 23676,252: PRINT INK 6;AT 3,14;"____": PRINT INK 3;AT 4,14;"____";AT 5,14;"____"
5120 GOSUB 1600: GOTO 980
5200 REM 18 AS TAJ
5210 GOSUB 1900: GOSUB 2700: GOSUB 1950
5220 GOSUB 1600: GOTO 980
5240 GOTO 980
5300 REM 19 ES TAJ
5310 GOSUB 1900: GOSUB 2700: GOSUB 1950: GOSUB 1975
5320 GOSUB 1600: GOTO 980
5400 REM 20 AS TAJ
5410 GOSUB 1900: GOSUB 2800: GOSUB 1975
5420 GOSUB 1600: GOTO 980
5500 REM 21 ES TAJ
5515 GOSUB 1900: GOSUB 2600: POKE 23675,16: POKE 23676,252: PRINT INK 6;AT 3,14;"____": PRINT INK 5;AT 4,14;"____";AT 5,14;"____"
5520 GOSUB 1600: GOTO 980
5600 REM 22 ES TAJ
5610 GOSUB 1900: GOSUB 2900: POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 7,28;"__";AT 8,28;"__";AT 9,28;"__";AT 10,28;"__";AT 14,28;"__";AT 15,28;"__";AT 17,28;"__";AT 18,28;"__"
5620 GOSUB 1600: GOTO 980
5700 REM 23 AS TAJ
5710 GOSUB 1900: GOSUB 2500:
5720 GOSUB 1600: PRINT 0; BRIGHT 1; INK 6; PAPER 0;AT 0,14;"____": GOTO 980
5730 GOTO 980
5800 REM 24 ES TAJ
5810 GOSUB 1900: GOSUB 2800: GOSUB 1975: GOSUB 1950
5820 GOSUB 1600: GOTO 980
5900 REM 25 OS TAJ
5910 GOSUB 1900: GOSUB 2600: GOSUB 1975
5920 GOSUB 1600: GOTO 980
6000 REM 26 OS TAJ
6010 GOSUB 1900: GOSUB 2900: POKE 23675,16: POKE 23676,252: PRINT INK 6;AT 3,14;"____": PRINT INK 3;AT 4,14;"____";AT 5,14;"____"
6020 GOSUB 1600: GOTO 980
6100 REM 27 ES TAJ
6110 GOSUB 1900: GOSUB 2800: POKE 23675,16: POKE 23676,252: PRINT INK 6;AT 19,14;"____": PRINT INK 5;AT 20,14;"____";AT 21,14;"____"
6120 GOSUB 1600: GOSUB 980
6200 REM 28 AS TAJ
6210 GOSUB 1900: GOSUB 2700:
6220 GOSUB 1600: GOTO 980
6300 REM 29 ES TAJ
6310 GOSUB 1900: GOSUB 2900
6320 GOSUB 1600: GOTO 980
6400 REM 30 AS TAJ
6410 GOSUB 1900: GOSUB 2600: GOSUB 1950
6420 GOSUB 1600: GOTO 980
6500 REM 31 ES TAJ
6510 GOSUB 1900: GOSUB 2800: GOSUB 1975: POKE 23675,16: POKE 23676,252: PRINT INK 2;AT 4,14;"____";AT 5,14;"____"
6520 GOSUB 1600: GOTO 980
6600 REM 32 ES TAJ
6610 GOSUB 1900: GOSUB 2700: POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 4,14;"____";AT 5,14;"____";AT 20,14;"____";AT 21,14;"____"
6620 GOSUB 1600: GOTO 980
6700 REM 33 AS TAJ
6710 GOSUB 1900: GOSUB 2600: POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 4,14;"____";AT 5,14;"____"
6720 GOSUB 1600: GOTO 980
6800 REM 34 ES TAJ
6810 GOSUB 1900: GOSUB 2900: POKE 23675,16: POKE 23676,252: PRINT INK 6;AT 3,14;"____": PRINT INK 4;AT 4,14;"____";AT 5,14;"____"
6820 GOSUB 1600: GOTO 980
6900 REM 35 OS TAJ
6910 GOSUB 1900: GOSUB 2700: POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 4,14;"____";AT 5,14;"____"
6920 GOSUB 1600: GOTO 980
7000 REM 36 OS TAJ
7010 GOSUB 1900: GOSUB 2800: POKE 23675,16: POKE 23676,252: PRINT INK 4;AT 4,14;"____";AT 5,14;"____": GOSUB 1950
7020 GOSUB 1600: GOTO 980
7030 SAVE "TORPE": SAVE "TKOD"CODE 60000,1535
3D TIC-TAC-TOE JÁTÉK
Leírás:
A játékban a saját kockáinkat dimenziósan - hármat - kell elhelyeznünk pályán, javítási lehetőség nincs, akinek elsőre sikerül, az győz.

0 REM 3D TIC TAC TOE JATEK JATEKGYAROS 2003'
1 OUT A,1: OUT A,6: OUT A,2: IF INKEY$<>"I" THEN GO TO 1
2 RETURN
11 LET S1=B: RETURN
12 LET I1=B: RETURN
13 LET J1=B: RETURN
14 LET I1=B: RETURN
15 LET J1=B: RETURN
16 LET S1=S: LET I1=B: LET J1=I1: RETURN
17 LET I1=B1 B: RETURN
18 LET J1=B1 B: RETURN
19 LET S1=S: LET I1=B: LET J1=B1 B: RETURN
20 LET I1=B: LET J1=B1 B: RETURN
21 LET I1=B1 B: LET J1=B: RETURN
22 LET I1=B1 B: LET J1=I1: RETURN
23 LET I1=B: LET J1=I1: RETURN
30 FOR B=1 TO 4: LET S1=S: LET I1=I: LET J1=J: IF A>=4 THEN LET S1=B
35 GO SUB 10+A: IF CD=1 THEN LET B(S1,I1,J1)=B(S1,I1,J1)+R: GO TO 45
40 LET F=F*A(S1,I1,J1): IF V=0 THEN LET S(B)=S1: LET I(B)=I1: LET J(B)=J1
45 NEXT B: IF CD=0 THEN LET CD=1: GO SUB 500: GO TO 30
47 LET CD=0: RETURN
50 LET H=0: FOR S=1 TO 4: FOR I=1 TO 4: FOR J=1 TO 4
51 IF A(S,I,J)>1 OR B(S,I,J)<H THEN GO TO 55
53 IF B(S,I,J)>H THEN LET H=B(S,I,J): LET S1=S: LET I1=I: LET J1=J: GO TO 55
54 IF RND>.5 THEN LET H=B(S,I,J): LET S1=S: LET I1=I: LET J1=J
55 NEXT J: NEXT I: NEXT S: LET S=S1: LET J=J1: LET I=I1: RETURN
60 FOR A=1 TO 3: GO SUB 30: NEXT A
62 IF S<>I AND S<>J AND I<>J THEN GO TO 70
64 IF S=I THEN LET A=4: GO SUB 30
66 IF S=J THEN LET A=5: GO SUB 30
68 IF I=J THEN LET A=6: GO SUB 30
70 IF S<>5 I AND S<>5 J AND I<>5 J THEN GO TO 84
72 IF S=5 I THEN LET A=7: GO SUB 30
74 IF S=5 J THEN LET A=8: GO SUB 30
76 IF I=5 J THEN LET A=9: GO SUB 30
78 IF S=I AND S=5 J THEN LET A=10: GO TO 30
80 IF S=J AND S=5 I THEN LET A=11: GO SUB 30
82 IF S=5 J AND I=J THEN LET A=12: GO TO 30
84 IF S=I AND I=J THEN LET A=13: GO SUB 30
86 RETURN
100 LET B1=5: LET CD=0: LET R=0: LET M=0: DIM S(4): DIM I(4): DIM J(4): DIM A(4,4,4): DIM B(4,4,4): GO SUB 800: GO TO 710
200 PAPER 7: INK 0: LET K=0: LET X1=1: PRINT AT 17,2;"OSZLOP.. FUGG.. VISSZ.. "
205 GO SUB 290+(10*X1)
207 IF INKEY$="" THEN GO TO 207
210 IF INKEY$="K" THEN LET Q1=1: GO TO 235
215 IF INKEY$="I" THEN GO TO 750
220 LET K=CODE (INKEY$): IF K=48 AND I>0 THEN LET K=0: BEEP .3,0: GO SUB 410: GO SUB 420: GO SUB 400: GO TO 200
226 IF K<49 OR K>52 THEN GO TO 205
230 LET K=K 48: GO SUB 390+10*X1: BEEP .5,6: LET X1=X1+1: IF X1<4 THEN GO TO 205
232 IF A(S,I,J)>1 THEN GO TO 360
235 RETURN
300 REM KIRAJZOLOM A 4 OSZLOPOT
301 PAUSE 18: PRINT AT 1,2;"1 2 3 4": RETURN
310 LET P=0: FOR X=1 TO 4: PRINT AT 4+P,1+(8*(S 1));X: LET P=P+2: NEXT X: RETURN
320 FOR X=1 TO 4: PRINT AT 11+X,1+X+(8*(S 1));X: NEXT X: RETURN
360 PRINT AT 21,5; INK 2; PAPER 7;"AZ A HELY MAR FOGLALT!!": BEEP 1, 3: PRINT AT 21,0;" ": GO TO 200
400 PRINT AT 17,10;K: LET S=K: PRINT AT 1,2;" ": RETURN
410 PRINT AT 17,18;K: LET I=K: LET P=0: FOR X=1 TO 4: PRINT AT 4+P,1+(8*(S 1));" ": LET P=P+2: NEXT X: RETURN
420 PRINT AT 17,29;K: LET J=K: FOR X=1 TO 4: PRINT AT 11+X,1+X+(8*(S 1));" ": NEXT X: RETURN
500 IF F=16 THEN GO SUB 580: LET V=1: GO TO 570
510 IF F=81 THEN LET V=2: GO TO 570
520 IF F=6 AND A(S,I,J)=2 THEN LET R= 10: GO TO 570
530 IF F/A(S,I,J)=6 THEN LET R=0: GO TO 570
550 FOR U=1 TO 9: IF F=C(U) THEN LET R=D(U): GO TO 570
560 NEXT U
570 IF V<>0 THEN GO TO 1000
575 LET F=1: RETURN
580 LET I2=I+I+2+(J 1): LET J2=J+1+(8*(S 1)): LET W=I+J: IF W/2=INT (W/2) THEN GO TO 660
600 INK C6: PAPER C5: PRINT AT I2,J2;"i": IF I=4 THEN PAPER 7
605 PRINT AT I2+1,J2;"·": PAPER C5
610 IF I=1 THEN PAPER 7: PRINT AT I2 1,J2;"÷¸o": GO TO 630
620 PRINT AT I2 1,J2;"y"
630 PAPER C: IF J<>4 THEN GO TO 650
640 PRINT AT I2,J2+1;"Âi": PRINT AT I2+1,J2+1;"޸"
650 RETURN
660 PAPER 5
661 INK C5: PAPER C6: PRINT AT I2,J2;" ": IF I=4 THEN INK 7
665 PRINT AT I2+1,J2;"y": INK C5
670 IF I=1 THEN INK 7: PRINT AT I2 1,J2;"uŘř": GO TO 690
680 PRINT AT I2 1,J2;"·"
690 INK C: IF J=4 THEN PRINT AT I2,J2+1;"A ": PRINT AT I2+1,J2+1;"3Ř"
700 RETURN
710 IF RND>.5 THEN GO TO 750
720 PRINT AT 19,2; INK 2; PAPER 7;X$;" GONDOLKOZZ,ES LEPJ... ": GO SUB 200: IF Q1=1 THEN GO TO 1200
740 LET V=0: LET A(S,I,J)=3: LET C5=8: LET C6=C3: GO SUB 580: GO SUB 60: LET M=M+1: IF M>=64 OR V<>0 THEN GO TO 1000
750 PRINT AT 17,2; INK 1; PAPER 7;"OSZLOP... FUGG... VISSZ... ";AT 19,2;Y$;" LEPI A FENTIEKET... ": LET C5=8: LET C6=C4: IF T=2 THEN GO SUB 50: INK 0: PAPER 7: PRINT AT 17,10;S: BEEP .5,8: PRINT AT 17,18;I: BEEP .5,8: PRINT AT 17,29;J: BEEP .5,8: GO TO 770
760 GO SUB 200: IF Q1=1 THEN GO TO 1200
770 LET V=0: LET A(S,I,J)=2: GO SUB 60: GO SUB 580: LET M=M+1: IF M>=64 OR V<>0 THEN GO TO 1000
780 GO TO 720
800 LET Q1=0: LET F=0: LET H=0: PAPER 7: BORDER 7: INK 0: CLS : LET D=1
910 RESTORE 1690
911 FOR S=1 TO 4: FOR X=1 TO 4: READ I,J: LET B(S,I,J)=10: NEXT X: NEXT S
920 CLS : FOR S=1 TO 4: FOR I=1 TO 4: FOR J=1 TO 4
930 LET A(S,I,J)=1: LET C5=C1: LET C6=C2: IF (I+J)/2=INT ((I+J)/2) THEN LET C6=C1: LET C5=C2
935 GO SUB 580: NEXT J: NEXT I: NEXT S
960 RETURN
1000 INK 0: PAPER 7: IF M>=64 THEN PRINT AT 17,0;" EZ MOST DONTETLEN ": GO TO 1040
1005 INK 0: PAPER 7: IF M>=64 THEN PRINT AT 17,0;" EZ MOST DONTETLEN ": GO TO 1040
1010 IF V=2 THEN PRINT AT 16,0;X$;" GYOZOTT ";M;" LEPESBEN": GO TO 1030
1020 PRINT AT 16,0;Y$;" GYOZOTT ";M;" LEPESBEN"
1030 FOR X=1 TO 4: PRINT AT 16+X,0; INK 0; PAPER 7;"OSZLOP...";S(X);"VISSZ...";I(X);" FUGG...";J(X);" ": BEEP .5,X: NEXT X: GO SUB 1100
1040 PRINT AT 21,0; INK 7; PAPER 2;"NYOMD AZ 'I' T,HA FOLYTATOD ": IF INKEY$<>"I" THEN GO TO 1040
1050 GO TO 1200
1100 LET V1=0: FOR X=1 TO 6: IF M>W(X) OR V1=1 THEN GO TO 1150
1110 FOR Y=6 TO X+1 STEP 1: LET W(Y)=W(Y 1): LET W$(Y)=W$(Y 1): NEXT Y
1120 LET W(X)=M: IF V=2 THEN LET W$(X)=X$+D$(LEN X$+1 TO )
1130 IF V=1 THEN LET W$(X)=Y$+D$(LEN Y$+1 TO )
1140 LET V1=1
1150 NEXT X: RETURN
1200 CLS : PAPER 7: INK 0: PRINT AT 2,4; INK 2;"A LEGJOBB HAT JATEKOS:"
1210 FOR X=1 TO 6: PRINT AT 3+(2*X),2;X;"...";W$(X);".......";W(X);"...": PRINT AT 3+(2*X),26;"LEPES": NEXT X
1230 PRINT AT 18,1;"NYOMD AZ 'I' T A FOLYTATASHOZ"
1235 POKE 23658,8
1240 LET A=254: GO SUB 1
1242 RESTORE 4000
1245 BORDER 4: PAPER 6: INK 0: CLS
1246 PRINT AT 1,5; INK 3;"3D "; INK 1;"TIC"; INK 4;" TAC"; INK 3;" TOE JATEK"; INK 2;AT 3,7;"JATEKGYAROS 2003'"
1248 PRINT INK 1;AT 4,7;" "
1250 RESTORE 1260
1252 FOR N=1 TO 13: READ C$
1253 PRINT AT 4+N,(16 LEN C$/2);
1254 INK 2: FOR I=1 TO LEN C$
1255 PRINT C$(I);: BEEP .005, 05
1256 PAUSE 2: INK I/10+2: NEXT I: NEXT N
1260 DATA "AZ ALAPJATEK AZ EGYSZERU 'OXO'"
1261 DATA "******************************"
1262 DATA "ITT 3D BEN VAN LEHETOSEGED "
1263 DATA "******************************"
1264 DATA "SAJAT KOCKAINKAT DIMENZIOSAN "
1265 DATA "******************************"
1266 DATA "ELHELYEZNI,SORBAN MINDIG AZ "
1267 DATA "******************************"
1268 DATA "OSZLOP,FUGG,VISSZ POZICIOT "
1269 DATA "******************************"
1270 DATA "KELL MEGADNI,GONDOSAN,MERT ITT"
1271 DATA "******************************"
1272 DATA "JAVITASI LEHETOSEG NINCS !! "
1273 DATA "******************************"
1275 GO SUB 3000
1280 LET A$="HA ELOLVASTAD NYOMD AZ ENTER T"
1282 FOR Q=1 TO 30
1284 PRINT AT 21,0+Q;A$(Q);
1286 BEEP .01, Q: NEXT Q
1287 PRINT 0;"'K'BETUVEL KILEPHETSZ A JATEKBOL"
1288 IF INKEY$="" THEN GO TO 1288
1300 BORDER 4: PAPER 6: INK 0: CLS : PRINT AT 7,5;"VALASZD KI AZ ELLENFELET :": PRINT INK 1;AT 10,5;"1....KET JATEKOS";AT 12,5;"2....SPECTRUM SZAMITOGEP"
1305 LET T=CODE (INKEY$) 48: IF T<1 OR T>2 THEN GO TO 1305
1310 BEEP 1, 15: PRINT AT 18,6;"IRD BE A NEVED ": INPUT X$: IF T=2 THEN LET Y$="SPECTRUM ": GO TO 1320
1315 PRINT AT 15,6;"MASIK JATEKOS?": INPUT Y$
1320 IF X$="" THEN LET X$="CSABA"
1321 IF LEN X$>10 OR LEN Y$>10 THEN PRINT AT 18,4; INK 2;" MAXIMUM 10 BETU !";AT 15,4;" ISMETELD ! ": GO TO 1310
1322 PRINT AT 15,2;" "
1325 BEEP .1, 12: PRINT AT 18,2;"NYOMD AZ 'I' T AZ INDULASHOZ": LET C=7: LET C1=6: LET C2=4: LET C3=2: LET C4=1: GO SUB 1: IF INKEY$="" THEN GO TO 1325
1330 IF INKEY$="I" THEN RESTORE : GO TO 100
1340 GO TO 1325
1690 DATA 1,1,1,4,4,1,4,4,2,2,2,3,3,2,3,3,2,2,2,3,3,2,3,3,1,1,1,4,4,1,4,4
2005 RESTORE 4000
2010 DIM D(9): DIM C(9): DIM W(6): DIM W$(6,10): LET D$="..........."
2015 INK 0: PAPER 7: BRIGHT 0: GO SUB 2100
2020 FOR i=1 TO 9: READ a: LET d(i)=a: NEXT i
2022 FOR i=1 TO 9: READ a: LET c(i)=a: NEXT i
2024 FOR i=1 TO 6: LET W(i)=99: NEXT i
2026 FOR i=1 TO 6: LET w$(i)="CSABA": NEXT i
2028 GO SUB 2100: CLS : PRINT AT 1,3; FLASH 1;"NYOMJ I T A FOLYTATASHOZ": POKE 23658,8: GO TO 1240
2100 FOR x=0 TO 3: PRINT AT x,0;" ": NEXT x: RETURN
3000 INK 2: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW 255,0: DRAW 0, 175: PLOT 2,2: DRAW 251,0: DRAW 0,171: DRAW 251,0: DRAW 0, 171
3010 RETURN
4000 DATA 10,14,98,100,900,1000, 14, 98, 100
4010 DATA 3,2,9,4,27,8,6,18,12
ARANYPINCE 128K
Leírás:
Az ismerős cofis kislányt kell az emeleteken, a mozgó járdákon átvezetve a legalul levő befalazott kincshez vinni, megszámolva az útközben talált pénzes táskákban lévő aranytallérokat. Ezeknek a száma adja meg a befalazott kincs kódszámát, és ha a szám helyes, a kőfal leomlik, és a megtalált kincs a miénk.

1 DIM z$(10,7)
2 LET z$(1,)="{L9880}": LET z$(2,)="{L9881}": LET z$(3,)="{L9883}"
3 LET z$(4,)="{L9884}": LET z$(5,)="{L9886}": LET z$(6,)="{L9887}": LET z$(7,)="{L9882}"
4 LET z$(8,)="{L9885}"
5 GO SUB 9890: RANDOMIZE 9900 AND USR ua
10 REM ***********************
11 ***** ARANY PINCE *****
12 *** NYITRAISOFT 2003***
13 ***********************
14 DEF FN u(l,x,y,a)=9905 AND USR ua
20 REM **********************
21 ****** JATEKGYAROS ***
22 ****** BUDAPEST *****
23 **********************
30 BORDER 0: PAPER 0: INK 7: BRIGHT 1: CLS
35 GO SUB 8720
40 GO SUB 910
50 GO SUB 1010: GO SUB 820
60 CLS : LET pont=0: LET elet=3
70 CLS : FOR n=0 TO 31: PRINT AT 0,n; PAPER 7; INK 1; BRIGHT 1;"·";AT 21,n;"·": NEXT n
80 LET u$=" aa ": LET t$=u$
90 PRINT 4; INK 6;AT 160,60;"{L9884 ARANY PINCE"
100 FOR n=6 TO 16 STEP 5: PRINT AT n,0; INK 2; PAPER 7; BRIGHT 1;"································": NEXT n
110 FOR n=6 TO 8: PRINT AT n,3; INK 6; INK 7; PAPER 1;"¸";AT n,28;"¸";AT n+5,0;"¸";AT n+5,31;"¸";AT n+10,4;"¸";AT n+10,27;"¸": NEXT n
120
PRINT AT 18,14; INK 4;"···";AT 19,14;"· ·";AT 20,14;"· ·";AT 20,15; INK 6; FLASH 1;"ř"130 FOR n=5 TO 20 STEP 5
140 LET a=INT (RND*30)+1
150 IF ATTR (n+1,a)=79 OR ATTR (n 2,a)=79 OR ATTR (n,a)=68 THEN GO TO 140
160 PRINT AT n,a; FLASH 1; PAPER 5; INK 1;"?": NEXT n
170 LET lepes=0: LET o=0: LET t=0
180 LET x=10: LET y=15
190 REM *********************** **** AZ ISMEROS ***** **** COFIS KISLANY***** ***********************
200 PRINT AT x 1,y; INK 5;"o";AT x,y; INK 4;"u"
210 PRINT AT x 1,y; INK 6;"y";AT x,y; INK 2;"A"
220 GO SUB 380
230 IF SCREEN$ (x+1,y)=" " THEN GO SUB 560
240 IF ATTR (x+1,y)=79 THEN GO SUB 420
250 IF ATTR (x 2,y)=79 THEN GO SUB 490
260 IF INKEY$="" THEN GO TO 200
270 BEEP 0.002,20
280 LET lepes=lepes+1
290 PRINT AT x,y;" ";AT x 1,y;" "
300 LET y=y+(INKEY$="8" AND y<31) (INKEY$="5" AND y>0)
310 IF ATTR (x,y)=233 THEN GO SUB 620
320 IF o<>4 THEN IF ATTR (x,y)=68 THEN GO SUB 560
330 IF o=4 THEN IF x=20 AND y=14 OR x=20 AND y=16 THEN GO SUB 700
340 IF lepes=130 THEN GO SUB 560
350 IF ATTR (x,y)=198 THEN GO SUB 760
360 GO TO 200
370 REM *********************** *** MOZGAS A JARDAN *** ***********************
380 BEEP .001,20: LET u$=u$(2 TO )+u$(1): LET t$=t$(5)+t$( TO 4): PRINT INK 6;AT 11,22;u$;AT 11,5;u$;AT 16,21;t$;AT 16,6;t$;AT 6,13;t$
390 PRINT AT 0,0; PAPER 1; INK 7;" PONT=";pont;AT 0,13;" ELET=";elet;AT 0,23;"LEPES=";lepes
400 RETURN
410 REM *********************** *****LE A LETRAN ****** ***********************
420 IF INKEY$="6" THEN GO TO 440
430 RETURN
440 FOR n=0 TO 4: GO SUB 380: PRINT AT x,y;" ";AT x 1,y;" ": LET x=x+1: BEEP .009,n+2: PRINT AT x,y;"u";AT x 1,y;"o"
450 IF n>1 THEN PRINT AT x 2,y; PAPER 1; INK 7;"¸"
460 NEXT n
470 RETURN
480 REM *********************** ****FEL A LETRAN ****** ***********************
490 IF INKEY$="7" THEN GO TO 510
500 RETURN
510 FOR n=0 TO 4: GO SUB 380: PRINT AT x,y;" ";AT x 1,y;" ": LET x=x 1: BEEP .009,n+2: PRINT AT x,y;"u";AT x 1,y;"o"
520 IF n>1 THEN PRINT AT x+1,y; PAPER 1; INK 7;"¸"
530 NEXT n
540 RETURN
540 REM ***********************
**** LEZUHANTUNK ****** ***********************
560 IF SCREEN$ (x+1,y)="" THEN GO TO 590
570 PRINT AT x,y;" ";AT x 1,y;" ": GO SUB 380: LET x=x+1: BEEP 0.01,x+5: PRINT AT x,y;"u";AT x 1,y;"o"
580 GO TO 560
590 PRINT AT x,y;"Ř";AT x 1,y;"u": FOR n=0 TO 20: BEEP 0.01,n+5: NEXT n: LET elet=elet 1: IF elet= 1 THEN GO SUB 650
600 FOR n=0 TO 200: NEXT n: GO TO 70
610 REM *********************** **SZEDJUK A PENZT ***** ***********************
620 LET b=INT (RND*9)+1: FOR n=0 TO 20: BEEP 0.002,n+3*2: NEXT n: PRINT AT x,y;b: LET pont=pont+50: LET o=o+1: LET t=t+b: FOR w=0 TO 100: NEXT w
630 RETURN
640 REM *********************** **A JATEK VEGETERT***** ***********************
650 FOR n=30 TO 5 STEP 1: BEEP 0.01,n+9: NEXT n: PRINT 0; FLASH 1; INK 2;"A JATEK VEGETERT! U=ujbol V=vege"; FLASH 0
660 IF INKEY$="u" OR INKEY$="U" THEN CLS : GO TO 60
670 IF INKEY$="v" OR INKEY$="V" THEN CLS : STOP
680 REM *********************** *** A TALALT PENZEN *** *** ARANYAT VEHETUNK ** ***********************
690 GO TO 660
700 PRINT AT 19,2;"AZ OSSZEG:"
710 INPUT a
720 IF a=t THEN LET o=5: PRINT AT 19,2;" ": LET pont=pont+100: FOR n=0 TO 10: BEEP .09,n+10: NEXT n: GO TO 240
730 IF a<>t THEN GO SUB 560
740 RETURN
750 REM *********************** *** JUTALOM KIIRASA *** ***********************
760 PRINT AT x,y;" ": FOR y=1 TO 5: FOR x=1 TO 10: BEEP .05,x*2: NEXT x: NEXT y
770 FOR w=2 TO 300 STEP 2: BEEP .01,w/8: PRINT AT 0,6;pont+w: NEXT w
780 LET pont=pont+w
790 PRINT 4; INK 6;AT 160,20;"{L9884 UGYES VOLTAL, ";AT 150,20;"MEGPROBALHATOD UJRA !"
795 GO SUB 8535
800 FOR n=0 TO 400: NEXT n: GO TO 70
810 RETURN
820 REM *********************** * A JATEK MAGYARAZATA** ***********************
822 CLS
825 GO SUB 8800
826 PRINT 4;"{L9880"
830 PRINT 4; INK 6;AT 170,30;"{L9884 |ARANY PINCE|"
835 PRINT 4; INK 2;AT 160,170;"{L9881 IRANYITAS:";AT 140,180;"7=FEL";AT 130,180;"6=LE";AT 120,180;"5=BALRA";AT 110,180;"8=JOBBRA"
840 PRINT 4; INK 4;AT 150,10;"{L9883A SZOKE COFIS KISLANYT VEZETVE";AT 140,10;"KELL A PENZESTASKAKAT OSSZE ";AT 130,10;"SZEDNI, MAJD A MOZGO JARDAKON";AT 120,10;"KELL ATKELNI,MINDEN LEESES EGY";AT 110,10;"EGY ELET ELVESZTESET JELENTI.";AT 100,10;"SAJNOS, CSAK HAROM ELETED VAN,"
850 PRINT 4; INK 4;AT 90,10;"ES ARRA IS UGYELNED KELL, HOGY";AT 80,10;"LEPESEID SZAMA NEM LEHET TOBB";AT 70,10;"130 NAL,MERT AKKOR IS VESZTESZ."
860 PRINT 4; INK 4;AT 60,10;"A JATEK KOZBEN FEJBEN KELL TAR";AT 50,10;"TANOD A PENZESTASKAKBAN LEVO,";AT 40,10;"MEGTALALT PENZ OSSZEGEK SZAMAT.";AT 30,10;"A JATEK VEGEN IGY VASAROLHATSZ";AT 20,10;"AZ OSSZEADOTT PENZEN ARANYAT."
865 GO SUB 8580
870 PRINT 4; INK 5;AT 50,200;"NYOMD";AT 40,200;"LE AZ";AT 30,200;"ENTERT!!"
880 IF INKEY$="" THEN GO TO 880
890 RETURN
900 REM UDG K
910 FOR w=USR "a" TO USR "k"+7: READ x: POKE w,x: NEXT w
920 DATA 255,66,36,24,24,36,66,255
930 DATA 129,255,129,129,129,255,129,129
940 DATA 112,154,159,61,85,125,76,56,8,62,93,157,21,116,119,7
950 DATA 0,127,127,127,0,247,247,247
960 DATA 24,24,24,24,255,255,24,24,24,24,24,24,60,126,255,255
970 DATA 18,149,66,153,60,60,60,24
980 DATA 60,126,219,255,189,195,255,255
990 DATA 14,89,249,188,170,190,50,28,16,124,186,185,168,46,238,224
1000 RETURN
1010 REM *********************** **** A VAR LATKEPE **** ***********************
1020 BRIGHT 1: PAPER 0: INK 5: BORDER 0: CLS
1021 LOAD ! "VAR"CODE 16384,6912
1065 GO SUB 8525
1070 PRINT 0; PAPER 0; INK 2;AT 0,0;" Nyomj egy gombot ! "
1080 PAUSE 0
1090 RETURN
8500 REM zene128K
8505 LET x$="T170O3N1gbD3C"
8510 LET y$="T170O5N1gbD3C"
8520 PLAY x$,y$:RETURN
8525 REM zene128K
8530 FOR n=1 TO 4:PLAY "T240UX1000W0O7N2cfgEA": NEXT n: RETURN
8535 REM zene128K
8540 LET p$="T240O3cN2ccN3eN4ce9g"
8545 LET q$="T240O6cN2ccN3eN4ce9g"
8560 PLAY p$,q$:RETURN
8565 REM zene128K
8570 PLAY "T240UX500W7N2CDECDECDECDECDECDECDECDECDECDE9C"
8572 RETURN
8575 REM zene128K gyozelmi tus
8580 FOR n=1 TO 2
8590 LET x$="T240O2bb9E2bEb3E9B"
8595 LET y$="T240O4bb9E2bEb3E9B"
8605 PLAY x$,y$
8610 NEXT n: RETURN
8615 REM zene128K
8620 LET x$="T95UX6000W7O1BBGGFFEEDDCN1_9C"
8625 LET y$="T95UX6000W7O1BBGGFFEEDDCN1_9C"
8635 PLAY x$,y$:RETURN
8640 REM zene128K
8645 LET x$="T240O2N1_9EO3N1_4D$DDDN1_EGN1_6$GGGCGD$DCO1V14CV13CV12CV10CV9CV8CV7CV6CV5CV4CV3CV2CV1N1_9C"
8650 LET y$="T240O2N1_9EO3N1_4D$DDDN1_EGN1_6$GGGCGD$DCO1V14CV13CV12CV11CV10CV8CV7CV6CV5CV4CV3CV2CV1N1_9C"
8660 PLAY x$,y$:RETURN
BETŰKERESŐ JÁTÉK ISKOLÁSOKNAK
Leírás:
A program kikeresi a memóriából az ott tárolt 6-12 betűs szót, azt alul megjeleníti, majd fenn 42 betű között azt elrejti. A kurzorral rámutatva kell kiválasztani a megfelelő betűt, alul mindig látszik az aktuális állás, a "B" befejezem szára mutatva azután ellenőrzi, hogy pontosan dolgoztunk-e. A megfejtett szó után másik fokozatot választhatunk, de ott már helyettesítő karakterek is lesznek, ezeket teszi a megtalálandó szó betűi helyett. A játék időre megy, sietni kell, hogy a megadott idő alatt befejezzük a keresést. Egy kisiskolásnak bizony elég nehéz-e feladat, nem is tudják elsőre megoldani.

1 REM ***********************
** NyitraiSOFT 2002 **
***********************
5 REM **************************
** Betű kereső jatek ***
** Irta:Nyitrai LAszlO ***
** 2002 jUlius ***
**************************
7 REM ***********************
** tanulo jatek ***
** harmadikos ***
** DOri unokamnak ***
***********************
10 DEFFN A(X,Y)=22528+2*X+64*Y
20 CLEAR 64998: LET ch=0: LET pr=64000: LET level=1: DIM n$(6,8): FOR n=1 TO 6: LET n$(n)="........": NEXT n: DIM s(6)
100 GOSUB 9000
110 GOSUB 8000
120 IF ch <> 5 THEN GOSUB 1000*(ch+(ch=4)): GOTO 110
130 PAPER 7: INK 0: BORDER 7: CLS : POKE 23658,0: BEEP .01,25: GOSUB 9845: BEEP .01,30: NEW
1000 PAPER 4: LET V=USR 64018: PAPER 5
1005 BEEP .01,25
1010 LET bx=22: LET by=10: LET bh=6: LET bw=9: GOSUB 9800: LET bx=3: LET by=3: LET bh=4: LET bw=10: GOSUB 9800: LET Z$=STR$ level+" szint": LET v=USR pr
1020 LET bx=0: LET by=15: LET bh=6: LET bw=29: GOSUB 9800: PRINT AT 11,23;" id_: ";AT 13,23;"00:00:0"
1025 BEEP .01,25
1030 PAPER 6: INK 1: LET
z$=" Betű": LET bx=24: LET by=1: LET bw=7: LET bh=6: GOSUB 9800: LET v=USR pr: PRINT AT 4,25;"kereső";AT 6,25;"(c) NyL."1035 BEEP .01,25
1040 PAPER 6: LET bx=3: LET by=8: LET bh=4: LET bw=16: GOSUB 9800: PRINT INK 2;AT 9,4;"kis tUrelmet,"; INK 2;AT 10,4;"keverem a szot!": PAPER 5
1045 BEEP .01,25
1100 GOSUB 4000: LET v=USR 64012
1110 LET X=1: LET Y=1: LET A$="": LET AA=0
1120 PRINT AT 18,14;: LET z$="> _": LET v=USR pr
1200 LET ADD=FN A(X,Y): POKE ADD,122: POKE ADD+32,122
1210 PRINT AT 13,23;: LET ido=USR 64015: IF ido=65535 THEN GOTO 1600
1212 BEEP .002,1
1215 LET Z$=INKEY$: IF (Z$ <> CHR$ 13) AND (Z$<"5" OR Z$>"8") THEN GOTO 1210
1220 IF Z$ <> CHR$ 13 THEN LET X=X+(Z$="8" AND X<11) (Z$="5" AND X>1): LET Y=Y+(Z$="6" AND Y<4) (Z$="7" AND Y>1): POKE ADD,40: POKE ADD+32,40: GOTO 1200
1230 IF L$(X,Y)="*" OR L$(X,Y)=" " OR (L$(X,Y)="_" AND AA=0) THEN BEEP .1,0: GOTO 1210
1240 IF L$(X,Y)="_" THEN LET Z$=A$(AA): PRINT AT 2*F(AA,2),2*F(AA,1);: LET V=USR pr: LET L$(F(AA,1),F(AA,2))=Z$: LET AA=AA 1: LET A$=A$( TO AA): GOTO 1270
1250 IF L$(X,Y)="_" THEN PRINT AT 13,23; BRIGHT 1;: LET time=USR 64015: BRIGHT 0: GOTO 1300
1255 IF aa=12 THEN BEEP .1,0: GOTO 1210
1260 LET A$=A$+L$(X,Y): LET Z$=" ": LET AA=AA+1: LET F(AA,1)=X: LET F(AA,2)=Y: LET L$(X,Y)=" ": PRINT AT 2*Y,2*X;: LET V=USR pr
1270 PRINT AT 18,16;: LET Z$=A$+"_ ": LET V=USR pr
1280 GOTO 1200
1300 LET z$=a$+" ": PRINT AT 18,16;: LET v=USR pr
1310 PAPER 6: LET bx=1: LET by=13: LET bw=14: LET bh=8: GOSUB 9800
1320 IF LEN a$>LEN w$ THEN LET z$="TUl hosszU": PRINT AT 14,2;: LET v=USR pr: GOTO 1900
1322 BEEP .01,20
1325 IF LEN a$<LEN w$ THEN LET z$="TUl rOvid": PRINT AT 14,2;: LET v=USR pr: GOTO 1900
1327 BEEP .01,20
1330 LET z$="Osszevetem": PRINT AT 14,3;: LET v=USR pr: LET z$="a feladattal": PRINT AT 17,2;: LET v=USR pr
1340 FOR n=1 TO LEN w$: BEEP .1,12+n
1350 LET add=22528+15+16*32+n: POKE add,120: POKE add+32,120: POKE add+64,120: POKE add+96,120
1360 IF a$(n)=w$(n) THEN GOTO 1420
1370 IF a$(n)="_" THEN GOTO 1420
1380 IF a$(n) <> "_" AND a$(n) <> "_" THEN LET z$="rossz kiIrAs": PRINT AT 16,2;: LET v=USR pr: GOTO 1900
1385 BEEP .01,25
1390 LET t$="AEIOUBCDFGHJKLMNPQRSTVXYZ": FOR M=1 TO LEN T$
1400 IF W$(N) <> T$(m) THEN NEXT M: STOP
1410 IF (M <= 5 AND A$(N)="_") OR (M >= 6 AND A$(N)="_") THEN LET Z$="rossz tipus": PRINT AT 16,2;: LET v=USR pr: GOTO 1900
1415 BEEP .01,20
1420 FOR m=1 TO 30: NEXT m: NEXT n
1430 PAPER 7: LET bx=3: LET by=3: LET bw=18: LET bh=12: GOSUB 9800: LET z$="Osszerakas kesz": LET v=USR pr
1435 BEEP .1,25
1440 LET mins=INT (time/3000): LET secs=time 3000*mins: LET secs=(INT (secs/5))/10
1450 PRINT AT 6,3;: LET z$=" Id_:"+STR$ mins+" p. "+STR$ secs+" mp.": LET v=USR pr
1460 LET score=300 INT (time/50): LET z$="pont: "+STR$ score: PRINT AT 9,4;: LET v=USR pr
1500 PRINT AT 13,4;: LET z$="nyomd a space t": LET v=USR pr
1510 IF INKEY$ <> "" THEN GOTO 1510
1520 IF INKEY$ <> " " THEN GOTO 1520
1530 IF score <= s(level) THEN RETURN
1535 LET s(level)=score: LET z$=" _j cs_cs!! ": GOSUB 5100: PRINT AT 20,9;"_rd be a neVed"
1540 LET t$=""
1550 PRINT AT 5+2*level,18;: LET z$=t$+"_ ": LET z$=z$( TO 10): LET v=USR pr
1555 IF INKEY$ <> "" THEN GOTO 1555
1560 LET z$=INKEY$: IF z$="" THEN GOTO 1560
1562 IF z$=CHR$ 12 AND t$="" THEN GOTO 1555
1565 IF z$=CHR$ 12 THEN LET t$=t$( TO LEN t$ 1)
1570 IF z$ >= " " AND z$ <= "(c)" AND LEN t$<8 THEN LET t$=t$+z$
1575 IF z$ <> CHR$ 13 THEN GOTO 1550
1580 PRINT AT 5+2*level,18;: LET z$=t$+" ": LET z$=z$( TO 10): LET v=USR pr
1585 LET n$(level)=t$: FOR n=1 TO 100: NEXT n: RETURN
1600 PRINT AT 13,23;"05:00:0": PAPER 6: LET bx=2: LET by=2: LET bw=16: LET bh=12: GOSUB 9800: LET z$="lejart az id
ő!": LET v=USR pr1605 BEEP .01,35
1610 PRINT AT 12,2;: LET z$=" nyomd a space t": LET v=USR pr
1620 IF INKEY$ <> "" THEN GOTO 1620
1630 IF INKEY$ <> " " THEN GOTO 1630
1640 RETURN
1900 PRINT AT 18,2;: LET z$="nyomd space t": LET v=USR pr
1910 IF INKEY$ <> "" THEN GOTO 1910
1920 IF INKEY$ <> " " THEN GOTO 1920
1930 PAPER 5: LET bx=0: LET by=15: LET bh=6: LET bw=29: GOSUB 9800
1935 BEEP .01,25
1940 PRINT AT 16,2;: LET Z$="Keresendő szo:"+w$: LET v=USR pr: PRINT AT 18,14;: LET z$="> "+a$+"
_ ": LET v=USR pr1941 PRINT AT 20,1;"_ minden _ maganh._ massalh.": GOTO 1200
1999 REM szintkivAalasztas
2000 PAPER 4: LET bx=12: LET by=8: LET bw=15: LET bh=12: GOSUB 9800
2010 LET z$="SzintvAlasztAs": LET v=USR pr
2020 PRINT AT 17,13;"VAlaszd 1 6 ig";AT 18,13;"majd, Enter t";AT 19,13;"a men
ű hoz"2030 LET z$=STR$ level+" szint": PRINT AT 13,15;: LET v=USR pr
2040 LET z$=INKEY$: IF z$=CHR$ 13 THEN RETURN
2050 IF z$ >= "1" AND z$ <= "6" THEN LET level=VAL z$
2060 GOTO 2030
2998 STOP
2999 REM magyarazat
3000 BORDER 0: PAPER 0: INK 6: CLS : POKE 63999,CODE "_": LET v=USR 64018
3010 PAPER 1: LET bx=1: LET by=1: LET bw=24: LET bh=17: GOSUB 9800
3020 LET z$=" MagyarAzat: ": LET v=USR pr
3030 PRINT AT 5,2;"Ebben a programban";AT 6,2;"a Spectrum veletlen ";AT 7,2;"szerűen helyezi el"
3040 PRINT AT 8,2;"a tarbol elővett";AT 9,2;"szavakat,Es 40";AT 10,2;"betű kozE helyezi."
3050 PRINT AT 12,2;"Neked meg kell";AT 13,2;"keresned a betűket,";AT 14,2;"Es alant be kell";AT 15,2;"gyorsan irnod."
3060 PRINT AT 17,10;"nyomd a space t"
3070 IF INKEY$ <> "" THEN GOTO 3070
3080 IF INKEY$ <> " " THEN GOTO 3080
3090 LET bx=3: LET by=2: GOSUB 9800
3100 LET z$=" MagyarAzat ": LET v=USR pr
3110 PRINT AT 6,4;"VAlaszd ki a betűket";AT 7,4;"a megfelelő sor ";AT 8,4;"rendben,a kurzorral,";AT 9,4;"amikor megtalaltad,";AT 10,4;"akkor enter rel";AT 11,4;"lehet alulra beirni.";AT 12,4;"Ha rossz betűt irtal,";AT 13,4;"akkor a torlő betűvel";AT 14,4;"T vel vAltoztathatsz, ";AT 15,4;"nyomd le az enter t."
3120 PRINT AT 18,10;"nyomd a space t"
3130 IF INKEY$ <> "" THEN GOTO 3130
3140 IF INKEY$ <> " " THEN GOTO 3140
3150 LET bx=5: LET by=3: GOSUB 9800
3160 LET z$=" MagyarAzat ": LET v=USR pr
3170 PRINT AT 7,6;"Amint vEgeztEl a szOval";AT 8,6;"a kurzort az utolso";AT 9,6;"'_' be_r bet
űhoz vidd,";AT 10,6;"majd nyomd az enter t.";AT 11,6;"A Spectrum meri idődet";AT 12,6;"pontszamodat ez alapjan";AT 13,6;"fogod kapni,(maximum";AT 14,6;"5 perc),Es lathatod a";AT 15,6;"pontjaid szamat,";AT 16,6;"Es a csucs tAblat."3180 PRINT AT 18,10;"nyomd a space t"
3190 IF INKEY$ <> "" THEN GOTO 3190
3200 IF INKEY$ <> " " THEN GOTO 3200
3210 LET bx=7: LET by=4: GOSUB 9800
3220 LET z$=" MagyarAzat ": LET v=USR pr
3230 PRINT AT 8,8;"A jAtEknak akkor van";AT 9,8;"VEge,ha mind a 6";AT 10,8;"szintet vEgigjArtad.";AT 11,8;"minden szint egyre";AT 12,8;"nehezebb,a 2.szintt
ől";AT 13,8;"egyre tobb betű";AT 14,8;"hiAnyzik majd..."3240 PRINT AT 16,8;"_...betűt helyettesit";AT 17,8;"_...maganhangzot(AEIOU)";AT 18,8;"_...massalhangzot"
3250 PRINT AT 19,15;"nyomd a space t"
3260 IF INKEY$ <> "" THEN GOTO 3260
3270 IF INKEY$ <> " " THEN GOTO 3270
3280 PAPER 5: INK 0: BORDER 5: CLS : LET v=USR 64018
3290 RETURN
3998 STOP
3999 REM felallitas
4000 DIM L$(11,4): DIM F(12,2): RESTORE 7000: RANDOMIZE : FOR N=1 TO INT (RND*52): READ W$: NEXT N
4010 PRINT INK 2;AT 16,2;: LET Z$="Keresend
ő szo:"+w$: LET v=USR pr4020 LET g$=w$
4030 LET v$="AEIOU": LET C$="BCDFGHJKLMNPQRSTVXYZ"
4040 IF level<4 THEN GOTO 4070
4050 LET r=1+INT (RND*LEN g$): FOR n=1 TO LEN v$: IF g$(r) <> v$(n) THEN NEXT n: GOTO 4050
4055 LET g$(r)="_"
4060 LET r=1+INT (RND*LEN g$): FOR n=1 TO LEN c$: IF g$(r) <> c$(n) THEN NEXT n: GOTO 4060
4065 LET g$(r)="_"
4070 IF level=1 OR level=4 THEN GOTO 4100
4075 FOR n=1 TO 1+(level=3 OR level=6)
4080 LET r=1+INT (RND*LEN g$): IF g$(r)="_" OR g$(r)="_" OR g$(r)="_" THEN GOTO 4080
4085 LET g$(r)="_"
4090 NEXT n
4100 FOR N=1 TO LEN W$
4110 LET X=1+INT (RND*10): LET Y=1+INT (RND*4): IF L$(X,Y) <> " " THEN GOTO 4110
4120 LET L$(X,Y)=G$(N): NEXT N
4200 FOR N=1 TO LEN W$
4210 FOR M=1 TO LEN V$: IF V$(M)=W$(N) THEN LET V$(M)="*"
4220 NEXT M
4230 FOR M=1 TO LEN C$: IF C$(M)=W$(N) THEN LET C$(M)="*"
4240 NEXT M: NEXT N
4290 LET bx=1: LET by=1: LET bh=10: LET bw=23: GOSUB 9800
4300 LET T$=V$+C$: LET TL=LEN T$: FOR M=1 TO 4: FOR N=1 TO 11: IF N=11 THEN LET L$(N,M)="_**_"(m)
4310 IF L$(N,M) <> " " THEN GOTO 4330
4320 LET L$(N,M)=T$(1+INT (RND*TL))
4330 LET Z$=L$(N,M)
4340 PRINT AT 2*M,2*N;: LET V=USR pr
4345 BEEP .01,n
4350 NEXT N: NEXT M
4360 PRINT AT 20,1;"_ minden _ maganh._ massalh."
4500 RETURN
5000 LET z$=" ** Mai csUcsok ** ": GOSUB 5100: PRINT AT 20,12;"nyomd a space t": PAUSE 5
5010 IF INKEY$ <> " " THEN GOTO 5010
5020 RETURN
5100 PAPER 6: LET bx=7: LET by=3: LET bh=18: LET bw=21: GOSUB 9800: LET v=USR pr: PRINT AT 6,8;"szint"
5110 FOR n=1 TO 6: PRINT AT 5+2*n,9;: LET z$=STR$ n+": "+STR$ s(n): LET v=USR pr: PRINT AT 5+2*n,18;: LET z$=n$(n): LET v=USR pr: NEXT n: RETURN
7000 DATA "HALOTTLATO","JONAPOT","JOESTET","EJSZAKA","AKTUALIS","MINDENKI","STRATEGIA","ELEFANT","PAPAGALY"
7010 DATA "MARIKA","LASZLO","MIHALY","KATIKA","IZABELLA","MONIKA","DORIKA","BENDEGUZ","CSABIKA","ANNAMARIA","ZSUZSANNA","REKUCI"
7020 DATA "HETFŐ","KEDD","SZERDA","CSUTORTOK","PENTEK","SZOMBAT","VASARNAP","UNNEPNAP","EVFORDULO"
7030 DATA "JANUAR","FEBRUAR","MARCIUS","APRILIS","MAJUS","SZEPTEMBER","DECEMBER"
7040 DATA "BUDAPEST","BUKAREST","NEWYORK","VASHINGTON","DAKAR","MOSZKVA","ISZTAMBUL","MAROKKO","KOPPENHAGA","BERLIN","RODOST_","SZATURNUSZ","NEPTUNUSZ","OPERABAL","SANDIEGO"
7990 RESTORE 7000: FOR N=1 TO 1000: READ A$: PRINT LEN A$: NEXT N
7999 REM f_ men_
8005 PAPER 6: LET bx=5: LET by=3: LET bh=18: LET bw=17: GOSUB 9800: INK 0: LET z$="Men_ V_laszt_k": LET v=USR pr
8010 BEEP .01,25
8020 PRINT AT 7,6; BRIGHT ch=1;"1. JAtEk inditas";AT 9,6; BRIGHT ch=2;"2. Szint valta
s";AT 11,6; BRIGHT ch=3;"3. Magyarazat";AT 13,6; BRIGHT ch=4;"4. Pont tAbla ";AT 15,6; BRIGHT ch=5;"5. KilEpEs !!!";AT 17,9; BRIGHT 0;"1 től 5 ig";AT 18,6;"VAlaszd,ENTER el";AT 19,9;"inditsd el!!"8022 BEEP .01,25
8025 PAPER 1: INK 6: LET z$
=" Bet_": LET bx=24: LET by=1: LET bw=7: LET bh=6: GOSUB 9800: LET v=USR pr: PRINT AT 4,25;"kereső";AT 5,26;"JATEK";AT 6,25;"(c) NyL."8026 BORDER 1: PAPER 6: INK 1
8030 LET z$=INKEY$: IF z$ >= "1" AND z$ <= "5" THEN LET ch=VAL z$: GOTO 8020
8040 IF z$ <> CHR$ 13 OR ch=0 THEN GOTO 8030
8045 INK 1
8047 BEEP .01,25
8050 RETURN
8998 STOP
8999 REM kezdő oldal
9000 BORDER 1: CLS : PAPER 5: INK 0: BRIGHT 1: FLASH 0: INVERSE 0: OVER 0
9010 POKE 63999,CODE "_": LET v=USR 64018
9030 PAPER 6: INK 0: LET bx=2: LET by=1: LET bw=13: LET bh=5: GOSUB 9800: LET z$="NyitraiSOFT": LET v=USR pr: PRINT INK 2;AT 4,6;"bemutatja"
9035 BEEP .1,25
9040 PAPER 6: LET bx=7: LET by=6: LET bw=16: LET bh=6: GOSUB 9800: LET z$=" tUrelem jAtEk": LET v=USR pr: PRINT INK 1;AT 6,8;"Bet
ű";AT 9,13;"programjAt"9045 BEEP .1,25
9050 PAPER 6: INK 0: LET bx=2: LET by=12: LET bw=19: GOSUB 9800: LET z$="Irta:": LET v=USR pr: PRINT AT 13,9;"NyL."; INK 2;AT 14,9;"alias:"; INK 1;AT 15,7;"'jAtEkgyAros'"
9055 BEEP .1,25
9060 PAPER 6: INK 0: LET bx=12: LET by=17: LET bw=16: LET bh=4: GOSUB 9800: PRINT "nyomd a space t": PRINT INK 2;AT 19,14;" a kezdeshez"
9065 BEEP .1,25
9070 IF INKEY$="" THEN GOTO 9070
9080 IF INKEY$ <> " " THEN GOTO 9080
9085 GOSUB 9845
9086 BORDER 1: CLS : PAPER 5: INK 0: BRIGHT 0: LET V=USR 64018
9090 RETURN
9799 STOP
9800 LET s$=" "( TO bw): FOR n=by TO by+bh 1: PRINT AT n,bx;s$;: NEXT n: PRINT AT by+1,bx+1;
9810 PLOT 8*bx,175 (8*by): DRAW 8*bw,0: DRAW 0, 8*bh: DRAW 8*bw,0: DRAW 0,8*bh
9820 PLOT 8*bx+2,176 (8*by): DRAW 8*bw 1,0: DRAW 0, 8*bh+1
9830 PLOT 8*bx+2,177 (8*by): DRAW 8*bw,0: DRAW 0, 8*bh
9835 PLOT 8*bx+2,178 (8*by): DRAW 8*bw,0: DRAW 0, 8*bh
9840 RETURN
9845 REM t_rl_
9846 BRIGHT 1
9847 LET ch=0: LET z=8
9848 LET a=88: LET a1=88: LET b=87: LET b1=87: LET c=127: LET c1=127: LET d=128: LET d1=128
9850 IF ch=1 THEN INK 5: LET ink=5: GOTO 9852
9851 LET ink=INT (RND*7): INK ink
9852 PLOT c,a
9853 DRAW PAPER ink,0,87
9854 IF b<1 THEN GOTO 9857
9855 PLOT c1,b
9856 DRAW PAPER ink, 127,0
9857 IF d>255 THEN GOTO 9878
9871 PLOT d,b1
9872 DRAW PAPER ink,0, 87
9873 IF a1>175 THEN GOTO 9876
9874 PLOT d1,a1
9875 DRAW PAPER ink,127,0
9876 LET c=c z: LET b=b z: LET d=d+z: LET a1=a1+z
9877 BEEP .001,ink*10: GOTO 9850
9878 IF ch=1 THEN GOTO 9880
9879 LET z=8: LET ch=1: LET ink=7: GOTO 9848
9880 PAPER 5: INK 0: BRIGHT 0: CLS : RETURN
9997 STOP
9998 CLEAR 63998: PAPER 7: INK 0: BORDER 7: BRIGHT 0: INVERSE 0: FLASH 0: OVER 0: CLS : PRINT AT 5,5;"betOltEs";AT 7,5;"kis tUrelmet!": LOAD ""CODE : LOAD ""CODE : RUN
9999 CLEAR : SAVE "betuker" LINE 9998: SAVE "betukod"CODE 64000,460: SAVE "budg"CODE USR "a",21*8: STOP
BÖLCSEK KÖNYVE - RAJZOS SZÖVEGES KALANDJÁTÉK
Leírás:
Elkészült a nagy BASIC mű: A Bölcsek Könyve című rajzos, szöveges kalandjáték.
Először megpróbálkoztam a Spectrum játékszerkesztőjével, a QUILL nevű programmal, de nagyon nehézkesnek, (később a félig kész programot nagyon nehezen javíthatónak) találtam, ezért maradtam a manuális Basicnél, mert úgy gondoltam, hogy nem csinálom nagyon bonyolultnak, és csak 15 szobát terveztem, és ez még belefért a Spectrum 48 K-s tárjába (persze csak éppen, mert a program a változók által lefoglalt területtel 42 K hosszú lett.)
A játék lényege: a szobákat végigjárva meg kell keresni az Ódon könyvet, a benne lévő aforizmát el kell olvasni, lelkünk Üdvére.
A játék során az adott Életerő (kezdetben 1000 egység van) egyre fogy, ezt lehet pótolni a megtalált élelmekkel, valamint az előkerült tárgyakat a megfelelő személyeknek odaadva, ismét csak új energiát nyerünk. Ha nincs szerencsénk, akkor simán éhen halunk, aztán béke porainkra.
A 15 szoba melyek csak a berendezésben változnak,
1. ajtó szemben
2. kis polc jobbra a falon
3. kis asztal
4. kis lámpa fent
5. pad (kis asztal)
6. polcos szekrény
7. 3 polcos (fiókos)szekrény
8. keskeny 3 polcos szekrény
9. falsík jobboldali ajtóval
10. kandalló
11. falsík a képkerettel
12. nagy állóóra
13. kis óra a falon
14. kép+keret
15. szemben lévő polc a falon.
Ez volt igazi mestermunka, a PLOT és DRAW utasításokkal lettek megrajzolva, és a szobákban csak a PLOT koordináták értékeiknek megváltoztatásával lettek elhelyezve.
A szobákban járva különféle tárgyakat lelünk:
1. Bölcsek Könyvét,
2. füstölt heringet,
3. festőecsetet,
4. csokoládétortát,
5. gumis parittyát,
6. vörös parókát,
7. kutya csontot,
8. gyémánt fülbevalót
9. üres borosüveget,
10. forró teáskannát,
11. kis madártollat,
12. ezüstórát,
13. piszkos inget,
14. kupac téglát.
egy szobában nincs semmi, csak a falak, és két ajtó.
A szobákban járva különféle alakokat lelünk:
1. Cézár cicát,
2. Öreg grófnőt,
3. Öreg grófot,
4. takarítónőt,
5. dagadt Józsit
6. Betty kutyust (ez a Mónika leányom/Dóri unokám kutyusa)
7. kopasz Lalit
8. csavargó Tomit,
9. Józsi főnököt,
10. félénk kisegeret.
Tehát a megtalált tárgyakat (az élelmen kívül) magunkhoz vesszük, és a megfelelő személyeknek pl. Öreg grófnak odaadhatjuk az ezüstórát, és ezzel plusz élelemhez / energiához juthatunk. A Spectrum véletlenszám generátorával kavarja a dolgokat, és összerendezi (megkeveri) a szobákat, személyeket és a tárgyakat.
A játék során kiadható parancsok:
a P Parancsok betűvel mindig előhívható!
| E | Előre | G | felvesz |
| V | Vissza | D | eldob |
| J | Jobbra | I | leltár |
| B | Balra | T | elcserél |
| X | Életerő | F | eszik!! |
| U | Ugrás új szobába | M | mentés |
Lehetőség van az adott játékállás elmentésére, mert van mikor egyszerűen megoldható a feladat, de van olyan eset is, mikor szívat a Spectrum, és csak kavargunk és nem jutunk sehova, akkor abba kell hagyni, és ezt a legközelebbi betöltésnél figyelembe veszi, (a véletlenszám-generátor máshonnan indul), és a megszakítás helyétől, életerőtől lehet folytatni.
Természetesen senki ne várjon fergeteges grafikát (mert ez csak BASIC!!!), de ezzel a programmal több mint két hónapot (megszakításokkal) töltöttem, kínlódtam, próbálkoztam, átkozódtam, abbahagytam, elővettem, mérgelődtem stb. (és még be lehet helyettesíteni mást is)

1 REM BOlcsek Konyve rajzos kalandjatek
2 NyitraiSOFT 2003
20 REM keszitette:jatekgyaros
30 REM POKE 23613,0 (hUm..hUm..ha..ha..ha)
BREAK vedelem??
40 REM a jatek cime: a bolcsek konyve,
avagy Dori az elvarazsolt hazban
50 POKE 23658,8
55 REM UDG-k a cofis unokam Dori
60 POKE 23613,0: PAPER 1: CLS : BORDER 1: INPUT "": INK 5: FOR a=0 TO 23: READ b: POKE USR "a"+a,b: NEXT a: DATA 0,129,102,24,24,102,129,0,112,154,159,61,85,125,76,56,16,124,186,185,168,46,238,224
70 LET L=1
80 LET C=0
90 DIM U(3)
100 PRINT INK 7;" NyitraiSOFT bemutatja "
110 PRINT INK 6;AT 12,9;"A Bolcsek Konyve"
120 LET X=100: LET Y=95: GOSUB 2170: GOSUB 2330: LET X=170: LET Y=93: GOSUB 2350
130 INK 5: PRINT ''''" cimű rajzos,szoveges kaland
jatekat (c) jatekgyaros 2003"
135 RANDOMIZE USR 65055
140 PRINT 0;" Nyomd le az ENTER t "
150 POKE 23613,0: PAUSE 0
160 POKE 23613,0: PRINT AT 14,2; INK 0; PAPER 6;"Vţrj,elvarţzsolom a hţzat.."
170 DIM A$(15,24): FOR A=1 TO 15: POKE 23613,0: READ A$(A): NEXT A:
DATA "a Bolcs
ek Konyvet","egy fustolt heringet","egy festő ecsetet","","egy csokoladetortat","egy gumis parittyat","egy voros parokat","egy kutya csontot","egy gyemant fulbevalot","egy ures borosuveget","egy forro teAskannat","egy kis madartollat","egy ezustarcat","egy piszkos inget","egy kupac teglat"180 DIM B$(12,15): FOR A=1 TO 12: POKE 23613,0: READ B$(A): NEXT A:
DATA "a Cezar cicat","az Oreg grofnőt","az Oreg grofot","a takaritonőt","","a dagadt Jozsit","a Betty kutyust","a kopasz Lalit","csavargo Tomit","a főnok Jozsit","","a felenk egeret"
190 DIM Z(15): FOR A=1 TO 15
200 POKE 23613,0: LET Z(A)=INT (RND*60)
210 FOR B=1 TO A 1: IF Z(A)=Z(B) THEN GOTO 200
220 NEXT B: NEXT A
230 FOR A=1 TO 15: READ PP
240 IF PP=0 THEN GOTO 260
250 POKE 23613,0: LET Z(A)=PP
260 NEXT A
270 DATA 1,0, 1, 1, 1, 1, 1, 1, 1, 1,0,0,0,0, 1
280 DIM Y(12): FOR A=1 TO 12
290 LET Y(A)=INT (RND*60)
300 FOR B=1 TO A 1: IF Y(A)=Y(B) THEN GOTO 290
310 NEXT B: NEXT A
320 DIM M(16): DIM N(16): FOR A=1 TO 16: READ M(A),N(A): NEXT A
330 POKE 23613,0: DATA 1,4,3,10,15,49,19,1,22,19,30,26,32,54,36,32,40,34,42,3,44,60,46,2,48,22,54,47,56,11,58,56
340 DIM O(43): DIM P(43): FOR A=1 TO 43: POKE 23613,0: READ O(A),P(A): NEXT A
350 DATA 58,12,1,2,3,4,4,5,6,9,7,25,8,7,9,8,12,14,13,54,14,16,16,20,17,57,18,44,20,23,21,15,23,24,24,28,25,26,26,27,27,22,28,43,29,18,31,40,32,35,36,60,38,30,39,38,42,1,43,50,44,49,45,34,47,48,48,45,50,51,51,59,52,39,54,33,55,3,56,21,57,55,59,53,60,41
360 DIM F(20): FOR A=1 TO 20: LET F(A)=INT (RND*60)+1: NEXT A
370 LET elet=1000
380 CLS
382 PRINT AT 8,0;"
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ"384 PRINT AT 13,0;"ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ"
385 PRINT AT 9,0;"ţ Nyomd a 'B' t,ha betOltesz ţ";"ţ egy kimentett jatekot,vagy ţ";"ţ az ENTER t,ha uj jatekot ţ";"ţ inditasz. ţ"
390 POKE 23613,0: IF INKEY$="" THEN GOTO 390
400 IF INKEY$="B" THEN GOTO 420
410 GOTO 430
420 LOAD "" DATA U(): LET L=U(1): LET C=U(2): LET elet=U(3)
430 LET elet=1000
440 GOSUB 1450+L
450 POKE 23613,0: PRINT 0;" Nyomd a 'P' t a Parancsok hoz "
460 PRINT AT 16,0; INK 7;"
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ": FOR a=17 TO 21: PRINT AT a,0; PAPER 0;" ": NEXT A470 POKE 23613,0: INK 7: PLOT 245,10: DRAW 0,15: FOR A=1 TO 5: PLOT 240+A,25+A: DRAW 10 (A*2),0: NEXT A: PRINT AT 17,27;"Elore"
480 PRINT AT 18,0; PAPER 0; INK 2;"ebben a szobaban talaltal:"
490 POKE 23613,0: LET OBJ=0: FOR A=1 TO 15: IF Z(A)=L THEN PRINT INK 5; PAPER 0;" ";A$(A): LET OBJ=1:
500 NEXT A
510 FOR A=1 TO 20: POKE 23613,0: IF F(A)=L THEN PRINT INK 4; PAPER 0;" egy kis elelmet": LET OBJ=1
520 NEXT A
530 FOR A=1 TO 12: IF Y(A)=L THEN PRINT INK 3; PAPER 0;" ";B$(A): LET OBJ=1
540 NEXT A
550 IF OBJ=0 THEN PRINT PAPER 0; INK 7;" nagy semmit"
560 POKE 23613,0: IF INKEY$="" THEN GOTO 560
570 LET elet=elet .4
580 IF elet <= 0 THEN GOTO 2050
590 IF L=37 THEN LET L=60
600 IF elet>1000 THEN LET elet=1000
610 POKE 23613,0
620 REM Parancsok
630 IF INKEY$="P" THEN GOSUB 920: GOTO 460
640 REM elore
650 IF INKEY$="E" THEN GOTO 940
655 REM visszalep
660 IF INKEY$="V" THEN GOTO 970
670 POKE 23613,0
680 REM jobbra
690 IF INKEY$="J" THEN GOTO 1000
700 REM balra
710 IF INKEY$="B" THEN GOTO 1030
720 POKE 23613,0
730 REM ugras masik szobaba
740 IF INKEY$="U" THEN GOTO 1060
750 REM
energiaszint ellenőrzes760 IF INKEY$="X" THEN GOTO 1110
770 REM mindent megeszunk
780 IF INKEY$="F" THEN GOTO 1130
790 POKE 23613,0
800 REM beraktarozzuk a
talalt targyat
810 IF INKEY$="T" THEN GOTO 1170
820 REM megnezzuk,mi
van a raktarunkban
830 IF INKEY$="I" THEN GOTO 1350
840 REM eldobjuk a
felesleges targyat
850 IF INKEY$="D" THEN GOTO 1380
860 REM felveszunk valamit
870 IF INKEY$="G" THEN GOTO 1400
880 REM elmenthetjUk az adott
jatekallast
890 IF INKEY$="M" THEN GOTO 1440
900 POKE 23613,0
910 GOTO 560
920 RANDOMIZE USR 65055
925 POKE 23613,0: PRINT PAPER 0; INK 7;AT 16,0;" E el
őre G felvesz V vissza D eldob J jobbra I leltar B balra T elcserel X Eleterő F eszik! U UgrAs uj szobaba M MENT"930 PAUSE 0: POKE 23613,0: PAUSE 0: RETURN
940 FOR A=1 TO 16: POKE 23613,0: IF L=M(A) THEN LET L=N(A): LET elet=elet 10: GOTO 440
950 NEXT A: PRINT AT 14,5;"Ott a fal van !!": FOR A=1 TO 100: NEXT A: PRINT AT 14,5;" "
960 GOTO 560
970 FOR A=1 TO 16: POKE 23613,0: IF L=N(A) THEN LET L=M(A): LET elet=elet 10: GOTO 440
980 NEXT A: PRINT AT 14,5;"Nem csinalhatod !!": FOR A=1 TO 100: NEXT A: PRINT AT 14,5;" "
990 GOTO 560
1000 FOR A=1 TO 43: POKE 23613,0: IF L=O(A) THEN LET L=P(A): LET elet=elet 10: GOTO 440
1010 NEXT A: PRINT AT 14,5;"Nem csinalhatod !!": FOR A=1 TO 100: NEXT A: PRINT AT 14,5;" "
1020 GOTO 560
1030 FOR A=1 TO 43: POKE 23613,0: IF L=P(A) THEN LET L=O(A): LET elet=elet 10: GOTO 440
1040 NEXT A: PRINT AT 14,5;"Nem csinalhatod !!": FOR A=1 TO 100: NEXT A: PRINT AT 14,5;" "
1050 GOTO 560
1060 LET X=INT (RND*60)+1
1070 IF X=37 OR X=L THEN GOTO 1060
1080 POKE 23613,0
1090 LET elet=elet 100
1100 LET L=X: GOTO 440
1110 FOR A=17 TO 21
: POKE 23613,0: PRINT PAPER 0;AT A,0;" ": NEXT A: PRINT INK 7; PAPER 0;AT 19,3;"Eleterőd jelenleg: ";INT elet1120 PAUSE 0: PAUSE 0: GOTO 460
1130 FOR A=1 TO 20: POKE 23613,0
1140 IF F(A)=L THEN GOTO 1160
1150 NEXT A: PRINT AT 14,4;"Itt nincs ennivalo!!": FOR A=1 TO 100: NEXT A: PRINT AT 14,4;" ": GOTO 560
1160 LET elet=elet+200: LET F(A)= 1: GOTO 460
1170 IF C=0 THEN PRINT AT 14,5;"Meg semmid sincs!!": FOR A=1 TO 100: NEXT A: PRINT AT 14,0;" ": GOTO 560
1180 FOR A=1 TO 12: IF L=Y(A) THEN GOTO 1210
1190 NEXT A: PRINT AT 14,6;"Itt nincs semmi !!": FOR A=1 TO 100: NEXT A: GOTO 560
1200 POKE 23613,0
1210 IF C=1 OR C=10 OR C=11 OR C=12 OR C=13 THEN GOTO 1340
1220 IF L=Y(1) AND C=2 THEN LET C=3: LET Z(3)=0: LET Z(2)= 1: GOTO 1330
1230 IF L=Y(2) AND C=3 THEN LET C=5: LET Z(5)=0: LET Z(3)= 1: GOTO 1330
1240 IF L=Y(3) AND C=4 THEN GOTO 2110
1250 IF L=Y(4) AND C=5 THEN LET C=6: LET Z(6)=0: LET Z(5)= 1: GOTO 1330
1260 IF L=Y(5) AND C=6 THEN LET C=7: LET Z(7)=0: LET Z(6)= 1: GOTO 1330
1270 IF L=Y(6) AND C=7 THEN LET C=8: LET Z(8)=0: LET Z(7)= 1: GOTO 1330
1280 IF L=Y(7) AND C=8 THEN LET C=9: LET Z(9)=0: LET Z(8)= 1: GOTO 1330
1290 IF L=Y(8) AND C=9 THEN LET C=4: LET Z(4)=0: LET Z(9)= 1: GOTO 1330
1300 IF L=Y(9) AND C=14 THEN LET C=15: LET Z(15)=0: LET Z(14)= 1: GOTO 1330
1310 IF L=Y(11) AND C=15 THEN LET C=10: LET Z(10)=0: LET Z(15)= 1: GOTO 1330
1320 POKE 23613,0: GOTO 1340
1330 PRINT AT 12,6;"Ez egy nagyon szep ";AT 14,2;"neked ";A$(C): FOR A=1 TO 100: NEXT A: PRINT AT 12,0;" ";AT 14,0;" ": GOTO 560
1340 PRINT AT 14,7;"Nem ertem ??": FOR A=1 TO 100: NEXT A: PRINT AT 14,0;" ": GOTO 560
1350 FOR A=17 TO 21: POKE 23613,0: PRINT AT A,0; PAPER 0;" ": NEXT A: PRINT AT 18,1; INK 7; PAPER 0;"Raktarodban van: ";
1360 IF C=0 THEN PRINT INK 7; PAPER 0;"most nincs semmi!!": PAUSE 0: PAUSE 0: GOTO 460
1370 POKE 23613,0: PRINT INK 7; PAPER 0;A$(C): PAUSE 0: PAUSE 0: GOTO 460
1380 IF C=0 THEN PRINT AT 14,4;"Nincs mit eldobnod!!": FOR A=1 TO 100: NEXT A: PRINT AT 14,0;" ": GOTO 560
1390 POKE 23613,0: LET Z(C)=L: PRINT AT 14,4;"Eldobtad ";A$(C): LET C=0: FOR A=1 TO 100: NEXT A: PRINT AT 14,0;" ": GOTO 560
1400 IF C <> 0 THEN PRINT INK 2;AT 14,0;"Csak egy cucc lehet nalad!!": FOR A=1 TO 100: NEXT A: PRINT AT 14,0;" ": GOTO 560
1410 FOR A=1 TO 15: POKE 23613,0: IF Z(A)=L THEN GOTO 1430
1420 NEXT A: PRINT AT 14,3;"Nem lehet felvenni!!": FOR A=1 TO 100: NEXT A: PRINT AT 14,0;" ": GOTO 560
1430 LET C=A: LET Z(A)=0: PRINT AT 14,0;"Felvetted a ";A$(C): FOR A=1 TO 100: NEXT A: PRINT AT 14,0;" ": GOTO 560
1440 LET U(1)=L: LET U(2)=C: LET U(3)=elet: POKE 23613,0: SAVE "bolcsek" DATA U(): GOTO 560
1450 CLS : INK 5: GOSUB 2200: LET X=150: LET Y=130: GOSUB 2210: LET X=170: LET Y=133: GOSUB 2240: GOSUB 2170: GOSUB 2180: GOSUB 2190: RETURN
1460 POKE 23613,0: INK 6: CLS : GOSUB 2170: LET X=10: LET Y=58: GOSUB 2180:: GOSUB 2250: LET X=155: LET Y=120: GOSUB 2290: RETURN
1470 CLS : INK 7: GOSUB 2300: GOSUB 2200: LET X=150: LET Y=90: GOSUB 2310: GOSUB 2190: GOSUB 2180: PLOT 44,92: DRAW 102,0: PLOT 172,92: DRAW 38,0: RETURN
1480 INK 6: CLS : GOSUB 2300: GOSUB 2180: GOSUB 2190: LET X=117: LET Y=90: GOSUB 2350: PLOT 44,92: DRAW 71,0: PLOT 148,92: DRAW 63,0: RETURN
1490 CLS : INK 5: GOSUB 2300: GOSUB 2180: LET X=60: LET Y=90: GOSUB 2270: LET X=140: LET Y=140: GOSUB 2360: PLOT 44,92: DRAW 8,0: PLOT 110,92: DRAW 100,0: RETURN
1500 CLS : INK 7: GOSUB 2170: GOSUB 2190: GOSUB 2250: LET X=156: LET Y=136: GOSUB 2360: RETURN
1510 INK 4: CLS : GOSUB 2300: PLOT 44,92: DRAW 40,0: PLOT 88,92: DRAW 26,0: PLOT 118,92: DRAW 92,0: GOSUB 2180: GOSUB 2190: LET X=90: LET Y=100: GOSUB 2320: LET X=150: LET Y=120: GOSUB 2210: LET X=164: LET Y=123: GOSUB 2220: RETURN
1520 CLS : INK 7: GOSUB 2170: GOSUB 2180: GOSUB 2190: LET X=90: LET Y=95: GOSUB 2330: LET X=160: LET Y=120: GOSUB 2210: LET X=175: LET Y=123: GOSUB 2230: RETURN
1530 CLS : INK 6: GOSUB 2170: GOSUB 2250: GOSUB 2180: GOSUB 2190: LET X=170: LET Y=125: GOSUB 2340: RETURN
1540 CLS : INK 5: GOSUB 2170: LET X=150: LET Y=130: GOSUB 2210: LET X=170: LET Y=133: GOSUB 2240: RETURN
1550 CLS : INK 6: GOSUB 2170: LET X=80: LET Y=150: GOSUB 2360: LET X=X+60: GOSUB 2360: RETURN
1560 CLS : INK 7: PLOT 44,92: DRAW 33,0: PLOT 102,92: DRAW 33,0: PLOT 162,92: DRAW 48,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: LET X=80: LET Y=90: GOSUB 2310: LET X=X+60: LET Y=Y 3: GOSUB 2260: RETURN
1570 CLS : INK 5: GOSUB 2170: GOSUB 2190: LET X=140: LET Y=130: GOSUB 2340: RETURN
1580 CLS : INK 6: GOSUB 2170: GOSUB 2180: GOSUB 2190: GOSUB 2250: RETURN
1590 CLS : INK 6: GOSUB 2170: GOSUB 2200: GOSUB 2180: RETURN
1600 CLS : INK 6: GOSUB 2190: GOSUB 2300: GOSUB 2250: LET X=150: LET Y=90: GOSUB 2350: PLOT 44,92: DRAW 106,0: PLOT 180,92: DRAW 30,0: GOSUB 2180: RETURN
1610 CLS : INK 7: PLOT 44,92: DRAW 24,0: PLOT 94,92: DRAW 116,0: GOSUB 2300: LET X=70: LET Y=90: GOSUB 2310: GOSUB 2190: LET X=120: LET Y=100: GOSUB 2280: RETURN
1620 CLS : INK 6: GOSUB 2170: GOSUB 2180: GOSUB 2190: GOSUB 2250: LET X=160: LET Y=100: GOSUB 2280: RETURN
1630 CLS : INK 7: PLOT 44,92: DRAW 102,0: PLOT 174,92: DRAW 36,0: GOSUB 2300: GOSUB 2200: LET X=150: LET Y=90: GOSUB 2310: RETURN
1640 CLS : INK 5: GOSUB 2170: GOSUB 2180: GOSUB 2190: LET X=120: LET Y=96: GOSUB 2330: LET X=145: LET Y=135: GOSUB 2340: RETURN
1650 CLS : INK 6: GOSUB 2170: GOSUB 2180: GOSUB 2190: LET X=90: LET Y=150: GOSUB 2360: LET X=160: LET Y=Y 10: GOSUB 2210: LET Y=Y+3: LET X=X+15: GOSUB 2220: RETURN
1660 CLS : INK 6: GOSUB 2170: GOSUB 2180: GOSUB 2200: LET X=150: LET Y=120: GOSUB 2290: RETURN
1670 CLS : INK 5: PLOT 44,92: DRAW 41,0: PLOT 89,92: DRAW 26,0: PLOT 119,92: DRAW 90,0: GOSUB 2300: GOSUB 2190: GOSUB 2180: LET X=90: LET Y=100: GOSUB 2320: LET X=155: LET Y=140: GOSUB 2360: RETURN
1680 CLS : INK 7: GOSUB 2170: GOSUB 2180: GOSUB 2190: GOSUB 2250: LET X=150: LET Y=125: GOSUB 2290: RETURN
1690 CLS : INK 6: GOSUB 2170: GOSUB 2180: GOSUB 2190: LET X=80: LET Y=140: GOSUB 2210: LET X=X+15: LET Y=Y+3: GOSUB 2230: LET X=X+65: GOSUB 2240: LET X=X 15: LET Y=Y 3: GOTO 2210: RETURN
1700 CLS : INK 5: PLOT 44,92: DRAW 105,0: PLOT 180,92: DRAW 30,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: GOSUB 2250: LET X=150: LET Y=90: GOSUB 2350: RETURN
1710 CLS : INK 5: PLOT 44,92: DRAW 32,0: PLOT 103,92: DRAW 9,0: PLOT 171,92: DRAW 40,0: GOSUB 2180: GOSUB 2190: GOSUB 2300: LET X=80: LET Y=90: GOSUB 2310: LET X=X+40: GOSUB 2270: RETURN
1720 CLS : INK 6: PLOT 44,92: DRAW 33,0: PLOT 104,92: DRAW 11,0: PLOT 140,92: DRAW 17,0: PLOT 183,92: DRAW 28,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: LET X=80: LET Y=90: GOSUB 2310: LET X=X+40: LET Y=Y 2: GOSUB 2260: LET Y=Y+2: LET X=X+40: GOTO 2310: RETURN
1730 CLS : INK 6: PLOT 44,92: DRAW 46,0: PLOT 120,92: DRAW 20,0: PLOT 170,92: DRAW 40,0:: GOSUB 2300: GOSUB 2190: LET X=90: LET Y=90: GOSUB 2350: LET X=X+50: GOSUB 2350: RETURN
1740 CLS : INK 7: GOSUB 2170: GOSUB 2180: GOSUB 2200: LET X=150: LET Y=120: GOSUB 2290: RETURN
1750 CLS : INK 5: GOSUB 2300: GOSUB 2190: LET X=90: LET Y=100: GOSUB 2320: LET X=150: LET Y=140: GOSUB 2210: LET X=X+15: LET Y=Y+3: PLOT 44,92: DRAW 41,0: PLOT 89,92: DRAW 26,0: PLOT 119,92: DRAW 90,0: GOSUB 2240: RETURN
1760 CLS : INK 6: GOSUB 2170: GOSUB 2190: GOSUB 2200: LET X=140: LET Y=96: GOSUB 2330: LET X=X+25: LET Y=Y+32: GOSUB 2220: RETURN
1770 CLS : INK 7: PLOT 44,92: DRAW 18,0: PLOT 140,92: DRAW 20,0: PLOT 170,92: DRAW 40,0: GOSUB 2300: GOSUB 2180: LET X=70: LET Y=90: GOSUB 2270: LET X=140: GOSUB 2350: RETURN
1780 CLS : INK 6: GOSUB 2170: GOSUB 2180: LET X=75: LET Y=135: GOSUB 2290: LET X=X+85: GOSUB 2290: LET X=X 45: LET Y=Y+20: GOSUB 2360: RETURN
1790 CLS : INK 7: PLOT 44,92: DRAW 18,0: PLOT 121,92: DRAW 16,0: PLOT 196,92: DRAW 14,0: GOSUB 2300: GOSUB 2180: LET X=70: LET Y=90: GOSUB 2270: LET X=X+75: GOSUB 2270: RETURN
1800 CLS : INK 6: GOSUB 2170: GOSUB 2190: GOSUB 2200: LET X=140: LET Y=100: GOSUB 2280: LET X=X+15: GOSUB 2280: RETURN
1810 CLS : INK 5: GOSUB 2170: GOSUB 2250: LET X=160: LET Y=120: GOSUB 2290: LET Y=Y 25: LET X=X+10: GOSUB 2280: RETURN
1820 CLS : INK 7: PLOT 44,92: DRAW 32,0: PLOT 100,92: DRAW 12,0: PLOT 170,92: DRAW 40,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: LET X=80: LET Y=88: GOSUB 2260: LET Y=Y+2: LET X=X+40: GOSUB 2270: RETURN
1830 CLS : INK 5: PLOT 44,92: DRAW 52,0: PLOT 120,92: DRAW 16,0: PLOT 160,92: DRAW 50,0: GOSUB 9013: GOSUB 2180: GOSUB 2190: LET X=100: LET Y=88: GOSUB 2260: LET X=X+40: GOSUB 2260: RETURN
1840 CLS : INK 6: GOSUB 2170: GOSUB 2180: GOSUB 2200: LET X=146: LET Y=130: GOSUB 2210: LET X=X+15: LET Y=Y+3: GOSUB 2230: RETURN
1850 CLS : INK 7: GOSUB 2170: GOSUB 2180: LET X=80: LET Y=130: GOSUB 2210: LET X=X+15: LET Y=Y+3: GOSUB 2230: LET X=X+45: LET Y=Y 3: GOSUB 2210: LET X=X+15: LET Y=Y+3: GOSUB 2230: RETURN
1860 CLS : INK 6: GOSUB 2170: GOSUB 2190: GOSUB 2200: LET X=150: LET Y=140: GOSUB 2360: RETURN
1870 CLS : INK 5: PLOT 44,92: DRAW 46,0: PLOT 120,92: DRAW 90,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: LET X=90: LET Y=90: GOSUB 2350: LET X=155: LET Y=140: GOSUB 2210: LET X=X+15: LET Y=Y+3: GOSUB 2240: RETURN
1880 CLS : INK 7: PLOT 44,92: DRAW 99,0: PLOT 168,92: DRAW 42,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: GOSUB 2200: LET X=145: LET Y=90: GOSUB 2310: RETURN
1890 CLS : INK 6: GOSUB 2170: GOSUB 2180: GOSUB 2190: GOSUB 2250: LET X=160: LET Y=100: GOSUB 2280: LET X=X+10: GOSUB 2280: RETURN
1900 CLS : INK 7: GOSUB 2170: GOSUB 2200: LET Y=100: FOR X=150 TO 170 STEP 10: GOSUB 2280: NEXT X: RETURN
1910 CLS : INK 6: PLOT 44,92: DRAW 64,0: PLOT 133,92: DRAW 78,0: GOSUB 2300: GOSUB 2190: LET X=60: LET Y=130: GOSUB 2210: LET X=110: LET Y=90: GOSUB 2310: LET X=170: LET Y=140: GOSUB 2360: RETURN
1920 CLS : INK 5: GOSUB 2300: GOSUB 2180: GOSUB 2190: GOSUB 2200: LET X=146: LET Y=90: GOSUB 2350: PLOT 44,92: DRAW 102,0: PLOT 176,92: DRAW 34,0: RETURN
1930 CLS : INK 6: GOSUB 2170: GOSUB 2180: GOSUB 2250: LET X=150: LET Y=100: GOSUB 2280: RETURN
1940 CLS : INK 5: GOSUB 2170: GOSUB 2180: GOSUB 2190: LET X=80: LET Y=130: GOSUB 2210: LET X=X+60: GOSUB 2290: LET X=X+30: GOSUB 2290: RETURN
1950 CLS : INK 6: PLOT 44,92: DRAW 92,0: PLOT 195,92: DRAW 15,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: GOSUB 2250: LET X=144: LET Y=90: GOSUB 2270: RETURN
1960 CLS : INK 6: PLOT 44,92: DRAW 70,0: PLOT 146,92: DRAW 64,0: GOSUB 2300: GOSUB 2190: LET X=60: LET Y=130: GOSUB 2210: LET X=160: GOSUB 2210: LET X=115: LET Y=90: GOSUB 2350: RETURN
1970 CLS : INK 7: GOSUB 2170: GOSUB 2180: GOSUB 2250: LET X=140: LET Y=120: GOSUB 2290: LET X=X+30: LET Y=Y+20: GOSUB 2360: RETURN
1980 CLS : INK 5: PLOT 44,92: DRAW 94,0: PLOT 196,92: DRAW 15,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: GOSUB 2200: LET X=145: LET Y=90: GOSUB 2270: LET X=X+12: LET Y=Y+50: GOSUB 2290: RETURN
1990 CLS : INK 6: PLOT 44,92: DRAW 111,0: PLOT 180,92: DRAW 31,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: GOSUB 2250: LET X=160: LET Y=88: GOSUB 2260: RETURN
2000 CLS : INK 7: GOSUB 2170: GOSUB 2190: GOSUB 2200: LET X=140: LET Y=130: GOSUB 2340: LET Y=Y 8: LET X=X+30: GOSUB 2290: RETURN
2010 CLS : INK 6: PLOT 44,92: DRAW 36,0: PLOT 110,92: DRAW 100,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: LET X=80: LET Y=90: GOSUB 2350: LET X=140: LET Y=130: GOSUB 2210: LET X=X+15: LET Y=Y+3: GOSUB 2220: RETURN
2020 CLS : INK 5: GOSUB 2170: GOSUB 2190: GOSUB 2200: LET X=140: LET Y=130: GOSUB 2210: LET X=X+18: LET Y=Y+10: GOSUB 2340: RETURN
2030 CLS : INK 5: PLOT 44,92: DRAW 16,0: PLOT 90,92: DRAW 36,0: PLOT 130,92: DRAW 24,0: PLOT 158,92: DRAW 54,0: GOSUB 2300: GOSUB 2180: GOSUB 2190: LET X=60: LET Y=90: GOSUB 2350: LET X=130: LET Y=100: GOSUB 2320: RETURN
2040 CLS : INK 7: GOSUB 2170: GOSUB 2180: GOSUB 2190: LET X=60: LET Y=150: GOSUB 2360: LET X=X+100: GOSUB 2360: LET Y=Y 20: LET X=X 50: GOSUB 2290: RETURN
2050 POKE 23613,0: CLS : FOR A=15 TO 21: PRINT PAPER 4;AT A,0;" ": NEXT A
2060 INK 6: FOR A=1 TO 14: POKE 23613,0: PRINT AT 13,A;" ţ";AT 14,A;" ţ": BEEP .01,A:
PAUSE 10: NEXT A2070 FOR A=1 TO 14: BEEP .001,A*2: PRINT AT A,13;"ţţţţţ";AT A 1,13;" ţ ": NEXT A
2080 FOR i=1 TO 7: PRINT INK i;AT 4+i,2;"Hiaba futsz,";AT 4+i,17;"Eletednek vege": BEEP .02,i: NEXT i
2082 PRINT INK 7;AT 16,3;"Tanacsok az uj jatekhoz: ": RANDOMIZE USR 65055
2083 PRINT INK 3;AT 18,0;" Allandoan ellenőrizd az erődet": RANDOMIZE USR 65055
2084 PRINT INK 2;AT 19,0;" ne ugralj feleslegesen ide oda": RANDOMIZE USR 65055
2085 PRINT INK 5;AT 20,0;" a felvett targyakat cserelgesd": RANDOMIZE USR 65055
2086 PRINT INK 4;AT 19,0;" a tArgyakat adogasd,eleterőert": RANDOMIZE USR 65055
2088 PRINT 0;"Uj jatekhoz nyomd le az ENTER t"
2090 POKE 23613,0: PAUSE 0
2100 RUN
2110 FOR A=0 TO 11 STEP 3: POKE 23613,0: PRINT AT A,A; INK 5;" Gratulalok !!";AT A+1,A+1; INK 6;" sikerult a ";AT A+2,A+2; INK 7;"Bolcsek Konyvet";AT a+3,a+3;" megtalalni!!": NEXT A
2120 POKE 23613,0: PRINT ' INK 4;"idezet a BOlcsek KOnyveből:"
2130 PRINT ' INK 7;" Erős var a mi Istenunk,es az Intelligenciank az elsődleges fegyverUnk!!"
2140 PRINT '' INK 6;"Es most uj kalandra fel !!!!"
2150 PRINT 0;" Nyomd le az ENTER t "
2160 POKE 23613,0: PAUSE 0: GOTO 430
2170 POKE 23613,0: PLOT 0,48: DRAW 44,44: DRAW 167,0: DRAW 44, 44: DRAW 44,44: DRAW 0,83: PLOT 44,92: DRAW 0,83: RETURN
2180 POKE 23613,0: PLOT 10,58: DRAW 0,50: DRAW 20,20: DRAW 0, 50: DRAW 3, 3: DRAW 0,46: DRAW 14, 14: DRAW 0, 46: PLOT 24,58+38: DRAW 0,2: DRAW 1, 1: DRAW 0, 2: RETURN
2190 POKE 23613,0: PLOT 245,58: DRAW 0,50: DRAW 20,20: DRAW 0, 50: DRAW 3, 3: DRAW 0,46: DRAW 14, 14: DRAW 0, 46: PLOT 231,58+38: DRAW 0,2: DRAW 1, 1: DRAW 0, 2: RETURN
2200 POKE 23613,0: PLOT 120,92: DRAW 0,50: DRAW 30,0: DRAW 0, 50: DRAW 3,0: DRAW 0,46: DRAW 24,0: DRAW 0, 46: PLOT 113,92+26: DRAW 1,0: DRAW 0,1: DRAW 1,0: RETURN
2210 POKE 23613,0: PLOT X,Y: DRAW 36,0: DRAW 0,2: DRAW 36,0: DRAW 0, 2: PLOT X+6,Y: DRAW 0, 6: DRAW 1,0: DRAW 0,6: PLOT X+30,Y: DRAW 0, 6: DRAW 1,0: DRAW 0,6: RETURN
2220 POKE 23613,0: PLOT X,Y: DRAW 4,0: DRAW 3,3: DRAW 10,0: DRAW 4, 4: RETURN
2230 POKE 23613,0: PLOT X,Y: DRAW 8,0: DRAW 4,0: DRAW 0,8: DRAW 5,0: DRAW 3,8: DRAW 4,0: DRAW 3, 8: DRAW 5,0: RETURN
2240 POKE 23613,0: PLOT X,Y: DRAW 4,0: DRAW 1,5: DRAW 3,6: DRAW 12,0: DRAW 3, 6: DRAW 1, 5: RETURN
2250 POKE 23613,0: PLOT 80,130: DRAW 50,0: DRAW 0,6: DRAW 50,0: DRAW 0, 6: PLOT 84,130: DRAW 0, 20: DRAW 3,0: DRAW 2,8: DRAW 1,8: DRAW 1,4: PLOT 126,130: DRAW 0, 20: DRAW 3,0: DRAW 2,8: DRAW 1,8: DRAW 1,4: PLOT 89,112: DRAW 32,0: RETURN
2260 POKE 23613,0: PLOT X,Y: DRAW 2,0: DRAW 2,2: DRAW 5,0: DRAW 2, 2: DRAW 2,0: DRAW 2,2: DRAW 2,0: DRAW 4,4: DRAW 0,30: DRAW 4, 4: DRAW 0, 30: DRAW 0,30: DRAW 21,0: DRAW 4,4: DRAW 21,0: DRAW 21,0: DRAW 4, 4: DRAW 0, 30: DRAW 2,0: DRAW 2, 2: PLOT X 1,Y+5: DRAW 15,0: DRAW 0,24: DRAW 15,0: DRAW 0, 24: PLOT X+11,Y+16: DRAW 0,2: RETURN
2270 POKE 23613,0: FOR A=5 TO 25 STEP 10: PLOT X+34,Y+A: DRAW 3,0: DRAW 0,3: DRAW 3,0: DRAW 0, 3: PLOT X+2,Y+A: DRAW 3,0: DRAW 0,3: DRAW 3,0: DRAW 0, 3: NEXT A: PLOT X,Y: DRAW 2, 2: DRAW 2,0: DRAW 2,2: DRAW 30,0: DRAW 2, 2: DRAW 2,0: DRAW 2,2: DRAW 6,0: DRAW 4,4: DRAW 0,34: DRAW 4, 4: DRAW 0, 34: DRAW 0,34: DRAW 55,0: DRAW 4,4: DRAW 55,0: DRAW 55,0: DRAW 4, 4: DRAW 0, 34: DRAW 6,0: PLOT X 4,Y+3: DRAW 48,0: DRAW 0,7: DRAW 48,0: DRAW 0, 7: PLOT X 4,Y+13: DRAW 48,0: DRAW 0,7: DRAW 48,0: DRAW 0, 7: PLOT X 4,Y+23: DRAW 48,0: DRAW 0,7: DRAW 48,0: DRAW 0, 7: RETURN
2280 POKE 23613,0: PLOT X,Y: DRAW 7,0: DRAW 0,7: DRAW 7,0: DRAW 0, 7: PLOT X+3,Y+5: PLOT X+2,Y+2: PLOT X+5,Y+2: RETURN
2290 POKE 23613,0: PLOT X,Y: DRAW 24,0: DRAW 0,16: DRAW 24,0: DRAW 0, 16: PLOT X+2,Y+2: DRAW 20,0: DRAW 0,12: DRAW 20,0: DRAW 0, 12: RETURN
2300 POKE 23613,0: PLOT 0,48: DRAW 44,44: DRAW 0,83: PLOT 255,48: DRAW 44,44: DRAW 0,83: RETURN
2310 POKE 23613,0: FOR A=3 TO 23 STEP 10: PLOT X+8,Y+A+3: DRAW 1,0: DRAW 0,1: DRAW 1,0: PLOT X+1,Y+A: DRAW 16,0: DRAW 0,7: DRAW 16,0: DRAW 0, 7: NEXT A: PLOT X,Y: DRAW 2, 2: DRAW 2,0: DRAW 2,2: DRAW 6,0: DRAW 2, 2: DRAW 2,0: DRAW 2,2: DRAW 2,0: DRAW 4,4: DRAW 0,34: DRAW 4, 4: DRAW 0, 34: DRAW 0,34: DRAW 22,0: DRAW 4,4: DRAW 22,0: DRAW 22,0: DRAW 4, 4: DRAW 0, 34: DRAW 2,0: RETURN
2320 POKE 23613,0: PLOT X+24,Y+8: DRAW 0,5: PLOT X,Y+8: DRAW 0,5: FOR A=2 TO 14 STEP 6: PLOT X+12,Y+A+2: PLOT X+6,Y+A: DRAW 12,0: DRAW 0,4: DRAW 12,0: DRAW 0, 4: NEXT A: PLOT X,Y: DRAW 6,0: DRAW 2, 10: DRAW 2,0: DRAW 2,10: DRAW 30,0: DRAW 6,0: DRAW 2, 10: DRAW 2,0: DRAW 2,10: DRAW 10,0: DRAW 4,4: DRAW 0,20: DRAW 4, 4: DRAW 0, 20: DRAW 0,20: DRAW 56,0: DRAW 4,4: DRAW 56,0: DRAW 56,0: DRAW 4, 4: DRAW 0, 20: DRAW 10,0: PLOT X+3,Y: DRAW 0,20: PLOT X+21,Y: DRAW 0,20: RETURN
2330 POKE 23613,0: PLOT X 5,Y+28: DRAW 60,0: DRAW 0,3: DRAW 60,0: DRAW 0, 3: PLOT X+14,Y: DRAW 0,8: DRAW 22,0: DRAW 0, 8: FOR A=16 TO 34 STEP 4: PLOT X+A,Y+1: DRAW 0,6: DRAW 2,0: DRAW 0, 6: DRAW 2,0: NEXT A: PLOT X,Y: DRAW 0,28: DRAW 50,0: DRAW 0, 28: DRAW 6,0: DRAW 0, 3: DRAW 62,0: DRAW 0,3: DRAW 62,0: DRAW 16,0: DRAW 0,20: DRAW 30,0: DRAW 0, 20: RETURN
2340 POKE 23613,0: PLOT X 7,Y 7: DRAW 0,14: DRAW 14,0: DRAW 0, 14: DRAW 14,0: CIRCLE X,Y,5: PLOT X,Y: DRAW 0,3: PLOT X,Y: DRAW 2, 2: RETURN
2350 POKE 23613,0: CIRCLE X+15,Y+20,2: PLOT X+15,Y+22: DRAW 0,12: PLOT X+11,Y+14: DRAW 0,20: DRAW 8,0: DRAW 0, 20: DRAW 8,0: PLOT X+1,Y+60: DRAW 14,8: DRAW 14, 8: DRAW 28,0: DRAW 0, 2: DRAW 28,0: DRAW 0,2: PLOT X,Y: DRAW 0,4: DRAW 4,0: DRAW 0,4: DRAW 4,0: DRAW 0,30: DRAW 3,0: DRAW 0,20: DRAW 20,0: DRAW 0, 20: DRAW 3,0: DRAW 0, 30: DRAW 4,0: DRAW 0, 4: DRAW 4,0: DRAW 0, 4: DRAW 30,0: PLOT X+8,Y+41: DRAW 0,14: DRAW 14,0: DRAW 0, 14: DRAW 14,0: CIRCLE X+15,Y+48,5: PLOT X+15,Y+48: DRAW 0,3: PLOT X+15,Y+48: DRAW 2, 2: RETURN
2360 POKE 23613,0: PLOT X+3,Y 2: DRAW 24,0: DRAW 0, 15: DRAW 24,0: DRAW 0,15: PLOT X+10,Y: DRAW 6,6: DRAW 6, 6: PLOT X,Y: FOR A=1 TO 15: DRAW 1,1: DRAW 1, 1: NEXT A: FOR A=1 TO 10: DRAW 1, 1: DRAW 1, 1: NEXT A: FOR A=1 TO 15: DRAW 1,1: DRAW 1, 1: NEXT A: FOR A=1 TO 10: DRAW 1,1: DRAW 1,1: NEXT A: RETURN
DÁMAJÁTÉK SPECTRUM BASICBAN
Leírás:
Ugord át az ellenfél korongjait, vedd le, ha eléred az ellenfél alapvonalát, akkor a korongod dámává változik, és akkor minden irányban - átlósan - mozoghatsz a pályán. Ha minden ellenséges korongot levettél, vagy az nem tud lépni, akkor győztél...

1 REM DAMAJATEK (c) NYL. 2000
2 REM 0 AS SOR
3 POKE PEEK 23635+256*PEEK 23636+1,0
8 REM NAGYBETU
10 POKE 23658,8: GOTO 40
20 REM KODBETOLTES MAGNOROL ES MICRODRIVE ROL
28 BRIGHT 0: BORDER 1: PAPER 1: INK 1: CLEAR 64099: POKE 23658,8: PRINT INK 7; PAPER 0; BRIGHT 1; FLASH 1;AT 9,9;" ";AT 10,9;" KODOT TOLTOK! ";AT 11,9;" ": BEEP .5, 10: LOAD *"M";1;"CHARACTER"CODE 64100,1437: GOTO 40
30 BRIGHT 0: BORDER 1: PAPER 1: INK 1: CLEAR 64099: POKE 23658,8: PRINT INK 7; PAPER 0; BRIGHT 1; FLASH 1;AT 9,9;" ";AT 10,9;" KODOT TOLTOK! ";AT 11,9;" ": BEEP .5, 10: LOAD "KOD"CODE 64100,1437
40 FOR a=1 TO 10: BEEP .05,24: BEEP .05,31: NEXT a: BRIGHT 1: BORDER 0: PAPER 0: INK 7: CLS : LET pr=64100: GOSUB 1440: GOTO 1260
50 REM ALAPHELYZET
60 LET jatekos=0: LET spectrum=0: FOR g=10 TO 90 STEP 10
70 FOR h=1 TO 9: LET ch=g+h
80 IF a$(ch)>"E" THEN GOTO 120
90 IF a$(ch)=c$ OR a$(ch)=i$ THEN LET spectrum=spectrum+1
100 IF a$(ch)=h$ OR a$(ch)=k$ THEN LET jatekos=jatekos+1
110 PRINT AT 2*(g/10),2*(h 1);p$(CODE a$(ch) 64);AT 2*(g/10)+1,2*(h 1);q$(CODE a$(ch) 64)
120 NEXT h: NEXT g
130 PAPER 1: PRINT INK 2;AT 7,21;"SZAMITOGEP";AT 8,22;"KORONG ";AT 9,23;"SZAMA:";spectrum;" "; INK 5;AT 11,21;"JATEKOS";AT 12,22;"KORONG ";AT 13,23;"SZAMA:";jatekos;" "
140 PRINT AT 15,23; INK 3;lepes;" LEPES"; INK 7; PAPER 2;AT 2,1;"8";AT 4,1;"7";AT 6,1;"6";AT 8,1;"5";AT 10,1;"4";AT 12,1;"3";AT 14,1;"2";AT 16,1;"1";AT 18,3;"A B C D E F G H"
150 IF NOT jatekos THEN GOTO 820
160 IF NOT spectrum THEN GOTO 800
170 PAPER 0: RETURN
180 REM KORONGOK ELHELYEZESE
190 CLS : FOR a=1 TO 18: PRINT AT a,1; PAPER 2; INK 0;s$( TO 18): NEXT a
200 FOR a=2 TO 17: PRINT AT a,2; PAPER 6; INK 0;s$( TO 16): NEXT a
210 FOR a=1 TO 21: PRINT AT a,21; PAPER 1;s$( TO 11): NEXT a
220 PAPER 1: LET z$="02220102DAMAJATEK": LET s=USR pr: PRINT AT 5,21;"(c) NYL.2000."
230 PRINT AT 16,26;"6";AT 17,26;"ţ";AT 18,24;"5ţ0ţ8";AT 19,26;"ţ";AT 20,26;"7"
240 PAPER 0: RETURN
250 REM SZAMITOGEP LEP
260 GOSUB 60
270 BEEP .05,7: BEEP .05,11: BEEP .05,14: LET z$="20000102ţţţţGondolkodomţţţţ": LET s=USR pr
280 REM SZAMITOGEP GONDOLKODIK
290 LET flag=0: FOR a=1 TO 12
300 LET loc=b(a)
310 IF a$(loc) <> c$ THEN IF a$(loc) <> i$ THEN GOTO 440
320 FOR b=1+(2 AND a$(loc)=c$) TO 4
330 LET dir=x(b)
340 IF a$(loc+dir) <> h$ THEN IF a$(loc+dir) <> k$ THEN GOTO 420
350 IF a$(loc+2*dir) <> b$ THEN GOTO 420
360 LET a$(loc+2*dir)=a$(loc)
370 LET a$(loc)=b$: LET a$(loc+dir)=b$
380 LET b(a)=loc+2*dir: LET loc=loc+2*dir
390 IF loc>80 THEN GOTO 850
400 GOSUB 60: LET jelez=1
410 GOTO 320
420 NEXT b
430 IF jelez THEN GOTO 880
440 NEXT a
450 REM JATEKOS JO LEPESE
460 FOR a=1 TO 12
470 LET loc=b(a)
480 IF a$(loc) <> c$ THEN IF a$(loc) <> i$ THEN GOTO 640
490 FOR b=1+(2 AND a$(loc)=c$) TO 4
500 LET sor=x(b)
510 IF a$(loc+sor) <> b$ THEN GOTO 630
520 LET t$=a$: LET t$(loc+sor)=t$(loc): LET t$(loc)=b$
530 FOR c=1 TO 12
540 LET pos=c(c)
550 IF t$(pos) <> h$ THEN IF t$(pos) <> k$ THEN GOTO 610
560 FOR d=1+(2 AND t$(pos)=h$) TO 4
570 LET sor1=x(d)
580 IF t$(pos sor1) <> c$ THEN IF t$(pos sor1) <> i$ THEN GOTO 600
590 IF t$(pos 2*sor1)=b$ THEN GOTO 630
600 NEXT d
610 NEXT c
620 LET a$=t$: GOTO 740
630 NEXT b
640 NEXT a
650 REM SZAMITOGEP LEP
660 FOR a=1 TO 12
670 LET loc=b(a)
680 IF a$(loc) <> c$ THEN IF a$(loc) <> i$ THEN GOTO 780
690 IF RND<.25 THEN IF a$(loc)=i$ THEN GOTO 780
700 FOR b=1+(2 AND a$(loc)=c$) TO 4
710 LET sor=x(b)
720 IF a$(loc+sor) <> b$ THEN GOTO 770
730 LET a$(loc+sor)=a$(loc): LET a$(loc)=b$
740 LET b(a)=loc+sor
750 IF loc+sor>80 THEN LET a$(loc+sor)=i$
760 GOTO 860
770 NEXT b
780 NEXT a
790 REM JATEKOS GYŐZOTT
800 GOSUB 840: LET z$="20030202GYŐZTEL": LET s=USR pr: GOTO 1620
810 REM SZAMITOGEP GYOZOTT
820 GOSUB 840: LET z$="20030202GYŐZTEM": LET s=USR pr: GOTO 1620
830 REM GYOZELMI ZENE
840 PRINT AT 20,0;s$( TO 20);AT 21,0;s$( TO 20): BEEP .2,0: BEEP .1,0: BEEP .1,0: BEEP .13,4: BEEP .13,0: BEEP .13,4: BEEP .4,7: RETURN
850 LET a$(loc)=i$
860 GOSUB 60
870 REM JATEKOS LEP
880 BEEP .05,0: BEEP .05,4: BEEP .05,7: BEEP .1,12: LET z$="20000102"+s$( TO 20): LET s=USR pr: LET z$="20020102
ţţţţ LEPJ ţţţţ": LET s=USR pr890 LET lepes=lepes+1
900 REM LEPESEK KURZORRAL KIJELOLES 0 VAL, FELADAS R EL.
910 LET x=16: LET y=16
920 FOR a=1 TO 2
930 PRINT AT x,y; OVER 1; PAPER 8; INK 8; FLASH 1;" ";AT x+1,y;" "
940 LET v$=INKEY$: IF v$="" THEN GOTO 940
950 LET ox=x: LET oy=y
960 IF v$="R" THEN GOTO 820
970 LET y=y+(2 AND v$="8" AND y<16) (2 AND v$="5" AND y>2)
980 LET x=x+(2 AND v$="6" AND x<16) (2 AND v$="7" AND x>2)
990 PRINT AT ox,oy; OVER 1; PAPER 8; INK 8; FLASH 0;" ";AT ox+1,oy;" "
1000 IF v$ <> "0" THEN GOTO 930
1010 BEEP .2,12*a: LET xpos=x: LET ypos=y
1020 LET y(a)=(xpos/2): LET z(a)=(ypos/2)+1
1030 LET x=xpos: LET y=ypos: NEXT a
1040 REM LEPES KISZAMITASA
1050 LET from=10*y(1)+z(1): LET dest=10*y(2)+z(2)
1060 REM HIBAS LEPES,MOROG A SZAMITOGEP
1070 IF from<12 OR from>89 OR dest<12 OR dest>89 THEN BEEP .5, 30: GOTO 910
1080 IF a$(from) <> h$ AND a$(from) <> k$ THEN BEEP .5, 30: GOTO 910
1090 IF a$(dest) <> b$ THEN BEEP .5, 30: GOTO 910
1100 REM POZICIO TORLES
1110 LET a$(dest)=a$(from)
1120 FOR a=1 TO 12
1130 IF c(a)=from THEN LET c(a)=dest
1140 NEXT a
1150 IF dest<20 THEN LET a$(dest)=k$
1160 LET a$(from)=b$
1170 IF ABS (dest from) <= 11 THEN GOTO 260
1180 LET a$((from+dest)/2)=b$
1190 GOSUB 60
1200 REM TOBBSZOROS LEPES
1210 PRINT 1; BRIGHT 1;AT 1,1;"LEPSZ ELŐRE EGYET? (i/n)"
1220 LET j$=INKEY$: IF j$ <> "I" AND j$ <> "N" THEN GOTO 1220
1230 INPUT "": BEEP .05,20: IF j$="I" THEN GOTO 880
1240 GOTO 270
1250 REM BEALLITASOK
1260 LET a$="": LET t$="": DIM s$(32): DIM p$(5,10): DIM q$(5,10): DIM b(12): DIM c(12): DIM x(4): DIM y(2): DIM z(2)
1270 LET lepes=0
1280 RESTORE 1390: FOR a=1 TO 10: READ z$: LET a$=a$+z$: NEXT a
1290 FOR a=1 TO 5: READ p$(a),q$(a): NEXT a
1300 FOR a=1 TO 12: READ sq: LET b(a)=sq: LET c(a)=101 sq: NEXT a
1310 FOR a=1 TO 4: READ dx: LET x(a)=dx: NEXT a
1320 LET i$="A": LET c$="B": LET b$="C": LET h$="D": LET k$="E"
1330 REM ELSO LEPES
1340 CLS : LET z$="1000
0102AKARSZ ELŐSZOR LEPNI (i/n)": LET s=USR pr1350 LET g$=INKEY$: IF g$ <> "I" AND g$ <> "N" THEN GOTO 1350
1360 INPUT "": BEEP .2,25: IF g$="I" THEN GOSUB 190: GOTO 860
1370 GOSUB 190: GOTO 260
1380 REM A GONDOLKODO ADATOK
1390 DATA "WWWWWWWWWW","WMBMBMBMBW","WBMBMBMBMW","WMBMBMBMBW","WCMCMCMCMW","WMCMCMCMCW","WDMDMDMDMW","WMDMDMDMDW","WDMDMDMDMW","WWWWWWWWWW"
1400 DATA "ţţ","ţţ","ţţ","ţţ"," "," ","ţţ","ţţ","ţţ","ţţ"
1410 DATA 28,24,22,26,33,37,39,35,19,15,17,13
1420 DATA 11, 9,9,11
1430 REM MAGYARAZAT
1440 POKE 23606,88: POKE 23607,251: LET z$="06030203KERED A JATEK ": LET s=USR pr: LET z$="08060102MAGYARAZATAT? (i/n)": LET s=USR pr
1450 LET i$=INKEY$: IF i$ <> "I" AND i$ <> "N" THEN GOTO 1450
1460 IF i$="N" THEN BEEP .2,40: CLS : RETURN
1470 REM ELSO OLDAL
1480 BEEP .2,40: CLS : LET z$="00060203DAMAJATEK:": LET s=USR pr
1490 PRINT AT 4,0;" DAMA REGI TABLASJATEK,MAR AZ OKORBAN IS ISMERTEK, ES JATSZOT TAK."''"CSAK FERD
EN LEHET ELŐRE MENNI,AZ ELLENFEL KORONGJAIT ATUGRSSAL LEHET LEVENNI.ILYENKOR LEHETŐSEG VAN MEGEGYSZER LEPNI."1500 PRINT '"IRANYITAS A KURZORGOMBOKKAL LE HETSEGES: 6=ţ,7=ţ,5=ţ ţS 8=ţ,ţS A '0' VAL IRJUK BE A LEPEST."
1510 PRINT '"HA VISZONT HIBASAN AKARTUNK VALAHOVA LEPNI,HIBAJELZEST KAPUNK."
1570 REM VAROK A GOMBNYOMASRA
1580 PRINT 1;AT 1,3; INK INT (RND*7)+1; BRIGHT 1;"FOLYTATASHOZ EGY GOMB ţţţţţ"
1590 IF INKEY$="" THEN PAUSE 4: GOTO 1580
1600 BEEP .1,18: BEEP .1,22: BEEP .2,30: CLS : RETURN
1610 REM JATEK VEGE
1620 PAUSE 250: PRINT 1;AT 1,2; BRIGHT 1; INK 5;"MEGEGYSZER? (i/n)"
1630 LET l$=INKEY$: IF l$ <> "I" AND l$ <> "N" THEN GOTO 1630
1640 BEEP .2,40: IF l$="I" THEN GOTO 1260
1660 STOP
CSATAHAJÓK - ÚJ TÍPUSÚ TORPEDÓ JÁTÉK
Leírás:
A flottad 8 hajóból áll:
1 anyahajó
2 páncélos
2 romboló
3 tengeralattjáró
A játék, és beállítások:
A tűz koordinátát így is beírhatod: a0 vagy 3b, és az Enter lenyomásával zárd le.
Egymás után három lövést adhatsz le. A találatot a Spectrum kijelzi, és hanghatást is ad.

1 REM csatahajok NYITRAI 99'
2 REM POKE 23606,150
3 REM POKE 23607,162
4 REM uKEZETES BET3K
5 REM " u A Â Ř ř Ş 3 y
6 REM BETUKOD 41852,768
7 REM UDG CODE USR "A",168
50 GO TO 2000
1000 REM KERET
1010 INK 6: PLOT 20,30: DRAW 225,0: DRAW 0,115: DRAW 225,0: DRAW 0, 115
1020 RETURN
2000 REM ITT KEZDUNK
2001 REM CSATAHAJOK
2002 REM (c) NYITRAI SOFT 1999'
2005 RESTORE : GO TO VAL "9000"
2010 LET a$="": LET c=VAL "9": GO SUB VAL "9880"
2020 FOR s=w TO e
2030 DIM d(e): INPUT (a$)'"HAJOPOZICIO BEALLITAS: "'(s$(s,g+w TO ));" : ";LINE t$: LET a$=""
2040 GO SUB VAL "8200"
2045 IF NOT f THEN GO TO VAL "2060"
2050 IF a$="" THEN LET a$="CSAK ""a j"" uS ""0 9""+ENTER t. "
2055 GO TO VAL "2030"
2060 IF u$(x,y)<>" " THEN LET a$="MINDEN HAJO HARCRA KESZ .": GO TO VAL "2030"
2070 IF s>z THEN GO TO VAL "2210"
2080 INPUT (a$);"ELHELYEZES: VISSZ' ' VAGY FUGG'|'v/f ";LINE t$: LET a$=""
2090 IF t$="F" THEN LET t$="f"
2100 IF t$="V" THEN LET t$="v"
2110 IF t$<>"f" AND t$<>"v" THEN LET a$="CSAK ""f"" VAGY ""v"" LEHET.": GO TO VAL "2080"
2120 FOR k=o TO VAL s$(s,w) w
2130 LET x=x+(t$="v")*(k>o): LET y=y+(t$="f")*(k>o)
2140 GO SUB VAL "8100": IF f THEN LET a$="EZ LEHETETLEN,ISMETELD MEG ! ": GO TO VAL "2030"
2150 LET d(w+g*k)=x: LET d(g+g*k)=y
2160 NEXT k
2170 FOR i=w TO VAL s$(s,w)
2180 LET x=d(g*i w): LET y=d(g*i)
2190 LET u$(x,y)=CHR$ z: PRINT AT VAL "17" y,e+x; INK w; PAPER g;"÷"
2200 NEXT i: NEXT s: GO TO VAL "2500"
2210 GO SUB VAL "8100": IF f THEN LET a$="ITT KEVES A HELY! ": GO TO VAL "2030"
2220 GO TO VAL "2190"
2502 PRINT AT q,o;"NYOMD AZ ENTER t ": PAUSE o: PRINT AT q,o;b$
2505 PRINT AT q,o;"HARCRA KESZULJ,ENTER t ": PAUSE o: PRINT AT q,o;b$
2510 FOR i=m TO VAL "16": PRINT AT i,VAL "0";b$: NEXT i
2520 LET c=n: GO SUB VAL "9880"
2530 LET c=VAL "17": GO SUB VAL "9880"
2550 LET l=VAL "11": LET c=o: LET t$="1o1/41/2": PRINT AT l,o;t$; INK 5;AT 4,3;"JATEKOS TABLAJA"
2555 GO SUB VAL "1000"
2560 LET l=VAL "11": LET c=VAL "29": LET t$="11/41/2": PRINT AT l,c;t$;AT 17,12;"SZAMITOGEP TABLAJA
"
2570 FOR x=g TO VAL "11": FOR y=g TO VAL "11"
2580 IF CODE u$(x,y)=z THEN PRINT AT VAL "17" y,x+m; INK w; PAPER g;"÷"
2590 NEXT y: NEXT x
2595 PRINT INK 2;AT VAL "19",o;"KEZDJUK A HARCOT!!!"
2600 FOR x=w TO h: LET u$(x,w)=CHR$ w: LET u$(x,h)=CHR$ w: NEXT x
2610 FOR y=g TO VAL "11": LET u$(w,y)=CHR$ w: LET u$(h,y)=CHR$ w: NEXT y
2620 LET start=(VAL ".5"<RND)
2650 PRINT INK 5;AT o,VAL "17";"TALALATAID: 0"; INK 6;AT g,VAL "16";" TAL"LATAIM: 0"
2660 PRINT AT q VAL "1",o;"NYOMD AZ ENTER t "' FLASH w;"ES" AND start;"ADD LE" AND NOT start; FLASH o;" MAJD A LOVESEKET."
2670 FOR i=o TO w: PLOT VAL "232"*(w start),VAL "80"+i: DRAW VAL "23"+e*start,o: NEXT i
2690 PAUSE o: FOR i=VAL "19" TO q: PRINT AT i,o;b$: NEXT i
2700 IF NOT start THEN GO TO VAL "4000"
3000 LET me=o: GO SUB VAL "8970"
3010 FOR k=w TO m
3020 GO SUB VAL "8960": LET a$=""
3030 BEEP VAL ".03",q: PAUSE m: BEEP VAL ".03",q: INPUT (a$);"T3Z KOORDINATAK ? ";LINE t$: LET a$=""
3035 GO SUB VAL "8200": IF NOT f THEN GO TO VAL "3045"
3040 IF a$="" THEN LET a$="IRD BE ""a j"" ES ""0 9"" ENTERT. "
3042 GO TO VAL "3030"
3045 IF CODE v$(x,y)=w THEN LET a$="M"R L
řTTED!": GO TO VAL "3030"3050 IF CODE v$(x,y)=z THEN LET hit=w: LET enemy=enemy+w
3060 IF CODE v$(x,y)<>z THEN LET hit=o
3070 LET v$(x,y)=CHR$ w
3080 GO SUB VAL "8500"
3090 PRINT AT o,VAL "30";enemy: IF enemy=VAL "17" THEN GO TO VAL "3500"
3100 NEXT k
3400 GO TO VAL "4000"
3500 PRINT AT VAL "20",o; FLASH w;" MINDET ELSULLYESZTETTEL "
3510 INPUT "UJ JATEKOT ? ";LINE t$: LET t$=CHR$ CODE t$
3520 IF t$="i" OR t$="I" THEN RUN
3530 IF t$="n" OR t$="N" THEN GO TO VAL "9999"
3540 GO TO VAL "3510"
4000 LET me=w: GO SUB VAL "8970"
4010 FOR k=w TO m: GO SUB VAL "8960"
4020 IF trail THEN GO TO VAL "4160"
4030 GO SUB VAL "8900"
4040 IF CODE u$(x,y)=w THEN GO TO VAL "4030"
4050 GO SUB VAL "8450"
4070 IF NOT hit THEN GO TO VAL "4470"
4080 LET sunk=sunk+w: PRINT AT g,VAL "30";sunk: IF sunk=VAL "17" THEN GO TO VAL "4800"
4090 LET acc=o: LET end=w: DIM h(VAL "4",g)
4100 GO SUB VAL "8400"
4110 GO SUB VAL "8300"
4120 IF f THEN GO TO VAL "4460"
4130 LET trail=w: LET tries=o
4140 LET dir=w+INT (n*RND)
4145 LET x1=x: LET y1=y
4150 GO TO VAL "4470"
4160 IF sense THEN GO TO VAL "4300"
4170 LET dir=dir+w: IF dir=z THEN LET dir=w
4180 LET tries=tries+w: IF tries=z THEN GO TO VAL "4430"
4185 LET x=x1+(dir=w) (dir=g): LET y=y1+(dir=m) (dir=n)
4190 IF CODE u$(x,y)=w THEN GO TO VAL "4170"
4200 GO SUB VAL "8450"
4220 IF NOT hit THEN GO TO VAL "4470"
4230 LET sunk=sunk+w: PRINT AT g,VAL "30";sunk: IF sunk=VAL "17" THEN GO TO VAL "4800"
4240 GO SUB VAL "8400"
4250 GO SUB VAL "8300"
4260 IF f THEN GO TO VAL "4460"
4270 LET sense=w: LET end=w
4280 LET dx=h(g,w) h(w,w): LET dy=h(g,g) h(w,g)
4290 GO TO VAL "4470"
4300 GO SUB VAL "8800"
4310 IF CODE u$(x,y)=w THEN GO TO VAL "4400"
4320 GO SUB VAL "8450"
4340 IF NOT hit THEN GO TO VAL "4500"
4350 LET sunk=sunk+w: PRINT AT g,VAL "30";sunk: IF sunk=VAL "17" THEN GO TO VAL "4800"
4360 GO SUB VAL "8400"
4370 GO SUB VAL "8300"
4380 GO TO VAL "4470" VAL "10"*f
4400 LET end= w
4410 GO SUB VAL "8800"
4420 IF CODE u$(x,y)<>w THEN GO TO VAL "4320"
4430 LET k=k w
4440 FOR i=w TO e: IF acc=VAL w$(i) THEN LET w$(i)="0": GO TO VAL "4460"
4450 NEXT i
4460 GO SUB VAL "8700"
4470 NEXT k
4480 GO TO VAL "3000"
4500 IF end= w THEN GO TO VAL "4460"
4510 LET end= w: GO TO VAL "4470"
4
800 PRINT AT VAL "20",o; FLASH w;" LEGYŐZTELEK "4810 GO TO VAL "3510"
8001 IF c+LEN t$>VAL "32" THEN LET t$=t$( TO VAL "32" c)
8010 LET xx=c+VAL "16383"+VAL "32"*(l+VAL "56"*INT (l/VAL "8"))
8020 LET f=(l=VAL "7" OR l=VAL "15"): LET chars=PEEK VAL "23606"+VAL "256"*PEEK VAL "23607"
8030 FOR i=w TO LEN t$
8040 LET a=chars+VAL "8"*CODE t$(i)
8050 LET xx=xx+w
8060 FOR j=o TO VAL "15"
8070 POKE xx+VAL "256"*j (VAL "2016" VAL "1792"*f)*(j>VAL "7"),PEEK (a+j/VAL "2")
8080 NEXT j: NEXT i: RETURN
8110 LET f=o: IF u$(x,y)<>" " THEN LET f=w: RETURN
8115 IF x<g OR x>VAL "11" OR y<g OR y>VAL "11" THEN LET f=w: RETURN
8120 FOR i= w TO w STEP g
8130 IF u$(x+i,y)<>" " THEN LET f=w
8140 IF u$(x,y+i)<>" " THEN LET f=w
8150 NEXT i
8170 RETURN
8210 LET f=o
8220 IF LEN t$<>g THEN LET f=w: LET a$="IRD BE A POZICIOT: ": RETURN
8240 IF t$(w)<"0" OR t$(w)>"j" OR (t$(w)>"9" AND t$(w)<"a") THEN LET f=w: RETURN
8250 IF t$(w)<"a" THEN LET t$=t$(g)+t$(w)
8260 IF t$(w)<"a" OR t$(w)>"j" THEN LET f=w: RETURN
8270 IF t$(g)<"0" OR t$(g)>"9" THEN LET f=w: RETURN
8280 LET x=CODE t$ VAL "95": LET y=CODE t$(g) VAL "46": RETURN
8310 LET f=o: IF acc<max THEN RETURN
8320 FOR i=w TO e: IF max=VAL w$(i) THEN LET w$(i)="0": GO TO VAL "8340"
8330 NEXT i
8340 LET max=o: LET f=w
8350 FOR i=w TO e
8360 IF max<VAL w$(i) THEN LET max=VAL w$(i)
8370 NEXT i: RETURN
8410 LET acc=acc+w
8420 IF end=w THEN LET h(acc,w)=x: LET h(acc,g)=y
8430 IF end= w THEN LET h(w,w)=x: LET h(w,g)=y
8440 RETURN
8460 IF u$(x,y)=" " THEN LET hit=o
8470 IF CODE u$(x,y)=z THEN LET hit=w
8480 LET u$(x,y)=CHR$ w
8510 LET or1=VAL "24": LET or2=VAL "87"
8520 IF me THEN LET or1=VAL "238": LET or2=VAL "88"
8530 LET l=VAL "17" y
8540 LET c=x+VAL "16" VAL "13"*me
8550 LET xx=m+e*c or1: LET yy=VAL "172" e*l or2
8560 OVER w: INK e: PLOT or1,or2: DRAW xx,yy,VAL ".6"*SGN (me VAL ".5")
8570 FOR i=VAL "50" TO VAL "35" STEP m: BEEP VAL ".01",i: NEXT i
8580 PRINT AT l,c; INK VAL "6"; PAPER g;"*"
8590 PLOT or1,or2: DRAW xx,yy,VAL ".6"*SGN (me VAL ".5"): OVER o: INK VAL "7"
8600 PRINT AT l,c;: IF hit THEN PRINT INK g; PAPER VAL "7";"o": FOR i=w TO e+5: OUT 254,7: OUT 254, 14: OUT 254, 19: OUT 254, 23: NEXT i: FLASH 1: PRINT INK 2;AT VAL "19",VAL "16";"TALALT!": FLASH 0
8610 IF NOT hit THEN PRINT INK w; PAPER VAL "7";"¸": PRINT INK 5;AT VAL "19",VAL "16";"MELLE !"
8620 PAUSE VAL "35": RETURN
8710 FOR i=w TO n: LET x=h(i,w): LET y=h(i,g)
8730 FOR j=w TO w STEP g
8735 LET x1=x+j: LET y1=y+j
8737 IF x1>w AND x1<h THEN LET u$(x1,y)=CHR$ w
8740 IF y1>w AND y1<h THEN LET u$(x,y1)=CHR$ w
8750 NEXT j
8760 NEXT i
8770 LET trail=o: LET sense=o: RETURN
8810 IF end= w THEN GO TO VAL "8830"
8820 LET x=h(acc,w)+dx: LET y=h(acc,g)+dy: RETURN
8830 LET x=h(w,w) dx: LET y=h(w,g) dy
8840 FOR i=n TO g STEP w
8850 FOR j=w TO g: LET h(i,j)=h(i w,j): NEXT j
8860 NEXT i
8870 RETURN
8910 LET r=r*VAL "129"+VAL "41": LET r=r VAL "101"*INT (r/VAL "101")
8920 LET rr=r: IF r=VAL "100" THEN LET rr=VAL "92"
8930 LET x=g+INT (rr/VAL "10"): LET y=VAL "22"+rr VAL "10"*x
8940 RETURN
8960 PRINT AT VAL "19",o;"LOVES SZAM:";k," ": RETURN
8970 IF NOT go THEN LET go=w: RETURN
8975 OVER w: FOR i=o TO w
8980 PLOT o,VAL "80"+i: DRAW VAL "31",o: PLOT VAL "232",VAL "80"+i: DRAW VAL "23",o
8990 NEXT i: OVER o: RETURN
9000 LET o=VAL "0": LET w=VAL "1": PAPER w: INK VAL "6": BORDER w: CLS
9010 LET q=VAL "21": LET l=o: LET c=1: LET t$="NYITRAI TORPEDO": GO SUB VAL "8000"
9020 PRINT AT q,o;"A SZAMITOGEP ELREJTI HAJOIT. "
9030 DATA VAL "4",VAL "3",VAL "5",VAL "8",VAL "2",VAL "12",VAL "128": READ n,m,z,e,g,h,aa
9140 FOR i=USR "a" TO USR "a"+VAL "23"
9150 READ x: POKE i,x: NEXT i
9160 DATA VAL "255",aa,aa,aa,aa,aa,aa,aa
9170 DATA VAL "255",aa,aa,VAL "156",VAL "190",VAL "156",aa,aa
9180 DATA VAL "255",VAL "195",VAL "165",VAL "153",VAL "153",VAL "165",VAL "195",VAL "255"
9200 PRINT AT m,w;"A FLOTTAD 8 HAJOBOL ALL:"''" 1 ANYAHAJO";TAB VAL "20"; INK w; PAPER g;"÷÷÷÷"
9210 PRINT " 2 PANCELOS";TAB VAL "20"; INK w; PAPER g;"÷÷÷": PRINT " 2 ROMBOLO";TAB VAL "20"; INK w; PAPER g;"÷÷"
9220 PRINT " 3 TENGERALATTJARO";TAB VAL "20"; INK w; PAPER g;"÷"
9225 PRINT : PRINT '"A JATEK,ES BEALLITASOK:"'
9230 PRINT '"A T
ŰZ KOORDINATAT IGY IS BEIRHA TOD: a0 VAGY 3b,uS AZ ENTER LE NYOMASAVAL ZARD LE."9240 PRINT '"EGYMAS UTAN HAROM LOVEST AD HATSZ LE.A TALALATOT KIJELZI o,ES HANGHATAST AD."
9500 DATA "4 ANYAHAJO","3 1. PANCELOS","3 2. PANCELOS","2 1. ROMBOLO","2 2. ROMBOLÂ","1 1. TENGERALATTJARO.","1 2. TENGERALATTJARO.","1 3. TENGERALATTJARO."
9511 DIM s$(e,VAL "17")
9520 FOR i=w TO e : READ s$(i): NEXT i
9530 DIM u$(h,h): DIM v$(h,h)
9590 DEF FN r()=g+INT (VAL "10"*RND)
9600 LET b$=" ": LET r=INT (VAL "91"*RND)
9610 DATA "ABCDEFGHIJ","÷÷÷÷÷÷÷÷÷÷",o,o,o,o,n,o,"43322111"
9620 READ l$,r$,enemy,sunk,trail,sense,max,go,w$
9710 FOR s=w TO e: DIM d(e)
9715 PRINT AT q,VAL "30";VAL "9" s
9720 LET x=FN r(): LET y=FN r(): IF u$(x,y)<>" " THEN GO TO VAL "9720"
9730 IF s<VAL "6" THEN GO TO VAL "9760"
9740 GO SUB VAL "8100": IF f THEN GO TO VAL "9720"
9750 LET u$(x,y)=CHR$ z: GO TO VAL "9810"
9760 LET d=INT (g*RND): FOR k=o TO VAL s$(s,w) w
9770 LET x=x+d*(k>o): LET y=y+(w d)*(k>o)
9780 GO SUB VAL "8100": IF f THEN GO TO VAL "9720"
9790 LET d(w+g*k)=x: LET d(g+g*k)=y: NEXT k
9800 FOR i=w TO VAL s$(s,w): LET u$(d(g*i w),d(g*i))=CHR$ z: NEXT i
9810 NEXT s
9815 PRINT AT q,VAL "30";"0"
9820 FOR x=w TO h: FOR y=w TO h: LET v$(x,y)=u$(x,y): NEXT y: NEXT x
9830 DIM u$(h,h)
9840 BEEP VAL ".2",VAL "40": PRINT AT q,o;" NYOMD AZ ENTER t ": PAUSE o
9850 FOR i=g TO q: PRINT AT i,o;b$: NEXT i
9870 PRINT AT m,o;" ALLITSD FEL A FLOTTAD:"
9875 GO TO VAL "2010"
9879 REM A CSATAMEZ
Ő9880 PRINT INK 6;AT z,c+w;l$
9890 FOR i=o TO VAL "9": PRINT INK 4;AT VAL "6"+i,c;CHR$ (VAL "57" i); INK w; PAPER VAL "7";r$;: PRINT CHR$ (VAL "57" i): NEXT i
9895 PRINT INK 5;AT VAL "16",c+w;l$: RETURN
9999 REM ITT A VEGE
FUSS AZ ÉLETEDÉRT
Leírás:
Fuss az életedért.
A játékban végig kell menned minden játékkockán, elkerülve a téged üldöző szörnyet, és a négy bombát ki kell kapcsolni, mielőtt azok felrobbannának.
Irányítás: kurzorgombokkal

0 REM NYITRAI 99'
2 REM 0 AS SOR:POKE 23756,0 VISSZA: POKE 23756,1
3 REM FUSS AZ ELETEDERT
5 CLEAR 59999
10 POKE 23658,8: DIM W$(704): DIM C(4,2)
20 BORDER 6: PAPER 6: INK 1: CLS
24 FOR F=72 TO 79: POKE 23681,F: LPRINT "F U S S A Z E L E T E D E R T": NEXT F
26 PRINT INK 2;AT 3,10; PAPER 7;"NYITRAISOFT";AT 20,5; PAPER 7; INK 2;"(c) NYITRAI LASZLO 1999'"
27 PAUSE 200
28 BEEP .1,10: CLS : GO SUB 615
29 LET SK=.3: LET L=1: LET S=0
32 PRINT AT 6,3; INK 0;" NYITRAI LASZLO BEMUTATJA ";AT 20,13; PAPER 4; INK 2;"(c) 1999";A
T 12,3; PAPER 6; INK 1;" L PONT TABLA BETOLTES ";AT 13,3;" S BETŰFORMA MODOSITAS";AT 14,3;" Q ERŐSSEG BEALLITASA";AT 15,3;" P A JATEK INDITASA"33 PRINT AT 16,3;" F A JATEK GYAKORLASA";AT 17,3;" M A JATEK MAGYARAZATA"
35 PRINT INK 2;AT 8,5; PAPER 7;" FUSS AZ ELETEDERT "; PAPER 6; INK 0;AT 10,11;"PROGRAMJAT"
37 FOR F=5 TO 35 STEP .5: BEEP .005,F: BEEP .005,F+2: NEXT F
39 REM A 40 ES SOR MEGALLITJA A PROGRAMOT,MIG A PONTTABLAT BETOLTI
40 IF INKEY$="L" THEN LET ZX=PEEK 23739: LET ZA=PEEK 23740: POKE 23739,82: POKE 23740,0: LOAD "" DATA H$(): LOAD "" DATA H(): POKE 23739,ZX: POKE 23740,ZA
42 IF INKEY$="S" THEN GO TO 700
44 IF INKEY$="P" THEN GO TO 60
46 IF INKEY$="Q" THEN GO SUB 55
47 IF INKEY$="M" THEN GO TO 1100
48 IF INKEY$="F" THEN INPUT "HANYAS FOKOZATOT '1 5'? ";L: GO TO 100
50 GO TO 40
55 PRINT AT 17,3;"VALASZD A '0' TOL(GYORS ES";AT 18,3;"NEHEZ) A '9' IG ( GYENGE )": BEEP .2,7
56 IF INKEY$="" THEN GO TO 56
57 LET A$=INKEY$
58 LET SK=0+(VAL A$*.07): BEEP .1,8: PRINT AT 17,3;" ";AT 18,3;" "
59 GO TO 40
60 BEEP .25,0: BEEP .25,2: BEEP .5,4: BEEP .5,4: BEEP .5,0
100 PRINT AT 0,0; PAPER 2; INK 7;"(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)";AT 19,0;"(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)";AT 21,0;"(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)": FOR F=1 TO 20: PRINT AT F,0; PAPER 2; INK 7;"(c)";AT F,31;"(c)": NEXT F
105 FOR G=1 TO 17 STEP 2: PRINT PAPER 6; INK 0;AT G,1;"?y?y?y?y?y?y?y?y?y?y?y?y?y?y?y";: PRINT AT G+1,1; PAPER 6; INK 0;"AÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂ";: NEXT G
107 LET X=9: LET Y=15: LET G=48
109 PAPER 2: INK 0
110 IF L>5 THEN GO SUB 490+((L 5)*20)
111 GO SUB 490+L*20
125 LET Q=1
128 LET J=1: LET K=R
130 FOR F=1 TO 4: PRINT AT C(F,1),C(F,2); PAPER 1; INK 7;"++";AT C(F,1)+1,C(F,2);"++": NEXT F
134 REM IRANYITAS
135 IF L=1 THEN DIM A$(114): LET A$(30 TO )=" ...IRANYITAS:NYILAKKAL... PONT:0000 FOK: 1 ": FOR F=1 TO 55: PRINT AT 20,1; PAPER 7; INK 1;A$(F TO F+29): BEEP .03,F/2: NEXT F
137 PRINT AT 20,25; PAPER 7; INK 1;L
140 PRINT AT X
,Y; INK 1; PAPER 6;"÷¸";AT X+1,Y;"ou";AT A,B; INK 0; PAPER 6; BRIGHT 1;"·u";AT A+1,B;"Řř"200 LET LX=X: LET LY=Y
201 IF INKEY$="8" THEN LET LY=LY+2: GO TO 290
205 IF INKEY$="5" THEN LET LY=LY 2: GO TO 290
210 IF INKEY$="7" THEN LET LX=LX 2: GO TO 290
215 IF INKEY$="6" THEN LET LX=LX+2: GO TO 290
219 LET V=ATTR (X,Y)
220 PRINT AT X,Y; PAPER 6; INK 1;"÷¸";AT X+1,Y;"ou"
224 IF V=48 THEN BEEP .015,8: LET Z=Z 1: LET S=S+10
225 PRINT AT 20,15 (S>9) (S>99) (S>999); INK 1; PAPER 7;S
226 IF V=32 THEN BEEP .01,0
227 IF Z=0 THEN GO TO 300
230 IF V=112 THEN LET D$="UTOLERTELEK,ELFOGTALAK!": GO TO 600
234 IF V=15 AND (C(J,1)<>X OR C(J,2)<>Y) THEN LET D$="FELROBBANT A BOMBA!": GO TO 600
235 IF V=15 AND C(J,1)=X AND C(J,2)=Y THEN LET S=S+50: RANDOMIZE USR 61000: GO SUB 480
250 LET LA=A: LET LB=B
251 IF X>A THEN LET LA=LA+2: GO SUB 280
252 IF X<A THEN LET LA=LA 2: GO SUB 280
254 IF Y>B THEN LET LB=LB+2: GO SUB 280
256 IF Y<B THEN LET LB=LB 2: GO SUB 280
257 GO TO 260
259 LET G=ATTR (A,B)
260 PRINT AT A,B; INK 0; PAPER 6; BRIGHT 1;"·u";AT A+1,B;"
Řř"265 IF G=49 THEN LET D$="UTOLERTELEK,ELFOGTALAK !": GO TO 600
270 LET K=K 1: IF K>9 THEN PRINT AT C(J,1)+1,C(J,2); PAPER 1; INK 7;K
271 IF K<10 THEN PRINT AT C(J,1)+1,C(J,2); PAPER 1; INK 7;"0";K
272 IF K=0 THEN LET D$="LEJ"RT AZ ID3/4 BUMM!": GO TO 600
279 GO TO 200
280 PAUSE 100: IF (ATTR (LA,LB)=32 OR ATTR (LA,LB)=48 OR ATTR (LA,LB)=49) AND RND>SK THEN GO SUB 495: LET A=LA: LET B=LB: GO TO 259
281 LET LA=A: LET LB=B: RETURN
290 IF (ATTR (LX,LY)=48 OR ATTR (LX,LY)=112 OR ATTR (LX,LY)=15 OR ATTR (LX,LY)=32) THEN PRINT AT X,Y; PAPER 4; INK 0;"?y";AT X+1,Y;"AÂ": LET X=LX: LET Y=LY
292 GO TO 216
300 PRINT AT 9,12; PAPER 7; INK 0;" ";AT 10,12;"FOKOZAT:";L+1;" ";AT 11,12;" "
305 LET L=L+1
310 BEEP .75,0: BEEP .25,2: BEEP .5,4: BEEP .5,2: BEEP .5,5: BEEP .5,4: BEEP .25,2: BEEP .25, 1: BEEP .5,0
315 GO TO 100
481 LET K=R: LET Q=Q+1: LET J=Q
482 IF Q=4 THEN PRINT AT C(J,1),C(J,2); PAPER 3; INK 0;"++"
495 IF G=32 THEN PRINT AT A,B; PAPER 4; INK 0;"?y";AT A+1,B;"AÂ": RETURN
496 IF G=48 THEN PRINT AT A,B; PAPER 6; INK 0;"?y";AT A+1,B;"AÂ": RETURN
497 STOP
500 REM 500 580 KEPERNY
ŐVALTAS510 RESTORE 515: FOR F=1 TO 22: READ A1,A2: PRINT AT A1,A2;"3Ş";AT A1+1,A2;"1o": NEXT F
511 LET C(1,1)=13: LET C(1,2)=3: LET C(2,1)=5: LET C(2,2)=27: LET C(3,1)=5: LET C(3,2)=3: LET C(4,1)=13: LET C(4,2)=27
513 LET R=99: LET A=1: LET B=5: LET Z=108
517 DATA 1,15,3,3,3,9,3,21,3,27,5,5,5,25,7,7,7,15,7,23,9,9,9,21,11,7,11,15,11,23,13,5,13,25,15,3,15,9,15,21,15,27,17,15
519 RETURN
530 RESTORE 535: FOR F=1 TO 28: READ A1,A2: PRINT AT A1,A2;"3Ş";AT A1+1,A2;"1o": NEXT F
531 LET C(1,1)=1: LET C(1,2)=29: LET C(2,1)=17: LET C(2,2)=29: LET C(3,1)=17: LET C(3,2)=1: LET C(4,1)=1: LET C(4,2)=1
533 LET R=99: LET A=17: LET B=5: LET Z=102
537 DATA 1,3,1,27,3,5,3,25,5,7,5,15,5,23,7,9,7,13,7,15,7,17,7,21,9,1,9,3,9,27,9,29,11,9,11,13,11,15,11,17,11,21,13,7,13,15,13,23,15,5,15,25,17,3,17,27
539 RETURN
550 RESTORE 555: FOR F=1 TO 26: READ A1,A2: PRINT AT A1,A2;"3
Ş";AT A1+1,A2;"1o": NEXT F551 LET C(1,1)=1: LET C(1,2)=1: LET C(2,1)=17: LET C(2,2)=1: LET C(3,1)=17: LET C(3,2)=29: LET C(4,1)=1: LET C(4,2)=29
553 LET R=99: LET A=17: LET B=15: LET Z=105
557 DATA 1,7,1,13,1,17,1,23,3,11,3,19,5,9,5,21,7,7,7,13,7,17,7,23,9,1,9,29,11,7,11,13,11,17,11,23,13,9,13,21,15,11,15,19,17,7,17,13,17,17,17,23
559 RETURN
570 RESTORE 575: FOR F=1 TO 30: READ A1,A2: PRINT AT A1,A2;"3Ş";AT A1+1,A2;"1o": NEXT F
571 LET C(1,1)=7: LET C(1,2)=1: LET C(2,1)=11: LET C(2,2)=29: LET C(3,1)=11: LET C(3,2)=1: LET C(4,1)=7: LET C(4,2)=29
573 LET R=99: LET A=1: LET B=29: LET Z=100
577 DATA 1,3,1,15,1,27,3,5,3,15,3,25,5,1,5,7,5,13,5,15,5,17,5,23,5,29,7,3,7,27,11,3,11,27,13,1,13,7,13,13,13,15,13,17,13,23,13,29,15,5,15,15,15,25,17,3,17,15,17,27
579 RETURN
590 RESTORE 595: FOR F=1 TO 38: READ A1,A2: PRINT AT A1,A2;"3
Ş";AT A1+1,A2;"1o": NEXT F591 LET C(1,1)=9: LET C(1,2)=5: LET C(2,1)=13: LET C(2,2)=25: LET C(3,1)=9: LET C(3,2)=25: LET C(4,1)=5: LET C(4,2)=5
593 LET R=99: LET A=1: LET B=1: LET Z=92
597 DATA 3,3,3,5,3,7,3,9,3,11,3,13,3,17,3,19,3,21,3,23,3,25,3,27,5,3,5,27,7,5,7,13,7,17,7,25,9,7,9,23,11,5,11,13,11,17,11,25,13,3,13,27,15,3,15,5,15,7,15,9,15,11,15,13,15,17,15,19,15,21,15,23,15,25,15,27
599 RETURN
600 REM 601:A HANG GEPI KODJA
601 RANDOMIZE USR 61500
609 REM 610: A KEPERNYŐ SZIN VALTAS RUTINJA
610 PAPER 6: INK 1: FOR F=4 TO 6: PRINT OVER 1;AT 0,0; PAPER F;W$: PAUSE 5: BEEP .02,F: NEXT F: BORDER 6: FOR F=1 TO 6: PRINT OVER 1;AT 0,0; INK F;W$: PAUSE 5: BEEP .02,F+6: NEXT F: CLS
611 GO SUB 615: GO TO 619
615 PRINT AT 0,0; PAPER 2; INK 7;"(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)";AT 19,0;"(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)";AT 21,0;"(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)(c)": FOR F=1 TO 20: PRINT AT F,0; PAPER 2; INK 7;"(c)";AT F,31;"(c)": NEXT F
617 PRINT AT 1,1; PAPER 4; INK 0;"?y?y?y?y?y?y?y?y?y?y?y?y?y?y?y";AT 2,1;"AÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂ";AT 19,1;"?y?y?y?y?y?y?y?y?y?y?y?y?y?y?y";AT 20,1;"AÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂAÂ": FOR F=3 TO 17 STEP 2: PRINT AT F,1; PAPER 4; INK 0;"?y";AT F,29;"?y";AT F+1,1;"AÂ";AT F+1,29;"AÂ": NEXT F
618 RETURN
620 PRINT AT 5,11;"JATEK VEGE";AT 8,(32 LEN D$)/2;D$;AT 11,11;"PONT :";S
621 BEEP .2,0: BEEP .2,2: BEEP .2,4: BEEP .2,5: BEEP .2,7: BEEP .2,4: BEEP .45,0: BEEP .2,2: BEEP .2,4: BEEP .45,2: BEEP .2,4: BEEP .2,2: BEEP .325,0
625 IF S<=H(11) THEN PAUSE 50: GO TO 656
630 PRINT AT 13,11;"REKORD PONT";AT 16,9;"IRD BE A NEVED"
635 DIM N$(10): INPUT ">";LINE N$
644 REM 11 N1/4V A REKORD TABLAN
645 FOR F=2 TO 11: IF S>H(F) AND S<H(1) THEN FOR G=11 TO F STEP 1: LET H$(G)=H$(G 1): LET H(G)=H(G 1): NEXT G: LET H$(F)=N$: LET H(F)=S: GO TO 656
650 NEXT F
655 FOR G=11 TO 2 STEP 1: LET H$(G)=H$(G 1): LET H(G)=H(G 1): NEXT G: LET H$(1)=N$: LET H(1)=S
656 GO SUB 657: GO TO 658
657 FOR F=3 TO 18: PRINT AT F,3;" ": NEXT F: RETURN
660 PRINT AT 4,8; PAPER 7; INK 0;"REKORD TABLAZAT:": FOR F=6 TO 16: PRINT AT F,8;H$(F 5);" ";H(F 5): NEXT F
670 PRINT AT 18,4;"AZ 'S' EL REKORDMENTES"
675 IF INKEY$="" THEN GO TO 675
676 REM SAVE HI NOT SCORE TABLE
677 IF INKEY$="S" THEN SAVE "HISCORE" DATA H$(): SAVE "HISCORE" DATA H()
680 GO SUB 657: GO TO 29
700 PRINT AT 21,0; INK 0; PAPER 7;" CSERE 180 M"SODPERC ALATT! "
701 REM KARAKTER UJRALAKIT"S 3 SOR BASIC EL!
705 LET M=60000: FOR N=32 TO 127: PRINT AT 21,0; PAPER 7; INK 7;CHR$ N: FOR O=7 TO 0 STEP 1: FOR P=6 TO 0 STEP 1
710 IF POINT (P,O)=1 THEN PLOT INK 7;P+1,O
715 NEXT P: POKE M,PEEK (22432 256*O): LET M=M+1: NEXT O: NEXT N: POKE 23606,96: POKE 23607,233: GO SUB 615: BEEP .5,10: GO TO 30
900 RESTORE 900: FOR F=0 TO 151: READ A: POKE USR "A"+F,A: NEXT f
901 DATA 0,48,127,103,103,127,127,112
905 DATA 0,12,254,230,230,254,254,14
910 DATA 112,127,63,63,60,124,124,0
915 DATA 14,254,252,252,60,62,62,0
920 DATA 0,1,7,31,63,63,119,107
925 DATA 0,128,224,248,252,252,238,214
930 DATA 127,127,63,62,31,7,1,0
940 DATA 254,254,252,124,248,224,128,0
945 DATA 127,128,191,160,160,160,160,160
950 DATA 254,1,1,1,1,5,5,21
955 DATA 128,128,128,129,128,131,128,127
960 DATA 21,21,21,245,5,253,1,254
965 DATA 126,113,97,113,96,112,99,122
970 DATA 168,170,254,254,0,3,231,163
975 DATA 0,0,254,254,86,14,6,14
980 DATA 7,171,255,255,0,124,124,84
981 DATA 0,117,37,37,37,37,0,0
983 DATA 0,210,20,24,20,210,0,0
985 DATA 0,24,60,126,126,60,24,0
987 RESTORE 987: FOR F=0 TO 20: READ A: POKE 61000+F,A: NEXT F
988 DATA 33,10,0,17,3,0,6,200,229,213,197,205,181,3,193,209,225,35,16,244,201
990 RESTORE 990: FOR F=0 TO 47: READ A: POKE 61500+F,A: NEXT F
992 DATA 243,58,72,92,15,15,15,8,38,0,1,0,12,8,211,254,238,16,8,46,0,85,92,167,237,82,237,82,17,254,0,25,125,148,56,1,61,103,61,32,253,11,120,177,32,223,251,201
996 RESTORE 997: DIM H$(11,10): FOR F=1 TO 11: READ H$(F): NEXT F: DIM H(11): FOR F=1 TO 11: READ H(F): NEXT F
997 DATA "NYITRAI","CSABA","MIHALY","ERZSEBET","KATALIN","ANDRAS","KAROLINA","MARTON","IZABELLA","MIKLOS","PIROSKA"
998 DATA 2500,2250,2000,1800,1600,1400,1200,1000,800,600,400
999 RETURN
1000 REM A PROGRAM MENTESE
1001 LET S$="": LET S$=S$+CHR$ 22+CHR$ 11+CHR$ 12+CHR$ 65+CHR$ 67+CHR$ 84+CHR$ 73+CHR$ 79+CHR$ 78+CHR$ 33
1002 SAVE S$LINE 1
1105 BEEP .1,8: PRINT AT 5,3;" ";AT 6,3;" "
1110 PRINT AT 7,3;" ";AT 8,3;" "
1120 PRINT AT 9,3;" ";AT 10,3;" "
1130 PRINT AT 11,3;" ";AT 12,3;" "
1140 PRINT AT 13,3;" ";AT 14,3;" "
1150 PRINT AT 15,3;" ";AT 16,3;" "
1155 PRINT AT 17,3;" ";AT 18,3;" "
1160 RESTORE 1182
1170 FOR N=4 TO 15: READ C$
1172 PRINT AT 0+N,(16 LEN C$/2);
1174 INK 2: FOR I=1 TO LEN C$
1176 PRINT C$(I);: BEEP .01, 10
1178 PAUSE 1: INK 1: NEXT I
1180 NEXT N
1182 DATA " FUSS AZ ELETEDERT "
1184 DATA " ",""
1186 DATA " A JATEKBAN VEGIG KELL"
1188 DATA "MENNED MINDEN JATEKKOCKAN"
1190 DATA "
ELKERULVE A TEGED ULDOZŐ"1192 DATA "SZORNYET,ES A NEGY BOMBAT"
1194 DATA "KI KELL KAPCSOLNI,MIELŐTT"
1196 DATA "AZOK FELROBBANNANAK. ","",""
1198 DATA "IRANYITAS:KURZORGOMBOKKAL"
1199 PRINT INK 2;AT 18,3;" NYOMJ EGY GOMBOT!": PAUSE 0
1200 GO TO 28
MÁGNES GOLYÓ - ÜGYESSÉGI JÁTÉK
Leírás:
A változó labirintusból kell a mágnes golyót kivezetni úgy, hogy sehol ne érjen az oldalfalhoz, mert a mágnesfal másodpercekre megfogja a golyót, és így a játékidőd hamar véget ér. Irányítás a kurzorgombokkal, és csak három pályát kell teljesítened.

1 REM Magnesgolyo ugyessegi jatek
2 REM NyitraiSOFT 2002
9 GO TO 8000
10 PRINT AT c,d;" ";AT a,b;"O": LET c=a: LET d=b: LET e=PEEK 23560: LET a=a+(e=54) (e=55): LET b=b+(e=56) (e=53)
15 IF SCREEN$ (a,b)<>" " AND ATTR (a,b)<>71 THEN LET a=c: LET b=d: LET t=t 5: RANDOMIZE USR 65055: RANDOMIZE USR 65034: RANDOMIZE USR 65055: POKE 23560,0
20 LET p=p+5: LET t=t 1: PRINT AT 1,7 LEN STR$ p;p;AT 1,28 LEN STR$ t;" ";t: IF t<=0 THEN PRINT 1;"Az ido lejart,nyomd az ENTER t": FOR x=0 TO 200: NEXT x: GO TO 9500 (2500*(p>hi))
30 GO TO 10+(6000*(b=31))
1000 GO SUB 5000: LET o=o+25 (25*(o=50)): LET t=t+125 o
1010 INK 2: LET a$="¶uuuuuuuuuuuuuu": LET b$="1/4uuuuuuuuuuuuu3": FOR x=6 TO 22 STEP 8: FOR y=1 TO 15: PRINT AT 5+y,x;a$(y);AT 2+y,x+4;b$(y): NEXT y: NEXT x
1020 PRINT AT 11,26;"1/4";AT 10,26;"1";AT 2,3;"ooooooo ooooooo ooooooo";AT 21,6;"U÷÷÷÷÷÷uU÷÷÷÷÷÷uU÷÷÷÷÷÷u";AT 10,1;"o3";AT 14,0;"U÷÷÷÷u";AT 10,27;"ooooo";AT 14,30;"yu"
1030 LET b$="Uuuuuuu": LET d$="UuuU ": FOR x=1 TO 7: PRINT AT 2+x,2;b$(x);AT 10+x,0;d$(x);AT 14+x,30;"1";AT 2+x,26;"1": NEXT x
1040 PRINT AT 21,30;" ": INK 7: GO TO 10
2010 GO SUB 5000: LET t=t+150 o: INK 4: PRINT AT 17,11;"yý";AT 2,1;"oooooooooooooo ooooooo ooooooo";AT 6,4;"y÷÷÷÷÷ý";AT 7,10;"U÷÷÷÷÷÷÷"U÷÷÷÷÷÷"3";AT 10,1;"÷÷÷÷÷?";AT 10,17;"y÷÷÷÷÷÷÷÷÷÷÷÷"o";AT 14,1;"÷÷÷÷÷÷÷÷"3";AT 17,4;"yý";AT 17,8;"yý";AT 18,4;"o3";AT 18,8;"o3";AT 18,11;"oU÷÷÷"U÷÷÷÷?";AT 14,21;"y÷÷?";AT 14,27;"y÷÷÷u";AT 17,25;"y÷÷ý";AT 18,25;"ooo3";AT 21,0;"U÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷u"
2020 RESTORE 1020: FOR w=0 TO 10: READ y: READ z: READ a$: FOR x=1 TO LEN a$: PRINT AT y+x 1,z;a$(x): NEXT x: NEXT w
2030 DATA 3,0,"UuuuuuuUUuuUUuuuuu",8,10,"1/4uuuuu",10,13,"y111o",10,14,"ýuuu3",11,17,"1/4uuuuuu",3,31,"1111111",15,31,"111111",3,15,"1/43",3,23,"1/43",5,19,"¶u",5,27,"¶u"
2040 INK 7: GO TO 10
3000 GO SUB 5000: LET t=t+225 o: INK 5: PRINT AT 2,0;" oooooooooo ooooo oooooo ooooo U oµ 1/4 1/4 1u yý u 3 1u y÷"oU÷÷÷÷÷÷÷ý u y? ¶ 1u 1/4 u u u 1u 3 u u y÷÷÷÷÷"3 1u y÷÷÷÷÷ý u u 1/4 1u 1/4 u u u u 1U÷÷÷÷"3 3 u U÷÷÷? u y÷"oU ¶ u 1/4 u "
3010 PRINT "u u u u u U÷÷÷÷÷÷÷"U÷÷÷÷"3 u y÷÷"U÷÷÷÷÷uU u 1/4 1u y÷÷? u 3 1u y÷÷÷÷÷ý u ¶ y÷ý 1u 1/4 u u u 1 u 1u 3 U÷÷÷÷÷÷÷"U÷÷÷÷"3 oo3 1u ¶ oµ oµ 1u u yý 1U÷÷÷÷uU÷÷÷÷÷÷÷÷÷oU÷÷÷÷÷÷÷÷÷÷÷÷u"
3030 INK 7: GO TO 10
4000 GO SUB 5000: LET t=t+325 o: LET a=a 1: LET c=a: INK 6: PRINT AT 2,0; " oooooo ooooo ooo ooooo oooo oµ 1/4 1/4 1/4 1/4 1 U yý u yý 3 3 ¶ 3 1 u y÷"o3 u ou ¶ u ¶ 1 u 3/4 u u u u u 1 u y÷ý u U÷÷÷"U÷÷÷uU÷÷÷"u 1 u ¶ u u 1/4 oµ 1/4 3 1 3 Uý 3 Uý u ¶ u ¶ 1U 3 o3 u U÷÷÷? u U÷÷÷÷"ou 1/2 1/2 u 1/4 u 1/4 u ¶ y÷"U÷÷ý u ?U÷÷ý u "
4010 PRINT "Uý ¶¸ ¶ 1/4 3 u 3 u yu u 3/4 u u ¶ u yý u o u y"3 u U÷÷÷÷uU÷"oU÷÷÷"u 1 u ¶ u 1/4 1/4 1/4 u 1 u U÷÷÷ý u 3 u 3 Uý 1 u o3 u ¶ 3 ¶ ¶ o3 1 U÷ý u u u u 1 U÷÷÷÷÷uU÷÷÷uU÷÷÷÷uU÷÷uU÷÷÷÷u"
4020 INK 7: GO TO 10
5000 LET a=12: LET c=a: LET b=1: LET d=b: LET v=t: FOR x=t TO 1 STEP 1: LET p=p+10: LET v=v 1: PRINT AT 1,7 LEN STR$ p;p;AT 1,28 LEN STR$ v;" ";v: BEEP .01,5: NEXT x: FOR x=0 TO 100: NEXT x
5010 CLS : PRINT AT 0,2;"Pontok";AT 0,24;" Ido:";AT 1,7 LEN STR$ p;p;AT 0,11;x$;AT 1,14;hi: POKE 23560,0: RETURN
5999 STOP
6010 PRINT AT a,30;" O": LET u=u+1 (4*(u=4)): GO TO u*1000
7000 INK 6: CLS : INPUT AT 22,0;AT 10,5;"Ma megdontotted a csucsot,";AT 11,5;"pontjaid szama: "; INK 2;(p hi); INK 5;AT 13,5;"Ird be a neved,az "; INK 5;AT 14,5;"utokor szamara: "; BRIGHT 1;LINE x$
7010 FOR x=0 TO 10: IF LEN x$<10 THEN LET x$=" "+x$+" "
7015 NEXT x: LET x$=x$(1 TO 10)
7020 LET hi=p: GO TO 9500
7999
8000 BORDER 1: PAPER 1: INK 6: CLS
8001 PRINT AT 1,6;"(c) NyitraiSOFT 2002'"
8002 RANDOMIZE USR 65055
8005 FOR i=1 TO 30 STEP 2: INK INT (RND*7)+2: PRINT AT 0,0+i;"O";AT 21,0+i;"O": BEEP .1,i: NEXT i: FOR i=1 TO 20 STEP 2: PRINT INK INT (RND*6)+3;AT 0+i,0;"O";AT 0+i,30;"O": BEEP .2,i: NEXT i
8010 INK 6: PRINT INK 3;AT 3,9;"MAgnes golyO"; INK 5;AT 4,7;"UgyessEgi jAtEk"
8011 PRINT INK 4;AT 5,8;"hArom pAlyAval."
8012 RANDOMIZE USR 65055
8015 PRINT AT 7,2;"A vAltozO labirintusbOl kell"
8016 PRINT AT 8,2;"a golyOt kivezetni Ugy,hogy"
8017 PRINT AT 9,2;"ne Erjen az oldalfalhoz,mert"
8018 PRINT AT 10,2;"a mAgnes mAsodpercekig is"
8019 PRINT AT 11,2;"visszatartja a golyOt,Es Igy"
8020 PRINT AT 12,2;"a jAtekid
őd hamar vEgetEr."8021 INK 5: PRINT AT 13,2;"A megmaradt időd a kOvetkező"
8022 PRINT AT 14,2;"fokozathoz hozzAadOdik."
8025 PRINT INK 4;AT 16,2;"IrAnyItas a kurzorgombokkal."
8026 RANDOMIZE USR 65055
8030 LET x$="Palyacsucs: ": LET hi=1000: PRINT INK 2;AT 19,5; FLASH 1;"VArj"; FLASH 0;" 20 mAsodpercet!";AT 20,3;"Beolvasom a gEpi kOdot!"
8997
8998 REM UDG grafika
8999
9000 DEF FN x(a$,z)=16*(CODE a$(z) 48 7*(a$(z)>"9"))+(CODE a$(z+1) 48 7*(a$(z+1)>"9"))
9010 LET a$="3C66CF9FBFFF7E3CFFFF00000000FFFFC0C0C0C0C0C0FFFFC3C3C3C3C3C3C3C303070F1B3363C383FFFF060C183060C0C1C3C6CCD8F0FFFFFFFF070F1B3363C3FFFF1B3363C3FFFF"
9020 LET a$=a$+"FFFFC0C0C0C0FFFF03070F1B3363FFFFFFFFC3C7CFDBF3E3C3C3C3C3C3C3FFFF030303030303FFFFC0C0C0C0C0C0C0C0000000000000FFFFFFFF060C1830FFFFC3C7CFDBF3E3C3C3"
9025 LET a$=a$+"FFFFC7CFDBF3FFFFC3C7CFDBF3E3FFFFFFFFC3C6CCD8FFFF"
9030 FOR z=1 TO 336 STEP 2: POKE USR "a"+((z/2) 1),FN x(a$,z): NEXT z
9500 LET c=12: LET d=2: LET a=12: LET b=2: LET p=0: LET t=300: LET o=0: RANDOMIZE USR 65055: BORDER 0: PAPER 0: BRIGHT 1: INK 7: CLS : PRINT INK 5;AT 0,2;"Pontok";AT 0,24;" Ido:"
9510 PRINT AT 0,11;x$;AT 1,14;hi: POKE 23560,0: LET u=1: GO TO 1010
GONDOLJ EGY SZÁMOT, ÉS ÉN MAJD KITALÁLOM
Leírás: Gondolni kell (felírni egy papírra) egy számot 200-on belül, és végrehajtani az utasításokat. A gyermekkorban játszott, régi gyermekkitalálós számítógépen egy ceruza írja fel a kérdéseket a fekete palatáblára.

1 REM GONDOLJ EGY SZAMOT
2 REM KITALALOS JATEK
3 REM NYITRAI 2001'
4 REM
5 GO TO 272
10 REM FEKETE TABLA
20 INK 7: PAPER 0: BORDER 0: CLS
30 LET X=0: LET Y=50
40 LET a$="Gondolj egy szAmot 1-200= X"
50 GO SUB 300
60 LET a$="Vedd a duplajAt = 2*X": GO SUB 230: RANDOMIZE USR 3280: RANDOMIZE USR 3280
70 GO SUB 300
80 LET a$="TegyEl meg 4-et= 2*X+4": GO SUB 230: RANDOMIZE USR 3280: RANDOMIZE USR 3280
90 GO SUB 300
100 LET A$= "Oszd el 2-vel= (2*X+4)/2": GO SUB 230: RANDOMIZE USR 3280: RANDOMIZE USR 3280
105 GO SUB 300
110 LET A$="Adj mEg 7-et= (2*X+4)/2+7": GO SUB 230: RANDOMIZE USR 3280: RANDOMIZE USR 3280
115 GO SUB 300
120 LET A$="Szorozd meg 8-al= ((2*X+4)/2+7)*8": GO SUB 230: RANDOMIZE USR 3280: RANDOMIZE USR 3280
125 GO SUB 300
130 LET A$="Vonj le 12-ot= ((2*X+4)/2+7)*8)-12": GO SUB 230: RANDOMIZE USR 3280: RANDOMIZE USR 3280
135 GO SUB 300
140 LET A$="Oszd el 4-el= (((2*X+4)/2+7)*8)-12)/4": GO SUB 230: RANDOMIZE USR 3280: RANDOMIZE USR 3280
142 GO SUB 300
145 LET A$="VegyEl el 11-et= (((2*X+4)/2+7)*8)-12)/4)-11": GO SUB 230: RANDOMIZE USR 3280: RANDOMIZE USR 3280
147 GO SUB 300
150 REM LET X=((((2*A)+4)/2+7)*8-12)/4)-11)-4)2
155 RANDOMIZE USR 3280: RANDOMIZE USR 3280
160 INPUT "IRD BE AZ EREDMENYT,ES MEGMONDOM A GONDOLT SZAMOT: ";B
170 REM IF C<>B THEN PRINT "ROSSZUL SZAMOLTAL,AZ EREDMENY ";C
180 LET D=(B-4)/2
200 LET A$= "A gondolt szAm="
203 GO SUB 300
205 RANDOMIZE USR 3280: RANDOMIZE USR 3280
207 LET A$="((((2*X)+4)/2+7)*8-12)/4)-11)-4)/2"
209 GO SUB 300
210 RANDOMIZE USR 3280: RANDOMIZE USR 3280
215 PRINT INK 6;AT 14,10;"******";AT 16,10;"******";AT 15,10; "* "; FLASH 1;VAL "D"; FLASH 0;" *"
216 RANDOMIZE USR 3280: RANDOMIZE USR 3280
217 LET A$= "jAtEkmester: Nyitrai LAszlO"
218 GO SUB 300
219 RANDOMIZE USR 3280: RANDOMIZE USR 3280
220 LET y=170: LET a$="______Uj feladvAnyt?_______": GO SUB 300
222 PAUSE 0
224 IF INKEY$="I" THEN GO TO 10
225 IF INKEY$="N" THEN STOP
226 GO TO 222
230 BEEP .01,1: PRINT INK 2; FLASH 1;AT 21,7;"NYOMD AZ ENTERT": FLASH 0
240 PAUSE 0
250 PRINT AT 18,5;" "
260 RETURN
270 STOP
272 INK 6: BORDER 1: PAPER 1: CLS
273 LET X=0: LET Y=50
275 LET A$= " Nyitrai LAszlO ZX mester bemutatja:"
276 GO SUB 300
278 INK 6: PAPER 1: BORDER 1: BRIGHT 0: PRINT AT 10,1; PAPER 1; BRIGHT 1;"O1/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/41/4÷ µ"; PAPER 0; INK 5;"GONDOLJ EGY SZAMOT c.JATEKAT"; PAPER 1; INK 6;"¶ o""""""""""""""""""""""""""""u"
280 GO TO 284
281 INK 5: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175: PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173
282 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
283 PAUSE 0: GO TO 10
284 LET X=0: LET Y=130
285 LET A$=" a kOvetendő matek-formula: (2*X)+4)/2+7)*8-12)/4)-11)-4)/2"
286 GO SUB 300
287 PRINT 0;" NYOMD AZ ENTERT"
288 GO TO 281
290 STOP
300 BEEP .01,10: POKE 23728,X: POKE 23729,Y: RANDOMIZE USR 60000: LET x=0: LET y=PEEK 23729+1: RETURN
310 SAVE "GONDOLJ"LINE 280: SAVE "CERUZA"CODE 60000,3859
GYUFÁS - NIM - JÁTÉK, AKI AZ UTOLSÓT HÚZZA, AZ VESZÍT
Leírás:
A gyufák két sorban vannak, a felsőben 19, az alsóban 22 gyufa található. Lépéskor mind a két sorból kell elvenni, amennyit a felsőből, annyit az alsóból is. A játékosok (a számítógép) felváltva lépnek, aki az utolsót húzza, az veszít.

0 REM gyufas logikai jatek
1 Otlet: 1960-as buvar konyvek
2 matematikai jatekok
3 kiadasa alapjan
4 REM NyitraiSOFT 2002'
5 REM keszitette:jatekgyaros
8 BORDER 1: PAPER 1: INK 6: BRIGHT 1: CLS
10 FOR i=0 TO 31: PRINT INK INT (2+RND*6);AT 0,0+i; INK 2;"÷": BEEP .02,i: NEXT i: FOR i=1 TO 30: PRINT AT 1,0+i;"O";AT 2,0+i;"O";AT 3,0+i;"O": BEEP .01,i/2: NEXT i
11 FOR i=1 TO 21: PRINT INK INT (2+RND*6);AT 0+i,0; INK 6;"O": BEEP .02,i: NEXT i
12 FOR i=1 TO 21: PRINT INK INT (2+RND*6);AT 0+i,31; INK 6;"O": BEEP .02,i: NEXT i
15 FOR i=1 TO 30: PRINT AT 18,0+i;"O";AT 19,0+i;"O";AT 20,0+i;"O": BEEP .01,i-2: NEXT i
16 FOR i=0 TO 31: PRINT INK INT (2+RND*6);AT 21,0+i; INK 2;"÷": BEEP .02,i: NEXT i
18 PRINT AT 5,5;"NyitraiSOFT bemutatja:";AT 8,10;"Gyufas NIM";AT 9,12;"jatekat"
19 PRINT AT 11,10;"keszitette:";AT 12,10;"jatekgyaros";AT 13,13;"2002'"
20 PRINT AT 16,2;"Nyomj egy gombot a kezdeshez": PAUSE 0
21 RESTORE 24
22 REM gyufas jatek UDG-i,szara es a feje
24 DATA 22,22,22,22,22,22,22,22
25 DATA 12,30,43,55,43,55,43,22
30 FOR i=0 TO 15: READ a: POKE USR "a"+i,a: NEXT i: REM karakter defin¸ci1/2
35 REM a maximalis idő a gondolkodasra kb.2 perc !!
40 LET maxido=3000: LET ido=0
50 LET h1=19: LET h2=22: REM kezd1halmok
60 LET f$="÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷": LET a$="OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
65 DIM e(13): DIM m(13)
66 REM a nyero parosok
70 DATA 0,0,1,2,3,5,4,7,6,10,8,13,9,15,11,18,12,20,14,23,16,26,17,28,19,31
80 FOR i=1 TO 13: READ e(i),m(i): NEXT i
90 REM a jatek kezdete
100 GO SUB 999
105 BEEP .05,20
110 LET q$=INKEY$: PRINT AT 17,0;"akarsz kezdeni ?": BEEP .1,25: INK 5: PRINT AT 0,0;"Rendelkezesedre allo
idő 2 perc!"120 LET ido=ido+1: LET q$=INKEY$: IF q$="" THEN GO TO 120
130 IF q$="n" THEN GO TO 500
140 REM a jatekos lepese
150 PRINT AT 17,28;" ";
160 LET q$=INKEY$: PRINT AT 17,0;"hanyat veszel el a felsőből ?";
165 BEEP .05,20
170 LET k=0: GO SUB 800
180 LET v1=VAL q$: IF v1>h1 THEN GO TO 150
185 PRINT AT 20,0;" ";
190 PRINT AT 18,28;" ";
200 LET q$=INKEY$: PRINT AT 18,0;"hanyat veszel el az alsobol ?";
205 BEEP .05,20
210 LET k=1: GO SUB 800
220 LET v2=VAL q$: IF v2>h2 THEN GO TO 190
230 IF (v1<>v2 AND v1<>0 AND v2<>0) OR v1+v2=0 THEN PRINT AT 20,0;"szabalytalan elvetel!! ": BEEP .05,10: BEEP .05,30: BEEP .05,0: BEEP .05,30: PRINT "Ird be ujra,hogy mit veszel el ";: GO TO 150
240 LET h1=h1-v1: LET h2=h2-v2
250 GO SUB 999
260 IF h1+h2=0 THEN PRINT AT 17,0;"Gratulalok,te nyertel !": FOR b=1 TO 20: BEEP .5,b: NEXT b: STOP
270 PRINT AT 17,0;"ha megnezted, nyomj meg egy gombot": LET q$=INKEY$
280 LET ido=ido+1: IF ido>maxido THEN GO TO 900
285
PRINT AT 0,10;"hatralevő időd: ";maxido-ido290 LET q$=INKEY$: IF q$="" THEN GO TO 280
300 PRINT AT 17,0;" ";
500 REM a spectrum lepese
510 LET e1=RND<.5: LET e2=RND<.5: IF e1+e2=0 THEN GO TO 510
520 FOR i=1 TO 13
530 IF h1=e(i) AND m(i)<h2 THEN LET e1=0: LET e2=h2-m(i): GO TO 600
540 IF h1=m(i) AND e(i)<h2 THEN LET e1=0: LET e2=h2-e(i): GO TO 600
550 IF h2=e(i) AND m(i)<h1 THEN LET e2=0: LET e1=h1-m(i): GO TO 600
560 IF h2=m(i) AND e(i)<h1 THEN LET e2=0: LET e1=h1-e(i): GO TO 600
570 IF h1-e(i)=h2-m(i) AND h1>e(i) THEN LET e1=h1-e(i): LET e2=e1: GO TO 600
580 IF h1-m(i)=h2-e(i) AND h1>m(i) THEN LET e1=h1-m(i): LET e2=e1: GO TO 600
590 NEXT i
600 LET h1=h1-e1: LET h2=h2-e2: GO SUB 999
610 PRINT AT 20,0;"a felsőből ";e1;"-t,az alsobol": PRINT e2;"-t vettem el.";
620 IF h1=0 AND h2=0 THEN PRINT INK 2;AT 17,0;"Hihi,en nyertem !": FOR b=1 TO 20: BEEP .5,b: NEXT b: CLS : LIST 0
630 GO TO 150
800 REM a szam bekeres
810 FOR i=1 TO 50: NEXT i: LET b$=INKEY$
820 LET ido=ido+1: IF ido>maxido THEN GO TO 900
830 LET q$=INKEY$: IF q$="" THEN GO TO 820
840 PRINT AT 17+k,29;q$
845 FOR i=1 TO 50: NEXT i: LET b$=INKEY$
850 LET ido=ido+1: IF ido>maxido THEN GO TO 900
860 LET w$=INKEY$: IF w$="" THEN GO TO 850
870 PRINT AT 17+k,30;w$;: IF CODE w$=13 THEN GO TO 890
872 FOR i=1 TO 50: NEXT i: LET b$=INKEY$
875 LET ido=ido+1: IF ido>maxido THEN GO TO 900
880 LET b$=INKEY$: IF b$="" THEN GO TO 875
885 LET q$=q$+w$
890 IF q$<"0" OR q$>"99" THEN GO TO 150+k*40
892 IF LEN q$=2 THEN IF q$(2)<"0" OR q$(2)>"9" THEN GO TO 150+k*40
895 RETURN
900 REM lejart a maximalis idő
910 PRINT AT 20,0;"sajnos,lejart a maximalis időd, vesztettel ebben a partiban !"
915 RANDOMIZE USR 65055
920 STOP
999 REM a gyufak kirajzolasa
1000 BORDER 1: PAPER 1: INK 5: BRIGHT 1: CLS
1005 PRINT INK 2;AT 1,0;f$( TO h1);
1010 FOR i=2 TO 5: PRINT INK 6;AT i,0;a$( TO h1);: BEEP .02,LEN a$: NEXT i
1020 PRINT INK 2;AT 8,0;f$( TO h2);
1030 FOR i=9 TO 12: PRINT INK 6;AT i,0;a$( TO h2);: BEEP .01,LEN a$: NEXT i
1040 PRINT AT 3,30;(" "+STR$ h1)((h1>9)+1 TO );
1050 PRINT AT 10,30;(" "+STR$ h2)((h2>9)+1 TO );
1060 RETURN
1070 SAVE "gyufa"LINE 8
1080 REM a
nyerő allasok: 1,2 3,5 4,7 6,10 8,13 9,15 11,18 12,20 14,23 16,26, 17,28 19,31
HELYCSERES JÁTÉK - KÉT JÁTÉKOSSAL
Leírás:
Ebben a játékban át kell vonulni a másik játékos térfelére, a bábukat át lehet ferdén ugorni, és az a győztes, aki a másik felállási helyét előbb el tudja érni.

1 REM helycsere logikai jatek
Otlet: 1960-as bUvAr kOnyvek
matematikai jAtEkok
kiadvAnya alapjAn
5 REM (c) NyitraiSOFT 2002'
8 REM kEszItette:jAtEkgyAros
10 GOSUB 8100
20 POKE 23658,8: INK 6: PAPER 1: BORDER 1: CLS : RANDOMIZE
30 LET v=0: DIM y(8): DIM x(8): DIM z(10): DIM w(10): DIM p(10): DIM q(10)
40 REM RESTORE 8000: GOSUB 8000
50 LET p=15: FOR i=1 TO 8: LET y(i)=p: LET p=p-2: NEXT i
60 LET p=15: FOR i=1 TO 8: LET x(i)=p: LET p=p+2: NEXT i
100 FOR i=1 TO 15 STEP 2
105 REM p
ţlyarţcsozat110 PRINT AT i,15;"ţţţţţţţţţţţţţţţţ";AT i+1,15;"ţţţţţţţţţţţţţţţţ"
120 BEEP .01,25: NEXT i
125 REM alsO jAtEkos
130 LET k=0: FOR i=0 TO 6 STEP 2: FOR n=0 TO i STEP 2
140 LET k=k+1: LET z(k)=i+9: LET w(k)=n+15: PRINT AT i+9,n+15;"ţţ";AT i+10,n+15;"ţţ": NEXT n: BEEP .01,-15: NEXT i
150 LET k=NOT k: FOR i=6 TO 0 STEP -2: FOR n=i TO 0 STEP -2
155 REM felső jAtEkos
160 LET k=k+1: LET p(k)=7-i: LET q(k)=29-n: PRINT AT 7-i,29-n;"ţţ";AT 8-i,29-n;"ţţ": NEXT n: BEEP .01,10: NEXT i
165 REM tAblakeretezEs
170 PLOT 119,39: DRAW 0,129: DRAW 129,0: DRAW 0,-129: DRAW -129,0
180 FOR i=15 TO 29 STEP 2: PRINT INK 5;AT 18,i;CHR$ (57+i/2); INK 5;AT i-13,13;CHR$ (63-i/2): NEXT i
185 PRINT AT 9,0;"A jAtEkban At";AT 10,0;"kell vonulni";AT 11,0;"tAblAn, sajAt";AT 12,0;"Es a mAsik";AT 13,0;"bAbut ferdEn";AT 14,0;"At kell,lehet";AT 15,0;"ugorni, akkor";AT 16,0;"az a gy
őztes,";AT 17,0;"aki előbb Er";AT 18,0;"At az ellenfEl";AT 19,0;"mAsik oldalAra."190 PRINT AT 20,0; INK 2; PAPER 5;" HelycserEs jAtEk (c) NyitraiSOFT 2002' "
200 INK 6: LET dnr=INT (RND*2): IF dnr=0 THEN LET d=0: GOTO 490
210 LET d=30
490 GOSUB 2400
500 PRINT INK 6;AT 5,0;"> ";AT 0,1;v;" .lEpEs": LET n=1: FOR i=1 TO 2
510 GOSUB 6000
520 IF kk<65 OR kk>72 THEN GOTO 510
523 GOSUB 6009+i
525 BEEP .01,20: PRINT INK 7;AT 5,0+n;CHR$ kk;
530 GOSUB 6000: IF kk<49 OR kk>56 THEN GOTO 530
535 GOSUB 6011+i
540 BEEP .01,20: PRINT AT 5,1+n;CHR$ kk;"-"
550 LET n=n+3: NEXT i
560 PRINT AT 5,6;" "
600 LET p31=ABS (p3-p1): LET p42=ABS (p4-p2)
605 GOSUB 1000
610 GOSUB 1055
998 GOTO 500
1000 GOSUB 1010+d: RETURN
1010 LET t3=0: FOR i=1 TO 10: IF z(i)=p2 AND w(i)=p1 THEN LET t3=i: RETURN
1020 NEXT i: GOTO 500
1040 LET t3=0: FOR i=1 TO 10: IF p(i)=p2 AND q(i)=p1 THEN LET t3=i: RETURN
1050 NEXT i: GOTO 500
1055 IF p42>4 OR p31>4 THEN GOTO 500
1057 IF (p42=4 AND p31=2) OR (p42=2 AND p31=4) THEN GOTO 500
1060 IF p42=2 OR p31=2 THEN GOSUB 1500: RETURN
1070 IF p42=4 OR p31=4 THEN GOSUB 1600: RETURN
1500 GOSUB 1510: RETURN
1510 FOR i=1 TO 10: IF z(i)=p4 AND w(i)=p3 THEN GOTO 500
1540 IF p(i)=p4 AND q(i)=p3 THEN GOTO 500
1545 NEXT i: GOSUB 2000: RETURN
1600 IF p42=0 OR p31=0 THEN GOTO 500
1605 GOSUB 1660: GOSUB 1610+d: RETURN
1610 FOR i=1 TO 10: IF z(i)=p4 AND w(i)=p3 THEN GOTO 500
1620 NEXT i: GOSUB 2000: RETURN
1640 FOR i=1 TO 10: IF p(i)=p4 AND q(i)=p3 THEN GOTO 500
1650 NEXT i: GOSUB 2000: RETURN
1660 IF p2-p4=4 AND p3-p1=4 THEN LET c1=p2-2: LET c2=p1+2: GOSUB 1700: RETURN
1670 IF p2-p4=4 AND p3-p1=4 THEN LET c1=p4+2: LET c2=p3+2: GOSUB 1700: RETURN
1680 IF p4-p2=4 AND p1-p3=4 THEN LET c1=p4-2: LET c2=p3+2: GOSUB 1700: RETURN
1690 IF p4-p2=4 AND p3-p1=4 THEN LET c1=p4-2: LET c2=p3-2: GOSUB 1700: RETURN
1695 GOTO 500
1700 GOSUB 1710+d: RETURN
1710 FOR i=1 TO 10: IF z(i)=c1 AND w(i)=c2 THEN RETURN
1720 IF p(i)=c1 AND q(i)=c2 THEN RETURN
1730 NEXT i: GOTO 500
1740 FOR i=1 TO 10: IF p(i)=c1 AND q(i)=c2 THEN RETURN
1750 IF z(i)=c1 AND w(i)=c2 THEN RETURN
1760 NEXT i: GOTO 500
2000 GOSUB 2010+d: RETURN
2010 BEEP .02,10: PRINT
AT p2,p1;"ţţ";AT p2+1,p1;"ţţ";AT p4,p3;"ţţ";AT p4+1,p3;"ţţ"2020 LET z(t3)=p4: LET w(t3)=p3: GOSUB 2500: GOSUB 2400: RETURN
2040 BEEP .02,15: PRINT AT p2,p1;"ţţ";AT p2+1,p1;"ţţ";AT p4,p3;"ţţ";AT p4+1,p3;"ţţ"
2050 LET p(t3)=p4: LET q(t3)=p3: GOSUB 2500: GOSUB 2400: RETURN
2400 LET v=v+1: IF d=0 THEN LET d=30: FOR i=1 TO 3: BEEP .1,3: NEXT i: PRINT AT 3,1;"A korong lţp": RETURN
2410 IF d=30 THEN LET d=0: FOR i=1 TO 3: BEEP .1,6: NEXT i: PRINT AT 3,1;"Kocka lţp ": RETURN
2500 IF v >= 65 THEN GOSUB 2510+d
2505 RETURN
2510 LET z=0: FOR n=8 TO 4 STEP -1: FOR j=13-n TO 8: FOR i=1 TO 10
2515 BEEP .001,i*2: IF x(j)=w(i) AND y(n)=z(i) THEN LET z=z+1: GOSUB 2600
2520 NEXT i: NEXT j: NEXT n: RETURN
2540 LET z=0: FOR n=4 TO 1 STEP -1: FOR j=1 TO 5-n: FOR i=1 TO 10
2550 BEEP .001,i*2: IF x(j)=q(i) AND y(n)=p(i) THEN LET z=z+1: GOSUB 2600
2560 NEXT i: NEXT j: NEXT n: RETURN
2600 IF z <> 10 THEN RETURN
2610 GOSUB 2620+d: RETURN
2620 FOR i=10 TO 40 STEP .5: BEEP .02,i: NEXT i : PRINT INK 7;AT 20,8;" A kocka nyert!": GOTO 2800
2650 FOR i=40 TO 10 STEP .5: BEEP .02,i: NEXT i: PRINT INK 7;AT 20,8;" A korong nyert!"
2800 PRINT INK 3;AT 21,1;" Akarsz mţg jAtszani? i/n "
2810 LET a$=INKEY$: IF a$="I" OR a$="N" THEN GOTO 2820
2815 GOTO 2810
2820 IF a$="N" THEN CLS : LIST : STOP
2830 RUN 20
6000 LET kk=PEEK 23560: POKE 23560,0: RETURN
6010 LET p1=CODE CHR$ kk-64: LET p1=x(p1): RETURN
6011 LET p3=CODE CHR$ kk-64: LET p3=x(p3): RETURN
6012 LET p2=VAL CHR$ kk: LET p2=y(p2): RETURN
6013 LET p4=VAL CHR$ kk: LET p4=y(p4): RETURN
8000 REM az UDG-k
8010 FOR i=0 TO 95: READ a: POKE USR "a"+i,a: NEXT i: RETURN
8020 DATA 255,128,128,128,128,128,128,128
8025 DATA 255,1,1,1,1,1,1,1
8030 DATA 128,128,128,128,128,128,128,255
8035 DATA 1,1,1,1,1,1,1,255
8040 DATA 255,128,129,131,135,143,159,191
8045 DATA 255,1,129,193,225,241,249,253
8050 DATA 191,159,143,135,131,129,128,255
8055 DATA 253,249,241,225,193,129,1,255
8060 DATA 255,128,131,140,152,144,160,160
8065 DATA 255,1,193,49,25,9,5,5
8070 DATA 160,160,144,152,140,131,128,255
8075 DATA 5,5,9,25,49,193,1,255
8100 REM kezd
ţkţp8105 BORDER 1: PAPER 1: BRIGHT 1: CLS
8110 FOR i=0 TO 31 STEP 2: PRINT INK INT (2+RND*6);AT 0,0+i;"ţţ";AT 1,0+i;"ţţ": BEEP .02,i: NEXT i
8120 FOR i=2 TO 20 STEP 2: PRINT INK INT (2+RND*6);AT 0+i,0;"ţţ";AT 1+i,0;"ţţ": BEEP .02,i: NEXT i
8130 FOR i=
2 TO 20 STEP 2: PRINT INK INT (2+RND*6);AT 0+i,30;"ţţ";AT 1+i,30;"ţţ": BEEP .02,i: NEXT i8140 FOR i=0 TO 31 STEP 2: PRINT INK INT (2+RND*6);AT 20,0+i;"ţţ";AT 21,0+i;"ţţ": BEEP .02,i: NEXT i
8150 PRINT AT 4,5;"NyitraiSOFT bemutatja:"
8155 PRINT INK 5;AT 6,11;"helycsere"
8157 INK 7: PRINT AT 7,8;"logikai jAtEkAt"; INK 2;AT 8,13;"2002'"
8160 PRINT INK 6;AT 12,11;"keszitette:";AT 13,11;"jatekgyaros"
8170 PRINT AT 18,2;"Nyomj egy gombot a kezdeshez"
8180 PAUSE 0
8200 RETURN
9999 CLEAR : SAVE "helycsere" LINE 20: SAVE "hudg"CODE USR "a",168
IQ TESZT - INTELLIGENCIATESZT
ÉS ANGOL GYAKORLÓ KISISKOLÁSOKNAK
Leírás: Ez a játék egy igazi IQ = intelligencia teszt kisiskolásoknak, magyar és angol nyelven - alapfokú angolszöveg gyakorló is. A teszt 18 feladatot tartalmaz, válaszolni angolul kell!! és a jó válasz esetén egy kis teddy maci mászik fel a tudás létráján.

1 REM
***********************
* INTELLIGENCIA TESZT *
* es angol gyakorlo *
* 3-4-5 EVESEKNEK *
***********************
2 REM (c) NyitraiSOFT 2002'
3 LET sc=0: LET q=1: LET wr=0: FOR a=USR "a" TO USR "t"+7: READ user: POKE a,user: NEXT a
4 DATA 1,3,7,15,31,63,127,255,128,192,224,240,248,252,254,255,0,0,60,126,126,60,0,0
5 DATA 255,255,193,193,193,193,193,255,255,255,131,131,131,131,131,255,255,193,193,193,193,193,255,255,255,131,131,131,131,131,255,255
6 DATA 255,0,255,0,255,0,255,0
7 DATA 0,0,1,3,3,1,0,0,0,0,153,255,255,219,231,231,0,0,128,192,192,128,0,0,0,0,0,0,1,3,15,31,255,126,255,255,255,255,255,255,0,0,0,0,128,192,240,248
8 DATA 63,127,127,255,251,243,227,1,255,255,255,255,255,255,255,255,252,254,254,255,223,207,199,128
9 DATA 3,7,15,15,31,31,63,60,231,231,195,195,195,129,0,0,192,224,224,240,240,248,252,60
10 BORDER 5: PAPER 5: INK 0: CLS
20 FOR f=17 TO 19: PRINT INK 4;AT f,0;"ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ": NEXT f: INK 0
25 RANDOMIZE USR 65055
30 LET q$="ţţţţţţţţţţ": LET w$="ţţţţţţţţţţţţ"
40 DIM a$(6,10)
41 LET a$(1)="ţţţţţţţţţţ"
42 LET a
$(2)="ţţţţ ţţţţ"43 LET a$(3)="ţ ţ ţ ţ"
44 LET a$(4)="ţ ţ ţ ţ"
45 LET a$(5)="ţţţţ ţţţţ"
46 LET a$(6)="ţţţţ ţţţţ"
50 INK 7: FOR f=1 TO 6: PRINT AT f+10,18;a$(1): NEXT f
55 RANDOMIZE USR 65055
60 INK 2: PRINT AT 9,18;q$;AT 10,17;w$
70 FOR f=1 TO 5: PRINT AT f+11,21; INK 1; PAPER 7;"ţţţţ": NEXT f
90 PRINT AT 14,22; INK 7; PAPER 1;"ţ"
140 PRINT AT 13,19; INK 2;"ţţ"
150 PRINT AT 14,19; INK 2;"ţţ";AT 13,25; INK 2;"ţţ"
160 PRINT AT 14,25; INK 2;"ţţ"
165 RANDOMIZE USR 65055
190 FOR f=14 TO 16: PRINT AT f,5; INK 2; PAPER 0; BRIGHT 1;"ţţ": NEXT f
192 LET a=0
195 INK 4
201 FOR f=160 TO 64 STEP -1
203 PLOT 40-a,f: DRAW 2.5*a,0
205 LET a=a+.25: BEEP .01,a
206 NEXT f
210 PRINT
215 PRINT AT 5,25; INK 7;"~~"
216 PRINT AT 6,25; INK 7;"~~"
218 PRINT AT 7,25; INK 0;"ţ"
220 PRINT AT 8,25; INK 0;"ţ"
230 FOR f=10 TO 0 STEP -1: CIRCLE INK 6;210,150,f
240 NEXT f
245 RANDOMIZE USR 65055
300 REM QUESTIONS
330 IF q=1 THEN GOTO 500
340 IF q=2 THEN GOTO 1000
350 IF q=3 THEN GOTO 1500
360 IF q=4 THEN GOTO 2000
370 IF q=5 THEN GOTO 2500
380 IF q=6 THEN GOTO 3000
390 IF q=7 THEN GOTO 3500
400 IF q=8 THEN GOTO 4000
410 IF q=9 THEN GOTO 4500
420 IF q=10 THEN GOTO 5000
430 IF q=11 THEN GOTO 7000
500 REM QUESTIONS 1
505 RANDOMIZE USR 65055
510 LET q=q+1
520 PRINT AT 20,0;"WHAT COLOUR IS THE DOOR?
MILYEN SZINŰ AZ AJTO?": INPUT ; LINE g$530 IF g$="blue" OR g$="BLUE" THEN GOTO 580
540 GOSUB 5500
550 GOTO 520
580 LET sc=sc+1
590 GOTO 6000
1000 REM QUESTIONS 2
1005 RANDOMIZE USR 65055
1010 LET q=q+1
1020 PRINT AT 20,0;"HOW MANY WINDOWS ARE THERE? HANY ABLAK VAN A HAZON?"
1021 INPUT ; LINE g$
1030 IF g$="2" OR g$="TWO" OR g$="two" THEN GOTO 1080
1040 GOSUB 5500
1050 GOTO 1020
1080 LET sc=sc+1
1090 GOTO 6000
1500 REM QUESTIONS 3
1505 RANDOMIZE USR 65055
1510 LET q=q+1
1520 PRINT AT 20,0;"WHAT COLOUR IS THE TREE? MILYEN SZIN
Ű A FA LOMBJA?"1521 INPUT ; LINE g$
1530 IF g$="GREEN" OR g$="Green" OR g$="green" THEN GOTO 1580
1540 GOSUB 5500
1550 GOTO 1520
1580 LET sc=sc+1
1590 GOTO 6000
2000 REM QUESTIONS 4
2005 RANDOMIZE 65055
2010 LET q=q+1
2020 PRINT AT 20,0;"BONUS QUESTION - WHAT IS 2+3? JUTALOM KERDES - MENNYI 2+3?"
2021 INPUT ; LINE g$
2030 IF g$="5" OR g$="FIVE" OR g$="five" THEN GOTO 2080
2040 GOSUB 5500
2050 GOTO 2020
2080 LET sc=sc+1
2090 GOTO 6000
2500 REM QUESTIONS 5
2505 RANDOMIZE USR 65055
2510 LET q=q+1
2520 PRINT AT 20,0;"WHAT COLOUR IS THE HOUSE? MILYEN SZIN
Ű A HAZ ?"2521 INPUT ; LINE g$
2530 IF g$="WHITE" OR g$="White" OR g$="white" THEN GOTO 2580
2540 GOSUB 5500
2550 GOTO 2520
2580 LET sc=sc+1
2590 GOTO 6000
3000 REM QUESTIONS 6
3005 RANDOMIZE USR 65055
3010 LET q=q+1
3020 PRINT AT 20,0;"WHAT COL
OUR IS THE SUN? MILYEN SZINŰ A NAP ?"3021 INPUT ; LINE g$
3030 IF g$="YELLOW" OR g$="Yellow" OR g$="yellow" THEN GOTO 3080
3040 GOSUB 5500
3050 GOTO 3020
3080 LET sc=sc+1
3090 GOTO 6000
3305 FOR g=1 TO 4: PRINT AT f+g-1,3; INK 6;n$(g): NEXT g
3500 REM QUESTIONS 7
3505 RANDOMIZE USR 65055
3510 LET q=q+1
3520 PRINT AT 20,0;"BONUS QUESTION - WHAT IS 3-1? JUTALOM KERDES - MENNYI 3-1?"
3521 INPUT ; LINE g$
3530 IF g$="2" OR g$="two" OR g$="TWO" THEN GOTO 3580
3540 GOSUB 5500
3550 GOTO 3520
3580 LET sc=sc+1
3590 GOTO 6000
4000 REM QUESTIONS 8
4005 RANDOMIZE USR 65055
4010 LET q=q+1
4020 PRINT AT 20,0;"WHAT COLOUR IS THE ROOF? MILYEN SZIN
Ű A FATORZS?"4021 INPUT ; LINE g$
4030 IF g$="RED" OR g$="Red" OR g$="red" THEN GOTO 4080
4040 GOSUB 5500
4050 GOTO 4020
4080 LET sc=sc+1
4090 GOTO 6000
4500 REM QUESTIONS 9
4505 RANDOMIZE USR 65055
4510 LET q=q+1
4520 PRINT AT 20,0;"WHAT COLOUR
IS THE CHIMNEY? MILYEN SZINŰ A KEMENY ?"4521 INPUT ; LINE g$
4530 IF g$="BLACK" OR g$="Black" OR g$="black" THEN GOTO 4580
4540 GOSUB 5500
4550 GOTO 4520
4580 LET sc=sc+1
4590 GOTO 6000
5000 REM QUESTIONS 10
5005 RANDOMIZE USR 65055
5010 LET q=q+1
5020 PRINT AT 20,0;"BONUS QUESTIONS - WHAT IS 4+2? JUTALOM KERDES - MENNYI 4+2 ?"
5021 INPUT ; LINE g$
5030 IF g$="6" OR g$="SIX" OR g$="six" THEN GOTO 5080
5040 GOSUB 5500
5050 GOTO 5020
5080 LET sc=sc+1
5090 GOTO 6000
5500 REM WRONG ANSWER
5501 LET wr=wr+1
5510 PRINT 1;AT 0,0; INK 0;"Oh Dear!That's wrong -Try again! NEM JO,ISMETELD!"
5520 RESTORE 5530: FOR f=1 TO 36: READ a,b: BEEP a/3,b: NEXT f: RETURN
5530 DATA .5,0,.5,2,.25,3,.25,2,.5,0,.5,0,.5,2,.25,3,.25,2,.5,0,.5,3,.5,5,1,7,.5,3,.5,5,1,7,.375,7,.125,8,.25,7,.25,5,.25,3,.25,2,.5,0,.375,7,.125,8,.25,7,.25,5,.25,3,.25,2,.5,0,.5,0,.5,-5,1,0,.5,0,.5,-5,1,0
6000 REM REWARD
6010 BORDER 2: PAPER 4: INK 6: CLS
6020 DIM m$(22,3)
6030 LET m$(1)="ţţţ"
6040 FOR f=2 TO 21: LET m$(f)=m$(1): NEXT f
6045 LET m$(22)="ţ ţ"
6050 FOR f=1 TO 22: PRINT INK 7;m$(f);" "; INK 6;22-f: NEXT f
6060 DIM n$(5,3)
6070 LET n$(1)="ţţţ"
6080 LET n$(2)="ţţţ"
6090 LET n$(3)="ţţţ"
6100 LET n$(4)="ţţţ"
6105 RANDOMIZE USR 65055
6110 PRINT FLASH 1;AT 2,15;"CORRECT"
6115 PRINT FLASH 1;AT 3,15;"JO VALASZ"
6120 PRINT AT 6,15;"How high can ";AT 7,15;"Teddy climb ?"
6121 PRINT AT 9,15;"MILYEN MAGASRA ";AT 10,10;"jut fel a TEDDY maci?"
6140 IF sc=10 THEN LET qwe=0: GOTO 6300
6150 LET poi=sc*2: LET lkj=19-poi: LET qwe=lkj
6300 FOR f=18 TO qwe STEP -1: FOR g=1 TO 4: PRINT AT f+g-1,3; INK 6;n$(g): NEXT g: BEEP .1,f: FOR h=1 TO 4: PRINT AT f+h-1,3;" ": NEXT h: NEXT f
6301 IF sc=10 THEN FOR g=1 TO 4: PRINT AT g-1,3; INK 6;n$(g): NEXT g: FOR f=60 TO 60: BEEP .01,f: NEXT f: GOTO 6310
6305 FOR g=1 TO 4: PRINT AT f+g-1,3; INK 6;n$(g): NEXT g
6310 FOR f=1 TO 200: NEXT f
6320 GOTO 10
7000 REM FINISH
7010 FOR f=1 TO 4: PRINT AT f+12,13; INK 6;n$(f): NEXT f: PRINT AT 3,8; FLASH 1; INK 1;"Teddy climbed";AT 4,8; FLASH 1; INK 1;" the ladder "
7020 PRINT AT 6,8; INK 2;"You have an ";AT 7,8; INK 2;"Infant IQ of ";100-wr
7100 LET tyr=INT (RND*5)+1
7110 IF tyr=1 THEN GOTO 7200
7120 IF tyr=2 THEN GOTO 7300
7130 IF tyr=3 THEN GOTO 7400
7140 IF tyr=4 THEN GOTO 7500
7150 IF tyr=5 THEN GOTO 7600
7155 GOTO 7100
7200 REM TUNE 1
7210 RESTORE 7220: FOR f=1 TO 30: READ a,b: BEEP a,b: NEXT f: GOTO 8000
7220 DATA .2,10,.2,10,.2,10,.2,7,.2,10,.2,12,.2,10,.4,7,.2,7,.4,5,.2,7,.4,5,.2,10,.2,10,.2,10,.2,7,.2,10,.2,12,.2,10,.4,7,.2,7,.2,5,.2,7,.2,5,.4,3,.2,10,.2,10,.2,10,.2,7,.1,10,.2,12,.2,10,.4,7,.2,7,.4,5,.2,7,.4,5,.2,10,.2,10,.2,10,.2,7,.1,10,.1,10,.1,12,.1,12,.1,10,.1,10,.4,7,.2,7,.2,5,.2,7,.2,5,.8,3,.2,3,.1,3,.2,7,.2,10,.8,15,.2,12,.1,12,.2,15,.2,12,.4,10,.2,7,.2,10,.2,10,.1,7,.1,7,.1,10,.1,10,.2,12,.2,10,.4,7,.2,5,.1,7,.1,8,.2,7,.1,5,.1,5,.8,3
7300 REM TUNE 2
7310 RESTORE 7320: FOR f=1 TO 30: READ a,b: BEEP a,b: NEXT f: GOTO 8000
7320 DATA .2,7,.1,11,.2,9,.1,12,.1,11,.1,14,.1,11,.2,7,.2,7,.1,11,.2,9,.1,12,.3,11,.3,7,.2,7,.1,11,.2,9,.1,12,.1,11,.1,14,.1,11,.2,7,.3,16,.2,9,.1,12,.25,11,.25,7
7400 REM TUNE 3
7410 RESTORE 7420: FOR f=1 TO 30: READ a,b: BEEP a,b: NEXT f: GOTO 8000
7420 DATA .6,9,.2,9,.2,10,.2,9,.2,7,.1,5,.6,14,.2,14,.2,10,.2,12,.2,14,.1,12,.2,12,.2,14,.2,14,.2,14,.2,10,.2,12,.2,14,2,12,.2,14,.2,12,.4,9,.2,12,.2,14,.2,14,.2,14,.2,14,.2,10,.2,12,.2,14,.2,12,.2,14,.2,12,.4,9,.2,10,.4,12,.2,12,.2,10,.2,9,.2,7,.8,5
7500 REM TUNE 4
7510 RESTORE 7520: FOR f=1 TO 30: READ a,b: BEEP a,b: NEXT f: GOTO 8000
7520 DATA .6,8,.2,10,.2,8,.2,5,.2,3,.2,1,.2,3,.2,1,.2,5,.2,1,.2,-2,.8,-4,.6,8,.2,10,.2,8,.2,5,.2,3,.2,1,.2,5,.2,1,.2,5,.2,5,.8,3,.6,8,.2,10,.2,8,.2,5,.2,3,.2,1,.2,3,.2,1.2,5,.2,1,.2,-2,.4,-4,.2,1,.2,3,.2,1,.2,5,.2,1,.2,-2,.2,-4,.2,-2,.2,1,.2,5,.2,1,.2,5,.2,5,.2,1
7600 REM TUNE 5
7610 RESTORE 7620: FOR f=1 TO 30: READ a,b: BEEP a,b: NEXT f: GOTO 8000
7620 DATA .1,0,.1,5,.2,5,.3,5,.1,5,.2,4,.2,7,.4,7,.1,0,.1,7,.2,7,.3,7,.1,7,.2,5,.2,9,.4,9,.1,5,.1,9,.2,9,.3,9,.1,9,.2,10,.2,14,.4,14,.1,14,.2,12,.2,12,.2,10,.2,14,.6,5
8000 LET g$="Press any"
8005 LET x$="key to"
8010 LET u$="restart"
8020 BORDER 0: PAPER 0: INK 7: CLS
8030 PRINT AT 1,0;g$;AT 5,0;x$;AT 9,0;u$
8040 PAUSE 0
8050 RUN
9100 SAVE "iqteszt" LINE 1
9110 PRINT AT 0,0;"Rewind tape and verify"
9120 VERIFY "infant iq"
9130 STOP
KÁRTYAJÁTÉK - KERESD A PÁRJÁT!
Leírás: az asztalon 18 lefordított kártya fekszik, találgatással meg kell keresni a párját, az "A" lenyomásával csalhatunk, megfordíthatjuk a kártyákat, csak akkor tetemes pontlevonás jár. Jó találgatással a feladat gyorsan megoldható.

1 REM memOria jAtEk
Otlet: 1960-as bUvAr kOnyvek
matematikai jAtEkok
kiadvAnya alapjAn
2 REM NYITRAISOFT 2002'
3
REM szerző:Nyitrai LaszlO4 BORDER 1: PAPER 1: INK 6: CLS
5 DEF FN z(x)=x-2*INT (x/2)
10 DEF FN p(x,y)=1+FN z(FN z(x)+(y=11))
15 REM grafikus karakterek UuuuuuuuuEFFFFFFFD ÷ ÷B B OuuuuuuuoAFFFFFFFC
16 REM
20 DATA 24,24,24,12,15,3,0,0
21 DATA 24,24,24,24,24,24,24,24
22 DATA 24,24,24,48,240,192,0,0
23 DATA 0,0,0,0,192,240,48,24
24 DATA 0,0,0,0,3,15,12,24
25 DATA 0,0,0,0,255,255,0,0
30 FOR i=0 TO 47: READ a: POKE USR "a"+i,a
36 NEXT i
40 DIM v$(18,9): DIM v(18): DIM r$(6,3,9): DIM e(6,3): DIM s$(2,8): DIM i(2): DIM j(2)
50 REM allandok beallitasa
60 LET maxido=60000: LET ido=0: LET pr=0: LET vi=0: LET po=0
70 LET s$(1)="?KURTYA?": LET s$(2)="3/4KURTYA3/4"
80 LET db=18: LET c1=.1: LET c2=50: LET c3=300: LET c4=500
85 REM kartyalapok
90 LET w$="UuuuuuuuuuUuuuuuuuuuUuuuuuuuuu ÷ ÷÷ ÷÷ ÷ OuuuuuuuuoOuuuuuuuuoOuuuuuuuuo"
100 LET t$=" ": LET b$=" "
120 DATA "SPECCYA",100,"SPEC48B",100," ZX81C",100
130 DATA "SPECCYA",100,"SPEC48B",100," ZX81C",100
140 DATA "SPEC128D",150,"SINC64E",150
150 DATA "SPEC128D",150,"SINC64E",150
160 DATA "2+(6/3)L",250,"3+(6/3)M",250,"8/(2*4)N",250,"16/2*4P",250
170 DATA "4L",250,"5M",250,"1N",250,"32P",250
180 REM a jatek kezdete
185 RANDOMIZE USR 65055
190 CLS
191 PRINT AT 0,0;"Uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu"
192 FOR i=1 TO 20: PRINT AT 0+i,0;"÷";AT 0+i,31;"÷": NEXT i
193 PRINT AT 21,0;"Ouuuuuuuuuuuuuuuuuuuuuuuuuuuuuuo"
194 PRINT INK 7;AT 3,7;"MEMORIA JATEK";AT 5,7;"NYL_soft 2002' "
195 PAUSE 20: PRINT AT 5,7;" "
196 PRINT INK 2;AT 3,7;"MEMORIA JATEK";AT 5,7;" NYL_soft 2002'"
197 BEEP .01,ido: IF ido=65 THEN GO SUB 7500: GO TO 240
198 PAUSE 20
200 PRINT INK 5;AT 10,3;"KERED A JATEKSZABALYOKAT?"
210 LET ido=ido+1: LET q$=INKEY$: IF q$="" THEN GO TO 194
220 IF q$<>"n" AND q$<>"N" THEN GO SUB 7500: GO TO 240
230 PRINT AT 15,5;"EGY KIS TURELMET KEREK,";AT 16,5;"MOST KEVEREM A LAPOKAT."
240 GO SUB 8000
250 PRINT INK 6;AT 18,2;"KEZDHETEM?"; INK 5;" (NYOMD A SPACE-t)": LET q$=INKEY$
260 LET ido=ido+1: LET q$=INKEY$: IF q$="" THEN GO TO 260
270 GO SUB 1000
280 GO SUB 5000: GO SUB 2000: GO TO 280
1000 REM A KARTYAK ELHELYEZESE
1010 CLS : PRINT : FOR i=0 TO 5: PRINT w$: BEEP .01,i: NEXT i
1020 FOR y=1 TO 21 STEP 10: FOR x=2 TO 17 STEP 3
1030 PRINT AT x,y; INK INT (2+RND*5);s$(FN p(x,y));: BEEP .01*x,2*y: NEXT x: NEXT y
1040 FOR y=0 TO 2: PRINT AT 0,y*10+5;y+1;: NEXT y
1050 FOR x=0 TO 5: PRINT AT x*3+2,30;x+1;: NEXT x
1060 RETURN
2000 REM JO TIPP VALASZTASA
2010 LET pr=pr+1: PRINT INK 5;AT 21,0;"NYOMD MEG A SPACE-t": LET q$=INKEY$
2020 LET ido=ido+1: IF ido>maxido THEN GO TO 9800
2030 LET q$=INKEY$: IF q$="" THEN GO TO 2020
2040 FOR x=19 TO 21: PRINT AT x,0;b$;: NEXT x
2050 IF r$(i(1),j(1),9)=r$(i(2),j(2),9) THEN GO TO 2080
2060 RANDOMIZE USR 65055: PRINT INK 5;AT 21,0;"EZ SAJNOS KET KULONBOZ
Ő VOLT!";2070 FOR k=1 TO 2: GO SUB 9000: PRINT AT x,y;s$(FN p(x,y));: NEXT k: RETURN
2080 FOR i=1 TO 5: RANDOMIZE USR 65055
2081 PRINT AT 21,0;"EZ A KET LAP A TIED! ";
2083 RANDOMIZE USR 65055: NEXT i
2090 FOR k=1 TO 2: GO SUB 9000: PRINT AT x-1,y-1;t$;: PRINT AT x,y-1;t$;: PRINT AT x+1,y-1;t$;
2100 LET po=po+e(i(k),j(k))/2: LET e(i(k),j(k))=0: NEXT k: LET db=db-2: IF db=0 THEN GO TO 9600
2110 RETURN
3000 REM egy kartya felforditasa
3010 GO SUB 9000: PRINT AT x,y;r$(i(k),j(k),1 TO 8);: RETURN
4000 REM AZ ASZTAL ALA NEZES
4010 LET vi=vi+1: LET po=po-c3*vi*vi
4020 FOR x=19 TO 21: PRINT AT x,0;b$;: BEEP .01,x: NEXT x
4030 FOR i=1 TO 6: FOR j=1 TO 3
4040 IF e(i,j)<>0 THEN GO SUB 9500: PRINT AT x,y;r$(i,j,1 TO 8);
4050 BEEP .2,j: NEXT j: BEEP .1,i: NEXT i
4055 FOR h=1 TO 1000: NEXT h
4060 FOR i=1 TO 6: FOR j=1 TO 3
4070 IF e(i,j)<>0 THEN GO SUB 9500: PRINT AT x,y;s$(FN p(x,y));
4080 NEXT j: BEEP .2,i: INK i+1: NEXT i: GO TO 280
5000 REM TIPP BEKERESE
5010 PRINT AT 19,0;"1.LAP SORA? ";
5020 LET k=3: GO SUB 6000
5030 LET i(1)=q
5040 PRINT AT 21,0;b$
5050 PRINT AT 19,15;"1.LAP OSZLOPA? ";
5060 LET k=0: GO SUB 6000
5070 LET j(1)=q: LET k=1: GO TO 7000
5080 GO SUB 3000
5090 PRINT AT 20,0;"2.LAP SORA? ";
5100 LET k=3: GO SUB 6000
5110 LET i(2)=q
5130 PRINT AT 20,15;"2.LAP OSZLOPA? ";
5140 LET k=0: GO SUB 6000
5150 LET j(2)=q: LET k=2: GO TO 7000
5160 GO SUB 3000
5170 IF i(1)<>i(2) OR j(1)<>j(2) THEN RETURN
5180 PRINT AT 21,0;"KET KULONBOZ
ŐT KELL MEGADNOD!";5190 PRINT AT 21,0;b$;: GO TO 5090
6000 REM A TIPP ELLENORZESE
6010 FOR i=1 TO 50: NEXT i: LET q$=INKEY$
6020 LET ido=ido+1: IF ido>maxido THEN GO TO 9800
6030 LET q$=INKEY$: IF q$="" THEN GO TO 6020
6040 IF q$="a" OR q$="A" THEN GO TO 4000
6050 IF q$<"1" OR CODE q$>51+k THEN GO TO 6020
6060 PRINT q$: LET q=VAL q$: RETURN
7000 REM A NEM LETEZO LAP KISZŰRESE
7010 IF e(i(k),j(k))>0 THEN GO TO 5000+k*80
7020 RANDOMIZE USR 65055
7021 PRINT AT 21,0;"ITT MAR NINCS LAP !!"
7030 PRINT AT 18+k,0;b$;: GO TO 4930+k*80
7500 REM JATEKSZABALYOK
7505 LET k=1
7510 CLS : PRINT " MEMORIA - JATEKSZABALYOK": PRINT
7520 PRINT "A KEPERNYŐN 18 KARTYAT FOGSZ LATNI, PERSZE LEFORDITVA. KET KARTYA PART ALKO
T.HA EGYFORMAK"7530 PRINT "VAGY AZ EGYIKEN LEVŐ KIFEJEZES ERTEKE EGYENLŐ A MASIKON LEVŐ SZAMMAL, NEKED MINDIG KET KAR- TYAT KELL EGYMAS UTAN FELFORDI-"
7540 PRINT "TANOD, HA PART ALKOTNAK, MEGKA- POD ŐKET, ES 100-250 PONTOT, KULONBEN VISSZAFORDULNAK.AMENY- NYIVEL TOBBET PROBALSZ 12-NEL ANNYISZOR 50 PONTOT LEVONOK TŐ-"
7550 PRINT "LED, VISZONT, HA MIND LEVESZED, TOBB, MINT 500 JUTALOM-PONTOT KAPSZ.A KARTYAK EGY UVEGASZTA- LON VANNAK,TE AZ ASZTAL ALA"
7560 PRINT "NEZHETSZ,CSAK AZ 'A'
BETŰT KELL LENYOMNOD. ILYENERT ";K*K*300;" PONTOT VONOK LE TŐLED."7565 PRINT INK 5;" NYOMJ EGY GOMBOT !!"
7570 PAUSE 0: CLS : LET k=0: RETURN
8000 REM KEVERES
8010 FOR i=1 TO 18: READ q$,v(i)
8020 LET x$=q$(1 TO LEN q$-1): LET y$=q$(LEN q$)
8030 LET l=8-LEN x$
8040 LET v$(i)=" "(1 TO INT (l+1)/2)+x$+" "(1 TO INT (l/2))+y$: NEXT i
8050 FOR i=1 TO 5: LET u=1+INT (RND*18): LET v=1+INT (RND*18)
8060 LET q$=v$(u): LET v$(u)=v$(v): LET v$(v)=q$
8070 LET q=v(u): LET v(u)=v(v): LET v(v)=q
8080 NEXT i: LET pk=1+INT (RND*18)
8090 LET p=5+2*(RND<.5)+6*(RND<.5)
8100 FOR i=1 TO 6: FOR j=1 TO 3: LET pk=pk+p: IF pk>18 THEN LET pk=pk-18
8110 LET r$(i,j)=v$(pk): LET e (i,j)=v(pk): NEXT j: NEXT i
8120 FOR i=1 TO 6: LET i=1+INT (RND*6): LET k=1+INT (RND*6): LET j=1+INT (RND*3): LET l=1+INT (RND*3)
8130 LET q$=r$(i,j): LET r$(i,j)=r$(k,l): LET r$(k,l)=q$
8140 LET q=e(i,j): LET e(i,j)=e(k,l): LET e(k,l)=q: NEXT i: RETURN
9000 REM i(k).sor j(k). kartyaja
9010 LET i=i(k): LET j=j(k)
9500 LET x=i*3-1: LET y=j*10-9: RETURN
9600 REM HA MIND LEVETTE
9610 LET p0=INT (c4+(maxido-ido)*c1): LET po=po+p0
9620 CLS : PRINT : PRINT : PRINT "GRATULALOK, MINDENT LE TUDTAL VENNI!"
9630 PRINT : PRINT : PRINT "EZyRT ";p0; " JUTALOM-PONTOT KAPTUL": GO TO 9820
9800 REM JATEK VEGE
9810 CLS : PRINT : PRINT : PRINT " SAJNOS,A JATEKIDŐD LEJART!"
9820 LET po=INT (po-(pr-12)*(pr>12)): LET po=po*(po>0)
9830 PRINT : PRINT : PRINT "A JATEKBAN ELERT PONTSZAMOD: ";po;" pont."
A TITOKZATOS KERT- LABIRINTUS JÁTÉK,
SEGÍTS A MÉHECSKÉNEK!
Leírás:
A kis méhecske elveszett a nagy kertben, nem találja a kivezető utat, őt a kurzorral irányíthatjuk, az útközben talált kukacokat meg kell enni, mert különben elvesztjük minden erőnket, de semminek sem lehet nekirepülni, mert ez egy élet elvesztését jelenti, érdekes sprite megoldások, különleges betűkkel.

1 REM nyitrai laszlo 2001'
2 REM LOAD DRIVE
5 CLEAR 45289
10 LOAD *"m";1;"full cod "CODE 45290,20250
20 LOAD *"m";1;"full udg "CODE USR "a",168
30 GOTO 70
50 REM LOAD TAPE
52 CLEAR 45289
55 PRINT AT 19,0: LOAD ""CODE 45290,20250
60 PRINT AT 19,0: LOAD ""CODE USR "a",168
70 BORDER 0: INK 4: PAPER 0: BRIGHT 1: CLS
73 POKE 23606,72: POKE 23607,177
74 POKE 23613,0: POKE 23614,0
75 RANDOMIZE USR 45590
80 LET hi=0
82 LET fin=0
90 GOTO 3800
91 CLS
95 GOSUB 3000: REM set screen
100 REM START
101 POKE 54015,0: POKE 54016,18
102 IF op=2 THEN POKE 54016,12
103 IF op=3 THEN POKE 54016,7
108 POKE 54013,0: REM SPRITE 1
109 POKE 54014,6: REM SPRITE 2
110 POKE 54009,2: REM SP 1 ON
111 POKE 54010,2: REM SP 2 ON
112 POKE 54011,1: REM SCROLL ON
114 POKE 54021,2: REM BUG No
116 POKE 54535,67: REM ATTR 1
118 POKE 54568,70: REM ATTR 2
200 PRINT AT 17,28;sc
500 IF first=0 THEN GOTO 2900
2000 LET x=PEEK 54000: LET y=PEEK 54001: LET dir=PEEK 54004
2020 GOSUB 8000+PEEK ad
2021 IF PEEK 54009=1 THEN LET ghgh=PEEK 54016: LET ghgh=ghgh+4: POKE 54016,ghgh
2022 IF PEEK 54010=1 THEN LET ghgh=PEEK 54016: LET ghgh=ghgh+4: POKE 54016,ghgh
2025 IF PEEK (ad+100)=1 THEN POKE 54021,5
2030 PLOT OVER 1; INK 7;plx,ply
2035 LET plx=plx1: LET ply=ply1
2040 PLOT OVER 1; INK 7;plx,ply
2100 RANDOMIZE USR 54051
2110 IF PEEK 54012=1 THEN GOTO 3230
2120 IF PEEK 54022=1 THEN GOTO 2200
2130 IF PEEK 54022 <> 1 THEN GOTO 2250
2200 REM METER UP ROUTINE
2201 LET sc=sc+5
2202 POKE (ad+100),1
2203 LET bugs=bugs+1
2204 IF PEEK 23230=66 THEN GOTO 2300
2205 IF PEEK bugo=66 THEN LET bugo=bugo+1: POKE bugo,66: GOTO 2215
2210 IF PEEK bugo=70 THEN POKE bugo,66
2249 GOTO 2300
2250 REM METER DOWN ROUTINE
2255 IF PEEK bugo=70 THEN LET bugo=bugo-1: POKE bugo,70: GOTO 2265
2260 IF PEEK bugo=66 THEN POKE bugo,70
2265 IF PEEK 23221=70 THEN GOTO 3200
2300 REM : PLOT OVER 1; INK 7;plx,ply
2400 REM N/S/E/W DEC
2410 IF PEEK 54000 <= 10 AND PEEK 54012 <> 1 THEN GOTO 2700
2415 IF PEEK 54000 >= 229 AND PEEK 54012 <> 1 THEN GOTO 2800
2420 IF PEEK 54001 >= 101 AND PEEK 54012 <> 1 THEN GOTO 2600
2425 IF PEEK 54001 <= 10 AND PEEK 54012 <> 1 THEN GOTO 2500
2480 POKE 54000,x: POKE 54002,x: POKE 54001,y: POKE 54003,y: POKE 54004,dir: GOTO 100
2500 REM NORTH
2510 POKE 54001,101: POKE 54003,101
2520 POKE 54000,124: POKE 54002,124
2550 LET ad=ad-10
2555 LET ply1=ply1+4
2599 GOTO 100
2600 REM SOUTH
2610 POKE 54001,10: POKE 54003,10
2620 POKE 54000,124: POKE 54002,124
2650 LET ad=ad+10
2655 LET ply1=ply1-4
2660 IF ad=55505 THEN GOTO 3400
2670 IF INKEY$="E" THEN LET ad=55493: LET plx1=126: LET ply1=2: PRINT AT 8,7;"CHEAT MODE OPERATED": RANDOMIZE USR 54937: RANDOMIZE USR 54937: FOR z=1 TO 120: NEXT z
2699 GOTO 100
2700 REM WEST
2710 POKE 54000,229: POKE 54002,229
2720 POKE 54001,56: POKE 54003,56
2750 LET ad=ad-1
2755 LET plx1=plx1-4
2799 GOTO 100
2800 REM EAST
2810 POKE 54000,10: POKE 54002,10
2820 POKE 54001,56: POKE 54003,56
2850 LET ad=ad+1
2855 LET plx1=plx1+4
2899 GOTO 100
2900 REM 1ST SC CALL
2905 LET x=40: LET y=56: LET dir=1
2910 GOSUB 8000+PEEK ad
2915 PLOT OVER 1; INK 7;plx,ply
2920 RANDOMIZE USR 54026
2930 LET first=1
2998 GOTO 2110
3000 REM PRINT STATUS SCREEN
3010 INK 7: PLOT 112,0: DRAW 40,0: DRAW 0,40: DRAW -40,0: DRAW 0,-40
3020 PLOT OVER 1;133,0
3021 PLOT OVER 1;134,0
3022 PLOT OVER 1;135,0
3030 GOSUB 9050: PRINT AT 19,1;
"ţţ ţţ ţţ ţţ";AT 20,1;"ţţ ţţ ţţ ţţ"3035 PRINT AT 17,5;"Eletek:"
3040 PRINT AT 17,21;"pontok:"
3045 PRINT AT 19,21;" erőmeter."
3050 PRINT AT 21,21;"ţţţţţţţţţţ"
3199 RETURN
3200 REM RESET LIVES + METER
3205 PRINT AT 19,21;" erőmeter."
3207 RANDOMIZE USR 54937
3208 RANDOMIZE USR 54937
3210 IF liv>1 THEN GOSUB 9050: PRINT AT 21,21;"ţţţţţţţţţţ"
3220 LET bugo=23225
3230 LET liv=liv-1
3235 IF PEEK 54022=1 THEN LET sc=sc+5: LET bugs=bugs+1: POKE (ad+100),1
3240 GOSUB 9050: PRINT AT 19,lp;"ţţ";AT 20,lp;"ţţ"
3245 RANDOMIZE USR 54915
3247 FOR z=1 TO 9: NEXT z
3250 GOSUB 9050: PRINT AT 19,lp;"ţţ";AT 20,lp;"ţţ": LET lp=lp-3
3260 PRINT AT 17,28;sc
3270 FOR z=1 TO 5
3275 RANDOMIZE USR 54915: POKE 54904,71: RANDOMIZE USR 54897
3280 RANDOMIZE USR 54915: POKE 54904,68: RANDOMIZE USR 54897
3285 NEXT z
3290 PRINT AT 19,21;" erometer."
3299 IF liv=0 THEN GOTO 3600
3399 GOTO 2300
3400 REM ESCAPE ROUTINE
3401 LET fin=fin+1: LET esc=1
3410 PRINT AT 5,9;" gratulAlok!!"
3420 RANDOMIZE USR 54937: RANDOMIZE USR 54915: RANDOMIZE USR 54915: RANDOMIZE USR 54915
3421 RANDOMIZE USR 54937: RANDOMIZE USR 54915: RANDOMIZE USR 54915: RANDOMIZE USR 54915
3422 RANDOMIZE USR 54937: RANDOMIZE USR 54915: RANDOMIZE USR 54915: RANDOMIZE USR 54915
3423 RANDOMIZE USR 54937: RANDOMIZE USR 54915: RANDOMIZE USR 54915: RANDOMIZE USR 54915
3424 RANDOMIZE USR 54937: RANDOMIZE USR 54915: RANDOMIZE USR 54915: RANDOMIZE USR 54915
3430 POKE 54904,64: RANDOMIZE USR 54897
3440 FOR z=0 TO 14: PRINT AT z,0;" ": NEXT z
3450 GOSUB 9040: PRINT AT 10,0;"
ţ ţ ţ ţ ţţţ ţţţţţţţţţ ţţţ ţţţ ţţţ ţţţ ţ ţţţ ţ ţţţ ţ ţţţ ţ ţţţ ţ ţ ţ ţ ţ ţ ţ ţ "3455 INK 0: PLOT 165,146: DRAW 2,-18: DRAW 2,-2: DRAW 50,0: DRAW 2,-2: DRAW 0,-20: DRAW -2,-2: DRAW -100,0: DRAW -2,2: DRAW 0,20: DRAW 2,2: DRAW 35,0: DRAW 2,2: DRAW 9,18
3456 GOSUB 9050: PRINT AT 1,21;"ţţ";AT 2,21;"ţţ"
3461 POKE 54904,105: RANDOMIZE USR 54897
3462 GOSUB 9040: PRINT AT 14,0;"ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ"
3463 PRINT AT 15,0;"ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ
"3465 LET fx=1: LET fy=21
3540 INK 4
3541 PRINT AT 7,17;"visszlAt!"
3545 FOR z=1 TO 100: NEXT z
3550 PRINT 0;" nyomd az enter-t"
3560 IF INKEY$="" THEN GOTO 3560
3565 RANDOMIZE USR 54915
3570 LET sc=(sc*2)
3599 GOTO 3700
3600 REM GAME OVER
3601 LET k=0
3602 RANDOMIZE USR 54937
3603 RANDOMIZE USR 54937
3604 PRINT 0;" nyomd az enter-t"
3605 LET k=CODE INKEY$
3610 PAUSE 5: PRINT AT 8,10;"jatek";AT 8,20;"vege"
3611 PAUSE 5: PRINT AT 8,10;"jatek";AT 8,20;"vege"
3612 PAUSE 5: PRINT AT 8,10;"jatek";AT 8,20;"vege"
3613 PAUSE 5: PRINT AT 8,10;"jatek";AT 8,20;"vege"
3620 IF k=0 THEN GOTO 3605
3700 REM END SCREEN
3710 CLS : RANDOMIZE USR 55600: GOSUB 7130
3720 GOSUB 9050: PRINT AT 4,4;"ţţ ţţ";AT 5,4;"ţţ ţţ"
3725 PRINT AT 4,12;"jatek vege"
3730 IF sc>hi THEN LET hi=sc
3735 GOSUB 9010: PRINT AT 7,0;"ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ"
3736 PRINT AT 6,0;"ţ"
3737 PRINT AT 17,0;"ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ"
3738 PRINT AT 21,0;"ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ";AT 20,0;"ţ";AT 19,0;"ţ";AT 18,0;"ţ";AT 20,31;"ţ";AT 19,31;"ţ";AT 18,31;"ţ"
3740 PRINT AT 9,10;"pontok: ";sc
3745 PRINT AT 11,10;"elert : ";hi
3750 PRINT AT 13,10;"kukac: ";bugs
3755 IF esc=0 THEN PRINT AT 15,10;" ment : nem"
3760 IF esc=1 THEN PRINT AT 15,10;" ment : igen"
3765 GOSUB 9040: PRINT AT 11,3;"ţţţ";AT 12,3;"ţţţ";AT 13,4;"ţ"
3766 PRINT AT 11,27;"ţţţ";AT 12,27;"ţţţ";AT 13,28;"ţ"
3770 IF fin=0 THEN PRINT AT 19,2;" ma nem sikerult a mentes !"
3775 IF fin=1 THEN PRINT AT 19,4;"";fin;"-mehecsket mentettel!"
3776 IF fin >= 2 THEN PRINT AT 19,3;"";fin;"-mehecsket mentettel!"
3790 PRINT 0;" nyomd az enter-t"
3791 REM : GOSUB 8600
3799 PAUSE 0
3800 REM OPTIONS SCREEN
3802 CLS : GOSUB 9040: PRINT AT 0,7;"
ţţţ ţţţ";AT 1,7;"ţţţ ţţţ";AT 2,8;"ţ ţ"3805 PRINT AT 1,10;"a jatek menuje:"
3810 LET op=1
3811 PRINT AT 4,5;"1. konnyu fokozat"
3812 PRINT AT 6,5;"2. nehez fokozat"
3815 PRINT AT 8,5;"3. lehetetlen fokozat"
3816 PRINT AT 10,5;"4. jatek magyarazata"
3817 PRINT AT 12,5;"5. a 2.fokozat betoltese"
3818 PRINT AT 14,5;"6. a 3.fokozat betoltese"
3819 PRINT AT 16,5;"7. kilepes a jatekbol"
3820 PRINT AT 20,1;" SPACE- le/fel S- inditas."
3830 GOSUB 9050: PRINT AT (op*2)+1,2;"
ţţ";AT (op*2)+2,2;"ţţ"3840 PAUSE 0
3850 IF INKEY$="s" THEN GOTO 3870
3851 IF INKEY$="M" THEN GOTO 9980
3852 PRINT AT (op*2)+1,2;" ";AT (op*2)+2,2;" "
3855 LET op=op+1
3857 IF op=8 THEN LET op=1
3860 GOSUB 9050: PRINT AT (op*2)+1,2;"ţţ";AT (op*2)+2,2;"ţţ"
3865 RANDOMIZE USR 54915: GOTO 3840
3870 IF op=1 THEN GOTO 5000
3871 IF op=2 THEN LET rembug=30: GOTO 5000
3872 IF op=3 THEN LET rembug=60: GOTO 5000
3873 IF op=4 THEN GOTO 5200
3875 IF op=5 THEN CLS : PRINT AT 11,12;"betoltes!": LOAD "garden 2"CODE 55400,100: GOTO 3800
3876 IF op=6 THEN CLS : PRINT AT 11,12;"betoltes!": LOAD "garden 3"CODE 55400,100: GOTO 3800
3877 IF op=7 THEN RANDOMIZE USR 0
3999 STOP
5000 REM GO TO GAME
5005 RANDOMIZE USR 54915
5006 RANDOMIZE USR 54915
5010 CLS : PRINT AT 11,10;"indul a jatek."
5015 GOSUB 8600
5020 IF op=2 OR op=3 THEN GOTO 5100
5030 GOTO 91
5100 REM ERASE FLYS (
5105 RANDOMIZE
5110 FOR z=1 TO rembug
5115 LET try=INT (RND*97)+1
5120 POKE 55500+try,1: NEXT z
5199 GOTO 91
5200 REM magyarazat
5201 LET got=0
5205 CLS : GOSUB 9030: PRINT AT 0,27;"ţţţ";AT 1,26;"ţţţţţ";AT 2,27;"ţţţ"
5206 : GOSUB 9030: PRINT AT 0,4;"ţţţ";AT 1,3;"ţţţţţ";AT 2,4;"ţţţ"
5210 PRINT AT 1,7;"a jatek magyarazata:"
5220 PRINT AT 5,0;" a kis mehecske elveszett a ";AT 7,0;" kertben,es nem talalja a kive-";AT 9,0;" zeto utat,segitsunk neki."
5225 PRINT AT 11,0;" vigyazni kell ,mert semminek ";AT 13,0;" nem szabad nekiutkozni,mert";AT 15,0;" akkor egy eletnek vege,es a ";AT 17,0;" megtalalt kukacokat is meg kell enni."
5245 GOSUB 5600
5250 PRINT AT 7,0;" freddy iranyito gombok :"
5255 GOSUB 9050: PRINT AT 6,18;"
ţţ";AT 7,18;"ţţ"5260 PRINT AT 10,10;"fel";AT 12,10;"le";AT 14,10;"balra";AT 16,10;"jobbra";AT 19,11;"jo jatekot!"
5265 PRINT AT 10,19;"q-gomb";AT 12,19;"a-gomb";AT 14,19;"o-gomb";AT 16,19;"p-gomb"
5270 LET got=1: GOSUB 5600
5599 GOTO 3800
5600 REM hold TILL key
5601 RANDOMIZE USR 54915
5605 : PRINT AT 21,8;"nyomd az enter-t"
5610 FOR z=1 TO 50: NEXT z
5620 PAUSE 0
5625 IF got=1 THEN RETURN
5630 FOR z=5 TO 21: PRINT AT z,0;" ": NEXT z
5650 RETURN
6000 REM felAllItAs
6001 FOR z=55400 TO 55499: GOSUB 8000+(PEEK z): PAUSE 0: NEXT z
6005 RESTORE 6030
6010 FOR z=55400 TO 55499
6015 READ a
6020 POKE z,a: NEXT z
6030 DATA 18,16,17,6,8,6,18,13,8,13
6031 DATA 20,8,13,4,9,2,20,12,7,6
6032 DATA 9,5,18,7,13,9,10,13,12,2
6033 DATA 12,17,10,11,16,6,9,11,13,4
6034 DATA 15,12,7,10,11,1,11,7,16,5
6035 DATA 3,17,6,20,14,9,5,18,11,13
6036 DATA 99,6,9,5,8,16,17,5,9,6
6037 DATA 4,9,6,8,5,15,18,16,6,4
6038 DATA 9,6,14,9,6,20,9,6,3,5
6039 DATA 12,7,17,16,5,19,17,5,9,13
6200 STOP
7000 REM RIGHT GATE
7001 GOSUB 9010: PRINT AT 7,30;"
ţţ";AT 8,30;"ţţ": RETURN7010 REM LEAVES SPACE
7012 PRINT AT 10,22;" ": RETURN
7020 REM LEFT GATE
7021 GOSUB 9010: PRINT AT 7,0;"ţţ";AT 8,0;"ţţ": RETURN
7030 REM RAKE 1
7031 GOSUB 9020: PRINT AT 11,27;"ţ";AT 12,26;"ţ": RETURN
7040 REM BUG 1
7041 GOSUB 9010: PRINT AT 12,27;"ţ": RETURN
7050 REM RIGHT FOLI
7051 GOSUB 9010: PRINT AT 7,18;"ţţ";AT 8,18;"ţţ": RETURN
7060 REM BOT GATE
7061 GOSUB 9010: PRINT AT 14,15;"ţţţ";AT 15,15;"ţţţ": RETURN
7070 REM RAKE 2
7071 G
OSUB 9020: PRINT AT 2,13;"ţ";AT 3,14;"ţ": RETURN7080 REM TOP GATE
7081 GOSUB 9010: PRINT AT 0,15;"ţţţ";AT 1,15;"ţţţ": RETURN
7090 REM BARROW
7091 GOSUB 9020: PRINT AT 7,12;"ţţţ";AT 8,12;"ţţţ": RETURN
7100 REM SCROLLER 1
7101 GOSUB 9020
: PRINT AT 7,9;"ţţţ";AT 8,9;"ţţţ";AT 6,25;" ": RETURN7102 RETURN
7110 REM FENCE 1
7111 GOSUB 9020: PRINT AT 1,15;"ţţţ": RETURN
7120 REM FENCE 2
7121 GOSUB 9020: PRINT AT 14,15;"ţţţ": RETURN
7130 REM FOLI TOP
7131 GOSUB 9010: PRIN
T AT 0,15;"ţţţ";AT 1,15;"ţţţ": RETURN7140 REM FOLI BOT
7141 GOSUB 9010: PRINT AT 14,15;"ţţţ";AT 15,15;"ţţţ": RETURN
7150 REM FOLI PATH
7155 PRINT AT 6,26;" ": GOSUB 9010: PRINT AT 9,12;"ţţţ ţ";AT 10,14;"ţ ţ";AT 11,14;"ţ ţ";AT 12,14;"ţ ţ";AT 13,14;"ţ ţ";AT 8,18;"ţ";AT 7,18;"ţ": RETURN
7160 REM SCROLLER 2
7161 GOSUB 9020: PRINT AT 7,9;"ţţţ";AT 8,16;"ţţţ": GOSUB 9040: PRINT AT 7,14;"ţţ";AT 8,21;"ţţ";AT 8,7;"ţ": RETURN
7170 REM GNOME
7171 GOSUB 9030: PRINT AT 6,13;"ţ ţ";AT 7,13;"ţ ţ";AT 8,13;"ţţţ";AT 9,13;"ţţţ": RETURN
7180 REM FLOWER POT
7182 GOSUB 9030: PRINT AT 8,21;"ţţţ";AT 9,20;"ţţţţ";AT 10,21;"ţţţ";AT 10,11;"ţ": RETURN
7190 REM RUB OUT 1
7192 GOSUB 9010: PRINT AT 6,15;"ţţţ";AT 6,2;" ";AT 6,26;" ": RETURN
7200 REM RUB OUT 2
7202 PRINT AT 9,26;" ": GOSUB 9010: PRINT AT 9,15;"ţţţ";AT 6,16;"ţ": RETURN
7210 REM TREE 1
7212 GOSUB 9040: PRINT AT 6,20;"ţţţ";AT 7,20;"ţţţ";AT 8,21;"ţ": RETURN
7220 REM TREE 2
7222 GOSUB 9040: PRINT AT 6,1p;" ţ";AT 7,10;"ţţţ";AT 8,11;"ţ";AT 9,11;"ţ": RETURN
7230 REM UP DOWN
7232 GOSUB 7170: PRINT AT 9,18;" ";AT 6,19;" ";AT 8,18;"ţ": RETURN
7240 REM FENCE BLOCK
7241 GOSUB 9010: PRINT AT 6,15;"ţţţ";AT 9,15;"ţţţ";AT 9,19;" ";AT 6,5;" ": RETURN
7250 REM RAKE 3
7252 GOSUB 9040: PRINT AT 2,19;"ţ";AT 3,19;"ţ": RETURN
7999 RETURN
8000 REM SCREENS
8001 RANDOMIZE USR 55600: RANDOMIZE USR 55761: GOSUB 7210: GOSUB 9020: PRINT AT 7,13;"ţţţ";AT 8,13;"ţţ": POKE 54535,68: POKE 54010,1: RETURN
8002 RANDOMIZE USR 55669: RANDOMIZE USR 55830: POKE 54535,68: POKE 54021,4: POKE 54010,1: POKE 54013,6: GOSUB 7000: GOSUB 7010: RETURN
8003 RANDOMIZE USR 55669: RANDOMIZE USR 55853: GOSUB 7240: POKE 54009,1: POKE 54010,1: POKE 54016,14: GOSUB 7020: GOSUB 7030: RETURN
8004 RANDOMIZE USR 55807: RANDOMIZE USR 55692: POKE 54009,1: POKE 54010,1: POKE 54021,3: POKE 54016,10: GOSUB 7040: RETURN
8005 RANDOMIZE USR 55646: RANDOMIZE USR 55830: GOSUB 7050: GOSUB 7060: GOSUB 7070: POKE 54535,68: POKE 54010,1: POKE 54021,3: RETURN
8006 RANDOMIZE USR 55600: RANDOMIZE USR 55853: GOSUB 7070: GOSUB 7090: GOSUB 7050: GOSUB 7000: GOSUB 7080: POKE 54021,4: POKE 54010,1: POKE 54013,5: RETURN
8007 RANDOMIZE USR 55600: RANDOMIZE USR 55830: GOSUB 7160: GOSUB 7060: GOSUB 7250: POKE 54010,1: POKE 54011,2: POKE 54021,1: RETURN
8008 RANDOMIZE USR 55646: RANDOMIZE USR 55761: GOSUB 7050: GOSUB 7090: GOSUB 7020: GOSUB 7110: POKE 54013,5: POKE 54014,7: POKE 54021,3: RETURN
8009 RANDOMIZE USR 55646: RANDOMIZE USR 55853: GOSUB 7120: GOSUB 7020: POKE 54535,68: POKE 54013,7: POKE 54010,1: POKE 54021,1: RETURN
8010 RANDOMIZE USR 55600: RANDOMIZE USR 55761: POKE 54009,1: POKE 54014,7: POKE 54011,2: GOSUB 7100: RETURN
8011 RANDOMIZE USR 55761: RANDOMIZE USR 55669: GOSUB 7080: POKE 54009,1: POKE 54014,5: POKE 54011,2: GOSUB 7100: POKE 54021,4: RETURN
8012 RANDOMIZE USR 5u600: RANDOMIZE USR 55761: GOSUB 7080: GOSUB 7020: GOSUB 7180N: GOSUB 7140: GOSUB 7070: POKE 54010,1: POKE 54016,10: RETURN
8013 RANDOMIZE USR 55600: RANDOMIZE USR 55761: GOSUB 7000: GOSUB 7130: GOSUB 7140: GOSUB 7170: POKE 54009,1: POKE 54010,1: POKE 54016,10: RETURN
8014 RANDOMIZE USR 55600: RANDOMIZE USR 55761: GOSUB 7000: GOSUB 7020: GOSUB 7140: GOSUB 7220: GOSUB 7210: POKE 54535,68: POKE 54010,1: RETURN
8015 RANDOMIZE USR 55600: RA
NDOMIZE USR 55761: GOSUB 7000: GOSUB 7020: GOSUB 7130: GOSUB 7220: GOSUB 9020: POKE 54535,68: PRINT AT 8,15;"ţţţ";AT 9,15;"ţţ": GOSUB 7210: POKE 54010,1: RETURN8016 RANDOMIZE USR 55669: RANDOMIZE USR 55830: GOSUB 7080: GOSUB 7140: GOSUB 7100: POKE 54009,1: POKE 54010,1: POKE 54011,2: RETURN
8017 RANDOMIZE USR 55646: RANDOMIZE USR 55761: GOSUB 7150: GOSUB 7060: GOSUB 7110: POKE 54535,68: POKE 54013,5:: POKE 54021,1: POKE 54010,1: RETURN
8018 RANDOMIZE USR 55646: RANDOMIZE USR 55761: GOSUB 7180: GOSUB 7190: GOSUB 7020: GOSUB 7110: POKE 54535,68: POKE 54013,5: POKE 54010,1: POKE 54021,3: RETURN
8019 RANDOMIZE USR 55600: RANDOMIZE USR 55853: GOSUB 7200: GOSUB 7210: GOSUB 7020: GOSUB 7220: POKE 54021,4: POKE 54010,1: POKE 54013,1: RETURN
8020 RANDOMIZE USR 55669: RANDOMIZE USR 55830: GOSUB 7230: POKE 54535,68: POKE 54021,4: POKE 54010,1: POKE 54013,6: GOSUB 7000: GOSUB 7020: GOSUB 7010: RETURN
8100 RETURN
8600 REM "SET UP VARS
8610 LET ad=55445
8620 LET first=0
8630 LET plx=134: LET ply=22
8635 LET plx1=134: LET ply1=22
8640 LET bugo=23225
8650 LET liv=4
8655 LET lp=10
8660 LET sc=0
8665 LET bugs=0
8667 LET esc=0
8670 FOR z=55500 TO 55500+99: POKE z,0: NEXT z
8999 RETURN
9000 REM UDG 0
9001 POKE 23675,88: POKE 23676,255: RETURN
9010 REM UDG 1
9011 POKE 23675,68: POKE 23676,183: RETURN
9012 REM : LOAD ""CODE 46916,168
9020 REM UDG 2
9021 POKE 23675,155: POKE 23676,182: RETURN
9022 REM : LOAD ""CODE 46747,168
9030 REM UDG 3
9031 POKE 23675,242: POKE 23676,181: RETURN
9032 REM : LOAD ""CODE 46578,168
9040 REM UDG 4
9041 POKE 23675,73: POKE 23676,181: RETURN
9042 REM : LOAD ""CODE 46409,168
9050 REM UDG 5
9051 POKE 23675,160: POKE 23676,215: RETURN
9052 REM : LOAD ""CODE 55200,168
9500 REM MEMORY LEFT
9510 CLS : PRINT 65536-USR 7962;" Bytes."
9512 PRINT (65536-USR 7962)/1024;" K Bytes."
9519 STOP
9970 PRINT AT 0,0: LOAD ""CODE 45290,20250
9980 REM SAVE TO TAPE
9981 GOSUB 9000
9982 SAVE "fly" LINE 55
9983 SAVE "full code"CODE 45290,20250
9984 SAVE "full udgs"CODE USR "a",168
9989 GOTO 90
9990 REM SAVE TO DRIVE
9991 GOSUB 9000
9992 ERASE "m";1;"run"
9993 ERASE "m";1;"code"
9996 SAVE *"m";1;"run" LINE 1
9997 SAVE *"m";1;"code"CODE 45290,20250
9998 REM SAVE *"m";1;"full udgs"CODE USR "a",168
KI NEVET A VÉGÉN - TÁBLÁSJÁTÉK NÉGY SZEMÉLYNEK
Leírás: A régi táblásjáték számítógépes változata, mindent elvégez helyettünk a számítógép, csak az kell közölni, hogy melyik bábúval akarunk lépni.
Négyszemélyes, az egyik lehet a Spectrum is. A feladat az, hogy a négy bábunkat körbe kell vezetni a pályán, az ellenfél bábuját ki kell ütni, és az győz aki elsőnek tud a védett helyre beérni mind a négy bábujával.

0 REM KI NEVET A VEGEN
KEDVENC GYERMEKJATEKOM
NYITRAI 2001'
1 BEEP 1,30: PRINT 1;AT 0,0; PAPER 7; INK 1; BRIGHT 1;" A PROGRAM INDUL NYOMD LE AZ ENTERT!!! ": FOR N=1 TO 10: BEEP .1,10: NEXT N: PAUSE 0
2 RANDOMIZE USR 60000
3 RANDOMIZE USR 60094
4 REM ** SET UP VARIABLES ***
5 INK 7: PAPER 1: BORDER 1: BRIGHT 1: CLS : RANDOMIZE 0: POKE 23658,8
10 CLEAR 65199
20 DIM a(4,40): DIM m(3,16): DIM d$(18,3): DIM t(2,4): DIM b(4,16): DIM h(1,4)
30 LET t=0: LET p1=1: LET p2=1: LET p3=0: LET p4=0: LET go=0
40 GOSUB 9500: GOSUB 9000
99 REM *** CONTROL LOOP ***
100 GOTO 100+g*10
110 LET player=1: PRINT AT 16,27;"<";player;">": PRINT AT 18,26; PAPER 2; INK 9;a$(player): GOSUB 8000: GOSUB 200: GOTO 130
120 LET player=2: PRINT AT 16,27;"<";player;">": PRINT AT 18,26; INK 9; PAPER 3;a$(player): GOSUB 8000: GOSUB 200: GOTO 140
130 IF p3=1 THEN LET player=3: PRINT AT 16,27;"<";player;">": PRINT AT 18,26; INK 9; PAPER 4;a$(player): GOSUB 8000: GOSUB 200: GOTO 120
135 GOTO 120
140 IF p4=1 THEN LET player=4: PRINT AT 16,27;"<";player;">": PRINT AT 18,26; INK 9; PAPER 5;a$(player): GOSUB 8000: GOSUB 200: GOTO 110
145 GOTO 110
199 REM ** COMPUTER/PLAYER ? **
200 IF a$(player)="ZX " THEN LET zx=1: GOTO 700
210 IF a$(player) <> "ZX " THEN LET zx=0: GOTO 290
220 STOP
289 REM *** MAKE A MOVE ***
290 IF (m(3,player*4-3)=0 OR m(3,player*4-3)>43) AND (m(3,player*4-2)=0 OR m(3,player*4-2)>43) AND (m(3,player*4-1)=0 OR m(3,player*4-1)>43) AND (m(3,player*4)=0 OR m(3,player*4)>43) AND th <> 6 THEN PRINT 1;AT 1,0; INK 9; PAPER player+1; BRIGHT 1;a$(player);" CSAK HATOS DOBASSAL INDUL": BEEP .2,10: PAUSE 100: INPUT "": RETURN
300 LET move=0: INPUT "MELYIK BABUVAL LEPJUNK ? "; LINE M$: IF M$<"1" OR M$>"4" OR LEN M$ <> 1 THEN BEEP .1,20: GOTO 300
305 LET MOVE=VAL M$
310 LET m=(player*4+move)-4: LET chr=140+move*4: LET pos=m(3,m): LET try=0
315 IF m(3,m)=44 THEN PRINT 1;AT 1,0; PAPER player+1; INK 9; BRIGHT 1;"THAT COUNTER IS HOME ";a$(player): FOR a=1 TO 250: NEXT a: GOTO 300
320 IF m(3,m) <> 0 THEN GOTO 375
329 REM *** START COUNTER ***
330 IF m(3,m)=0 AND th <> 6 THEN PRINT 1;AT 1,0; PAPER 6; INK 0; BRIGHT 1;"CSAK 6-OS DOBASSAL INDULHATSZ!": FOR a=1 TO 250: NEXT a: PRINT 1;AT 1,0;" ": GOTO 300
340 IF m(3,m)=0 AND th=6 THEN LET pos1=t(1,player)
350 IF a(4,pos1) <> 0 THEN GOSUB 500: IF try=1 THEN GOTO 300
360 POKE 23675,88: POKE 23676,255: PRINT AT a(1,pos1),a(2,pos1); INK player+1; PAPER 7; BRIGHT 1;CHR$ chr;CHR$ (chr+1);AT a(1,pos1)+1,a(2,pos1);CHR$ (chr+2);CHR$ (chr+3): PRINT AT m(1,m),m(2,m); INK 1;" ";AT m(1,m)+1,m(2,m);" ": LET m(3,m)=pos1: LET a(4,pos1)=player
370 IF zx=0 THEN PRINT 1;AT 1,0;"NYOMD AZ ENTERT,MASODIK DOBASHOZ": PAUSE 0: PRINT 1;AT 1,0;" ": GOSUB 8000: GOTO 290
371 IF zx=1 THEN LET go=1: RETURN
374 REM *** MOVE COUNTER ***
375 IF (m(3,m)<t(1,player) AND m(3,m)+th>t(2,player)) OR m(3,m)>40 THEN GOTO 600
376 IF player=2 AND pos >= 37 AND pos-40+th>2 THEN LET l=pos-40+th-2: LET j=pos-42: GOTO 610
380 LET pos1=pos+th: IF pos1>40 THEN LET pos1=pos1-40
385 LET y=a(1,pos): LET x=a(2,pos)
390 IF a(4,pos1) <> 0 THEN GOSUB 500: IF try=1 THEN GOTO 300
400 IF a(3,pos)=0 THEN POKE 23675,88: POKE 23676,255: PRINT AT y,x; INK 0; PAPER 7; BRIGHT 1;"ţţ";AT y+1,x;"ţţ"
410 IF a(3,pos) <> 0 THEN POKE 23675,176: POKE 23676,254: LET chr1=140+a(3,pos)*4: PRINT AT y,x; INK a(3,pos)+1; PAPER 7; BRIGHT 1;CHR$ chr1;CHR$ (chr1+1);AT y+1,x;CHR$ (chr1+2);CHR$ (chr1+3)
420 LET y1=a(1,pos1): LET x1=a(2,pos1):
430 POKE 23675,88: POKE 23676,255: PRINT AT y1,x1; INK player+1; PAPER 7; BRIGHT 1;CHR$ chr;CHR$ (chr+1);AT y1+1,x1;CHR$ (chr+2);CHR$ (chr+3)
440 LET a(4,pos)=0: LET a(4,pos1)=player: LET m(3,m)=pos1
450 IF th=6 AND zx=0 THEN PRINT 1;AT 1,0;" 6-OS DOBAS, UJRA DOBHATSZ !! ": PAUSE 0: PRINT 1;AT 1,0;" ": GOSUB 8000: GOTO 290
455 IF th=6 AND zx=1 THEN LET go=1: RETURN
460 RETURN
499 REM *** LAND ON COUNTER ***
500 IF a(4,pos1)=player THEN PRINT 1;AT 1,0; PAPER player+1; INK 0; BRIGHT 1;"'ROSSZ LEPES, ISMETELD! ";a$(player): FOR a=1 TO 250: NEXT a: LET try=1: PRINT 1;AT 1,0;" ": GOTO 590
510 LET l=a(4,pos1)
520 FOR j=1 TO 4: IF m(3,l*4-4+j)=pos1 THEN LET k=l*4-4+j
530 NEXT j
540 LET m(3,k)=0: LET j=k
550 PRINT 1;AT 1,0; PAPER l+1; INK 9; BRIGHT 1;;a$(l);" KIUTOTTEK A BABUDAT!! ": FOR a=1 TO 250: NEXT a: PRINT 1;AT 1,0;" "
560 LET j=j-4: IF j>0 THEN GOTO 560
570 LET chr2=140+4*(j+4)
580 POKE 23675,88: POKE 23676,255: PRINT AT m(1,k),m(2,k); INK l+1; PAPER 1; BRIGHT 1;CHR$ chr2;CHR$ (chr2+1);AT m(1,k)+1,m(2,k);CHR$ (chr2+2);CHR$ (chr2+3)
590 RETURN
599 REM ** VACINITY OF HOME ***
600 IF m(3,m)<40 THEN LET l=m(3,m)+th-t(2,player): LET j=m(3,m)-t(2,player)
605 IF m(3,m)>40 THEN LET l=m(3,m)+th-40: LET j=m(3,m)-40
610 FOR a=1 TO 4: IF m(3,player*4+a-4)=l+40 AND m(3,player*4+a-4)<44 AND m(3,player*4+a-4)>40 THEN PRINT 1;AT 1,0; INK player+1; FLASH 1; BRIGHT 1;"ROSSZ LEPES,ISMETELD MEG!";a$(player): FOR b=1 TO 250: NEXT b: GOTO 300
615 NEXT a
620 IF l<4 AND j >= 1 THEN LET y=b(1,player*4+j-4): LET x=b(2,player*4+j-4): LET y1=b(1,player*4+l-4): LET x1=b(2,player*4+l-4): POKE 23675,88: POKE 23676,255: PRINT AT y,x; INK 7; PAPER 0; BRIGHT 1;"
ţţ";AT y+1,x;"ţţ": PRINT AT y1,x1; INK player+1; PAPER 0; BRIGHT 1;CHR$ chr;CHR$ (chr+1);AT y1+1,x1;CHR$ (chr+2);CHR$ (chr+3): LET m(3,m)=l+40: GOTO 680630 IF l<4 AND j<1 THEN LET y=a(1,pos): LET x=a(2,pos): LET y1=b(1,player*4+l-4): LET x1=b(2,player*4
+l-4): POKE 23675,88: POKE 23676,255: PRINT AT y,x; INK 0; PAPER 7; BRIGHT 1;"ţţ";AT y+1,x;"ţţ": LET a(4,pos)=0: PRINT AT y1,x1; INK player+1; PAPER 0; BRIGHT 1;CHR$ chr;CHR$ (chr+1);AT y1+1,x1;CHR$ (chr+2);CHR$ (chr+3): LET m(3,m)=l+40: GOTO 680640 IF
l >= 4 AND j<1 THEN LET y=a(1,pos): LET x=a(2,pos): LET y1=b(3,m): LET x1=b(4,m): POKE 23675,88: POKE 23676,255: PRINT AT y,x; INK 0; PAPER 7; BRIGHT 1;"ţţ";AT y+1,x;"ţţ": LET a(4,pos)=0: POKE 23675,176: POKE 23676,254: PRINT AT y1,x1; INK player+1; PAPER 0; BRIGHT 1;"ţ": LET h(1,player)=h(1,player)+1: LET m(3,m)=44: GOTO 660650 IF l >= 4 AND j >= 1 THEN LET y=b(1,player*4+j-4): LET x=b(2,player*4+j-4): LET y1=b(3,m): LET x1=b(4,m): POKE 23675,88: POKE 23676,255: PRINT AT y,x; INK 7; PAPER 0; BRIGHT 1;"ţţ";AT y+1,x;"ţţ": POKE 23675,176: POKE 23676,254: PRINT AT y1,x1; INK player+1; PAPER 0; BRIGHT 1;"ţ": LET h(1,player)=h(1,player)+1: LET m(3,m)=44
660 FOR a=1 TO 4: IF h(1,a)=4 THEN LET won=a: GOTO 1000
670 NEXT a
680 IF th=6 THEN GOTO 370
690 RETURN
699 REM ** COMPUTER DECISION **
700 LET co1=0: LET co2=0: LET co3=0: LET co4=0
710 IF m(3,player*4-3)>0 AND m(3,player*4-3)<44 THEN LET co1=1
720 IF m(3,player*4-2)>0 AND m(3,player*4-2)<44 THEN LET co2=1
730 IF m(3,player*4-1)>0 AND m(3,player*4-1)<44 THEN LET co3=1
740 IF m(3,player*4)>0 AND m(3,player*4)<44 THEN LET co4=1
750 IF co1=0 AND co2=0 AND co3=0 AND co4=0 AND th <> 6 THEN PRINT 1;AT 1,0; PAPER player+1; INK 9; BRIGHT 1;player;"-S JATEKOS NEM DOBOTT HATOST !": BEEP .2,10: PAUSE 100: INPUT "": RETURN
759 REM *** START COUNTER ? ***
760 IF th=6 AND co1=0 AND a(4,t(1,player)) <> player AND m(3,player*4-3)<44 THEN LET move=1: GOTO 950
770 IF th=6 AND co2=0 AND a(4,t(1,player)) <> player AND m(3,player*4-2)<44 THEN LET move=2: GOTO 950
780 IF th=6 AND co3=0 AND a(4,t(1,player)) <> player AND m(3,player*4-1)<44 THEN LET move=3: GOTO 950
790 IF th=6 AND co4=0 AND a(4,t(1,player)) <> player AND m(3,player*4)<44 THEN LET move=4: GOTO 950
799 REM ** JUMP ON OPPONENT ***
800 FOR a=1 TO 4
810 LET m=player*4+a-4
820 IF m(3,m)>0 AND m(3,m)<44 AND m(3,m)+th<t(1,player) THEN LET po=m(3,m)+th: GOTO 850
830 IF player=2 AND m(3,m)>0 AND m(3,m)<44 AND m(3,m)+th<41 THEN LET po=m(3,m)+th: GOTO 850
840 NEXT a: GOTO 870
850 IF a(4,po) <> 0 AND a(4,po) <> player THEN LET move=a: GOTO 950
860 NEXT a
869 REM *** PLAIN MOVE ! ***
870 LET r=INT (RND*4)+1: GOTO 865+10*r
875 LET a=m(3,player*4-3)+th: IF a>40 THEN LET a=a-40
880 IF co1=1 AND a(4,a) <> player THEN LET move=1: GOTO 950
885 LET a=m(3,player*4-2)+th: IF a>40 THEN LET a=a-40
890 IF co2=1 AND a(4,a) <> player THEN LET move=2: GOTO 950
895 LET a=m(3,player*4-1)+th: IF a>40 THEN LET a=a-40
900 IF co3=1 AND a(4,a) <> player THEN LET move=3: GOTO 950
905 LET a=m(3,player*4)+th: IF a>40 THEN LET a=a-40
910 IF co4=1 AND a(4,a) <> player THEN LET move=4: GOTO 950
920 GOTO 875
950 GOSUB 310
960 IF go=1 THEN LET go=0: GOSUB 8000: GOTO 700
970 PAUSE 100: RETURN
999 REM *** GYOZELMI LISTA ***
1000 PAUSE 10: PAUSE 300: PAPER won+1: INK 9: BRIGHT 0: BORDER won+1: CLS
1010 PRINT AT 3,0; FLASH 1;won;".JATEKOS ";" :- ";a$(won);" GYOZOTT "
1020 PRINT AT 10,2; INK 2; PAPER 9;"1-NEK ";h(1,1);" BABUJA VAN BENT"
1030 PRINT AT 12,2; INK 3; PAPER 9;"2-NEK ";h(1,2);" BABUJA VAN BENT"
1040 IF p3=1 THEN PRINT AT 14,2; INK 4; PAPER 7;"3-NAK ";h(1,3);" BABUJA VAN BENT"
1050 IF p4=1 THEN PRINT AT 16,2; INK 1; PAPER 7;"4-NEK ";h(1,4);" BABUJA VAN BENT"
1060 PRINT 1;AT 0,0; PAPER 1; INK 7; BRIGHT 1; FLASH 1;"AKARTOK MEGEGYSZER JATSZANI? I/N"
1070 IF INKEY$="" THEN GOTO 1070
1080 IF INKEY$="N" THEN GOTO 8500
1090 RUN 5
7999 REM *** KOCKADOBASOK ***
8000 LET r=INT (RND*11)+10
8005 PRINT 1;AT 1,0;"KI NEVET A VEGEN (c) NYITRAI 2001'"
8010 POKE 23675,176: POKE 23676,254: FOR a=1 TO r: FOR b=1 TO 3: PRINT PAPER 2; INK 7;AT b+1,27; INK 7; PAPER 2; BRIGHT 1;d$(t+b): BEEP .01,b: NEXT b
8020 LET th=(t+3)/3: PRINT AT 8,28; BRIGHT 1;"=";th: LET t=t+3: IF t=18 THEN LET t=0
8025 PRINT 1; INK 6;AT 1,0;"KI NEVET A VEGEN (c) NYITRAI 2001'"
8030 BEEP .02,a/10: NEXT a
8040 BEEP .01,1: RETURN
8999 REM *** ARRAYS & SCREEN ***
9000 FOR b=1 TO 40: READ c: READ d: LET a(1,b)=c: LET a(2,b)=d: NEXT b
9010 DATA 0,8,0,10,0,12,2,12,4,12,6,12,8,12,8,14,8,16,8,18,8,20,10,20,12,20,12,18,12,16,12,14,12,12,14,12,16,12,18,12,20,12,20,10,20,8,18,8,16,8,14,8,12,8,12,6,12,4,12,2,12,0,10,0,8,0,8,2,8,4,8,6,8,8,6,8,4,8,2,8
9020 LET a(3,23)=1: LET a(3,33)=3: LET a(3,3)=2: LET a(3,13)=4
9030 FOR b=1 TO 40: LET y=a(1,b): LET x=a(2,b)
9040 IF a(3,b)=0 THE
N POKE 23675,88: POKE 23676,255: PRINT AT y,x; PAPER 7; INK 0;"ţţ";AT y+1,x;"ţţ": GOTO 90609050 LET c=a(3,b): LET d=140+c*4: POKE 23675,176: POKE 23676,254: PRINT AT y,x; PAPER 7; INK c+1;CHR$ d;CHR$ (d+1);AT y+1,x;CHR$ (d+2);CHR$ (d+3)
9060 NEXT b
9070 LET f=1: LET a=2: FOR b=1 TO 16: READ c: READ d: LET m(1,b)=c: LET m(2,b)=d: LET e=140+f*4: PRINT AT c,d; INK a;CHR$ e;CHR$ (e+1);AT c+1,d;CHR$ (e+2);CHR$ (e+3)
9080 IF b=4 OR b=8 OR b=12 THEN LET a=a+1
9090 LET f=f+1: IF f=5 THEN LET f=1:
9100 NEXT b
9110 DATA 15,3,17,1,17,5,19,3,1,17,3,15,3,19,5,17,1,3,3,1,3,5,5,3,15,17,17,15,17,19,19,17
9150 POKE 23675,176: POKE 23676,254: PRINT AT 10,10; INK 3; PAPER 4;"
ţ"; PAPER 5;"ţ";AT 11,10; INK 4; PAPER 2;"ţ"; INK 5;"ţ"9160 FOR a=8 TO 12 STEP 4: PRINT AT a,10; INK 7; PAPER 0;"ţţ";AT a+1,10;"ţţ";AT 10,a;"ţţ";AT 11,a;"ţţ": NEXT a
9170 POKE 23675,88: POKE 23676,255: FOR a=2 TO 6 STEP 2: PRINT AT a,10; INK 7; PAPER 0;
"ţţ";AT a+1,10;"ţţ";AT a+12,10;"ţţ";AT a+13,10;"ţţ": NEXT a9180 POKE 23675,88: POKE 23676,255: FOR a=2 TO 6 STEP 2: PRINT AT 10,a; INK 7; PAPER 0;"ţţ";AT 11,a;"ţţ";AT 10,a+12;"ţţ";AT 11,a+12;"ţţ": NEXT a
9190 POKE 23675,176: POKE 23676,254: FOR a=3 TO 1
7 STEP 14: FOR b=3 TO 17 STEP 14: PRINT AT a,b;"ţţ";AT a+1,b;"ţţ": NEXT b: NEXT a9300 FOR a=1 TO 18: READ d$(a): NEXT a
9310 DATA " "," ţ "," "," ţ"," ","ţ "," ţ"," ţ ","ţ ","ţ ţ"," ","ţ ţ","ţ ţ"," ţ ","ţ ţ","ţ ţ","ţ ţ","ţ ţ"
9330 PRINT AT
1,26; INK 2; PAPER 1; BRIGHT 1;"ţţţţţ";AT 5,26;"ţţţţţ": FOR a=2 TO 4: PRINT AT a,26; INK 2; PAPER 1; BRIGHT 1;"ţţţţţ": NEXT a9340 PRINT AT 10,25; BRIGHT 1; INVERSE 1;"DOBASOK";AT 12,28;"";AT 14,25;"JATEKOS"
9350 FOR a=1 TO 4: READ b: READ c: LET t(1,a)=b: LET t(2,a)=c: NEXT a
9360 DATA 23,22,3,2,33,32,13,12
9370 : FOR a=1 TO 16: READ b: READ c: READ d: READ e: LET b(1,a)=b: LET b(2,a)=c: LET b(3,a)=d: LET b(4,a)=e: NEXT a
9380 DATA 18,10,12,10,16,10,12,11,14,10,13,10,0,0,13,11,2,10,9,10,4,10,9,11,6,10,8,10,0,0,8,11,10,2,10,9,10,4,11,9,10,6,10,8,0,0,11,8,10,18,10,12,10,16,11,12,10,14,10,13,0,0,11,13
9390 RETURN
9499 REM *** INPUT TO BEGIN ! **
9500 INPUT "JATEKOSOK SZAMA ? (2-4) "; LINE M$
9510 IF LEN M$ <> 1 OR M$<"2" OR M$>"4" THEN BEEP .1,20: GOTO 9500
9515 LET N=VAL M$
9520 DIM a$(n,6)
9530 FOR a=1 TO n
9535 PRINT AT 12,3; PAPER 6; INK 1;"HA AKAROD,IRD BE A'ZX'-ET,";AT 14,2;"A SZAMITOGEP JATSZIK VELED "; FLASH 1;a; FLASH 0
9540 INPUT "JATEKOS NEVE: (6 BETU)";a$(a)
9560 PRINT AT a*2,3;a;".JATEKOS ";" = ";a$(a): NEXT a
9570 IF n=3 THEN LET p3=1
9580 IF n=4 THEN LET p3=1: LET p4=1
9590 FOR a=12 TO 14 STEP 2: PRINT AT a,0;" ": NEXT a: LET g=INT (RND*(2+p3+p4))+1: PRINT AT 18,5; INVERSE 1; FLASH 1;g; FLASH 0;".JATEKOS";" LEP ELOSZOR "
9600 PRINT 1;AT 1,0; BRIGHT 1; FLASH 1;" NYOMD LE AZ ENTERT "
9610 PAUSE 0: CLS : RETURN
9999 CLEAR : SAVE "UDG"CODE 65200,328: SAVE "KINEVET" LINE 3: PRINT ''"ELLENORZES": VERIFY "UDG"CODE 65200,328: VERIFY "KINEVET": PRINT ''"JO MENTES": STOP
A KONYHAFŐNÖK RÉMÁLMA - MINDENT
SZÉTHORDTAK AZ EGEREK
Leírás: Az éjszaka támadtak az egerek, és mindent széthordtak a raktárból. A játékban ez a feladatunk: a kukta bőrébe bújva meg kel mindent keresnünk és mielőtt reggel lesz, mindent vissza kell hordanunk a helyére. Sietni kell, mert lejár az idő...

0 REM **********************
1 *** A KONYHAFONOK ***
*** REMALMA ***
*** ***
*** NYITRAISOFT ***
*** 2002 ***
**********************
2 LET LEV=SGN PI: LET F=o0: LET S=o0: LET L=o3: DIM M$(o2,o2): LET TD=VAL "30": CLS : GO TO VAL "295"
3 DEF FN T()=INT ((65536*PEEK 23674+256*PEEK 23673+PEEK 23672)/50)
205 LET fi=o0: LET f=o0: POKE fad,VAL "243": FOR N=o1 TO 22: PRINT AT N-o1,o0; INK o0;S$(LEV,N): NEXT N: POKE fad,FONT: LET st=VAL "48552"+(lev*VAL "600"): RANDOMIZE st: RANDOMIZE USR VAL "62052": INK VAL "7": LET top=c(lev,o1): LET a=VAL "11": LET b=a: RETURN
295 GO SUB VAL "3000": INK VAL "7": PRINT AT o2,VAL "26"; INK o4;"PONT:";AT o3,26; INK o5;"00000";AT 5,26;"KUKTA";AT 15,26;"IDO:";AT 9,26; INK o5;"CSUCS";AT 12,26;"PALYA"; INK o4;AT 13,27;"000";AT 10,26;"00000": PRINT AT 10,31-LEN STR$ hi; INK o4;HI;AT 6,27; INK VAL "7";"O÷";AT 7,27;"ou"
300 LET m$(o1)="O÷": LET m$(o2)="ou": LET PL=o1: LET W=VAL "30": INK VAL "7": IF lev=VAL "16" THEN GO TO VAL "8000"
310 GO SUB VAL "200"
355 POKE udg,VAL "243": LET O=o1: OVER o0: INK 7: PRINT AT 7,30;CHR$ (L+48);AT 13,30-LEN STR$ LEV; INK O4;LEV: PRINT AT O3,31-LEN STR$ S; INK 5;S
358 POKE VAL "23674",o0: POKE VAL "23673",o0: POKE VAL "23672",o0
360 PRINT AT A,B;M$(1);AT A+1,B;M$(2);AT 3,31-LEN STR$ s; INK 5;s
363 IF A=11 AND B=11 AND FI THEN GO SUB 600: GO TO 300
364 IF F=TOP THEN PRINT AT 11,11; PAPER 6; INK o2; FLASH o1;"¶3";AT 12,11;"¸1": LET FI=o1
365 LET A$=STR$ (2*W-FN T()): PRINT AT 16,28-LEN A$; INK 4;" ";A$: IF VAL A$=0 THEN GO SUB 500: GO TO 560
370 LET I$=INKEY$: IF I$="" THEN GO TO 365
380 IF I$=L$ THEN GO SUB 2500: GO TO 360
390 IF I$=R$ THEN GO SUB 2600: GO TO 360
400 IF I$=U$ THEN GO SUB 2700: GO TO 360
410 IF I$=D$ THEN GO SUB 2800: GO TO 360
415 IF I$=P$ THEN GO SUB 800: PRINT o0;AT o1,o2;" ": POKE 23674,T3: POKE 23673,T2: POKE 23672,T1
417 IF I$=Q$ THEN GO SUB 700: PRINT o0;AT o1,o2;" ": POKE 23674,T3: POKE 23673,T2: POKE 23672,T1: IF Q=o1 THEN GO TO 9000
420 GO TO 365
500 LET w=VAL "30": LET fi=o0: LET L=L-CH: GO SUB VAL "3100": RANDOMIZE USR VAL "60223": INK VAL "7"
505 POKE udg,VAL "247": PRINT AT a,b;"o"";AT a+o1,b;"1/41/2": FOR n=o1 TO VAL "30": NEXT n: PRINT AT a,b;" ";AT a+o1,b;"¸1": FOR n=o1 TO VAL "30": NEXT n: PRINT AT a+o1,b;"¶3"; INK VAL "6";AT a+o1,b+o2;"yµ"
511 FOR n=o1 TO o5: INK o4: PRINT AT a+o1,b-o2;"ý?": BEEP .005,o0: BEEP .005,o3: PAUSE VAL "10": PRINT AT a+o1,b-o2;"uU": BEEP .005,o0: BEEP .005,o3: PAUSE VAL "10": NEXT n: PRINT AT a+o1,b-o2;" ý?": FOR n=o1 TO o3: PRINT AT a+o1,b-o2;" "
512 OVER o1: GO SUB VAL "3100": OVER o0: PRINT INK VAL "7";o0;AT o0,B;" ";o0;AT o1,B-o1;" "
513 IF L< o0 THEN GO TO VAL "9000"
514 GO SUB VAL "200": GO TO VAL "330"
600 POKE VAL "60247",VAL "50": POKE VAL "60248",o1: POKE VAL "60250",VAL "20": POKE VAL "60251",o0
610 FOR N=W-FN T() TO o0 STEP -o1
615 LET S=S+VAL "50": LET A$=STR$ S: PRINT INK o5;AT o3,31-LEN A$;S: RANDOMIZE USR VAL "60246"+USR VAL "60246"
620 LET A$=STR$ N: PRINT AT VAL "16",28-LEN A$; INK o4;" ";N
625 NEXT N: LET LEV=LEV+o1: IF lev>max THEN LET max=lev-O1
630 RETURN
650 FOR n=o1 TO VAL "22": PRINT INK o0;AT n-o1,o0;s$(o1,n): NEXT n
705 LET T1=PEEK 23672: LET T2=PEEK 23673: LET T3=PEEK 23674: LET A$="KILEP!!! BIZTOS? (I/N)"
725 FOR c=VAL "7" TO o0 STEP -o1: PRINT 0;AT o1,o2; INK C;A$: IF INKEY$="I" THEN LET Q=o1: RETURN
735 IF INKEY$<>"Y" AND INKEY$<>"" THEN LET Q=o0: RETURN
740 NEXT C: GO TO VAL "725"
800 LET T1=PEEK 23672: LET T2=PEEK 23673: LET T3=PEEK 23674: LET A$="ALLJ!! NYOMD A GOMBOT! '"+P$+"'": LET i$=""
820 FOR c=VAL "7" TO o0 STEP -o1: PRINT NOT PI;AT o1,o2; INK C;A$: LET G$=INKEY$: IF G$ =P$ THEN RETURN
825 IF G$<>"" THEN LET i$=i$+ G$: RANDOMIZE USR 60048
830 IF LEN i$=o5 THEN IF i$( TO o5)=t$(pa, TO o5) THEN LET ch=o0: RETURN
835 IF LEN i$=o3 THEN IF i$( TO o3)=t$(pa+o1, TO o3) THEN LET ch=o1: RETURN
840 IF LEN i$=o4 THEN IF i$( TO o4)=t$(pa+o2, TO o4) THEN LET t1=o0: LET t2=o0: LET t3=o0: RETURN
845 NEXT C: GO TO VAL "820"
2500 IF ATTR (A,B-1)=7 AND ATTR (A+1,B-1)=7 THEN GO TO 2570
2505 IF (ATTR (A+1,B-1)<>178 AND ATTR (A,B-1)=7 AND ATTR (A+1,B-1)<>7) OR (ATTR (A,B-1)<>178 AND ATTR (A,B-1)<>7 AND ATTR (A+1,B-1)=7) THEN RETURN
2506 IF ATTR (A,B-1)=5 OR ATTR (A+1,B-1)=5 THEN RETURN
2530 IF (ATTR (A,B-1)=66 AND ATTR (A+1,B-1)=66) THEN GO SUB 2930: GO TO 2570
2545 IF ATTR (A,B-1)=68 AND ATTR (A+1,B-1)=66 THEN GO SUB 2915: GO TO 2570
2550 GO SUB 2900+(ATTR (A,B-1) AND ATTR (A+1,B-1))
2580 PRINT AT A,B;" ";AT A+1,B;" ": IF O THEN PRINT AT A,B-2;" ";AT A+1,B-2;" ": LET O=0
2590 LET B=B-PL: RETURN
2600 IF ATTR (A,B+2)=7 AND ATTR (A+1,B+2)=7 THEN GO TO 2670
2605 IF (ATTR (A+1,B+2)<>178 AND ATTR (A,B+2)=7 AND ATTR (A+1,B+2)<>7) OR (ATTR (A,B+2)<>178 AND ATTR (A,B+2)<>7 AND ATTR (A+1,B+2)=7) THEN RETURN
2606 IF ATTR (A,B+2)=5 OR ATTR (A+1,B+2)=5 THEN RETURN
2630 IF (ATTR (A,B+2)=66 AND ATTR (A+1,B+2)=66) THEN GO SUB 2930: GO TO 2670
2640 IF ATTR (A,B+2)=66 AND ATTR (A+1,B+2)=66 AND ATTR (A+1,B+3)=68 THEN GO SUB 2915: GO TO 2670
2645 GO SUB 2900+(ATTR (A,B+2) AND ATTR (A+1,B+2))
2680 PRINT AT A,B;" ";AT A+1,B;" ": IF O THEN PRINT AT A,B+2;" ";AT A+1,B+2;" ": LET O=0
2690 LET B=B+PL: RETURN
2700 IF ATTR (A-1,B)=7 AND ATTR (A-1,B+1)=7 THEN GO TO 2770
2705 IF (ATTR (A-1,B)=7 AND ATTR (A-1,B+1)<>7) OR (ATTR (A-1,B)<>7 AND ATTR (A-1,B+1)=7) THEN RETURN
2706 IF ATTR (A-1,B)=5 OR ATTR (A-1,B+1)=5 THEN RETURN
2725 IF ATTR (A-1,B)=66 AND ATTR (A-2,B+1)=68 THEN GO SUB 2915: GO TO 2770
2730 IF ATTR (A-1,B)=66 AND ATTR (A-2,B+1)=66 THEN GO SUB 2930: GO TO 2770
2735 GO SUB 2900+(ATTR (A-1,B) AND ATTR (A-1,B+1))
2780 PRINT AT A,B;" ";AT A+1,B;" ": IF O THEN PRINT AT A-1,B;" ";AT A-2,B;" ": LET O=0
2790 LET A=A-PL: RETURN
2800 IF ATTR (A+2,B)=7 AND ATTR (A+2,B+1)=7 THEN GO TO 2870
2805 IF (ATTR (A+2,B)=7 AND ATTR (A+2,B+1)<>7) OR (ATTR (A+2,B)<>7 AND ATTR (A+2,B+1)=7) THEN RETURN
2810 IF ATTR (A+2,B)=5 OR ATTR (A+2,B+1)=5 THEN RETURN
2835 IF ATTR (A+2,B)=66 AND ATTR (A+2,B+1)=68 THEN GO SUB 2915: GO TO 2870
2840 IF ATTR (A+2,B)=66 AND ATTR (A+2,B+1)=66 THEN GO SUB 2930: GO TO 2870
2850 GO SUB 2900+(ATTR (A+2,B) AND ATTR (A+2,B+1))
2880 PRINT AT A,B;" ";AT A+1,B;" ": IF O THEN PRINT AT A+2,B;" ";AT A+3,B;" ": LET O=0
2890 LET A=A+PL: RETURN
2901 RETURN
2902 LET S=S+200: LET F=F+1: RANDOMIZE USR 60048: LET O=1: RETURN
2903 LET S=S+500: LET O=1: LET F=F+1: RANDOMIZE USR 60048: RETURN
2904 LET s=s+750: LET f=f+1: LET O=1: RANDOMIZE USR 60048: RETURN
2905 RETURN
2906 LET S=S+50: LET F=F+1: RANDOMIZE USR 60048: LET O=1: RETURN
2914 RETURN
2915 LET S=S+150: LET F=F+1: RANDOMIZE USR 60048: LET O=1: RETURN
2929 RETURN
2930 LET s=s+100: LET o=1: LET f=f+1: RANDOMIZE USR 60048: RETURN
2947 RETURN
2948 LET S=S+250: LET F=F+1: RANDOMIZE USR 60048: LET O=1: RETURN
2969 RETURN
2970 LET O=o1: LET F=F+o1: LET S=S+VAL "50": LET w=(W-FN T())+c(lev,o2): POKE 23674,o0: POKE 23673,o0: POKE 23672,o0: RANDOMIZE USR 60048: RETURN
2999 RETURN
3000 INK VAL "6": POKE udg,VAL "243": PRINT AT o0,VAL "25";"?µµµµµy"
3010 POKE udg,VAL "244": FOR N=o1 TO 17: PRINT AT N,25;"1/2";AT N,31;"1/4": NEXT N
3020 PRINT AT 18,25;"O÷"""?y"; AT 19,25;"ou µ¶"; AT 20,25;"Uu 3¸"; AT 21,25;"Uý 1o": POKE udg,VAL "243": INK VAL "7": RETURN
3099 RETURN
3100 POKE udg,VAL "248": PRINT INK VAL "7";AT VAL "21",b;"÷ou";o0;AT o0,b;"Ui?";o0;AT o1,b-o1;"U1/4i1/2y": RETURN
8005 LET a$="µ¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¶": LET c$="?3333333333333333333y": FOR N=O1 TO VAL "22": PRINT AT N-o1,o0; INK o0;S$(o1,N): NEXT N: POKE udg,VAL "246": PRINT INK 6;AT o5,o0;c$;AT 10,o0;a$: FOR n=VAL "6" TO VAL "9": PRINT INK 6;AT n,o0;"1";TAB 20;"o": NEXT n
8010 PRINT AT 15,15; "ou";AT 16,15;"Uu";AT 17,15;"Uý"; INK O4;AT 17,10;""": POKE 23676,243: PRINT AT 16,7;m$(o1);AT 17,7;m$(o2)
8020 PRINT AT VAL "6",o1;"KOSZI ,KIS KUKTA ";AT 7,o1;"HOGY MEGMENTETTEL.";AT 8,o1;"JUTALMAD EZ A";AT 9,o1;"NAGY,ZOLD ALMA.": FOR n=o1 TO VAL "140": NEXT n: BEEP .1,25: PRINT AT 16,7;" ";AT 17,7;"O÷": FOR n=VAL "6" TO VAL "9": PRINT AT n,o1;" ";TAB 19;" ": NEXT n: PRINT AT 8,6;"BUUUUM!"
8040 GO TO VAL "9025"
8500 BORDER o0: PAPER o0: INK VAL "7": CLS : GO SUB VAL "8575": DIM b$(VAL "22",VAL "24"): IF max>VAL "15" THEN LET max=VAL "15"
8505 IF max=o0 THEN PRINT o0; PAPER VAL "6"; INK o0;AT o0,o2;" EZ VOLT AZ UTOLSO ";AT o1,VAL "8";"EGERLYUK";AT o2,VAL "10";"NYOMD AZ ENTERT": PAUSE o1: PAUSE o0: RETURN
8515 POKE fad,FONT: INPUT "MELYIK PALYAT (0=QUIT) (1-";(MAX);")>";sn: IF sn< o1 OR sn>max THEN RETURN
8516 POKE fad,VAL "243": FOR n=o1 TO VAL "22": LET B$(N)=S$(SN,N): PRINT INK o0;AT n-o1,o0;b$(n): NEXT n: RANDOMIZE VAL "48552"+(sn*VAL "600"): LET z=USR VAL "62052": GO SUB VAL "8568": GO SUB VAL "8572": POKE fad,font
8517 POKE udg,VAL "243": PRINT AT VAL "11",VAL "11"; PAPER VAL "6"; INK o2; FLASH o1;"¶3";AT VAL "12",VAL "11";"¸1": LET FI=o1
8518 LET x=o1: LET y=o1: POKE FAD,VAL "243"
8519 PRINT OVER o1; INK 8; PAPER 8; BRIGHT 8; FLASH 8;AT y,x;"^"
8520 LET i$=INKEY$: IF i$="" THEN GO TO VAL "8520"
8521 IF I$="N" THEN GO SUB 8970: POKE fad,FONT: GO TO 8517
8523 PRINT OVER o1; INK 8; PAPER 8; BRIGHT 8; FLASH 8;AT y,x;"^"
8524 IF i$="8" THEN GO SUB 8546
8525 IF i$="5" THEN GO SUB 8549
8526 IF i$="7" THEN GO SUB 8552
8527 IF i$="6" THEN GO SUB 8555
8528 IF i$="0" THEN LET B$(y+o1,x+o1)="A": PRINT AT y,x; BRIGHT o1; INK o5;"A"
8529 IF i$=" " THEN LET B$(y+o1,x+o1)="A": PRINT AT y,x; INK o5;"A"
8530 IF i$=CHR$ 13 THEN GO TO 8559
8531 IF i$="A" THEN GO TO 8514
8532 IF i$="0" OR i$=CHR$ 12 THEN LET B$(y+o1,x+o1)="@": PRINT AT y,x; INK 7;"@"
8533 IF i$="Q" THEN POKE FAD,FONT: RETURN
8534 IF x=22 THEN GO TO 8519
8535 IF x=10 AND (y=11 OR y=12 OR y=10) THEN GO TO 8519
8536 IF (x=11 OR x=12) AND y=10 THEN GO TO 8519
8537 IF i$="1" THEN GO SUB 8558: PRINT INK 6;AT y,x;"BC";AT y+o1,x;"DE"
8538 IF i$="2" THEN GO SUB 8558: PRINT INK o2;AT y,x;"FG";AT y+o1,x;"HI"
8539 IF i$="3" THEN GO SUB 8558: PRINT INK o3;AT y,x;"JK";AT y+o1,x;"LM"
8540 IF i$="4" THEN GO SUB 8558: PRINT INK o2;AT y,x;"N"; INK o4;"O"; INK o2;AT y+o1,x;"PQ"
8541 IF i$="5" THEN GO SUB 8558: PRINT INK o4;AT y,x;"Z[";AT y+o1,x;"\]"
8542 IF i$="7" THEN GO SUB 8558: PRINT INK o0; PAPER 6;AT y,x;"RS";AT y+o1,x;"TU"
8543 IF i$="6" THEN GO SUB 8558: PRINT INK o2; BRIGHT o1;AT y,x;"VW";AT y+o1,x;"XY"
8544 IF i$="8" THEN GO SUB 8558: PRINT INK 6; BRIGHT o1;AT y,x;"BC";AT y+o1,x;"DE"
8545 GO TO 8519
8546 IF x=10 AND (y=11 OR y=12) THEN RETURN
8547 IF x<22 THEN LET x=x+o1
8548 RETURN
8549 IF x=13 AND (y=11 OR y=12) THEN RETURN
8550 IF x>1 THEN LET x=x-o1
8551 RETURN
8552 IF y=13 AND (x=11 OR x=12) THEN RETURN
8553 IF y>1 THEN LET y=y-o1
8554 RETURN
8555 IF y=10 AND (x=11 OR x=12) THEN RETURN
8556 IF y<20 THEN LET y=y+o1
8557 RETURN
8558 LET sel=VAL i$: LET b$(y+o1,x+o1)=f$(o1,sel,o1): LET b$(y+o1,x+o2)=f$(o1,sel,o2): LET b$(y+o2,x+o1)=f$(o2,sel,o1): LET b$(y+o2,x+o2)=f$(o2,sel,o2): RETURN
8559 POKE fad,font: INPUT "Enter screen number (1-";(MAX);")>";sn: IF sn< o1 OR sn>max THEN GO TO VAL "8559"
8560 FOR n=o1 TO 22: LET s$(sn,n)=b$(n): NEXT n
8561 INPUT "Enter number of items >";f: IF f>VAL "255" THEN GO TO VAL "8561"
8562 LET c(sn,o1)=f
8563 INPUT "Enter extra time gained >";t: IF t>VAL "255" THEN GO TO VAL "8563"
8564 LET c(sn,O2)=t
8565 PRINT INK VAL "7";AT VAL "11",VAL "11";" ";AT 12,11;" "
8566 GO SUB VAL "8567": RANDOMIZE VAL "48552"+(sn*VAL "600"): RANDOMIZE USR VAL "61952": POKE fad,font: PAUSE o0: GO TO VAL "8500"
8567 FOR N=o1 TO VAL "21": PRINT AT N,25;" ";TAB 31;" ": NEXT N: GO SUB 3000: POKE fad,font: INK 7: PRINT AT o2,26; INK o4;"PONT:";AT o3,26; INK 5;"00000";AT 12,26;"PALYA";AT 15,26;"IDO:";AT 9,26; INK 5;"CSUCS"; INK o4;AT 10,26;"00000": LET i$=STR$ hi: PRINT INK 4;AT 13,27;"000";AT 10,31-LEN i$;HI;AT 6,27; INK 7;"O÷";AT 7,27;"ou": RETURN
8572 GO SUB 3000: POKE fad,VAL "243": PRINT INK 6;AT o1,28;"BC";AT o2,28;"DE"; INK 2;AT o3,28;"FG";AT 4,28;"HI"; INK o3;AT o5,28;"JK";AT 6,28;"LM";AT 7,28; INK 2;"N"; INK 4;"O"; INK o2;AT 8,28;"PQ"; INK o4;AT 9,28;"Z[";AT 10,28;"\]";AT 11,28; INK o2; BRIGHT o1;"VW";AT 12,28;"XY";AT 13,28; INK 0; PAPER 6; BRIGHT o0;"RS";AT 14,28;"TU"; BRIGHT 1; INK 6; PAPER o0;AT 15,28;"BC";AT 16,28;"DE"
8573 POKE fad,font: FOR n=o1 TO VAL "8": PRINT PAPER VAL "7"; INK o0;AT -o1+(n*o2),VAL "26";n: NEXT n
8574 RETURN
8575 RESTORE VAL "8576": DIM f$(o2,VAL "8",o2): FOR n=o1 TO VAL "8": READ f$(o1,n),f$(o2,n): NEXT n: RETURN
8576 DATA "BC","DE","FG","HI","JK","LM","NO","PQ","Z[","\]","VW","XY","RS","TU","BC","DE"
8800 POKE fad,VAL "236": PAPER o0: INK VAL "6": PRINT AT VAL "7",VAL "7";" !""$%&'()*+";AT 8,7;"@ABCDEFGHIJK";AT 9,7;"Labcdefghijk";AT 10,7;",-./01234567";AT 11,7;"LMNOPQRSTUVW";AT 12,7;"lmnopqrstuvw": PAPER o0: INK VAL "7": POKE fad,font: RETURN
8970 RESTORE VAL "8990": READ X$,Y$,Z$: LET S$(SN,o1)=X$: LET B$(O1)=X$: LET S$(SN,22)=Z$: LET B$(VAL "22")=Z$: FOR M=o2 TO VAL "21": LET S$(SN,M)=Y$: LET B$(M)=Y$: NEXT M
8975 FOR N=o1 TO VAL "22": FOR M=o1 TO VAL "24"
8980 IF S$(SN,N,M)="A" THEN PRINT INK o5; PAPER o0;AT N-o1,M-o1;"A";
8985 IF S$(SN,N,M)="@" THEN PRINT INK 7; PAPER o0;AT N-o1,M-o1;"@";
8986 NEXT M: NEXT N: RETURN
8990 DATA "@AAAAAAAAAAAAAAAAAAAAAA@","A@@@@@@@@@@@@@@@@@@@@@@A","AAAAAAAAAAAAAAAAAAAAAAAA"
9000 GO SUB VAL "8800"
9025 IF S>=HI THEN LET HI=S
9030 PAUSE VAL "100"
9100 REM LET mus=USR 64849
9110 CLS : INK VAL "7": LET t$(o2)="BILLENTYU("+e$(o1)+","+E$(o2)+","+E$(o3)+","+E$(o4)+")": LET g=o1: LET C=VAL "7"
9115 POKE udg,VAL "245": PRINT INK o2;AT VAL "18",o2;"Uý";AT 19,o2;"?y"; INK 6;AT 18,28;"ou";AT 19,28;"Uu"
9120 POKE udg,VAL "244": PRINT INK VAL "6";AT 20,o0;"O÷""""""""""""""""""""""""""""?y";AT 21,o0;"ou";TAB 30;"µ¶";O0;AT o0,o0; INK 6;"Uu";TAB 30;"3¸";0;AT o1,o0; INK 6;"Uý";TAB 30;"1o"
9125 POKE udg,VAL "243": PRINT INK 6;AT o0,o0;"?µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµy": POKE udg,VAL "244": FOR N=o1 TO 19: PRINT AT N,o0; INK 6;"1/2";AT N,31;"1/4": NEXT n
9135 PRINT AT 21,11; INK o3;"I R T A :": POKE udg,VAL "240": PRINT o0;AT o0,10; INK o4;"NYITRAISOFT"; o0;AT o1,13; INK o5;"2002": POKE udg,VAL "243"
9139 LET A=o3: FOR N=o1 TO VAL "8": PRINT AT A,o5;N;". ";T$(N): LET A=A+o2: NEXT N
9140 POKE udg,VAL "245": PRINT AT 18,18; INK o2;"1"; INK o4;"o"; INK o2;AT 19,18;""1/4": POKE udg,VAL "243"
9141 IF K THEN PRINT AT o5,8; INK o4;T$(o2); INK 7;AT 7,8;T$(o3): GO TO VAL "9145"
9142 PRINT AT 7,8; INK o4;T$(o3); INK 7;AT o5,8;T$(o2)
9145 PRINT INK C;AT o1,6;"A KONYHAFONOK REMALMA": LET C=C-o1: IF C=-o1 THEN LET C=VAL "7"
9150 LET I$=INKEY$: IF I$="1" THEN LET mus=USR VAL "64834": GO TO O1
9151 IF NOT g THEN PRINT AT o2,o2;"O÷";AT o3,o2;"ou";AT o2,27;"Uu";AT o3,27;"Uý": LET g=o1: GO TO 9155
9152 IF g THEN PRINT AT o2,o2;"Uu";AT o3,o2;"Uý";AT o2,27;"O÷";AT o3,27;"ou": LET g=o0
9153 PRINT INK C;AT o1,8;"KONYHAFONOK": LET C=C-o1: IF C=-o1 THEN LET C=VAL "7"
9155 IF I$="2" THEN LET L$=e$(o1): LET R$=e$(o2): LET U$=e$(o3): LET D$=e$(o4): LET K=o1
9160 IF I$="3" THEN LET L$="6": LET R$="7": LET U$="9": LET D$="8": LET K=o0
9165 IF I$="4" THEN GO SUB VAL "9200": GO TO VAL "9101"
9170 IF I$="5" THEN GO SUB VAL "9400": GO TO VAL "9101"
9171 IF I$="6" THEN GO SUB VAL "9500": LET L$=e$(o1): LET R$=e$(o2): LET U$=e$(o3): LET D$=e$(o4): LET K=o1: GO TO VAL "9101"
9172 IF I$="7" THEN LET mus=USR 64834: GO SUB VAL "8500": GO TO VAL "9101"
9173 IF I$="8" THEN GO SUB VAL "9600": GO TO VAL "9101"
9174 PRINT INK C;AT o1,8;"KONYHAFONOK": LET C=C-o1: IF C=-o1 THEN LET C=VAL "7"
9175 GO TO 9141
9200 CLS : INK o4: PRINT AT 2,6; INK 3;"A JATEK MAGYARAZATA": PRINT AT 8,0;"A KONYHAFONOK ELALUDT,AZ EGEREK"'"SZETHORDTAK A RAKTAR KESZLETET."'" A KIS KUKTA - EZT IRANYITJUK -"'" SZEDI UJRA OSSZE 16"'"EGERLYUK - PALYAN KERESZTUL": PRINT INK 5;AT 14,1;"NYOMJ EGY GOMBOT A MENUHOZ": PAUSE 0: RETURN
9300 RESTORE VAL "9310": READ udg,fad,o0,o1,o2,o3,o4,o5,font,max,ch,hi,k,pa: BORDER o0: PAPER o0: INK VAL "7": BRIGHT o0: FLASH o0: CLS : DIM t$(VAL "11",VAL "18"): FOR n=o1 TO VAL "11": READ t$(n): NEXT n: DIM e$(o4): LET e$(o1)="Z": LET e$(o2)="X": LET e$(o3)="O": LET e$(o4)="K": LET q$="Q": LET p$="P": LET L$="Z": LET R$="X": LET U$="O": LET D$="K": POKE VAL "23658",VAL "8": POKE fad,font: POKE VAL "23675",o0: POKE udg,VAL "243": GO TO VAL "9100"
9310 DATA VAL "23676",VAL "23607",NOT PI,SGN PI,o1+o1,o2+o1,o3+o1,o4+o1,VAL "188",o0,o1,VAL "7500",o1,VAL "9","A JATEK INDITASA","","SINC.BOTKORMANY","JATEKMAGYARAZAT","KOSZONETNYILVANITO","IRANYITO GOMBOK","LABIRINT MODOSITAS","PALYAK MENTES/BETOLTES","JAVIT","KI","BUUUM"
9400 CLS : INK 6: PRINT AT 2,6;"KOSZONETNYILVANITAS"; INK 4;AT 6,1;"A YOUR SINCLAIR 50-IK"''"SZAMABAN MEGJELENT PROGRAM"''"SZERZOINEK,J0 MEGOLDASAIKERT"''"ES A GRAFIKAI RUTINOKERT"; INK 2;AT 19,1;"NYOMJ EGY GOMBOT A MENUHOZ"
9410 PAUSE 0: RETURN
9500 CLS : PRINT INK o4;AT o1,VAL "8";"IRANYITAS BEALL:"; INK VAL "6";AT o5,VAL "10";"BALRA ";: GO SUB VAL "9550": LET E$(o1)=i$: PRINT INK VAL "6";AT VAL "7",VAL "10";"JOBB ";: GO SUB VAL "9550": LET e$(o2)=i$: PRINT INK VAL "6";AT VAL "9",VAL "10";"FEL ";: GO SUB VAL "9550": LET e$(o3)=i$: PRINT AT VAL "11",VAL "10"; INK VAL "6";"LE ";: GO SUB VAL "9550": LET e$(o4)=i$: PRINT AT VAL "13",VAL "10"; INK O5;"KILEP ";: GO SUB VAL "9550": LET q$=i$: PRINT AT VAL "15",VAL "10"; INK o5;"ALLJ ";: GO SUB VAL "9550": LET p$=i$: PRINT AT VAL "18",VAL "6"; INK o3;"NYOMJ A MENUHOZ": PAUSE o1: PAUSE o0: RETURN
9550 LET i$=INKEY$: IF i$="" THEN GO TO VAL "9550"
9555 RANDOMIZE USR VAL "60048": PRINT i$: RETURN
9600 CLS : PRINT AT 3,VAL "9"; INK VAL "6";"MENTES/BETOLTES MENU"; INK o4;AT 6,VAL "9";"1. PALYAMENTES";AT VAL "8",VAL "9";"2. PALYABETOLTES";AT VAL "10",VAL "9";"3. VISSZA A MENUHOZ";AT VAL "20",o0; INK o3;"A KONYHAFONOK REMALMA A KONYHAFONOK REMALMA KONYHAFONOK REMALMA"
9610 IF INKEY$="1" THEN PRINT AT VAL "20",o1; INK VAL "6";"SZALLAG/DISZK,GOMNYOMAS": PAUSE o1: PAUSE o0: SAVE "CHEF.S$" DATA S$(): SAVE "CHEF.C" DATA C(): SAVE "CHEF.COL"CODE VAL "49152",VAL "9000": RETURN
9620 IF INKEY$="2" THEN PRINT AT VAL "20",o1; INK VAL "6";"SZALLAG/DISZK,GOMBNYOMAS": PAUSE o1: PAUSE o0: LOAD "CHEF.S$" DATA S$(): LOAD "CHEF.C" DATA C(): LOAD "CHEF.COL"CODE : LET MAX=VAL "15": RETURN
9630 IF INKEY$="3" THEN RETURN
9640 GO TO VAL "9610"
KISKUTYUS - 16-OS PUZZLE KIRAKÓ JÁTÉK
Leírás: A középen lévő kiskutyust kell a helyére tologatnunk, legalább 200 tologatás szükséges a 16 kocka helyrerakásához.

1 REM JATEKGYAROS 2003
2 REM KOCKA KUTYUS PUZZLE
3 POKE 23609,55
5 LET i=0
10 CLS : DIM g$(68,4): DIM k(8,3): DIM c(16,2): DIM p(16)
30 LET g$(1)="OUUu"
31 LET g$(2)="÷ U"
32 LET g$(3)="÷ 1U"
33 LET g$(4)="oýýu"
34 LET g$(5)="OUUu"
35 LET g$(6)="÷ U"
36 LET g$(7)="÷2 U"
37 LET g$(8)="oýýu"
38 LET g$(9)="OUUu"
39 LET g$(10)="÷ U"
40 LET g$(11)="÷3 U"
41 LET g$(12)="oýýu"
42 LET g$(13)="OUUu"
43 LET g$(14)="÷ U"
44 LET g$(15)="÷4 U"
45 LET g$(16)="oýýu"
46 LET g$(17)="OUUu"
47 LET g$(18)="÷ U"
48 LET g$(19)="÷ 5U"
49 LET g$(20)="oýýu"
50 LET g$(21)=" !@"
51 LET g$(22)=" $"
52 LET g$(23)="%&'("
53 LET g$(24)=")[]{"
54 LET g$(25)="}ab "
55 LET g$(26)="cdef"
56 LET g$(27)="ghi "
57 LET g$(28)="jkl "
58 LET g$(29)="OUUu"
59 LET g$(30)="÷ U"
60 LET g$(31)="÷ 8U"
61 LET g$(32)="oýýu"
62 LET g$(33)="OUUu"
63 LET g$(34)="÷ U"
64 LET g$(35)="÷ 9U"
65 LET g$(36)="oýýu"
66 LET g$(37)="mnop"
67 LET g$(38)="qrst"
68 LET g$(39)="uvwx"
69 LET g$(40)=" "
70 LET g$(41)="yz. "
71 LET g$(42)="-+* "
72 LET g$(43)="/^: "
73 LET g$(44)="L^(c) "
74 LET g$(45)="OUUu"
75 LET g$(46)="÷ U"
76 LET g$(47)="÷12U"
77 LET g$(48)="oýýu"
78 LET g$(49)="OUUu"
79 LET g$(50)="÷ U"
80 LET g$(51)="÷13U"
81 LET g$(52)="oýýu"
82 LET g$(53)="OUUu"
83 LET g$(54)="÷ U"
84 LET g$(55)="÷14U"
85 LET g$(56)="oýýu"
86 LET g$(57)="OUUu"
87 LET g$(58)="÷ U"
88 LET g$(59)="÷15U"
89 LET g$(60)="oýýu"
90 LET g$(61)=" "
91 LET g$(62)=" "
92 LET g$(63)=" "
93 LET g$(64)=" "
94 LET g$(65)="OUUu"
95 LET g$(66)="÷ U"
96 LET g$(67)="÷16U"
97 LET g$(68)="oýýu"
98 IF i=0 THEN GO TO 160
100 CLS : PLOT 48,152: DRAW 159,0
101 PLOT 63,167: DRAW 0,-159
102 PLOT 48,120: DRAW 159,0
103 PLOT 96,167: DRAW 0,-159
104 PLOT 48,88: DRAW 159,0
105 PLOT 128,167: DRAW 0,-159
106 PLOT 48,56: DRAW 159,0
107 PLOT 160,167: DRAW 0,-159
108 PLOT 48,23: DRAW 159,0
109 PLOT 192,167: DRAW 0,-159
110 IF i=1 THEN GO TO 190
112 IF i=2 THEN GO TO 310
160 RESTORE 170: FOR x=1 TO 8: READ k(x,1),k(x,2),k(x,3): NEXT x
170 DATA 15,64,251,21,232,251,27,128,252,37,40,253,47,208,253,55,120,254,65,24,255,68,184,255
180 FOR a=1 TO 4: LET f=4*a-1: FOR b=1 TO 4: LET c=4*b+4: LET p=4*(a-1)+b: LET c(p,1)=f: LET c(p,2)=c: NEXT b: NEXT a
187 GO TO 2000
190 LET w=1: LET f=0
200 FOR x=1 TO 16: LET a=4*(x-1): IF x=16 THEN LET a=64
210 FOR b=1 TO 4: IF (a+b)>k(w,1) THEN LET w=w+1
215 INK 1: PAPER 5
217 IF a+b>=61 THEN INK 0: PAPER 7: LET f=1
220 PRINT AT (c(x,1)-1+b),c(x,2);g$(a+b): IF f=1 THEN LET f=0
221 NEXT b: NEXT x
222 PRINT 0;" ITT LATOD A TELJES 16_OS KEPET NYOMD AZ ENTERT A KEVERESHEZ ": PAUSE 0: REM GO SUB 3000
225 RETURN
310 REM KEVERES
312 LET c=0: LET n=1+INT (RND*4): RESTORE VAL "(32+n)*10": LET f=0
315 FOR x=1 TO 16: READ p(x): NEXT x
320 FOR x=1 TO 16: FOR y=1 TO 4: LET p=(4*p(x)-4)+y: LET W=1
322 IF p>k(w,1) THEN LET w=w+1: GO TO 322
326 INK 2: PAPER 5
327 IF p>=61 THEN LET f=1: INK 0: PAPER 7
328 PRINT AT (c(x,1)-1+y),c(x,2);g$(p): IF f=1 THEN LET f=0: INK 2: PAPER 5
329 NEXT y: NEXT x: INK 0: PAPER 7
330 DATA 16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1
340 DATA 9,8,10,7,11,6,12,5,13,4,14,3,15,2,16,1
350 DATA 5,12,6,11,7,10,8,9,4,13,3,14,2,15,1,16
360 DATA 12,5,13,4,14,3,15,2,16,1,11,6,10,7,9,8
365 REM IRANYITAS
367 PRINT AT 21,1;"BAL 5 JOBB 8 FEL 7 LE 6 K KEVER": LET b=0
370 IF INKEY$="" THEN GO TO 370
372 LET c$=INKEY$
375 PRINT AT 21,1;" "
376 IF C$="K" THEN GO TO 100
380 IF (c$="5" OR c$="6" OR c$="7" OR c$="8") THEN GO TO 400
390 PAUSE 30: PRINT AT 21,1;"SZABALYTALAN ISMETELD!": PAUSE 40: PRINT AT 21,1;"MOST MERRE ? ": GO TO 370
400 LET x=1
420 IF p(x)=16 THEN LET b=x: GO TO 440
430 LET x=x+1: GO TO 420
440 IF c$="5" AND (b=4 OR b=8 OR b=12 OR b=16) THEN GO TO 390
450 IF c$="6" AND (b=1 OR b=2 OR b=3 OR b=4) THEN GO TO 390
460 IF c$="7" AND (b=13 OR b=14 OR b=15 OR b=16) THEN GO TO 390
470 IF c$="8" AND (b=1 OR b=5 OR b=9 OR b=13) THEN GO TO 390
480 IF c$="8" THEN LET m=(b-1): GO TO 520
490 IF c$="7" THEN LET m=(b+4): GO TO 520
500 IF c$="6" THEN LET m=(b-4): GO TO 520
510 LET m=(b+1)
520 LET w=1: LET p=4*p(m)-4
525 LET c=c+1: PRINT AT 1,1;c
530 FOR x=1 TO 4
540 IF (p+x)>k(w,1) THEN LET w=w+1: GO TO 540
560 INK 2: PAPER 5: PRINT AT (c(b,1)-1+x),c(b,2);g$(p+x)
570 INK 0: PAPER 7: PRINT AT (c(m,1)-1+x),c(m,2);g$(60+x): NEXT x: INK 0: PAPER 7
575 LET a=p(b): LET p(b)=p(m): LET p(m)=a
580 LET x=1
590 IF x>16 THEN GO TO 620
600 IF p(x)<>x THEN GO TO 365
610 LET x=x+1: GO TO 590
630 FOR x=1 TO 4
640 INK 2: PAPER 5: PRINT AT 14+x,20;g$(64+x): NEXT x: INK 0: PAPER 7
650 INPUT "UJABB JATEKOT? I_N ";x$
660 IF x$="I" THEN GO TO 310
670 INK 0: PAPER 7: STOP
2040 GO SUB 3000
2050 LET i=1: GO SUB 100
2110 GO SUB 3000: LET i=2: GO TO 100
3000 REM INK 0: PAPER 7: PRINT 0;"EREDETI KEP"
3000 RETURN
MARSAUTÓ - KALANDOK A MARS FELSZÍNÉN
Leírás: A Mars felszínét kell felkutatnod 10 pályán keresztül, rendelkezésedre áll 5 élet-autó, lehetőséged van az akadályokat kikerülnöd - felugrással -, és le tudod lőni a felbukkanó szörnyeket is. Sok szerencsét...

0 REM **********************
*** Marsauto ***
*** c)Nyitrai 2001' ***
***********************
1 PRINT AT 9,2;"A MARS FELSZINET KELL FELDE-";AT 10,2;"RITENED,10 PALYAN KERESZTUL,";AT 11,2;"RENDELKEZESEDRE ALL 5 AUTO.";AT 13,3;"SOK SIKERT KIVAN A JATEKHOZ";AT 16,10;"NYITRAI LASZLO"
2 LET csucs=0: PRINT ; PAPER 0; INK 6;AT 19,5;"nyomogasd az ENTER-t !!!"
3 PRINT INK 2;AT 2,5; "********************** *** Marsauto *** *** (c) Nyitrai 2001'*** **********************": GO SUB 9001: PAUSE 0: PAUSE 0: PAUSE 0
4 LET csucs=0: GO TO 8700
5 GO SUB 9001: GO SUB 9104
9 LET s=0
10 LET auto=5
20 LET palya=0: LET felszin=0
50 INVERSE 0: PAPER 0: INK 7: BRIGHT 0: CLS
100 REM a tajkep
105 POKE 23675,88: POKE 23676,255
106 LET t$="???????????????????????????????U ý?????U ý?????U ý?????????U ý????????U ý?????????U ý???y?y?y???????y?????y?????y????U ý??????U ý??????y?????????"
107 LET q$="????????????????????????????????U ý????y??????U ý?????U ý??????U ý??????????y?????y??????y?????y?????????U ý????????y????U ý????????y?U ý????????????????"
108 LET w$="iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
109 LET f$="UýUý??Uý?Uý??????Uý??UýUýUý?Uý?Uý??Uý?Uý???????Uý?Uý?????Uý?UýUýUýUýUý???Uý??Uý??Uý??Uý?Uý???Uý??Uý?Uý??Uý???Uý??Uý???Uý??UýUýUýUý??????Uý???UýUý??????Uý?Uý?Uý?Uý?UýUýUý?UýUý?Uý?Uý?Uý?Uý"
110 LET z$="????????????????????????????????y??????????????y???????U ý????????????????U ý?????????yU ý??????U ý???????y???????????????U ý???????????????????????????????????"
111 LET k$="iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
112 LET y$="??????????????????????????????????y?y?y?y????U ý??????U ý???U ý????U ý???U ý????U ý????U ý???U ý????U ý???U ý???U ý???y??y?????yyyy???U ý??????y????y???????????"
113 LET x$="?????????????????????????????????yyyyyyy????U ý???U ý???U ý????U ý???yU ý???yU ý???yyy?Uý???U ý???U ý??????U ý????U ý????????y???yU ý???????"
120 LET m$="iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiU ýiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiU ýiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiU ýiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
140 LET c=1: LET d=0
150 LET x=17: LET y=5
180 LET f=0
182 LET palya=palya+1: BEEP .1,20: LET c=1
185 LET o$=" "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "
500 REM kezdo kepernyo
505 INVERSE 0: INK 7: PAPER 0: BORDER 0
507 FOR q=3 TO 7: PRINT ; INK 5;AT q,0;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii": NEXT q
510 PRINT AT 21,0; INK 6;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
520 PRINT AT 0,0; PAPER 2; INK 6;" PONT:";s,"PALYA ";palya,,,,,,,
525 PRINT INK 6; PAPER 2;AT 1,20;"CSUCS: ";csucs
530 PRINT AT 1,0; PAPER 2;"AUTOK SZAMA "
680 FOR a=1 TO auto
690 PRINT PAPER 2;AT 2,a*5-5;"O÷o ";AT 3,a*5-5;"uUu "
700 NEXT a
1500 REM auto es hatter mozgatas
1505 LET s=s+1
1510 LET cx=x: LET cy=y
1511 IF palya>=6 THEN PRINT AT 18,0; INK 6;o$(c TO c+31): PRINT AT x+1,y; INK 5;"uUu"
1512 PRINT ; INK 0; PAPER 5;AT 8,0;f$(c TO c+31)
1513 IF palya=1 OR palya=6 THEN LET l$=z$: LET r$=m$
1514 IF palya=2 OR palya=7 THEN LET l$=q$: LET r$=k$
1515 IF palya=3 OR palya=8 THEN LET l$=t$: LET r$=k$
1516 IF palya=4 OR palya=9 THEN LET l$=y$: LET r$=k$
1517 IF palya=5 OR palya=10 THEN LET l$=x$: LET r$=k$
1518 REM a hatter mozgatasa
1520 PRINT INK 6; PAPER 0;AT 19,0;l$(c TO c+31);AT 20,0;r$(c TO c+31)
1530 LET y=y+(IN 31=1 AND y<14)-(IN 31=2 AND y>1)
1533 REM auto iranyitasa balra es jobbra
1535 LET y=y+(INKEY$="x" AND y<14)-(INKEY$="z" AND y>1)
1537 REM ugras
1540 IF IN 31=8 AND d<>1 OR INKEY$="0" AND d<>1 THEN LET d=-1:
1550 IF x<=17-(y/2) THEN LET d=1
1570 LET x=x+d
1575 REM uj jatek inditasa
1600 IF INKEY$="U" OR INKEY$="u" THEN GO TO 5
1700 PRINT AT cx,cy;" ";AT cx+1,cy;" ";AT x,y; INK 4;"O÷o";AT x+1,y; INK 5;"uUu"
1705 RANDOMIZE USR 60180
1710 PRINT AT 0,6; INK 6; PAPER 2;s
1715 IF IN 31=16 OR INKEY$="9" THEN GO SUB 1760
1720 IF palya>6 THEN PRINT AT 18,0; INK 6;o$(c TO c+31): PRINT AT x+1,y; INK 5;"uUu"
1740 IF x=17 AND d=1 THEN LET d=0: PRINT AT cx,cy;" ";AT cx+1,cy;" ";AT x,y; INK 4;"µ¶3";AT x+1,y; INK 5;"¸1o": RANDOMIZE USR 65055: BEEP .1,-45
1745 IF d=0 THEN IF l$(c+y)<>"?" OR l$(c+y+2)<>"?" THEN GO TO 5000
1747 IF x=17 AND palya>6 AND o$(y+c+2)=""" THEN GO TO 5000
1749 IF x=16 AND palya>6 THEN IF o$(c+y)=""" OR o$(c+2+y)=""" THEN GO TO 5000
1752 LET c=c+1: IF c=LEN l$-31 THEN : PRINT AT 0,22; PAPER 8;palya: IF palya/10=INT (palya/10) THEN GO TO 9900
1753 IF c=LEN l$-31 THEN GO TO 182
1754 GO TO 1500
1755 REM raketa kilovese
1760 RANDOMIZE USR 65034: FOR a=y+4 TO 30: PRINT AT x+1,a;" 3/4"
1780 BEEP .001,60: IF o$(c+a)<>" " AND palya>5 AND x=17 THEN LET s=s+10: LET o$(c+a TO c+a+1)=" ": BEEP .1,30: PRINT AT x+1,a;" ": RETURN
1790 NEXT a
1800 PRINT AT x+1,31;" "
1810 RETURN
5000 REM minden auto elveszett, a jateknak vege
5010 INVERSE 1: FOR a=24 TO 0 STEP -2: INK a/4: BEEP .0005,a*2: PLOT y*8+a,(176-x*8)+8: DRAW 0,-16: PLOT y*8,160-(x*8)+a: DRAW 24,0: NEXT a: INVERSE 0: PRINT AT x,y;" ";AT x+1,y;" ": INK 7
5020 LET c=1
5030 LET auto=auto-1
5035 LET k=29
5040 IF auto=0 THEN GO TO 6000
5050 PRINT PAPER 2;AT 2,auto*5;" ";AT 3,auto*5;" "
5052 LET o$=" "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "1/4 "
5053 PRINT ; INK 0;AT 18,0;"iiiiiiiiiiiiiiiiiiiii"
5055 IF felszin=1 THEN RETURN
5060 GO TO 1500
6000 REM jatek vege,ertekeles
6001 CLS : GO SUB 9001
6005 RANDOMIZE USR 60190
6010 FOR i=1 TO 5: PRINT INK 5-i;AT 5+i,12; PAPER i;"JATEK VEGE": RANDOMIZE USR 65034: NEXT i
6015 IF s>csucs AND auto=0 THEN LET csucs=s: PRINT ; INK 6; PAPER 2;AT 1,20;"CSUCS: ";csucs
6020 FOR i=1 TO 10: RANDOMIZE USR 65055: NEXT i
6050 PAUSE 130
6060 FOR i=1 TO 5: PRINT INK 0;AT 5+i,12; PAPER 0;" ": NEXT i
6062 GO TO 9104
8070 REM udg,sajat keszitesu a-u 21 karakter
8710 RESTORE 8800: CLEAR 65199
8715 PRINT ; INK 7;AT 10,10;"DOLGOZOM !"
8717 FOR i=1 TO 3: RANDOMIZE USR 65034: NEXT i
8719 LET csucs=0
8720 FOR a=65200 TO 65527
8730 READ x: POKE a,x:
8740 NEXT a
8800 DATA 0,0,0,170,85,170,85,170,85,170,84,168,84,168,64,128,85,170,85,10,5,10,5,0,64,128,64,168,84,168,85,170,1,2,5,42,21,170,85,170,0,1,3,3,3,3,3,1,171,255,117,37,85,116,255,255,0,128,192,192,192,64,192,128,3,7,15,30,24,56,40,80,85,255,255,165,90,36,36,24,192,224,240,112,24,28,20,10,0,0,64,224,248,134,177,233,0,0,0,0
8810 DATA 0,0,0,0,0,0,0,0,79,31,57,127,179,255,255,124,41,187,131,199,24,252,254,15,230,240,60,254,0,0,3,6,15,30,21,58,0,0,192,224,112,184,220,172,53,123,119,234,221,171,223,255,94,174,126,174,247,107,255,255,207,0,0,0,0,0,0,0,127,128,184,187,156,144,255,224,128,96,24,134,227,35,255,127,240,254,240,32,254,255,255,129,207,159,191,57,57,63,31,15
8820 DATA 63,158,222,222,192,192,128,0,60,126,255,231,231,255,126,60,128,192,192,224,240,252,254,255,1,3,3,7,15,63,127,255,157,255,255,255,255,255,255,255,129,195,227,231,231,247,255,255,0,0,0,127,128,156,156,143,0,0,0,128,96,24,134,131,0,0,0,240,254,240,32,254,136,255,240,231,207,31,60,63,131,255,62,156,201,227,119,247,255,255,7,243,248,252,142,254,31,127,121,111
8830 DATA 98,120,56,0,248,254,158,246,70,30,28,0,56,56,18,254,144,40,68,198,192,127,127,192,0,0,0,0,207,0,0,0,0,0,0,0
9000 GO TO 5
9001 REM fomenu kepernyo
9100 FOR x=0 TO 31: PRINT ; INK 6; PAPER 3;AT 0,x;"o";AT 21,x;"o": NEXT x
9102 FOR x=0 TO 21: PRINT ; INK 6; PAPER 3;AT x,0;"o";AT x,31;"o"
9103 NEXT x: RANDOMIZE USR 65055: RETURN
9104 INK 7
9120 PLOT 13,107: DRAW 189,0: DRAW 0,-30: DRAW -189,0: DRAW 0,30
9125 PRINT ; INK 6;AT 2,2;"NyitraiSOFT"
9127 PRINT ; INK 3;AT 4,11;"BEMUTATJA"
9130 PRINT ; INK 4;AT 6,2;"UTKERE"
9131 PRINT ; INK 4;AT 7,8;"-SES"
9135 PLOT 14,130: DRAW 53,0: DRAW 0,-8: DRAW 31,0: DRAW 0,-12: DRAW -36,0: DRAW 0,8: DRAW -48,0: DRAW 0,11
9137 PRINT ; INK 4;AT 10,2;"A"; INK 6;" MARS BOLYGO"; INK 4;" FELSZINEN"
9140 PRINT ; INK 6; AT 13,2;"KEMPSTON";AT 14,2;"JOYSTICK-AL ";AT 15,2;"JATSZHATO"
9150 PRINT ; INK 3;AT 13,15;"VAGY:"
9160 PRINT ; INK 4;AT 14,20;"Z- BAL";AT 15,20;"X-JOBB";AT 16,20;"0-UGRAS";AT 17,20;"9- TUZ"
9170 PRINT ; INK 7;AT 2,25;"(c) 2001"
9180 PRINT ; INK 5;AT 16,2;"U-UJRA"; INK 2;AT 17,2;"ENTERRE INDUL"
9190 REM a szerzo szinesben
9200 LET x=1: LET f=1: LET i$="IRTA NYITRAI LASZLO"
9201 FOR j=6 TO 24
9202 PRINT AT 19,j;i$(x TO f)
9203 LET f=f+1: LET x=x+1
9204 BEEP .001,60: INK RND*5+2: BRIGHT RND*1
9205 NEXT j
9797 IF INKEY$<>"" THEN GO TO 9800
9798 IF IN 31=16 THEN GO TO 9800
9799 GO TO 9797
9800 GO TO 6
9850 REM sikeres befejezes utan humoros befejezes
9900 FOR d=20 TO 60 STEP +2: BEEP .01,d: NEXT d
9905 PRINT ; INK 0;AT cx,cy;"iii";AT cx+1,cy;"iii"
9907 FOR v=cy TO 28: PRINT ; INK 5;AT 17,v;" O÷o"; INK 4;AT 18,v;" uUu": NEXT v
9910 PAPER 0: PRINT ; INK 6;AT 19,0;"????????????????????????????????": PRINT ; INK 6;AT 20,0;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"; INK 6;AT 21,0;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
9912 PRINT ; INK 0;AT 18,29;"iii";AT 17,29;"iii": PRINT ; INK 5;AT 17,0;"O÷o"; INK 4;AT 18,0;"uUu"
9915 PRINT BRIGHT 1; INK 7;AT 14,20;"Iiiiiiiiiî";AT 15,20;"i i i i ii";AT 16,20;"iiiiiiiiii";AT 17,20;"i i i i ii";AT 18,20;"iiiiiii ii"
9920 PRINT ; INK 7; PAPER 2;AT 12,22;" MARS ";AT 13,22;" WC "
9922 PRINT 0';" HUJUJUJJ,DE KELL MAR !!!"
9925 FOR g=4 TO 19: BEEP .001,30: PRINT ; PAPER 0; INK 7;AT 18,g;"1/2": PRINT ; INK 0;AT 18,g-1;"i": NEXT g:
9926 PRINT ; INK 0;AT 18,19;"i": FOR h=20 TO 27: BEEP .001,40: PRINT ; INK 0; PAPER 7;AT 18,h;"1/2": PRINT BRIGHT 1; INK 7;AT 18,h;"i": NEXT h: PRINT ; INK 0;AT 18,27;"i"
9927 PRINT ; INK 6; PAPER 1;AT 11,9;"jutalom 100"
9928 FOR x=1 TO 100: LET s=s+1: PRINT ; INK 6; PAPER 2;AT 0,0;"PONTSZAM ";s: BEEP .00125,50: NEXT x
9930 BEEP .4,20: BEEP .5,25
9940 FOR h=26 TO 20 STEP -1: BEEP .001,40: PRINT BRIGHT 1; INK 0; PAPER 7;AT 18,h;"1/2": PRINT BRIGHT 1; INK 7;AT 18,h;"i": NEXT h
9945 FOR g=19 TO 3 STEP -1: PRINT ; INK 7; PAPER 0;AT 18,g;"1/2": PRINT ; INK 0;AT 18,g;"i": BEEP .001,50: NEXT g
9950 GO TO 10
9950 REM (c) 2001' NyitraiSOFT
MASTERMIND - NÉGYSZÁMOS KITALÁLÓ JÁTÉK
Leírás: Négy számot kell találgatással megfejteni, összesen 15 próbálkozásod van, a játék a PDF-rendszerrel készült, sokféle betűtípussal, sztereo hanghatásokkal...

1 DIM z$(10,7)
2 LET z$(1,)="{L9880}": LET z$(2,)="{L9881}": LET z$(3,)="{L9883}"
3 LET z$(4,)="{L9884}": LET z$(5,)="{L9886}": LET z$(6,)="{L9887}": LET z$(7,)="{L9882}"
4 LET z$(8,)="{L9885}"
5 GO SUB 9890: RANDOMIZE 9900 AND USR ua
10 DEF FN u(l,x,y,a)=9905 AND USR ua
11 PRINT 4;"{L9880"
12 BORDER 2: PAPER 1: INK 6: CLS : GO SUB 2000
13 LET d=FN u(9010,4,7,4)
14 FOR i=1 TO 11
15 LET a$="NYITRAISOFT"
16 PRINT 4; INK INT (2+RND*5);AT 165-i*12,230;"{L9886}";a$(i): NEXT i
17 PRINT 4; INK INT (2+RND*5);AT 160,20;"{L9881}A jatek 128K+2 szamitogepen keszult"; INK 6;AT 140,30;"program cime :";AT 140,110; INK 2;"{L9882}MASTERMIND"; INK 2;AT 36,30;"{L9881}|Nyomj egy gombot a kezdeshez !!|"
19 PRINT 0;" ouUu Uý?y"
20 GO SUB 8531: PAUSE 0
29 BORDER 0: PAPER 0: INK 6: BRIGHT 1: CLS
30 PRINT 4; PAPER 6; INK 1;AT 163,170;"{L9883}NYITRAI "; PAPER 2; INK 7;AT 150,155;"{L9882}|MASTERMIND|";AT 120,160; PAPER 7; INK 2;"{L9880}2002-marcius."; PAPER 0; INK 7;AT 155,230;"{L9884}SOFT"
40 PRINT 4; INK 4;AT 170,0;"{L9884}A Mastermind jateknal a SPECTRUM"'"valaszt egy negyjegyu szamot,mely-"'"ben nincsenek azonos szamjegyek,es"'"az elso szam nem lehet nulla."
50 PRINT 4;AT 125,0;"On negyjegyu szamokat megadva "'"talalgathat.A szamjegyek kozt nem"'"lehet azonos,es nem kezdodhet nul-"'"laval sem.Ha az On szamjegyei"'"kozt a SPECTRUMeval azonos van,az feher talalatot jelent. Ha a helyiertekuk is megegyezik,az a fekete sorban irodik ki.Minden tippelese utan kozli a feher es a fekete talalatok szamat a SPECTRUM szamitogep.14 alkalommal lehet talalgatni, ezutan a helyes szamnegyest megmutatja nekunk.Ha sikeres volt a talalgatasunk,akkor ertekelest kapunk."'"Ha kesz vagy ugyessegedet osszemerni a SPECCY-vel,akkor..."
60 REM jatek indul
61 FOR v=1 TO 21
62 LET v$="NYOMJ EGY BILLENTYUT."
65 PRINT 4; BRIGHT 1; INK INT (2+RND*5);"{L9883}";AT 15,15+v*10;v$(v): NEXT v
70 GO SUB 8502: PAUSE 0: CLS
80 REM
90 REM MASTERMIND JATEK
100 RANDOMIZE
110 DIM Y(4): DIM Y$(4)
115 LET t=0: LET s=165
120 LET Y(1)=INT (1+RND*9)
130 LET Y(2)=INT (RND*10): IF Y(2)=Y(1) THEN GO TO 130
140 LET Y(3)=INT (RND*10): IF Y(3)=Y(2) OR Y(3)=Y(1) THEN GO TO 140
150 LET Y(4)=INT (RND*10): IF Y(4)=Y(3) OR Y(4)=Y(2) OR Y(4)=Y(1) THEN GO TO 150
160 FOR i=1 TO 4
170 LET Y$(i)=STR$ Y(i)
180 NEXT i
190 REM
210 CLS : GO SUB 2000: PRINT 4; INK 6;AT 170,10;"{L9881}SORSZ. TIPP FEKETE FEHER "
220 PRINT : PRINT : PRINT
221 GO SUB 8670
250 LET t=t+1: LET s=s-10
251 PRINT 4; INK 6;AT 18,60;" ";(t);"{L9882}. tipp: (4 szam) ": INPUT " ";x
255 IF x<1000 OR x>9999 OR x<>INT x THEN GO TO 250
260 LET x$=STR$ x
262 IF x$(1)=x$(2) OR x$(1)=x$(3) OR x$(1)=x$(4) THEN GO TO 250
264 IF x$(2)=x$(1) OR x$(2)=x$(3) OR x$(2)=x$(4) THEN GO TO 250
266 IF x$(3)=x$(1) OR x$(3)=x$(2) OR x$(3)=x$(4) THEN GO TO 250
268 IF x$(4)=x$(1) OR x$(4)=x$(2) OR x$(4)=x$(3) THEN GO TO 250
270 GO SUB 400
275 REM
280 PRINT 4;"{L9881}";AT s, 25; INK 3;t;".";AT s, 65; INK 6;X$;AT s,140; INK 5;B;AT s,200; INK 4;W
290 GO SUB 8502
295 IF t=14 THEN PRINT 4; PAPER 7; INK 2;AT 60,35;"{L9880}EZ A SZAM ";Y$;" LETT VOLNA": GO TO 340
300 IF b<4 THEN GO TO 240
310 REM
320 PRINT : PRINT
330 PRINT 4; PAPER 2; INK 7; FLASH 1;AT 60,20;"{L9886}KITALALTA A SZAMOMAT"; FLASH 0; PAPER 3; INK 6;AT 70,180;Y$
333 GO SUB 600
335 PRINT 4; PAPER 1; INK 7;AT 40,90;"ERTEKELES: ";E$
340 GO SUB 8580
350 PRINT 4;AT 20,30;"{L9885} Akar ujra jatszani? (i/n) "
360 LET v$=INKEY$
370 IF v$="i" OR v$="I" THEN GO SUB 8531: CLS : RUN 100
380 IF v$="n" OR v$="N" THEN GO SUB 8615: RANDOMIZE USR 0
390 GO TO 360
395 REM
396 REM
400 REM SZUBRUTIN
410 LET B=0
420 LET W=0
430 IF X$(1)=Y$(1) THEN LET B=B+1
440 IF X$(2)=Y$(2) THEN LET B=B+1
450 IF X$(3)=Y$(3) THEN LET B=B+1
460 IF X$(4)=Y$(4) THEN LET B=B+1
480 IF X$(1)=Y$(2) OR X$(1)=Y$(3) OR X$(1)=Y$(4) THEN LET W=W+1
490 IF X$(2)=Y$(1) OR X$(2)=Y$(3) OR X$(2)=Y$(4) THEN LET W=W+1
500 IF X$(3)=Y$(1) OR X$(3)=Y$(2) OR X$(3)=Y$(4) THEN LET W=W+1
510 IF X$(4)=Y$(1) OR X$(4)=Y$(2) OR X$(4)=Y$(3) THEN LET W=W+1
530 RETURN
540 REM A SZUBRUTIN VEGE
570 REM
600 REM ERTEKELES
601 REM
610 IF T<=7 THEN LET E$="KITUNO!!!"
620 IF T>=8 AND T<=10 THEN LET E$=" JO! "
630 IF T>=11 AND T<=13 THEN LET E$="KOZEPES.."
640 IF T>=14 AND T<=16 THEN LET E$="GYENGE..."
650 IF T>=17 THEN LET E$="EL1/4GTELEN"
660 RETURN
999 CLEAR : SAVE "Mastermind"LINE 10
2000 REM keret
2010 PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
2020 PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173
2030 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
2500 RETURN
7290 GO SUB 8502
8500 REM zene128K ping
8502 ?"UX6000W7C":RETURN
8503 REM zene128K rovid tus
8505 LET x$="T170O3N1gbD3C"
8510 LET y$="T170O5N1gbD3C"
8515 LET z$="T170O7N1gbD3C"
8520 ?x$,y$,z$:RETURN
8525 REM zene128K csilingeles
8530 FOR n=1 TO 4:?"T240UX1000W0O7N2cfgEA": NEXT n: RETURN
8535 REM zene128K eredmeny tus
8540 LET p$="T240O3cN2ccN3eN4ce9g"
8545 LET q$="T240O6cN2ccN3eN4ce9g"
8550 LET r$="T240O7CN2CCN3EN4cE9G"
8560 ?p$,q$,r$:RETURN
8565 REM zene128K hosszu csilingeles
8570 ?"T240UX500W7N2CDECDECDECDECDECDECDECDECDECDE9C":RETURN
8575 REM zene128K gyozelmi tus
8580 FOR n=1 TO 2
8590 LET x$="T240O2bb9E2bEb3E9B"
8595 LET y$="T240O4bb9E2bEb3E9B"
8605 ?x$,y$
8610 NEXT n: RETURN
8615 REM zene128K mely baljos zene
8620 LET x$="T95UX6000W7O1BBGGFFEEDDCN1_9C"
8625 LET y$="T95UX6000W7O1BBGGFFEEDDCN1_9C"
8635 ?x$,y$:RETURN
8640 REM zene128K vegso,mely zene
8645 LET x$="T240O2N1_9EO3N1_4D$DDDN1_EGN1_6$GGGCGD$DCO1V14CV13CV12CV10CV9CV8CV7CV6CV5CV4CV3CV2CV1N1_9C"
8650 LET y$="T240O2N1_9EO3N1_4D$DDDN1_EGN1_6$GGGCGD$DCO1V14CV13CV12CV11CV10CV8CV7CV6CV5CV4CV3CV2CV1N1_9C"
8660 ?x$,y$:RETURN
8665 REM zene128K 1 channel track 128K SPECCY's thinking sound alaphang !!! egy masikat meghivva, elhallgat
8670 LET q=65533: LET l=49149
8675 FOR n=0 TO 7
8680 FOR m=0 TO 15
8685 OUT q,7: OUT l,62
8690 OUT q,1: OUT l,n
8695 OUT q,8: OUT l,n
8700 OUT q,m: OUT l,8
8705 NEXT n: NEXT m
8710 RETURN
8720 REM program memory
8725 PRINT AT 16,0; PAPER 1; INK 6;" PROGRAM MEMORIA"
8730 LET stk=PEEK 23653+256*(PEEK 23654)
8735 LET rmt=PEEK 23730+256*(PEEK 23731)
8740 LET prg=PEEK 23635+256*(PEEK 23636)
8745 LET vrs=PEEK 23627+256*(PEEK 23628)
8750 LET mem=rmt-stk
8755 LET lth=vrs-prg
8760 PRINT ''"PROGRAM: ";lth;" bajtbol all"
8765 PRINT "Maradek tarhely: ";mem;" ";"bajt"
8770 PAUSE 0: STOP
9000 REM amand
9001 REM davey
ÓRA - GYAKORLÓ JÁTÉK UNOKÁIMNAK
Leírás:
A program egyszerre három órát állít be, és alul megkérdezi, hogy melyik a helyes válasz, összesen 10 feladat van, a válasz után jelzi, hogy jó vagy rossz volt a válasz, a végén értékelést készít.

1 REM ora1 orajatek
jatekgyaros produkcio
NyitraiSOFT 2003
Spectrum 128K+2
szamitogepre
2 REM ora-gyakorlo jatek
Dori es Reka
unokaimnak
otlet:Izabella nejem
3 DIM n$(20,20): DIM r(20): DIM w(20): LET m=1
4 BRIGHT 0: GOTO 10
5 PRINT AT 19,0;" ": PLOT 0,0: DRAW 0,50: RETURN
10 BORDER 1: PAPER 1: INK 6: CLS
15 RESTORE : RANDOMIZE
16 LET jo=0: LET rossz=0
20 DIM H(48): DIM J(48): DIM C(12): DIM S(12): DIM A$(12,6): DIM C$(12,16): DIM q(12)
25 DEFFN R$(Z$,N)=Z$(N TO )
29 REM beolvasom az idobeallitasokat
30 FOR I=1 TO 12: READ A$(I)
40 NEXT I
50 FOR I=1 TO 12: READ C$(I)
60 NEXT I
61 FOR i=1 TO 12: READ q(i): POKE 62199+i,q(i): NEXT i
70 FOR I=1 TO 12
80 READ S(I),C(I)
90 NEXT I
95 FOR I=1 TO 48: READ H(I): NEXT I: FOR I=1 TO 48: READ J(I): NEXT I
98 GOSUB 3000: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
99 PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173
100 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
101 PRINT AT 1,1; INK 2;"Nyitrai";AT 2,3; INK 7;"SOFT";AT 3,1; INK 4;"bemutatja:":ţ"7C"
102 PRINT INK 5;AT 5,1;"6-8 ţves";AT 6,1;"gyermeknek";AT 7,1;"keszult":ţ"7D": PRINT INK 3;AT 9,1;"gyakorlo";AT 10,4;"ora";AT 11,1;"jatekat":ţ"7E": PRINT INK 7;AT 13,1;"a jatek";AT 14,4;"10";AT 15,1;"feladatot";AT 16,1;"tartalmaz":ţ"7F"
103 PRINT INK 6;AT 1,19;"programozo:";AT 2,23;"a";AT 3,19;"jatekgyaros"; INK 5;AT 14,24;"Mennyit";AT 15,27;"is";AT 16,24;"mutat a";AT 17,24;"vekker?"
104 PRINT INK 2;AT 19,7;"Keszult Budapesten "; INK 4;AT 20,8;"2003 januarjaban."
105 PRINT INK 5;AT 21,23;"ţţţţţţ ţţ"
106 ţ"T240N2CDEFGFEDCCDC","N2efgabagfeefe","N2cdefgfedccdc"
107 INK 7: INPUT " Kerem a neved ";n$(m)
110 IF n$(m)( TO 4)="vege" OR n$(m)( TO 4)="VEGE" THEN GOSUB 8000: PAUSE 1: STOP
115 LET m=m+1
120 REM harom ora a kepernyon
125 BORDER 1: PAPER 1: INK 7: CLS
130 LOAD !"haromora"CODE 16384,6912
132 PRINT 0;
INK 2;" ţţţţţţ ţţ jţtţkgyţros"199 REM veletlenszeru oraballatasok
201 LET A=INT (RND*12)+1
205 LET AA=INT (RND*12)+1
210 LET B=INT (RND*12)+1
215 LET BB=INT (RND*12)+1
220 LET D=INT (RND*12)+1
225 LET CC=INT (RND*12)+1
226 IF A=B OR A=D OR B=D THEN GOTO 200
228 LET CC1=CC: LET CC=CC*4+1
229 LET BB1=BB: LET BB=BB*4+1
230 LET AA1=AA: LET AA=AA*4+1
231 IF B<3 THEN LET BB=BB-2
232 IF A<3 THEN LET AA=AA-2
233 IF D<3 THEN LET CC=CC-2
234 IF A>2 AND A<6 THEN LET AA=AA-1
235 IF B>2 AND B<6 THEN LET BB=BB-1
236 IF D>2 AND D<6 THEN LET CC=CC-1
237 IF A=12 THEN LET AA=AA-2
238 IF B=12 THEN LET BB=BB-2
239 IF D=12 THEN LET CC=CC-2
240 IF A<12 AND A>8 THEN LET AA=AA+2
241 IF b<12 AND b>8 THEN LET BB=BB+2
242 IF D<12 AND D>8 THEN LET CC=CC+2
243 IF AA<1 THEN LET AA=AA+48
244 IF BB<1 THEN LET BB=BB+48
245 IF CC<1 THEN LET CC=CC+48
246 IF AA>48 THEN LET AA=AA-48
247 IF BB>48 THEN LET BB=BB-48
248 IF CC>48 THEN LET CC=CC-48
249 LET Q=INT (RND*3)+1: IF Q=1 THEN LET R=A: LET RR=AA1
250 IF Q=2 THEN LET R=B: LET RR=BB1
251 IF Q=3 THEN LET R=D: LET RR=CC1
253 REM megjelenţtem az idţt
254 FOR N=16 TO 1 STEP -1
255 IF CODE (FN R$(C$(R),N)) <> 32 THEN GOTO 280
270 NEXT N
280 FOR L=6 TO 1 STEP -1
285 IF CODE (FN R$(A$(RR),L)) <> 32 THEN GOTO 295
290 NEXT L
295 IF r <> 6 THEN GOTO 300
297 PRINT I
NVERSE 1; PAPER 2;AT 19,12-(LEN (c$(r)( TO n))+LEN a$(rr)( TO l)+1)/2;C$(R)( TO N);" ";A$(RR)( TO L);" ţra"298 GOTO 400
300 PRINT INVERSE 1; PAPER 2;AT 19,13-(LEN (c$(r)( TO n))+LEN a$(rr)( TO l)+1)/2;C$(R)( TO N);" ";A$(RR)( TO L);" ţra"
399 REM
ţj beţllţtţs megrajzolţsa400 INK 6: PLOT 45,123: DRAW S(A),C(A)
405 PLOT 45,123: DRAW h(AA),j(aa)
406 PLOT 45,123: DRAW h(AA)-1,j(aa)
410 ţ"7C"
420 INK 5: PLOT 125,67: DRAW S(B),C(B)
425 PLOT 125,67: DRAW H(BB),J(BB)
426 PLOT
125,67: DRAW H(BB)-1,J(BB):ţ"7D"430 INK 7: PLOT 205,123: DRAW S(D),C(D)
435 PLOT 205,123: DRAW H(CC),J(CC)
436 PLOT 205,123: DRAW H(CC)-1,J(CC):ţ"7E"
499 REM a spectrum vţlaszol
500 IF INKEY$="" THEN GOTO 500
502 INK 7
505 LET Q$=INKEY$: LET Z=CODE (Q$): IF Z<97 THEN LET Z=Z+32
510 IF Z<97 OR Z>99 THEN ţ"7C": GOTO 500
520 IF Z <> Q+96 THEN GOTO 600
559 REM jţ vţlasz kiţrţsa
560 GOSUB 5: PRINT PAPER 5; INK 2;AT 19,3;"Ez igen ,jţl vţlaszoltţl!";AT 20,3;" mţg ";10-(jo+rossz);" feladatod
van. "565 LET jo=jo+1
567 ţ"T240N2CDEFGFEDCCDC","N2efgabagfeefe","N2cdefgfedccdc"
570 GOTO 1995
599 REM a rossz valasz eseten
600 GOSUB 5: PRINT PAPER 6; INK 0;AT 19,1;" Szerintem a vţlaszod rossz...";AT 20,1;"a helyes valasz a (";CHR$ (q+64)
;") jelu ora"605 LET rossz=rossz+1
607 ţ"M8W0UX14000N9C"
610 GOTO 1995
700 REM a 10-ik feladat-valasz utani uzenet
702 PAUSE 1: PAUSE 200: LET r(m-1)=r(m-1)+jo: LET w(m-1)=w(m-1)+rossz
710 PAPER 2: CLS : PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
711 LET x$=""
715 PRINT INK 5;AT 2,8;"Ertţkelţs:"; INK 6;AT 5,2;"Az ţrafelismerţsi feladat";AT 6,10;"vţgetţrt."
716 IF rossz=9 THEN LET x$="nagyon rossz"
717 IF rossz=8 THEN LET x$="csapnivalţ"
718 IF rossz=7 THEN LET
x$="kţtsţgbeejtţ"719 IF rossz=6 THEN LET x$="figyelmetlen"
720 IF rossz=5 OR rossz=4 OR rossz=3 THEN LET x$="vţltozţ"
721 IF rossz <= 2 THEN LET x$="kituno"
722 PRINT INK 7;AT 8,4;" 10 feladatot kaptal, ";AT 9,1;"megoldţsod ";x$;" volt.";AT 11,5; INK 5;"jo valaszok : ";jo;AT 12,5; INK 0;"rossz vţlasz: ";rossz
724 PRINT INK 5;AT 16,1;"uj jatekhoz nyomd az ENTER-t"
725 ţ"T240N2CDEFGFEDCCDC","N2efgabagfeefe","N2cdefgfedccdc"
730 PAPER 1: LET jo=0: LET rossz=0: PAUSE 0: CLS
750 GOTO 106
1990 R
EM ujabb jţtek keszul1995 IF jo+rossz=10 THEN GOTO 700
1999 PAUSE 1: PAUSE 200
2000 CLS : LOAD !"haromora"CODE 16384,6912
2001 PRINT 0; INK 2;" ţţţţţţ ţţ jţtţkgyţros"
2002 PRINT AT 15,29;jo;AT 16,29;rossz: GOTO 200
2005 DATA "ot","negy","harom",
"ketto","egy","12","11","10","9","8","hţt","hat"2100 DATA "25 perccel mult","20 perccel mult","Negyeddel mult","Tţz perccel mult","ot perccel mult","Pontosan","ot perc mulva","10 perc mulva","15 perc mulva","20 perc mulva","25 perc mulva","Fel oraval mul
t"2190 DATA 33,192,218,17,00,64,01,48,24,237,176,201
2200 DATA 18,-26,27,-13,32,0,27,13,18,26,0,32,-16,26,-27,13,-32,0,-27,-13,-18,-26,0,-32
2301 DATA 0,2,6,9,12,15,18,21,22,24,25,26,27,26,25,24,22,21,18,15,12,9,6,2,0,-2,-6,-9,-12,-15,-18,-21,-22,-24,-25,-26,-27,-26,-25,-24,-22,-21,-18,-15,-12,-9,-6,-2
2311 DATA -27,-26,-25,-24,-22,-21,-18,-15,-12,-9,-6,-2
2321 DATA 0,2,6,9,12,15,18,21,22,24,25,26,27,26,25,23,20,20,18,17,11,9,6,2,0,-2,-6,-9,-12,-15,-18,-21,-22,-24,-25,-26
3000 REM ez itt a vekker
3001 BORDER 1: PAPER 1: INK 6: CLS : GOTO 3005
3002 LET z=SQR (n*(2*r-n)): PLOT x-z,y+r-n: DRAW 2*z,0: RETURN
3005 LET x=128: LET y=83
3008 CIRCLE x,y,2: CIRCLE x,y,4: CIRCLE x,y,45
3009 FOR r=51 TO 59: CIRCLE x,y,r: NEXT r
3011 PRINT AT 7,18;1;AT 9,19;2;AT 11,20;3;AT 13,19;4;AT 15,18;5;AT 16,16;6;AT 15,13;7;AT 13,11;8;AT 11,11;9;AT 9,11;10;AT 7,13;11;AT 6,15;12
3030 FOR n=96 TO 104: PLOT n,33: DRAW -5,-13: NEXT n
3032 FOR n=154 TO 162: PLOT n,33: DRAW 5,-13: NEXT n
3040 PLOT 129,78: DRAW 0,-34
3041 PLOT 127,78: DRAW 0,-34: DRAW 1,-3: DRAW 1,3
3042 PLOT 127,87: DRAW -18,18: DRAW -4,2: DRAW 1,-4: DRAW 18,-18
3050 LET r=20: LET y=145
3052 FOR n=0 TO r: GOSUB 3002: NEXT n
3099 RETURN
7999 REM a vegso ertekels
8000 CLS : FOR u=1 TO m-1
8011 PRINT "_______________________________"
8021 PRINT INVERSE 1;n$(u): PRINT
8031 PRINT "jo valasz..";r(u)
8041 PRINT "rosszak....";w(u)
8042 PRINT " megoldasod ";x$;" volt"
8045 REM ha van meg masik jatekos
8050 NEXT u
8055 ţ"7C"
8060 RETURN
ÓRA 2 - GYAKORLÓ JÁTÉK UNOKÁIMNAK
Leírás: A modern kor követelménye, ez már digitális óra, és a régi mutatós óra ötvözete, itt be kell azt az időt állítani, a digitális - számjegyes órán - amit a mutatós órán látunk.

1 REM digitalis ora
orajatek masodik,harmadik
resze
NyitraiSOFT 2003
2 REM orajatek masodik resz
5 BORDER 1: INK 7: PAPER 1: CLS
7 DIM n$(20,20): DIM r(20): DIM w(20): LET n=1
8 BRIGHT 0
12 LET MH=1: LET DO=0: LET MODE2=0: LET QU=0: LET RI=0: LET WR=0: LET BT=0: LET CO=0: LET TA=23: LET FL1=0
23 ţ"T240N2CDEFGFEDCCDC","N2efgabagfeefe","N2cdefgfedccdc"
24 CLS : PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
25 PRINT INK 6;AT 2,8;"NyitraiSOFT ţţ"; INK 4;AT 4,10;"jatekgyaros"; INK 2;AT 6,11;"bemutatja "; INK 5;AT 8,5;"gyermekeknek keszult"; INK 4;AT 10,5;"digitalis ( szamjegyes)"; INK 2;AT 12,10;"orajatekanak"; INK 7;AT 14,5;"masodik es harmadik"; INK 6;AT 16,12;"reszet"
26 PRINT INK 5;AT 18,1;"a jatek 10 feladatot tartalmaz"
30 INK 7: INPUT " Kerem a neved ";n$(n)
35 IF n$(n)( TO 4)="vege" OR n$(n)( TO 4)="VEGE" THEN GOSUB 8000: PAUSE 1: STOP
40 LET n=n+1
50 GOTO 550
60 LOAD !"szamjegy"SCREEN$ : RETURN
150 LET MH=1
158 IF DO=1 THEN GOTO 198
159 PRINT FLASH 1;AT 10,7;"Adatokat olvasok!"
160 DIM A$(60,2): DIM A(48): DIM B(48): DIM Q(12): DIM C$(60,2): DIM C(60): DIM D(60)
170 FOR I=1 TO 12: READ A$(I): NEXT I
175 FOR I=1 TO 12: READ Q(I): POKE 62199+I,Q(I): NEXT I
176 FOR I=1 TO 12: READ Q(I): POKE 62299+I,Q(I): NEXT I
180 FOR I=1 TO 48: READ A(I): NEXT I
185 FOR I=1 TO 48: READ B(I): NEXT I
190 FOR I=1 TO 60: READ C$(I): NEXT I
192 FOR I=1 TO 60: READ C(I): NEXT I
194 FOR I=1 TO 60: READ D(I): NEXT I
196 LET DO=1
198 CLS : LOAD !"szamjegy"SCREEN$
200 RESTORE
210 LET I=INT (RND*60)+1: LET J=INT (RND*12)+1
220 LET RM=I: LET RH=4*j+1: LET RH1=J
221 IF I<10 THEN LET RH=RH-2
222 IF I>9 AND I<24 THEN LET RH=RH-1
223 IF I>53 THEN LET RH=RH-2
224 IF I>39 AND I<54 THEN LET RH=RH-3
225 IF I>31 AND I<40 THEN LET RH=RH-4
226 IF RH>48 THEN LET RH=RH-48
240 GOSUB 5500: LET FL2=1: PRINT INK 7; PAPER 0; INVERSE 1;AT 9,26;B$( TO 1);AT 10,26;B$(2 TO 2);AT 9,27;M$( TO 1);AT 10,27;M$(2 TO 2);AT 9,21;R$( TO 1);AT 10,21;R$(2 TO 2);AT 9,22;H$( TO 1);AT 10,22;H$(2 TO 2)
245 PRINT INVERSE 1; INK 0; PAPER 7;AT 9,24;"ţ";AT 10,24;"ţ"
250 LET I=31: LET J=21
300 IF MH=1 THEN PRINT INK 7; PAPER 2; FLASH 1;AT 3,20;"az ţrţt"
310 IF FL2=1 THEN LET FL2=0: GOTO 330
320 PRINT INK 7; PAPER 0; INVERSE 1;AT 9,26;B$( TO 1);AT 10,26;B$(2 TO 2);AT 9,27;M$( TO 1);AT 10,27;M$(2 TO 2);AT 9,21;R$( TO 1);AT 10,21;R$(2 TO 2);AT 9,22;H$( TO 1);AT 10,22;H$(2 TO 2)
325 PRINT AT 9,24;"ţ";AT 10,24;"ţ"
330 IF FL1=1 THEN LET FL1=0: GOSUB 2500
340 LET CO=CO+5
400 PLOT 72,96: DRAW INVERSE 1;C(I),D(I): BEEP .008,10
405 PRINT AT 17,26;WR;AT 15,26;RI
410 PLOT 72,96: DRAW INVERSE 1;A(J),B(J)
415 IF INKEY$="B" OR INKEY$="b" THEN LET BT=1: GOSUB 2500
416 IF CO>5 AND CO<7 THEN BEEP .1,0
418 IF BT=1 THEN LET CO=CO+1: IF CO>10 THEN LET CO=0: LET TA=TA-1: BEEP .1,10
419 IF TA<9 THEN GOTO 2600
420 IF INKEY$="5" THEN LET j=J+1: GOSUB 6200: GOTO 300
422 IF INKEY$="%" THEN LET J=J+4: GOSUB 6200: GOTO 300
425 IF INKEY$="M" OR INKEY$="m" THEN CLS : GOTO 550
430 IF INKEY$="8" THEN LET J=J-1: GOSUB 6200: GOTO 300
435 IF INKEY$="(" THEN LET J=J-4: GOSUB 6200: GOTO 300
440 IF INKEY$="S" OR INKEY$="s" THEN GOSUB 6000: GOSUB 60: GOTO 300
450 IF INKEY$=CHR$ (13) THEN GOTO 500
460 GOTO 415
500 IF J=RH THEN GOSUB 1500: GOTO 1000
510 GOSUB 1600: GOSUB 60: GOTO 300
552 LET MH=1: LET F1=0: LET BT=0: LET TA=23: LET CO=0
555 CLS : PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
560 PRINT INVERSE 1;AT 2,8;"Menuvalasztek:"
565 PRINT INK 5;AT 3,8;"--------------"
570 PRINT INVERSE 1;AT 7,4;"1": PRINT AT 7,6;"Mutatokat allitod"
580 PRINT INVERSE 1;AT 9,4;"2": PRINT AT 9,6;"Szamjegyeket allitod"
585 PRINT INK 2; INVERSE 1;AT 12,4;"K": PRINT AT 12,6;"Kilepes,eredmenyhirdetes"
590 PRINT FLASH 1;AT 19,2;"Melyiket valasztod? 1/2/K/S"
592 PRINT AT 16,2; INK 6;"'S' betu-re segitseget adok "
595 PRINT 0; INK 2;" digitalis ora NyitraiSOFT 2003"
600 IF INKEY$="" THEN GOTO 600
605 LET K$=INKEY$
607 IF k$="k" OR k$="K" THEN GOSUB 8000: PAUSE 1: PAUSE 500: CLS : GOTO 550
608 IF k$="s" OR k$="S" THEN GOSUB 6000: GOTO 555
610 IF K$<"1" OR K$>"2" THEN FOR O=1 TO 2: FOR L=1 TO 5: BEEP .05,O+L: NEXT L: NEXT O: GOTO 600
615 LET K=VAL (K$)
620 IF K=1 THEN CLS : GOTO 150
630 IF K=2 THEN CLS : GOTO 7000
640 FOR K=1 TO 2: FOR L=1 TO 5: BEEP .3,L: NEXT L: NEXT K: GOTO 600
998 STOP
1000 LET MH=0: IF BT=1 THEN LET FLAG1=1
1005 GOSUB 60
1010 PRINT AT 3,20;" ": IF MH=0 THEN PRINT INK 7; PAPER 2; FLASH 1;AT 3,20;"a percet"
1015 PRINT AT 9,24;" ";AT 10,24;" "
1020 PRINT INK 7; PAPER 0; INVERSE 1;AT 9,26;B$( TO 1);AT 10,26;B$(2 TO 2);AT 9,27;M$( TO 1);AT 10,27;M$(2 TO 2);AT 9,21;R$( TO 1);AT 10,21;R$(2 TO 2);AT 9,22;H$( TO 1);AT 10,22;H$(2 TO 2)
1022 IF FL1=1 THEN LET FL1=0: LET TA=23: GOSUB 2500
1024 LET CO=CO+3
1030 PLOT 72,96: DRAW INVERSE 1;C(I),D(I): BEEP .008,10
1035 PRINT AT 17,26;WR;AT 15,26;RI
1040 PLOT 72,96: DRAW INVERSE 1;A(J),B(J)
1047 IF BT=1 THEN LET CO=CO+1.5: IF CO>10 THEN LET CO=0: LET TA=TA-1: BEEP .1,10
1048 IF BT=1 THEN PRINT AT 20,TAB;" "
1049 IF TA<9 THEN GOTO 2600
1050 IF INKEY$="5" THEN LET I=I+1: GOSUB 6100: GOTO 1005
1051 IF CO>5 AND CO<7 THEN BEEP .1,0
1052 IF INKEY$="%" THEN LET I=I+10: GOSUB 6150: GOTO 1005
1054 IF INKEY$="M" OR INKEY$="m" THEN CLS : GOTO 550
1060 IF INKEY$="8" THEN LET I=I-1: GOSUB 6100: GOTO 1005
1061 IF INKEY$="(" THEN LET I=I-10: GOSUB 6150: GOTO 1005
1070 IF INKEY$="S" OR INKEY$="s" THEN GOSUB 6000: GOSUB 60: GOTO 1010
1080 IF INKEY$=CHR$ (13) THEN GOTO 1100
1090 GOTO 1046
1100 IF I=RM THEN GOTO 2000
1110 GOSUB 1600: GOSUB 1540: GOTO 1010
1505 PRINT AT 14,19;" ";AT 15,19;" ";AT 16,19;" ";AT 17,19;" ";AT 18,19;" "
1510 FOR X=1 TO 8: PLOT 210+X,55-X: NEXT X
1520 FOR X=1 TO 20: PLOT 218+X,47+X: NEXT X
1530 PRINT INVERSE 1;AT 17,24;"kit
ţnţ"1540 PAUSE 1: PAUSE 200: PRINT AT 17,24;" ": LOAD !"szamjegy"SCREEN$ : RETURN
1605 LET WR=WR+1: LET w(n-1)=w(n-1)+1
1606 PRINT AT 14,19;" ";AT 15,19;" ";AT 16,19;" ";AT 17,19;" ";AT 18,19;" "
1610 FOR X=1 TO 20: PLOT 210+X,65-X: NEXT X
1620 FOR X=1 TO 20: PLOT 210+X,44+X: NEXT X
1630 PRINT PAPER 2; INVERSE 1;AT 17,25;"rossz "
1635 IF RI+WR=10 THEN PAUSE 1: PAUSE 150: GOTO 3000
1640 PAUSE 1: PAUSE 150: PRINT AT 17,25;" ": LOAD !"szamjegy"SCREEN$ : GOSUB 2500: RETURN
2004 PRINT FLASH 1; INK 2;AT 18,11;"Szuper!": IF RI+WR+1=10 THEN PAUSE 1: LET ri=ri+1: PAUSE 150: INK 7: PAPER 1: GOTO 3000
2005
ţ"7C": PRINT INK 5; FLASH 1;AT 19,3;"Ez igen,jţl vţlaszoltţl!";AT 20,5;"mţg ";10-(wr+ri);" feladatod van."2010 LET CO=0: LET BT=0: LET RI=RI+1: LET r(n-1)=r(n-1)+1: LET MH=1: LET TA=23: PAUSE 1: PAUSE 200: INK 7: PAPER 1: CLS : GOSUB 60: GOTO 210
2500 I
F BT=1 THEN PRINT INVERSE 1;AT 20,9;"Az ţra lejţrt.": FOR Z=23 TO TA STEP -1: PRINT AT 20,Z;" ": NEXT Z: RETURN2550 RETURN
2601 PAPER 7: INK 2: CLS
2602 LET W$="Lejţrt a jţtţkidţ!"
2603 FOR I=0 TO 10: PRINT AT I,4;W$: BEEP .01,30-i: PAUSE 10: NEXT I
2604 FOR I=0 TO 20: BEEP .01,20-i: PRINT AT I,4;" ": IF I<10 THEN PRINT AT I+10,4;W$
2605 PAUSE 5: NEXT I: LET ta=23: LET bt=0: LET CO=0
2610 IF RI+WR+1=10 THEN INK 7: LET wr=wr+1: PAPER 1: GOTO 3000
2614 INK 7: PAPER 1
2615 CLS : PRINT FLASH 1;AT 10,1;"ism
ţtlţs a tudţs anyja...": PAUSE 1: PAUSE 100: PRINT AT 10,1;" ": GOSUB 602620 LET MH=1: LET FL1=0: LET BT=0: LET WR=WR+1: LET TA=23: LET CO=0: GOTO 210
3010 CLS : PRINT AT 10,4;"10 feladat vţgetţrt,";AT 11,4;"prţbţld mţgegyszer"
3012 LET w(n-1)=wr: LET r(n-1)=ri
3015 LET ri=0: LET wr=0
3020 PAUSE 1: PAUSE 250: CLS : GOTO 210
4999 STOP
5000 DATA "05","04","03","02","01","12","11","10","09","08","07","06"
5005 DATA 33,192,218,17,00,64,01,48,16,237,176,201
5006 DATA 33,192,218,17,00,64,01,48,24,237,176,201
5010 DATA 0,4,10,13,18,22,26,30,32,36,38,38,38,36,36,34,30,30,26,22,18,14,8,4
5011 DATA 0,-4,-10,-13,-18,-22,-26,-30,-32,-36,-38,-38,-38,-36,-36,-34,-30,-30,-26,-22,-18,-14,-8,-4
5015 DATA -38,-38,-36,-36,-32,-30,-25,-22,-18,-14,-10,-4,0,6,10,14,17,24,28,30,32,36,38,38
5016 DATA 38,38,36,36,33,30,25,22,18,14,10,4,0,-6,-10,-14,-17,-24,-28,-30,-32,-36,-38,-38
5020 DATA "30","29","28","27","26","25","24","23","22","21","20","19","18","17","16","15","14","13","12","11","10","09","08","07","06","05","04","03","02","01","00","59","58","57","56","55","54","53","52","51","50","49","48","47","46","45","44","43","42","41","40","39","38","37","36","35","34","33","32","31"
5030 DATA 0,5,10,15,19,24,29,33,37,40,44,46,47,49,49,50,49,49,47,46,44,40,37,33,29,24,19,15,10,5
5031 DATA 0,-5,-10,-15,-19,-24,-29,-33,-37,-40,-44,-46,-47,-49,-49,-50,-49,-49,-47,-46,-44,-40,-37,-33,-29,-24,-19,-15,-10,-5
5040 DATA -50,-49,-49,-47,-46,-44,-40,-37,-33,-29,-24,-19,-15,-10,-5,0,5,10,15,19,24,29,33,37,40,44,46,47,49,49
5041 DATA 50,49,49,47,46,44,40,37,33,29,24,19,15,10,5,0,-5,-10,-15,-19,-24,-29,-33,-37,-40,-44,-46,-47,-49,-49
5500 LET z=0: FOR q=0 TO 6 STEP 2: POKE USR "
ţ"+q,PEEK (15616+(8*(CODE c$(RM)( TO 1)-32))+z)5501 POKE USR "ţ"+q+1,PEEK (15616+(8*(CODE c$(RM)( TO 1)-32))+z): LET z=z+1
5502 NEXT q
5504 FOR q=1 TO 7 STEP 2: POKE USR "ţ"+q-1,PEEK (15616+(8*(CODE c$(RM)( TO 1)-32))+z)
5505 POKE USR "ţ"+q,PEEK (1561
6+(8*(CODE c$(RM)( TO 1)-32))+z): LET z=z+1: NEXT Q5506 LET z=0: FOR q=0 TO 6 STEP 2: POKE USR "ţ"+q+1,PEEK (15616+(8*(CODE c$(RM)(2 TO 2)-32))+z)
5507 POKE USR "ţ"+q,PEEK (15616+(8*(CODE c$(RM)(2 TO 2)-32))+z): LET z=z+1
5508 NEXT q
5510 FOR q=1 TO 7
STEP 2: POKE USR "ţ"+q-1,PEEK (15616+(8*(CODE c$(RM)(2 TO 2)-32))+z)5515 POKE USR "ţ"+q,PEEK (15616+(8*(CODE c$(RM)(2 TO 2)-32))+z): LET z=z+1
5520 NEXT q
5530 LET b$="ţ"+"ţ"
5540 LET M$="ţ"+"ţ"
5550 IF QU=1 THEN LET QU=1: RETURN
5590 IF A$(RH1)( TO 1)="0" THEN LET A$(RH1)( TO 1)=" "
5600 IF A$(RH1)( TO 1)="0" THEN LET A$(RH1)( TO 1)=" "
5601 LET z=0: FOR q=0 TO 6 STEP 2: POKE USR "ţ"+q,PEEK (15616+(8*(CODE A$(RH1)( TO 1)-32))+z)
5602 POKE USR "ţ"+q+1,PEEK (15616+(8*(CODE A$(RH1)( TO 1)-32))+z):
LET z=z+15603 NEXT q
5604 FOR q=1 TO 7 STEP 2: POKE USR "ţ"+q-1,PEEK (15616+(8*(CODE A$(RH1)( TO 1)-32))+z)
5605 POKE USR "ţ"+q,PEEK (15616+(8*(CODE A$(RH1)( TO 1)-32))+z): LET z=z+1: NEXT Q
5606 LET z=0: FOR q=0 TO 6 STEP 2: POKE USR "ţ"+q+1,PEEK (15
616+(8*(CODE A$(RH1)(2 TO 2)-32))+z)5607 POKE USR "ţ"+q,PEEK (15616+(8*(CODE A$(RH1)(2 TO 2)-32))+z): LET z=z+1
5608 NEXT q
5610 FOR q=1 TO 7 STEP 2: POKE USR "ţ"+q-1,PEEK (15616+(8*(CODE A$(RH1)(2 TO 2)-32))+z)
5615 POKE USR "ţ"+q,PEEK (15616+(8*(COD
E A$(RH1)(2 TO 2)-32))+z): LET z=z+15620 NEXT Q
5630 LET R$="ţ"+"ţ"
5640 LET H$="ţ"+"ţ"
5650 RETURN
6002 PAPER 2
6005 CLS : PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
6010 PRINT INVERSE 1;AT 1,5;;"Gomb";AT 1,12;"Mutatok mozgatasa"
6020 PRINT AT 3,4;"->";AT 3,12;"Mutatok mozga-";AT 4,13;"tasa jobbra"
6030 PRINT AT 5,4;"<-";AT 5,12;"Mutatok mozga-";AT 6,13;"tasa balra"
6040 PRINT AT 7,4;"ENTER";AT 7,12;"Enter-t,ha jo"
6045 PRINT AT 9,4;"'M'";AT 9,12;"Vissza a menu-hoz"
6050 PRINT AT 11,4;"'S'";AT 11,12;"Segit! (ezen oldal)"
6055 PRINT AT 13,4;"'B'";AT 13,12;"Kilepes,ha eleg";AT 14,12;"az ora jatekbol"
6060 PRINT AT 16,4;"Eloszor mindig";AT 17,4;"a nagymutatot";AT 18,4;"allitsd."
6065 PAUSE 1: PAUSE 150
6070 PRINT FLASH 1;AT 20,6;"Nyomd le az ENTER-t"
6080 PAUSE 0: IF BT=1 THEN LET FL1=1
6098 PAPER 1: CLS : RETURN
6099 LOAD !"szamjegy"SCREEN$ : RETURN
6110 IF i<1 THEN LET I=60
6120 IF I>60 THEN LET I=1
6130 GOSUB 60: RETURN
6150 IF i<1 THEN LET i=i+60
6160 IF i>60 THEN LET i=i-60
6170 GOSUB 60: RETURN
6210 IF J<1 THEN LET J=j+48
6220 IF J>48 THEN LET J=j-48
6225 GOSUB 60
6230 RETURN
7000 REM az orajatek harmadik resze
7010 BORDER 1: INK 7: PAPER 1: CLS
7012 LET mh=1: LET BT=0: LET CO=0: LET TA=23: LET FL1=0
7014 GOTO 7026
7016 IF BT=1 THEN PRINT AT 20,1;" ": RETURN
7020 PRINT AT 19,1;" "
7022 PRINT AT 20,1;" ": RETURN
7031 IF DO=1 THEN GOTO 7070
7032 DIM A$(60,2): DIM A(48): DIM B(48): DIM Q(12): DIM C$(60,2): DIM C(60): DIM D(60)
7033 PRINT FLASH 1;AT 10,7;"Adatokat olvasok!"
7034 FOR I=1 TO 12: READ A$(I): NEXT I
7036 FOR I=1 TO 12: READ Q(I): POKE 62199+I,Q(I): NEXT I
7038 FOR I=1 TO 12: READ Q(I): POKE 62299+I,Q(I): NEXT I
7040 FOR I=1 TO 48: READ A(I): NEXT I
7042 FOR I=1 TO 48: READ B(I): NEXT I
7044 FOR I=1 TO 60: READ C$(I): NEXT I
7046 FOR I=1 TO 60: READ C(I): NEXT I
7048 FOR I=1 TO 60: READ D(I): NEXT I
7050 RESTORE
7052 LET DO=1
7070 CLS : GOSUB 6099
7076 LET I=INT (RND*60)+1: LET J=INT (RND*12)+1
7078 LET rm1=I: LET RM=I: LET RH=4*j+1: LET RH1=J
7080 IF I<9 THEN LET RH=RH-2
7082 IF I>8 AND I<24 THEN LET RH=RH-1
7084 IF I=60 THEN LET RH=RH+2
7086 IF I>38 AND I<60 THEN LET RH=RH+1
7088 IF J <> 1 THEN GOTO 7090: IF I>23 AND I<39 THEN LET RH=1
7090 IF RH>48 THEN LET RH=RH-48
7092 LET RT=J: IF I>31 THEN LET RT=RT+1
7098 PLOT 72,96: DRAW INVERSE 1;c(rm1),d(rm1)
7102 PLOT 72,96: DRAW INVERSE 1;A(rh),B(rh)
7103 LET I=31: LET j=5: GOSUB 7338: GOSUB 7346: LET RM=31: LET RH1=5: GOSUB 5500
7104 IF MH=1 THEN PRINT INK 7; PAPER 2; FLASH 1;AT 3,20;"az
ţrţt "7105 PRINT AT 9,24;"ţ";AT 10,24;"ţ"
7106 PRINT AT 15,20;"Helyes";RI: PRINT AT 17,20;"Rossz ";WR
7107 PLOT 72,96: DRAW INVERSE 1;c(rm1),d(rm1)
7108 PLOT 72,96: DRAW INVERSE 1;A(rh),B(rh)
7110 PRINT INK 7; PAPER 0; INVERSE 1;AT 9,26;B$( TO 1);AT 10,26;B$(2 TO 2);AT 9,27;M$( TO 1);AT 10,27;M$(2 TO 2);AT 9,21;R$( TO 1);AT 10,21;R$(2 TO 2);AT 9,22;H$( TO 1);AT 10,22;H$(2 TO 2)
7116 IF FL1=1 THEN LET FL1=0: GOSUB 7236
7118 IF BT=1 THEN LET CO=CO+6
7124 IF INKEY$="B" OR INKEY$="b" THEN LET BT=1: GOSUB 7236
7126 IF CO>5 AND CO<7 THEN BEEP .1,0
7128 IF BT=1 THEN PRINT AT 20,TAB;" "
7130 IF BT=1 THEN LET CO=CO+1: IF CO>10 THEN LET CO=0: LET TA=TA-1: BEEP .1,10
7132 IF TA<9 THEN GOTO 7238
7138 IF INKEY$="5" THEN LET j=J+1: GOSUB 7336: GOTO 7104
7140 IF INKEY$="8" THEN LET J=J-1: GOSUB 7336: GOTO 7104
7142 IF INKEY$="S" OR INKEY$="s" THEN GOSUB 7306: GOSUB 6099: GOTO 7096
7144 IF INKEY$=CHR$ (13) THEN GOTO 7148
7145 IF INKEY$="M" OR INKEY$="m" THEN CLS : GOTO 550
7146 GOTO 7122
7148 IF J=RT THEN GOSUB 1500: GOTO 7152
7150 GOSUB 1600: PRINT AT 4,22;" ": GOTO 7104
7154 LET ta=23: LET MH=0
7156 PLOT 72,96: DRAW INVERSE 1;C(RM1),D(RM1)
7158 PLOT 72,96: DRAW INVERSE 1;A(rh),B(rh)
7160 IF BT=1 THEN GOSUB 7236
7162 PRINT AT 3,21;" ": IF MH=0 THEN PRINT INK 7; PAPER 2; FLASH 1;AT 3,21;"percet "
7165 PRINT AT 9,24;"ţ";AT 10,24;"ţ"
7166 PRINT INK 7; PAPER 0; INVERSE 1;AT 9,26;B$( TO 1);AT 10,26;B$(2 TO 2);AT 9,27;M$( TO 1);AT 10,27;M$(2 TO 2);AT 9,21;R$( TO 1);AT 10,21;R$(2 TO 2);AT 9,22;H$( TO 1);AT 10,22;H$(2 TO 2)
7168 IF FL1=1 THEN LET FL1=0: GOSUB 7236
7170 PRINT AT 17,26;WR;AT 15,26;RI
7174 IF BT=1 THEN LET co=co+1
7176 IF BT=1 THEN IF CO>10 THEN LET CO=0: LET TA=TA-1: BEEP .1,10
7178 IF BT=1 THEN PRINT AT 20,TA;" "
7180 IF TA<9 THEN GOTO 7238
7182 IF INKEY$="5" THEN LET I=I+1: GOSUB 7344: GOTO 7162
7183 IF INKEY$="%" THEN LET I=I+10: GOSUB 7344: GOTO 7162
7184 IF CO>5 AND CO<7 THEN BEEP .1,0
7185 IF INKEY$="(" THEN LET I=I-10: GOSUB 7344: GOTO 7162
7186 IF INKEY$="8" THEN LET I=I-1: GOSUB 7344: GOTO 7162
7187 IF INKEY$="M" OR INKEY$="m" THEN CLS : GOTO 550
7188 IF INKEY$="S" OR INKEY$="s" THEN GOSUB 7306: GOSUB 6099: GOTO 7152
7190 IF INKEY$=CHR$ (13) THEN GOTO 7194
7192 GOTO 7174
7194 IF I=RM1 THEN GOTO 7226
7196 GOSUB 1600: GOTO 7156
7230 IF RI+WR+1=10 THEN PRINT INVERSE 1;AT 18,11;"Szuper!": PAUSE 1: PAUSE 150: INK 7: PAPER 1: GOTO 7256
7232
ţ"7C": PRINT INK 5; FLASH 1;AT 19,3;"Ez igen,jţl vţlaszoltţl!";AT 20,5;"mţg ";10-(wr+ri);" feladatod van."7234 LET CO=0: LET BT=0: LET RI=RI+1: LET r(n-1)=r(n-1)+1: LET MH=1: LET TA=23: PAUSE 1: PAUSE 200: INK 7: PAPER 1: CLS : GOSUB 6099: GOTO 7074
7236 IF BT=1 THEN PRINT INVERSE 1;AT 20,9;"Ez itt a vege": FOR Z=23 TO TA STEP -1: PRINT AT 20,Z;" ": NEXT Z: RETURN
7240 PAPER 7: INK 2: CLS
7242 LET W$="Lejart az idod!"
7244 FOR I=0 TO 10: PRINT AT I,4;W$: BEEP .01,30-I: PAUSE 10: NEXT I
7246 FOR I=0 TO 20: PRINT AT I,4;" ": IF I<10 THEN PRINT AT I+10,4;W$
7248 BEEP .01,20-I: PAUSE 5: NEXT I
7249 IF RI+WR+1=10 THEN INK 7: LET wr=wr+1: PAPER 1: GOTO 7256
7250 INK 7: PAPER 1
7252 CLS : PRINT FLASH 1;AT 10,10;"ismeteld...": PAUSE 1: PAUSE 100: PRINT AT 10,10;" ": GOSUB 6099
7254 LET MH=1: LET FL1=0: LET BT=0: LET WR=WR+1: LET TA=23: LET CO=0: GOTO 7074
7258 CLS : PRINT AT 10,4;"10 feladat vegetert,";AT 11,4;"probald megegyszer"
7260 LET w(n-1)=wr: LET r(n-1)=ri: LET wr=0: LET ri=0: PAUSE 1: PAUSE 250: CLS : GOTO 30
7262 GOSUB 7292
7264 LET T$=M$+" "+H$
7266 LET CH=INT (31-LEN T$)/2
7268 RETURN
7270 STOP
7307 PAPER 2
7308 CLS : PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
7310 PRINT INVERSE 1;AT 1,5;;"Gomb";AT 1,12;"Szamok mozgatasa"
7312 PRINT AT 3,4;"->";AT 3,12;"Felfele";AT 4,17 ;"novekszik"
7314 PRINT AT 5,4;"<-";AT 5,12;"Lefele";AT 6,17;"fogy"
7316 PRINT AT 7,4;"ENTER";AT 7,12;"Entert,ha jo"
7317 PRINT AT 9,4;"'M'";AT 9,12;"Vissza a menu-hoz"
7318 PRINT AT 11,4;"'H'";AT 11,12;"Segit! (ezen oldal)"
7320 PRINT AT 13,4;"'B'";AT 13,12;"Ha eleg volt,";AT 14,12;"akkor kilep"
7322 PRINT AT 16,4;"Eloszor mindig";AT 17,4;"az orat kell";AT 18,4;"allitani."
7324 PAUSE 1: PAUSE 150
7326 PRINT FLASH 1;AT 20,3;"Nyomd az ENTER-t"
7328 PAUSE 0: IF BT=1 THEN LET FL1=1
7332 PAPER 1: CLS
7334 GOSUB 6099: RETURN
7336 BEEP .1,30: GOTO 7346
7338 IF i<1 THEN LET I=i+60
7340 IF I>60 THEN LET I=I-60
7341 LET RM=I: LET QU=1: GOSUB 5500
7342 RETURN
7344 BEEP .1,30: GOTO 7338
6210 IF J<1 THEN LET J=12
6220 IF J>12 THEN LET J=1
6230 RETURN
7346 IF J<1 THEN LET J=12
7348 IF J>12 THEN LET J=1
7349 LET RH1=J: GOSUB 5600
7350 RETURN
7999 REM v
ţgsţ ţrtţkelţs8000 CLS : FOR u=1 TO n-1
8021 PRINT INK 6;n$(1): PRINT
8031 PRINT "jo valasz.";r(u)
8041 PRINT "rosszak...";w(u)
8050 NEXT u
8055 play"7C"
8060 RETURN
ÖTÖDÖLŐ, VAGYIS ÖT EGY SORBAN MEMÓRIA JÁTÉK
Leírás: A gomoku egy változata, öt korongot kell egy sorban elhelyezni, ez lehet függőlegesen, vízszintesen, vagy ferdén is, és akinek ez először ez sikerül, az győz.

1 REM - LIST "?? LIST ?1t????????????????????????????????????????USR LIST LIST LIST LIST LIST ?????? LIST USR USR USR LIST ????????USR USR LIST ?????????USR USR LIST ????????USR USR USR LIST ??????? LIST USR LIST LIST LIST ???????????USR ?????????????????????????????
5 CLEAR
7 BORDER 0: PAPER 0: INK 6: CLS
10 FOR p=72 TO 79: POKE 23681,p: LPRINT INK 6;" NYITRAI o t o d o l o JATEK ": BEEP .05,p/10: NEXT p
15 PAUSE 200
20 RESTORE 500
30 FOR i=0 TO 7
40 READ j: POKE USR "a"+i,j
50 NEXT i
60 LET maquin=23950: LET tabla=23769: LET dato=23760: LET borra=23917: POKE 23658,8
70 LET n=0: POKE dato+1,0
80 PAPER 4: BORDER 4: INK 0: CLS
90 PRINT " 0 1 2 3 4 5 6 7 8 9"
100 FOR i=1 TO 10
110 PRINT AT 2*i,0;CHR$ (64+i)
120 NEXT i
130 FOR i=0 TO 144 STEP 16
140 PLOT 20,11+i: DRAW 144,0
150 PLOT 20+i,11: DRAW 0,144
160 NEXT i
165 INK 1: OVER 1: FOR i=1 TO 146 STEP 16: PLOT 21,11+i: DRAW 144,0: PLOT 20+i,11: DRAW 0,144: NEXT i: OVER 0: INK 2
170 PRINT PAPER 7; INK 2; PAPER 2; INK 7;AT 0,24;"utudulü";AT 1,25;"j1/2tuk"
180 PRINT PAPER 2; INK 7;AT 3,22;"(c)Ny.L.2000"
190 PRINT INK 7;AT 17,22;"÷"; INK 7;" jatekos"
195 PRINT INK 1;AT 18,22;"Lepesek:";n
200 PRINT AT 19,22;"ö spectrum"
210 RANDOMIZE USR borra
240 PRINT 0; PAPER 7; INK 1;"ki KEZDI a jatekot (j/s)?"
250 IF INKEY$="" THEN GO TO 250
260 IF INKEY$="S" THEN GO SUB 1000: GO TO 380
270 BEEP .1,25
280 INPUT " Lupused ? ";d$
285 IF LEN d$<>2 THEN GO TO 280
290 LET i=CODE d$(1)-64: LET j=CODE d$(2)-47
300 IF i<1 OR i>10 OR j<1 OR j>10 THEN GO TO 280
310 LET k=i*12+j: IF PEEK (tabla+k)<>0 THEN GO TO 280
320 PRINT INK 7;AT 2*i,2*j;"÷"
321 PAUSE 25: PRINT INK 0;AT 2*i,2*j;"÷": PAUSE 25
322 PRINT INK 7;AT 2*i,2*j;"÷": LET n=n+1
325 PRINT INK 1;AT 18,22;"Lepesek:";n
330 POKE dato,k: POKE (tabla+k),192
340 IF n<2 THEN GO SUB 1000: GO TO 380
350 RANDOMIZE USR maquin: LET n=n+1
355 PRINT INK 1;AT 18,22;"Lepesek:";n
360 IF PEEK (dato+1)=192 THEN LET d$=" TE gyoztel! ": GO TO 450
365 IF PEEK dato=0 THEN LET d$=" dontetlen! ": GO TO 450
370 IF n>99 THEN LET d$="NINCS gyoztes!": GO TO 450
380 LET k=PEEK dato: LET i=INT (k/12)
390 LET j=k-12*i
400 PRINT INK 2;AT 2*i,2*j;"ö"
403 PAUSE 25: PRINT INK 6;AT 2*i,2*j;"ö": PAUSE 25
405 PRINT INK 2;AT 2*i,2*j;"ö"
410 IF PEEK (dato+1)<>240 THEN GO TO 270
420 LET d$=" gyoztem!"
450 PRINT PAPER 6; FLASH 1;AT 13,22;d$
460 PRINT 0;"Nyomd az ENTER-t az uj jatekhoz!"
470 BEEP .7,30: PAUSE 0: GO TO 70
500 DATA 24,60,126,231,231,126,60,24
501 REM DATA 255,195,129,129,129,129,195,255
1000 RESTORE 1100
1010 FOR i=1 TO INT (RND*12)+1
1020 READ j
1030 NEXT i
1040 IF PEEK (tabla+j)<>0 THEN GO TO 1010
1050 POKE dato,j: POKE (tabla+j),240: LET n=n+1
1060 RETURN
1100 DATA 55,91,88,65,66,67,76,77,78,79,89,90
2222 SAVE "GOMOKU"LINE 10
OTHELLO ÚJ VÁLTOZATA, AVAGY KI NEVET A VÉGÉN
Leírás: a játék egyszerű, közre kell fogni az ellenfél korongjait, és akkor az a saját színünkre fordul, aki a 32-nél több korongot szerez, az a győztes.

1 REM NyitraiSOFT 2004
REM irta:jatekgyaros
Othello uj valtozata
5 GO SUB VAL "8400": DIM e$(VAL "8",VAL "8"): DIM x(VAL "30"): DIM y(VAL "30"): LET t=ze: DIM t(VAL "8",VAL "8"): LET a1=ze: LET a2=ze: LET i=un: LET j1=dx: LET j2=dx
20 LET z$=" ": LET E$(4,4)="ö"
25 LET e$(VAL "5",VAL "4")="÷": LET e$(VAL "4",VAL "5")="÷"
35 LET f=ze: LET o=ze: DIM r(VAL "9",VAL "9"): LET E$(VAL "5",VAL "5")="ö"
61 PAPER VAL "6": BORDER VAL "6": INK VAL "2": CLS : DRAW ze,VAL "175": DRAW VAL "255",ze: DRAW ze,VAL "-175": DRAW VAL "-255",ze: PRINT AT un,un;"Valaszd ki a lehetosegeket 1-4";AT VAL "3",VAL "10";"1- Kezdo";AT VAL "5",VAL "10";"2- Kozepes ";AT VAL "7",VAL "10";"3- Mester"
70 PRINT AT VAL "9",un;"4- a korongokat a tablan, ";AT VAL "10",un;"lehetoseged van azokat barhol,";AT VAL "11",un;"tetszesed szerint felallitani."
80 LET Z$=INKEY$: IF CHR$ CODE z$(un TO )<"1" OR CHR$ CODE z$(un TO )>"4" THEN GO TO VAL "80"
90 LET h=VAL z$: IF z$="4" THEN GO TO VAL "6000"
95 IF INKEY$<>"" THEN GO TO VAL "95"
100 PRINT AT VAL "13",VAL "3";"Melyik szinnel akarsz lenni:";AT VAL "15",VAL "10";"1- Feher : ö";AT VAL "17",VAL "10";"2- Fekete : ÷";AT VAL "19",VAL "4";"A fekete kezdi a jatekot."
110 LET Z$=INKEY$: IF CHR$ CODE z$(un TO )<"1" OR CHR$ CODE z$(un TO )>"2" THEN GO TO VAL "110"
155 BORDER un: INK VAL "7": PAPER un: BRIGHT un: IF Z$="2" THEN LET A$="÷": LET b$="ö"
165 IF Z$="1" THEN LET A$="ö": LET b$="÷"
205 CLS : GO SUB VAL "9500": GO SUB VAL "9000": PRINT AT VAL "8",VAL "8";"ö";AT VAL "8",VAL "10";"÷";AT VAL "10",VAL "8";"÷";AT VAL "10",VAL "10";"ö": GO TO VAL "1000": GO SUB VAL "9500": GO SUB VAL "9000": FOR j=un TO VAL "8": FOR n=un TO VAL "8"
520 PRINT AT J*dx,N*dx; INK VAL "6"*(e$(j,n)="ö");E$(J,N): NEXT n: NEXT j
1084 IF A$="ö" THEN GO TO VAL "1183"
1095 LET F=F+un: PRINT AT VAL "15",VAL "22";"Lepes: ";AT VAL "15",VAL "30"-LEN STR$ f; PAPER VAL "6"; INK ze;f
1101 PRINT AT VAL "20",ze;" Allitsd be a kurzort,es nyomd le: 0 ;P=passzolok ;K=kilepek": GO SUB VAL "9800": PRINT AT VAL "20",ze; PAPER un;h$( TO VAL "38");AT VAL "21",VAL "6";" Jo lepes volt !!! "; PAPER un;h$( TO VAL "7"): LET x=x/VAL "2": LET y=y/VAL "2": LET q$=a$: GO SUB VAL "3600"
1183 LET Q$=B$
1184 LET F=F+un: PRINT AT VAL "15",VAL "22";"Lepes: ";AT VAL "15",VAL "30"-LEN STR$ f; PAPER VAL "6"; INK ze;f: GO SUB VAL "4000": GO SUB VAL "3600": GO TO VAL "1090"
3010 LET z=ze: DIM r(VAL "8",VAL "8"): FOR j=un TO VAL "8": FOR n=un TO VAL "8": IF e$(j,n)<>q$ THEN GO TO VAL "3500"
3100 LET a=un: LET b=ze: GO SUB VAL "3200": LET a=-un: GO SUB VAL "3200": LET a=ze: LET b=un: GO SUB VAL "3200": LET b=-un: GO SUB VAL "3200": LET a=un: LET b=un: GO SUB VAL "3200": LET b=-un: GO SUB VAL "3200": LET a=-un: LET b=un: GO SUB VAL "3200": LET b=-un: GO SUB VAL "3200": GO TO VAL "3500"
3220 IF J+A>=VAL "9" OR N+B>=VAL "9" OR J+A<=ze OR N+B<=ze THEN RETURN
3230 IF E$(J+A,N+B)=Q$ OR E$(J+A,N+B)=" " THEN RETURN
3270 FOR l=un TO VAL "8": IF J+(A*L)=VAL "9" OR J+(A*L)=ze OR N+(B*L)=VAL "9" OR N+(B*L)=ze THEN RETURN
3280 IF E$(J+(A*L),N+(B*L))=Q$ THEN RETURN
3290 IF E$(J+(A*L),N+(B*L))<>" " THEN GO TO VAL "3350"
3310 LET z=z+un: LET X(Z)=J+(A*L): LET y(z)=n+(b*l): LET r(x(z),y(z))=r(x(z),y(z))+l-un: RETURN
3350 NEXT L
3500 NEXT N
3545 NEXT j: RETURN
3605 LET o=ze: LET d=ze: LET a=un: LET b=ze: GO SUB VAL "3700": LET a=-un: GO SUB VAL "3700": LET b=un: LET a=ze: GO SUB VAL "3700": LET b=-un: GO SUB VAL "3700": LET a=-un: GO SUB VAL "3700": LET b=un: GO SUB VAL "3700": LET a=un: GO SUB VAL "3700": LET b=-un: GO SUB VAL "3700": GO SUB VAL "3843": RETURN
3700 IF X+A=ze OR X+A=VAL "9" OR Y+B=ze OR Y+B=VAL "9" THEN RETURN
3710 IF E$(X+A,Y+B)=" " OR E$(X+A,Y+B)=Q$ THEN RETURN
3760 FOR j=dx TO VAL "8": IF X+(A*J)=ze OR X+(A*J)=VAL "9" OR Y+(B*J)=ze OR Y+(B*J)=VAL "9" THEN RETURN
3765 IF E$(X+(A*J),Y+(B*J))=" " THEN RETURN
3770 IF E$(X+(A*J),Y+(B*J))=Q$ THEN GO TO VAL "3800"
3790 NEXT J
3800 FOR n=ze TO j-un: LET d=d+un: LET e$(x+(n*a),y+(n*b))=q$: PRINT AT (X+(N*A))*dx,(Y+(N*B))*dx; INK VAL "6"*(e$(x+(n*a),y+(n*b))="ö");E$(X+(N*A),Y+(N*B)): NEXT n: LET d=d-un: RETURN
3843 IF D<=ze THEN LET O=un: GO TO VAL "1100"
3851 IF Q$="ö" THEN LET J1=J1+D+un: LET j2=j2-d
3853 IF Q$="÷" THEN LET J2=J2+D+un: LET j1=j1-d
3855 PRINT AT VAL "11",VAL "22";"00";AT VAL "11",VAL "25"-LEN STR$ j1;J1;AT VAL "11",VAL "27";"00";AT VAL "11",VAL "30"-LEN STR$ j2;STR$ j2: IF j1+j2>=VAL "64" THEN GO TO VAL "4500"
3870 IF J1=ze OR J2=ze THEN GO TO VAL "4500"
3890 RETURN
4021 GO SUB VAL "3000": GO TO VAL "4600"
4505 IF Z$="1" AND J1>J2 OR Z$="2" AND J2>J1 THEN GO SUB VAL "9970": PRINT AT VAL "20",ze;" elismertem a gyozelmed !!!"; PAPER un;h$( TO VAL "33")
4510 IF J1=J2 THEN GO SUB VAL "9970": PRINT AT VAL "20",VAL "10";"dontetlen!!"; PAPER un;h$( TO VAL "44")
4520 IF Z$="2" AND J1>J2 OR Z$="1" AND J1<J2 THEN GO SUB VAL "9970": PRINT AT VAL "20",VAL "8";"en gyoztem !!!"; PAPER un;h$( TO VAL "42")
4530 BEEP VAL ".1",VAL "10": INPUT " Uj jatekot kezdesz (I/N)? ";z$: IF CHR$ CODE z$(un TO )="i" OR CHR$ CODE z$(un TO )="I" THEN GO TO VAL "5"
4540 STOP
5312 IF Z=ze THEN BEEP VAL ".1",VAL "10": PRINT AT VAL "21",VAL "3";"Nem tudok lepni,passzolok... ": FOR v=un TO VAL "300": NEXT v: GO TO VAL "1090"
5320 IF H=un THEN GO TO VAL "8600"
5331 IF H=VAL "2" THEN GO TO VAL "8000"
5332 IF (J1+J2)>=VAL "55" AND Q$="ö" AND J1>J2 THEN GO TO VAL "8600"
5334 IF (J1+J2)>=VAL "55" AND Q$="÷" AND J2>J1 THEN GO TO VAL "8600"
5340 IF E$(un,un)=" " THEN GO TO VAL "5400"
5345 LET T(VAL "2",VAL "2")=VAL "4": LET t(VAL "2",un)=VAL "3": LET t(un,VAL "2")=VAL "3"
5400 IF E$(un,VAL "8")=" " THEN GO TO VAL "5500"
5410 LET T(un,VAL "7")=VAL "3": LET t(VAL "2",VAL "7")=VAL "4": LET t(VAL "2",VAL "8")=VAL "3"
5500 IF E$(VAL "8",un)=" " THEN GO TO VAL "5600"
5510 LET T(VAL "7",un)=VAL "3": LET t(VAL "7",VAL "2")=VAL "4": LET t(VAL "8",VAL "2")=VAL "3":
5600 IF E$(VAL "8",VAL "8")=" " THEN GO TO VAL "5700"
5610 LET T(VAL "8",VAL "7")=VAL "3": LET t(VAL "7",VAL "7")=VAL "4": LET t(VAL "7",VAL "8")=VAL "3"
5900 GO TO VAL "8000"
6000 INK VAL "7": PAPER un: BORDER un: CLS : GO SUB VAL "9500": GO SUB VAL "9000": PRINT AT VAL "20",un;"Allitsd be a kurzort, majd: ";AT VAL "21",un;"1=fekete; 2=feher; 0=vege ": LET x=dx: LET y=dx: LET e$(VAL "4",VAL "4")=" ": LET e$(VAL "4",VAL "5")=" ": LET e$(VAL "5",VAL "4")=" ": LET e$(VAL "5",VAL "5")=" "
6100 PRINT AT x,y;" ": IF INKEY$="1" THEN LET E$(X/dx,Y/dx)="÷"
6106 IF INKEY$="2" THEN LET E$(X/dx,Y/dx)="ö"
6110 PRINT AT X,Y; INK ze+VAL "6"*(E$(X/dx,Y/dx)="ö");e$(x/dx,y/dx): LET y=y+dx*(INKEY$="8"): LET x=x-dx*(INKEY$="7"): LET x=x+dx*(INKEY$="6"): LET y=y-dx*(INKEY$="5"): IF INKEY$="0" THEN GO TO VAL "6210"
6150 GO SUB VAL "9960": GO TO VAL "6100"
6210 LET H=VAL "3": LET s=un
6220 PRINT AT VAL "20",ze;" Valaszd ki a szinedet : 1=fekete; 2=feher ": INPUT o$: IF CHR$ CODE o$(un TO )<>"1" AND CHR$ CODE o$(un TO )<>"2" THEN GO TO 6220
6240 PRINT AT VAL "20",ze;" Akarod a jatekot kezdeni (i/n)?"; PAPER un;h$( TO VAL "32"): INPUT l$: PRINT AT VAL "20",ze; PAPER un;h$( TO 32)
6310 IF O$="2" THEN LET A$="ö"
6315 IF O$="2" THEN LET B$="÷"
6320 IF O$="1" THEN LET B$="ö"
6325 IF O$="1" THEN LET A$="÷"
6326 GO SUB VAL "6400": GO TO VAL "1100"+VAL "83"*(l$="n" OR l$="N")
6400 LET J1=ze: LET j2=ze: FOR j=un TO VAL "8": FOR n=un TO VAL "8": LET j1=j1+(e$(j,n)="ö"): LET j2=j2+(e$(j,n)="÷"): NEXT n: NEXT j: RETURN
8003 FOR P=VAL "7" TO un STEP -un: FOR j=VAL "10" TO un STEP -un: FOR n=un TO z: LET q=t(x(n),y(n)): IF r(x(n),y(n))=j AND (m(x(n),y(n))+q)=p THEN GO TO VAL "8300"
8060 NEXT N: NEXT j: NEXT p
8300 LET E$(X(N),Y(N))=Q$: LET x=x(n): LET y=y(n): PRINT AT x(n)*dx,y(n)*dx;"o": BEEP VAL ".2",VAL "20": PAUSE VAL "100": PRINT AT VAL "20",ze; PAPER un;h$( TO VAL "9"); INK ze;r(x,y);"-t levettem "; PAPER VAL "6"; PAPER un;h$( TO VAL "36"): RETURN
8350 RETURN
8500 BORDER un: PAPER un: INK VAL "7": BRIGHT ze: CLS : PRINT INK VAL "2";" iiiaiieiaeiiiae i aiie"
8502 PRINT INK VAL "7";" iiiaiieiieiieae i aiie"
8503 PRINT INK VAL "7";" i i ae iieiaâae i aeae"
8504 PRINT INK VAL "4";" iii ae iaeiiiaieiiaiie"''
8520 INK 6: PRINT BRIGHT un;"Az OTHELLO vagy REVERSI vagy ma-gyarul SZINREFORDITOS regi logi-kai,strategia jatekban,kezdetbenket-ket korong van a 8x8-as pa-lyan."
8550 INK 4: PRINT BRIGHT un'"Lepesek ugy tehetok,hogy az el-lenfel korongjait kozrefogjuk,vizszintesen fuggolegesen,vagy ferden,es sajat szinre forditjuk"''"Sikeres jatekot kivan a szerzo: jatekgyaros"
8555 PRINT AT VAL "20",ze;"(c) NyitraiSOFT 2004 "
8560 PRINT 1;AT un,VAL "8";"Nyomd az <ENTER>-t": IF INKEY$="" THEN GO TO VAL "8560"
8595 CLS : RETURN
8605 FOR J=VAL "15" TO un STEP -un: FOR n=un TO z: IF r(x(n),y(n))=j THEN GO TO VAL "8300"
8630 NEXT N: NEXT j
9000 RETURN
9500 INK VAL "6": PRINT "uýýýýýýýýýýýýýýýýýú uýýýýýýýýýýú": FOR j=un TO VAL "17": PRINT "?";TAB VAL "18";"? ?";TAB VAL "31";"?": NEXT j: PRINT "uýýýýýýýýýýýýýýýýýü uýýýýýýýýýýü": INK VAL "7": FOR j=ze TO VAL "8": PLOT VAL "12",VAL "164"-j*VAL "16"
9680 DRAW VAL "128",ze: PLOT VAL "12"+j*VAL "16",VAL "164": DRAW ze,-VAL "128": NEXT j: PRINT AT ze-1,VAL "8";"2004";AT ze,6;"OTHELLO";AT ze+18,4;"jatekgyaros"
9690 PRINT AT VAL "6",VAL "22";" ALLAS: ";AT VAL "9",VAL "23";"ö ÷": PLOT VAL "212",VAL "108": GO SUB VAL "9700": PLOT VAL "172",VAL "108": GO SUB VAL "9700": RETURN
9700 DRAW VAL "32",ze: DRAW ze,VAL "-40": DRAW VAL "-32",ze: DRAW ze,VAL "40": RETURN
9800 LET X=dx: LET y=dx
9810 IF O=un THEN PRINT AT VAL "3",VAL "23";"HIBAS!": BEEP un,VAL "-10"
9820 IF INKEY$="6" THEN LET X=X+dx
9824 IF INKEY$="K" OR INKEY$="k" THEN GO TO VAL "5"
9830 IF INKEY$="7" THEN LET X=X-dx
9835 IF INKEY$="5" THEN LET Y=Y-dx
9840 IF INKEY$="8" THEN LET Y=Y+dx
9850 IF INKEY$="0" THEN PRINT AT VAL "3",VAL "23";" ": GO TO VAL "9860"
9852 IF INKEY$="P" OR INKEY$="p" THEN PRINT AT VAL "20",ze; PAPER un;h$: GO TO VAL "1184"
9855 GO SUB VAL "9960": PRINT AT x,y;" ";AT x,y; INK VAL "6"*(e$(x/dx,y/dx)="ö"); PAPER un;e$(x/dx,y/dx): GO TO VAL "9820"
9860 IF e$(x/dx,y/dx)<>" " THEN LET o=un: GO TO VAL "9810"
9861 RETURN
9960 IF x<dx THEN LET x=dx
9961 IF x>VAL "16" THEN LET x=VAL "16"
9962 IF y>VAL "16" THEN LET y=VAL "16"
9963 IF y<dx THEN LET y=dx
9964 RETURN
9970 FOR v=VAL "-20" TO VAL "40" STEP dx: BEEP VAL ".02",v: NEXT v: RETURN
RÉPA ÉS TOJÁS ÜGYESSÉGI JÁTÉK
Leírás: A felső szinten lévő répákat és tojásokat kell levarázsolnunk az alsó szintre, a kapuk nyitásával-zárásával, pontszámot csak az ép tojásokért kapunk...

1 REM REPA ES TOJAS NyitraiSOFT 2001
5 CLEAR 39999
10 BORDER 1: PAPER 1: INK 6: BRIGHT 1: CLS
50 GOTO 4000
60 DIM S(7): DIM I(7): DIM G(7): DIM E(7): DIM K(7)
90 REM
100 FOR X=19 TO 243 STEP 16
120 PLOT X,11: DRAW 0,160: BEEP .003,30
130 NEXT X
150 FOR X=11 TO 172 STEP 16
160 PLOT OVER 1;19,X: DRAW OVER 1;224,0: BEEP .003,40
170 NEXT X
175 LET Z=10
180 FOR X=21 TO 25: PLOT X,Z: DRAW 222,0: LET Z=Z-1: NEXT X
185 LET Z=12
190 FOR X=244 TO 248: PLOT X,Z: DRAW 0,157: LET Z=Z-1: NEXT X
195 LET N$="0123456789"
200 FOR X=2 TO 18 STEP 2: PRINT INK INT (RND*5)+2; BRIGHT 1;AT X,1;N$(11-X/2): BEEP .01,X: NEXT X
250 LET SCO=0
290 REM
300 FOR X=0 TO 100
320 LET A=20+(INT (RND*14)*16)
330 LET B=27+(INT (RND*8)*16)
340 PLOT OVER 1;A,B: DRAW OVER 1;14,0: BEEP .003,25
350 NEXT X
360 REM
380 FOR X=1 TO 7: LET S(X)=1: LET G(X)=1: NEXT X
390 FOR X=1 TO 7: LET I(X)=(X*4-1): LET E(X)=(X*4+1): NEXT X
395 REM
400 LET S$="0000000": LET G$="0000000"
420 REM
450 FOR X=1 TO 7: PRINT AT S(X),I(X); BRIGHT 1; INK 7;"ţ": PRINT AT G(X),E(X); BRIGHT 1; INK 2;"ţ": NEXT X
500 LET A=19: LET B=27: LET C=1: LET P=0
540 REM
550 INPUT ; INK 2;"IRD A SOR-SZAMOT,ES ENTER-t!";" "; LINE C$
560 IF CODE C$<49 OR CODE C$>57 OR LEN C$>1 THEN PRINT 0;TAB 7; FLASH 1; INK 7; PAPER 2;" CSAK 1-9 !": FOR X=0 TO 10: BEEP .01,40-X: BEEP .01,30+X: NEXT X: PAUSE 30: GOTO 550
570 LET C=VAL C$: LET C=11+(C*16)
575 REM
580 INVERSE 1: PLOT 0,B-1: DRAW 2,0: DRAW 0,-2: DRAW 3,3: DRAW -3,3: DRAW 0,-2: DRAW -2,0: DRAW 0,-2: INVERSE 0
610 LET B=C
620 PLOT 0,B-1: DRAW 2,0: DRAW 0,-2: DRAW 3,3: DRAW -3,3: DRAW 0,-2: DRAW -2,0: DRAW 0,-2
625 REM
630 PLOT OVER 1;A,B: DRAW OVER 1;224,0
900 REM
1000 FOR X=1 TO 7
1020 IF POINT (I(X)*8,(22-S(X))*8-13)=0 THEN PRINT AT S(X),I(X);" ": LET S(X)=S(X)+2: PRINT AT S(X),I(X); BRIGHT 1; INK 7;"ţ": BEEP .005,22-S(X): GOTO 1020
1025
IF S(X)=19 THEN LET S$(X)="1": PRINT AT S(X),I(X); BRIGHT 1; INK 7;"ţ": IF K(X)=0 THEN FOR Z=0 TO 5: BEEP .003,20-Z: NEXT Z: LET K(X)=11030 NEXT X
1035 REM
1040 IF S$="1111111" THEN GOTO 3000
1045 REM
1050 FOR X=1 TO 7
1060 IF POINT (E(X)*8,(22-G(X
))*8-13)=0 THEN PRINT AT G(X),E(X);" ": LET G(X)=G(X)+2: PRINT AT G(X),E(X); BRIGHT 1; INK 2;"ţ": BEEP .005,10-G(X): GOTO 10601065 IF G(X)=19 THEN LET G$(X)="1"
1070 NEXT X
1075 REM
1080 IF G$="1111111" THEN GOTO 2500
2000 GOTO 550
2400 REM
2500 FOR X=1 TO 7: LET P=P+(22-S(X)-3)/2*100: NEXT X: LET SCO=SCO+P
2505 REM
2510 LET D$=STR$ SCO
2515 FOR X=1 TO LEN D$
2520 FOR Z=0 TO 9
2523 IF D$(X)=STR$ Z THEN LET D$(X)=N$(Z+1)
2524 NEXT Z: NEXT X
2530 REM
2540 LET B$="PONTSZAMOD: "+D$+" * "
2545 REM
2550 LET A$=B$+B$+B$
2600 GOTO 3050
3000 LET D$=STR$ SCO: LET B$="PONTSZAM: "
3005 FOR X=1 TO LEN D$
3010 FOR Z=0 TO 9: BEEP .01,Z: BEEP .01,Z+3
3020 IF D$(X)=CHR$ Z THEN LET D$(X)=N$(Z+1)
3025 NEXT Z: NEXT X
3027 REM
3030 LET B$="REPA ES TOJAS * JATEK VEGE*PONT: "+D$+" * "
3040 LET A$=B$+B$+B$
3050 LET Z=0: LET CONT=0
3060 LET Z=Z+1: IF Z>2/3*LEN A$+1 THEN LET Z=1: LET CONT=CONT+1
3065 REM
3070 IF CONT=2 AND G$="1111111" THEN GOTO 3300
3080 IF CONT=1 AND S$="1111111" THEN GOTO 4000
3090 REM
3100 PRINT AT 10,12; PAPER Z/15; INK 9;A$(Z TO Z+8)
3110 PAUSE 3
3150 GOTO 3060
3200 REM
3300 FOR X=1 TO 7: PRINT AT S(X),I(X);" ": PRINT AT G(X),E(X);" ": NEXT X
3320 PRINT AT 10,12;"
": PLOT 84,91: DRAW 94,0: PRINT AT 10,12; OVER 1;"ţ ţ ţ ţ ţ"3330 INVERSE 1: PLOT 0,B-1: DRAW 2,0: DRAW 0,-2: DRAW 3,3: DRAW -3,3: DRAW 0,-2: DRAW -2,0: DRAW 0,-2: INVERSE 0
3333 REM
3340 IF POINT (20,155)=0 THEN PLOT OVER 1;19,155: DRAW OVER 1;224,0
3345 DIM K(7)
3350 GOTO 300
4000 REM
4010 BRIGHT 1: CLS
4100 PRINT AT 0,0;"ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ"
4110 PRINT "ţ ţ"
4120 PRINT "ţ ţţ ţ ţ ţ"
4130 PRINT "ţ ţţţţ ţţţţţţţţţ ţ"
4
140 PRINT "ţ ţţţţţţ ţţţţ ţ ţţ ţ"4150 PRINT "ţ ţţţţţţ ţţţţ ţţţţţţţţţ ţ"
4160 PRINT "ţ ţţţţţţ ţţţţţţţţţţţţţţţţ ţ"
4170 PRINT "ţ ţţţţţţ ţţţţ ţţţţţţţ ţ"
4180 PRINT "ţ ţţţţţţţţţţţţţţţţţţţţ ţ"
4190 PRINT "ţ ţţţţţţţţţţţţţţţţţţţţ ţ"
4200 PRINT "ţ ţţţţţţţţţţţţţţţ ţ"
4210 PRINT "ţ ţţţţţţţţţţţţ ţ"
4220 PRINT "ţ ţţţţţţţţţţ ţ"
4230 PRINT "ţ ţţţţţţţ ţ"
4240 PRINT "ţ ţţţţţţţ ţ"
4250 PRINT "ţ ţţţ ţ"
4260 PRINT "ţ TOJAS ES REPA ţţ"
4270 PRINT "ţ ţţţ"
4271 REM
4275 PLOT 94,51: DRAW 115,0: DRAW 0,-15: DRAW -115,0: DRAW 0,15
4280 PRINT "ţ ţţţţ"
4290 PRINT "ţ ţţţţţ"
4295 PRINT "ţ ţţţţţţ"
4300 PRINT " ţţNYITRAI L.1999'ţţţţţţţţţţţţţţ"
4320 REM
4350 RANDOMIZE USR 40000
4390 FOR F=1 TO 22 STEP 2: PRINT AT F,0; INK 7;"ţ": NEXT F: PAUSE 70
4400 PRINT 0;TAB 2; INK 5;"EGY GOMBNYOMAS..."
4500 IF INKEY$="" THEN GOTO 4500
4600 CLS : GOTO 60
4900 REM
5000 FOR X=0 TO 7: READ E: POKE USR "A"+X,E: NEXT X
5010 DATA 24,44,44,94,94,94,94,60
5020 FOR X=0 TO 7: READ E1: POKE USR "B"+X,E1: NEXT X
5030 DATA 8,11,12,54,57,120,96,128
5040 FOR X=0 TO 7: READ E2: POKE USR "C"+X,E2: NEXT X
5050 DATA 16,16,16,16,16,16,16,16
5055 FOR X=0 TO 7: READ E3: POKE USR "D"+X,E3: NEXT X
5056 DATA 0,0,0,0,104,61,127,255
5057 FOR X=0 TO 7: READ E4: POKE USR "E"+X,E4: NEXT X
5058 DATA 1,3,7,15,31,63,127,255
5059 REM
5060 FOR X=0 TO 47: READ E5: POKE USR "F"+X,E5: NEXT X
5070 DATA 192,192,252,204,206,254,254,124,112,112,252,112,112,126,126,62,124,224,252,126,14,254,254,252,124,230,226,226,226,226,226,226,124,206,206,252,192,254,254,124,124,206,192,222,206,254,254,124
5090 REM
5100 FOR X=0 TO 79: READ E6: POKE USR "L"+X,E6: NEXT X
5120 DATA 0,60,102,102,102,102,60,0,0,12,60,12,12,12,12,0,0,60,102,6,60,96,126,0,0,60,102,12,6,102,60,0,0,60,108,108,126,12,12,0,0,124,96,124,6,102,60,0,0,60,96,124,102,102,60,0,0,126,102,6,12,12,12,0,0,60,102,60,102,102,60,0,0,60,102,102,62,6,60,0
5190 REM
5200 FOR X=40000 TO 40011: READ Y: POKE X,Y: NEXT X
5230 DATA 33,40,160,17,0,88,1,192,2,237,176,201
6000 RETURN
9999 SAVE "TOJAS" LINE 5: SAVE "tojas"CODE 41000,704: PRINT AT 20,1;" VERIFY ": VERIFY "TOJAS": VERIFY "tojas"CODE : BEEP .1,30
SZÍNES KOCKÁK PÁROSKERESŐ JÁTÉK
Leírás: két azonos színű kockát kell megkeresnünk, négy játékos is játszhat vele, ebből lehet az egyik a Spectrum is.

1 REM NYITRAI 2000'
REM NYITRAI BASICCAL KESZULT
2 REM
3 REM
4 REM SZINES-KOCKAK
MEMORIA JATEK
5 REM
6 REM
7 REM
10 LET T$=" A JATEK MAGYARAZATA: ": LET j=0: INK 2: GOSUB 90
20 LET T$=" --------------------": LET j=1: INK j: GOSUB 90
21 LET T$="A SZINES-KOCKA MEMORIAJATEK,MELY": LET j=3: GOSUB 90
22 LET T$="BEN A JELLEMZO HETSZIN-FEKETE,": LET j=4: GOSUB 90
23 LET T$="KEK,PIROS,LILA,ZOLD,CIANKK SZI-": LET j=5: GOSUB 90
24 LET
T$="NEKNEK KELL A PARJAT MEGTALţLNI,": LET j=6: GOSUB 9025 LET T$="A SAKKTABLA MEZOINEK KOORDINATA ": LET j=7: GOSUB 90
26 LET T$="MEGADASAVAL PL:A1 C2. A SZAMITO-": LET j=8: GOSUB 90
27 LET T$="GEP ALUL KIJELZI,HOGY MILYEN SZE": LET j=9: GOSUB 90
28 LET T$="RENCSEVEL JARTUNK,EGYEZIK,VAGY,": LET j=10: GOSUB 90
29 LET T$="SEM A KIVALASZTOTT POZICIO,MAJD": LET j=11: GOSUB 90
30 LET T$="A KOVETKEZO,VAGY AMI A LEG-": LET j=12: GOSUB 90
31 LET T$="GYAKORIBB, HOGY ELLENFELUL A ": LET j=13: INK 1: GOSUB 90
32 LET T$="SZAMITOGEPET VALASZTJUK,AKKOR": LET j=14: GOSUB 90
33 LET T$="AZ O LEPESE KOVETKEZIK.PERSZE ": LET j=15: GOSUB 90
34 LET T$="NEM ART FIGYELNI,AZ ELLEN-": LET j=16: GOSUB 90
35 LET T$="FEL ROSSZ LEPESEIT KELL FELHASZ-": LET j=17: INK 1: GOSUB 90
36 LET T$="NALNUNK,AMIKOR A MI LEPESUNK ": LET j=18: GOSUB 90
37 LET T$="KOVETKEZIK.AZ EREDMENYT NEVUNK ": LET j=19: GOSUB 90
38 LET T$="MELLETT ADMINISZTRALJA,MINDIG ": LET j=20: GOSUB 90
39 LET T$="LATSZIK A PILLANATNYI ALLAS.": LET j=21: INK 1: GOSUB 90
40 RANDOMIZE USR 3190
41 LET T$="A JATEK ELEJEN LEHET FOKOZATOT ": LET j=21: INK 2: GOSUB 90
42 RANDOMIZE USR 3190
43 LET T$="ALLITANI,1-4-IG,BIZTOSAK LEHE- ": LET j=21: INK 2: GOSUB 90
44 RANDOMIZE USR 3190
45 LET T$="TUNK VERESEGUNKBEN A GEP ELLEN. ": LET j=21: GOSUB 90
50 PRINT INK 2; FLASH 1;AT 21,31;"ţ": PAUSE 200: GOTO 92
89 STOP
90 FOR i=1 TO LEN T$: PRINT AT j,i-1;T$(i);: IF i<LEN T$ THEN PRINT AT j,i; PAPER 2; INK 7;T$(i+1);: BEEP .003,0: NEXT i
91 BEEP .05,40: RETURN
92 INK 0: PAPER 7: BORDER 7: BRIGHT 0: FLASH 0: CLS : POKE 23658,8: LET rts=0
93 REM
94 REM
95 REM SAKKTABLA
96 REM
97 REM
100 LET k$="ţţ": LET l$="ţţ": FOR j=1 TO 20 STEP 4: FOR i=1 TO 20 STEP 4
: PRINT AT j,i;k$;k$;AT j+1,i;l$;l$;AT j+2,i;k$;k$;AT j+3,i;l$;l$: NEXT i: NEXT j: PRINT AT 0,0;" 1 2 3 4 5 6 7 8 9 0 ";AT 21,0;" 1 2 3 4 5 6 7 8 9 0 ": FOR v=2 TO 21 STEP 2: PRINT INK 0; PAPER 6; BRIGHT 1;AT v-1,0;" ";AT v,0;CHR$ (64+v/2);AT v-1,21;" ";AT v,21;CHR$ (64+v/2): NEXT v: PLOT 0,0: DRAW 0,175: DRAW 255,0: DRAW 0,-175: DRAW -255,0110 PLOT 176,0: DRAW 0,175: PLOT 185,165: DRAW 61,0: DRAW 0,-27: DRAW -61,0: DRAW 0,27
120 PRINT 0;AT 1,0; PAPER 4;" HANY JATEKOS JATSZIK? (2-8) "
130 LET a$=INKEY$
140 IF a$="" THEN LET ret=130: GOTO 500
150 IF a$<"2" OR a$>"8" THEN GOTO 130
160 LET n=VAL a$: BEEP .2,10: GOTO 200
170 GOTO 130
200 DIM N$(n,5): DIM N(n)
210 PRINT 0;AT 1,0; PAPER 5;" A ZX SPECTRUM IS JATSZIK? (I/N)"
215 LET v$=INKEY$
220 IF v$="" THEN LET ret=215: GOTO 500
230 IF v$="N" THEN LET sp=0: BEEP .1,0: GOTO 280
235 IF v$="I" THEN LET sp=1: BEEP .1,40: GOTO 250
240 GOTO 215
250 PRINT 0;AT 1,0; PAPER 4;"A JATEK NEHEZSEGI FOKA ? (1-4)"
255 LET v$=INKEY$
260 IF v$="" THEN LET ret=255: GOTO 500
270 IF v$<"1" OR v$>"4" THEN GOTO 255
275 BEEP .1,25: LET n$(n)="SPECT": LET sh=VAL v$
280 PRINT 0;AT 1,0; PAPER 2;" A JATEKOSOK NEVE MAX. 5 BETU! ": PAUSE 200: BEEP .2,-4
290 FOR i=1 TO (n-sp): INPUT " ";(i);". JATEKOS NEVE: "; LINE n$(i): PRINT AT 4+i*2,23;n$(i);AT 4+i*2,29;"00": NEXT i: IF sp=1 THEN PRINT AT 4+i*2,23;n$(n);AT 4+i*2,29;"00"
295 PRINT 0;AT 1,0; PAPER 5;" MOST KIVALASZTOM A SZINEKET. "
300 REM
310 DIM C(10,10): DIM S(10,10): RANDOMIZE
320 FOR k=1 TO 5: FOR l=1 TO 20
330 LET sor=INT (RND*10+1)
340 LET oszl=INT (RND*10+1)
350 LET szin=k
360 IF C(sor,oszl) <> 0 THEN GOTO 330
370 LET C(sor,oszl)=szin
380 BEEP .05,l: NEXT l: NEXT k
390 PRINT 0;AT 1,0,,: BEEP .01,-10: BEEP .02,0: BEEP .05,10
400 REM
410 FOR j=1 TO n
415 BEEP .1,20: PAUSE 2: BEEP .1,20: PAUSE 2: BEEP .1,15: PRINT 0; PAPER 4; BRIGHT 1; INK 0; PAPER 6;AT 1,0;" ";n$(j);" TIPPJET KEREM (pl. A1 C7)"
418 IF (j=n) AND (sp=1) THEN FOR l=1 TO 5: BEEP .05,6-l: BEEP .05,l: NEXT l: GOTO 2000
420 LET t$=INKEY$
422 IF t$="" THEN LET ret=420: GOTO 500
424 IF t$<"A" OR t$>"J" THEN GOTO 420
425 LET x1=CODE t$-64: PRINT 0;AT 1,26; PAPER 7; INK 1; BRIGHT 1;t$
428 BEEP .02,20
430 LET t$=INKEY$
432 IF t$="" THEN LET ret=430: GOTO 500
434 IF t$<"0" OR t$>"9" THEN GOTO 430
435 LET y1=VAL t$: IF y1=0 THEN LET y1=10
436 IF y1<10 THEN PRINT 0;AT 1,27; PAPER 7; INK 1; BRIGHT 1;y1
437 IF y1=10 THEN PRINT 0;AT 1,27; PAPER 7; INK 1; BRIGHT 1;"0"
438 BEEP .02,20: GOSUB 1000
439 PRINT 0; BRIGHT 1; INK 0; PAPER 6;AT 1,0;" ";n$(j);" TIPPJţT KţREM (pl. "; PAPER 4; INK 1;CHR$ (x1+64);y1 AND (y1<10); PAPER 6; INK 0;" C7)": IF y1=10 THEN PRINT 0; PAPER 7; INK 1; BRIGHT 1;AT 1,27;"0"; PAPER 6; INK 0; BRIGHT 1;" C7"
440 LET t$=INKEY$
442 IF t$="" THEN LET ret=440: GOTO 500
444 IF t$<"A" OR t$>"J" THEN GOTO 440
445 LET x2=CODE t$-64: PRINT 0;AT 1,29; PAPER 7; INK 1; BRIGHT 1;t$
448 BEEP .02,20
450 LET t$=INKEY$
452 IF t$="" THEN LET ret=450: GOTO 500
454 IF t$<"0" OR t$>"9" THEN GOTO 450
455 LET y2=VAL t$: IF y2=0 THEN LET y2=10
456 PRINT 0;AT 1,30; PAPER 7; INK 1; BRIGHT 1;t$
458 BEEP .2,20: FOR i=1 TO 200: NEXT i
460 IF (x1=x2) AND (y1=y2) THEN PRINT 0;AT 1,0; PAPER 4;" AZONOS KOORDINITAK! KEREM UJRA!": BEEP 2,-20: PAUSE 150: GOTO 439
470 GOSUB 1058
480 LET vg=0: FOR q=1 TO n: LET vg=vg+N(q): NEXT q: IF vg=50 THEN GOTO 495
490 NEXT j: GOTO 410
495 PRINT 0;AT 1,0; PAPER 5;"A JţTţKNAK VţGE. ţJ JţTţK? (I/N)": BEEP .4,40: BEEP .2,30: BEEP .3,10: B
EEP .4,0: BEEP .5,-10: PAUSE 0: IF INKEY$="I" THEN BEEP .2,0: GOTO 90496 BEEP .1,40: PRINT 0;AT 1,0; PAPER 4;" AKKOR VISZONTLţTţSRA! ": PAUSE 150: BEEP .4,-20: RANDOMIZE USR 0
497 REM
498 REM VEGE
499 REM
500 REM
510 GOSUB 550: PRINT
INK sz;AT 2,24;"S": GOSUB 550: PRINT INK sz;AT 2,25;"Z": GOSUB 550: PRINT INK sz;AT 2,26;"ţ": GOSUB 550: PRINT INK sz;AT 2,27;"N": GOSUB 550: PRINT INK sz;AT 2,28;"E": GOSUB 550: PRINT INK sz;AT 2,29;"S": GOSUB 550: PRINT INK sz;AT 3,24;"K": GOSUB 550: PRINT INK sz;AT 3,25;"O": GOSUB 550: PRINT INK sz;AT 3,26;"C": GOSUB 550: PRINT INK sz;AT 3,27;"K": GOSUB 550: PRINT INK sz;AT 3,28;"ţ": GOSUB 550: PRINT INK sz;AT 3,29;"K"520 IF (rts <> 0) AND (RND>.7) THEN GOTO rts
530 IF rts>0 THEN GOTO 510
540 IF INKEY$="" THEN GOTO 510
549 REM
550 IF (rts=0) AND INKEY$ <> "" THEN PRINT AT 2,24; INK 1;"S"; INK 2;"Z"; INK 3;"ţ"; INK 4;"N"; INK 5;"E"; INK 2;"S";AT 3,24; INK 2;"K"; INK 4;"O"; INK 1;"C"; INK 5;"K"; INK 2 ;"ţ"; INK 1;"K": GOTO ret
560 LET sz=INT (RND*5+1)
570 BEEP .01,sz*6/10
580 RETURN
1000 REM
1010 BEEP .1,40: BEEP .06,30: BEEP .1,22: BEEP .06,10
1020 LET xpos1=x1*2-1
1030 LET ypos1=y1*2-1
1040 LET attr1=ATTR (xpos1,ypos1)
1042 IF (attr1=56) OR (attr1=120) THEN GOTO 1050
1045 PRINT 0;AT 1,0;" EZ MAR VOLT , TIPPELJEN UJRA! ": BEEP .5,-20: PAUSE 200: GOTO 415
1050 PRINT PAPER C(x1,y1);AT xpos1,ypos1;k$;AT xpos1+1,ypos1;l$
1055 RETURN
1058 BEEP .1,40: BEEP .06,30: BEEP .1,22: BEEP .06,10
1060 LET xpos2=x2*2-1
1070 LET ypos2=y2*2-1
1080 LET attr2=ATTR (xpos2,ypos2)
1082 IF (attr2=56) OR (attr2=120) THEN GOTO 1090
1085 PRINT 0;AT 1,0;" EZ MţR VOLT , TIPPELJEN ţJRA! ": BEEP .5,-20: PAUSE 200: GOTO 439
1090 PRINT PAPER C(x2,y2);AT xpos2,ypos2;k$;AT xpos2+1,ypos2;l$
1100 IF C(x1,y1)=
C(x2,y2) THEN PRINT 0;AT 1,0;" ";N$(j);" TALALţTOT ţRT EL! ": LET N(j)=N(j)+1: PRINT AT 4+j*2,30-(N(j)>9);N(j): FOR d=-10 TO 25 STEP 5: FOR f=.06 TO .01 STEP -.01: BEEP f,d: NEXT f: NEXT d: LET S(x1,y1)=C(x1,y1)+.5: LET S(x2,y2)=C(x2,y2)+.51200 IF C(x1,y1) <> C(x2,y2) THEN PRINT 0;AT 1,0;" SAJNOS NINCS TALALAT. ": BEEP .5,-10: BEEP .8,-20: LET S(x1,y1)=C(x1,y1): LET S(x2,y2)=C(x2,y2): PAUSE 200
1210 IF (C(x1,y1) <> C(x2,y2)) AND (attr1=56) THEN PRINT AT xpos1,ypos1;k$;AT xpos1+1,ypos1;l$
1220 IF (C(x1,y1) <> C(x2,y2)) AND (attr1=120) THEN PRINT AT xpos1,ypos1;k$;AT xpos1+1,ypos1;l$
1230 IF (C(x1,y1) <> C(x2,y2)) AND (attr2=56) THEN PRINT AT xpos2,ypos2;k$;AT xpos2+1,ypos2;l$
1240 IF (C(x1,y1) <> C(x2,y2)) AND (attr2=120) THEN PRINT AT xpos2,ypos2;k$;AT xpos2+1,ypos2;l$
1250 RETURN
2000 REM
2010 LET rts=2020: GOTO 500
2020 PRINT AT 2,24; INK 2;"S"; INK 3;"Z"; INK 4;"ţ"; INK 5;"N"; INK 2;"E"; INK 4;"S"
2021 PRINT AT 3,24; INK 1;"K"; INK 4;"O"; INK 2;"C"; INK 3;"K"; INK 5;"ţ"; INK 2;"K
"2030 LET x1=INT (RND*10+1)
2040 LET y1=INT (RND*10+1)
2050 IF S(x1,y1) <> INT (S(x1,y1)) THEN GOTO 2030
2060 IF y1<10 THEN PRINT 0; INK 1; PAPER 7; BRIGHT 1;AT 1,26;CHR$ (x1+64);y1
2070 IF y1=10 THEN PRINT 0; INK 1; PAPER 7; BRIGHT 1;AT 1,26;CHR$ (x1+64);"0"
2075 GOSUB 1000
2080 GOTO 2500
2090 FOR e=1 TO (sh*2-1)
2100 LET x2=INT (RND*10+1)
2110 LET y2=INT (RND*10+1)
2120 IF (x2=x1) AND (y2=y1) THEN GOTO 2100
2125 IF S(x2,y2)=0 THEN GOTO 2100
2130 IF S(x2,y2) <> INT (S(x2,y2)) THEN GOTO 2100
2140 IF (C(x1,y1)=C(x2,y2)) AND (S(x2,y2)=C(x2,y2)) THEN GOTO 2160
2150 BEEP .05,e: NEXT e
2155 GOSUB 2210
2160 IF y2<10 THEN PRINT 0; INK 1; PAPER 7; BRIGHT 1;AT 1,29;CHR$ (x2+64);y2
2170 IF y2=10 THEN PRINT 0; INK 1; PAPER 7; BRIGHT 1;AT 1,29;CHR$ (x2+64);"0"
2180 BEEP .1,40: PAUSE 4: BEEP .1,20: PAUSE 4: BEEP .1,0: PAUSE 3: BEEP .1,30: PAUSE 100
2190 GOSUB 1058
2200 LET rts=0: GOTO 410
2201 REM
2210 LET x2=INT (RND*10+1)
2220 LET y2=INT (RND*10+1)
2230 IF (x2=x1) AND (y2=y1) THEN GOTO 2210
2240 IF S(x2,y2) <> INT (S(x2,y2)) THEN GOTO 2210
2250 RETURN
2499 REM
2500 FOR g=1 TO 10
2510 FOR h=1 TO 10
2520 IF S(h,g)=0 THEN GOTO 2550
2530 IF (h=x1) AND (g=y1) THEN GOTO 2550
2540 IF (S(h,g))=INT (S(h,g)) THEN GOTO 2090
2550 NEXT h
2560 NEXT g
2570 GOTO 2155
9000 REM
9010 REM ITT A VEGE
9020 REM
SZINTEZITÁTOR - ZENEDEMÓ MÁSODIK RÉSZE
Leírás: Hat különálló - ötperces - kis zeneblokkból áll - melyet egy menüből lehet lekérni.

1 REM Ujjgyakorlatok
128K+2 Spectrum szintetizatorara
2 REM NyitraiSOFT 2003'
3 REM irta: a jatekgyaros
REM betukod CODE 48000,768
POKE 23606,160 POKE 23607,186
5 GOTO 860
8 REM AXEL FOLIE Beverly Hills-i zsaru c.filmzene
10 BORDER 1: GOSUB 1015
11 LET f$="T126M14UX2000W0O0N1d&&&O6B&&O0d&O6BO0d&O6B&O0d&d&&&O6B&&&&O0dd&d&O6B&O0d&&&O6B&&O0d&O6BO0d&d&d&O6B&&&&&&&O7ccO4ccO1ccO8X4000N3a":ţf$+f$,"(O5N
3f&4a3f1f3bfef&4C3f1f3DCafCF1f3e1e3cg6f5&&&)"20 ţf$+f$,"(O3N3f&4F3e1E3cCef&F&1&c3CEFd&4D3e1E3cef5F&1&E3Cba)"
30 ţf$+f$,"(O5N3f&4a3f1f3bfef&4C3f1f3DCafCF1f3e1e3cg6f5&&&)","(O3N3f&4F3e1E3cCef&F&1&c3CEFd&4D3e1E3cef5F&1&E3Cba)"
40 ţ"T126(O5N3&CC1CE&E
3EDDDCC1CE&E3DCa&aaa1a3b1b&3b1b3bCCC1b3C1C&C3&)","(O5N3&ff1fg&g3gfffff1fg&g3ffc&ddd1d3e1e&3e1e3efff1e3f1f&f3&)","(O3N5F4F1E5&3CE5F4F1E3&CEF5D3&D5E&F3&F5FF)"50 ţ"O4N9_9_3B3&5&7&","O4N9_9_3E3&5&7&","(O3N3f&4F3e1E3cCe)O3N3f&5&7&"
60 ţf$+f$,"T126(O3N3f&
4F3e1E3cCef&F&1&c3CEFd&4D3e1E3cef5F&1&E3Cba)","O6N9&&&&6F7FC6b5a7f&9&"70 ţf$,"T126O5N3f&4a3f1f3bfef&4C3f1f3DCafCF1f3e1e3cg6f5&&&","O3N3f&4F3e1E3cCef&F&1&c3CEFd&4D3e1E3cef5F&1&E3Cba"
80 ţf$,"T126O5N3f&4a3f1f3bfef&4C3f1f3DCafCF1f3e1e3cg6f5&&&","O3N3f&
4F3e1E3cCef&F&1&c3CEFd&4D3e1E3cef5F&1&f3Ff3g"90 ţf$+f$,"O5N4aeae3ae4aeae1aa3e(4aeae3ae)4AEAE3AE","O3N5a3A&4&1A4&1A5f3F&4&1F4&1F5g3g&4&1g4&1g5e3E&4&1E4&1E5a3A&4&1A4&1AH"
100 ţ"T126M14UX2000W0N1"+f$(48 TO ),"O5N4AEAE1AA3E4AEAE3AE4AEAE3AE","O3N5f3F&4&1F
4&1F5g3g&4&1G4&1G5e3E&4&1E4&1E"110 ţf$+f$,"(((O5N1ECb3ab1C3ECba)))","(O3N4a1_7A5a4f1_7F5f4g1_7G5g4e1_7E5e)"
120 ţ"T126(O5N3&CC1CE&E3EdDDCC1CE&E3DCa&aaa1a3b1b&3b1b3bCCC1b3eC1C&C3&)","(O5N3&ff1fg&g3gfffff1fg&g3ffc&ddd1d3e1e&3e1e3efff1e3f1f&f3&)","(O3N5F
4F1E5&3CE5F4F1E3&CEF5D3&D5E&F3&F5FF)"130 ţ"T126O5N3&aaa1a3b1b&3b1b3bCCC1b3C1C&C3&","O5N3&ddd1d3e1e&3e1e3efff1e3f1f&f3&","O3N5D3&D5E&F3&F5FF"
140 ţf$,"O5N3f&4a3f1f3bfef&4C3f1f3DCafCF1f3e1e3cg6f5&&&","O3N3f&4F3e1E3cCef&F&1&c3CEFd&4D3e1E3cef5F&1&E3Cba"
150 ţ"O5N3f&4a3f1f3bfV14ef&4C3fV13N1f3DCafV12CF1f3eV11N1e3cgV10N6f5&&&"
160 ţ"V10O5N3f&4a3f1f3bfV9ef&4C3fV8N1f3DCafV7CF1f3eV6N1e3cgV5N6f5&&&"
170 RETURN
175 REM Vegyţl el engem
180 BORDER 2: GOSUB 1015
181 LET f$="T200M14UX2000W0O0N3cO8BBO5fO8BO5fO0cO8BO0cO8BBBO5fO8BBB)"
190 LET g$="T200M14UX6000W0O0N5cO5B&&"
200 ţ"T200N3ffdO4b&bO5&e&e&eggabaaae&d&f&f&feefeH","O3b&3&b&e7&5E&a&&3&D7&5C&"
210 ţf$,"3ffdO4b&bO5&e&e&eggabaaae&d&f&f&f5e3&bH","O3b&3&b&e7&5E&a&&3&D7&5E&"
220 ţf$( TO 41)+g$,"6D5D3
C5_9b","O4N3ffd$c7&5Ee3GGABH"230 ţf$( TO 55)+f$( TO 41)+g$,"3C5CC3a5&3&5F3F5FE6D3DD5C8_3b3&eH","O3a&&3&a5D&C&3bb5b7&O4N5Ee3EEFG"
240 ţf$( TO 55)+g$+f$,"5C3D5C3ba5ab3C5ba&DD3D3_9DH","O3aaaaDDCC3FFDb7&O4N5Ee3EEFG"
250 ţf$,"&3aaaaaaa6g3g6f","O3N8f5e9dH
"260 ţf$,"O4N9aGA","O3N3aa5a3&a&a5gg3&g&g5ff3&f&fH"
270 ţf$,"6ef5e9aEF6E6F5EH","O3d8&5aa3&a&a5gg3&g&g5ff3&f&f5d8&"
280 ţf$,"9CGAH","O3N3aa5a3&a&a5gg3&g&g5ff3&f&f"
290 ţf$,"&3B5B3B7AO6N8_9E9a9gH","O3N5d&e&aa3&a&a5gg3&g&g5dd3&d&dee5e3eeee"
300 ţf$
,"9_9G9_9GH","O3N3C&&C&&CCCC&C&&CCg&&g&&gggg&g&&gg"310 ţf$,"9_5C5e7g9_5gf7CH","O3N3C&&C&&CC5C8&3g&&g&&gg5g8&"
320 ţf$,"3C6_7_7D7A3A6_7_9bH","O3b&&3bbbb8&5e&&3eeee8&"
330 ţ"T200M14UX2000W0O0N3c","3ffdO4bV14&bO5&e&V13e&egV12gabaV11aae&V10d&f&V9f&feeV8
feffV7dO4b&bV6O5&e&eV5ggabV4aaaeV3&d&fV2&f&V1feef"340 RETURN
345 REM Tged varlak ujra
350 BORDER 3: GOSUB 1015
351 ţ"T160N7_3g3ggg7_3g3gggg&&gg&&gggfgga$bb","O3N3&&ggg&&&&&ggg&&&&gg&&gg&&gffe$ed$d"
360 ţ"T160O3N3cCeffgO2gO3g)","3C&UX500W3N5&7&9&
3ceg5ag3ecc5&7&3ceg5ag3e5c3&3_7e","U9&&&&&6&7_3$bH"370 ţ"T160O3N3fFa$bbCcC)","UX500W3N3faC5DC3aCC6&5C3aH"
380 ţ"T160O3N3cCeffgO2gO3g)","UX500W3NCCb3a7_3g3&5g3gH","Uaag3f3_7e"
390 ţ"T160O3N3gGbCCDdDfFa$bbCcC(cCeffgO2gO3g)","UX500W3N9_3g5C3a5g3$e3_9_5
c6&3deg","U9_3f"400 ţ"T160O3N3cCeffgO2gO3g)","UX500W3N3&5C3g5CgC3gC7&3&5C3g5CgC3gC7&H","U3&5a3e5aea3ea7_3&5a3e5ae$b3e$b"
410 ţ"T160O3N3fFa$bbCcC)","UX500W3N3&5C3g5CgC3gC7&H","U3&5a3$e5a$ea3$ea"
420 ţ"T160O3(3cCeffgO2gO3g)","UX500W3N3&5C3g5CgC3gC","U
3&5a3e5aea3ea"430 ţ"T160O3N3gGbCCDdDfFa$bbCcC","UX500W3N3&5D3g7D3&6$e5Ca","U3&5b3f7b3&6C5af"
440 ţ"T160O3N3cCeffgO2gO3g)","UX500W3N6a3_7a5&EFFO6X3000W0N3&gabCegaCegaCega&egaCegaCeag7&H","U6e3_7e5&gaa9&3B&&&B&&&9&3$B"
450 ţ"T160O3N3fFa$bbCcC)","UX300
0W0O6N3&aCD$EaCD$EaCD$EaCDH"460 ţ"T160O3N3cCeffgO2gO3g)","UX3000W0O6N3DEgCDDEgCDEg7&H","UO6N9&5&3D"
470 ţ"T160O3N3gGbCCDdDfFa$bbCcC","UX3000W0O6N3&GDEFGDEFGCD5$EG"
480 ţ"UX500W3T160O3N3cO6GGGGO3ccccO5GGGGO3ccccO5ggggO3ccccO5ffffO3ccccO5ddO3ccO5ddO3c
cO5ddO3ccO5ddO3c","UO6N3&AAAA&&&&O5$B$B$B$B&&&&aaaa&&&&aaaa&&&&ff&&ff&&ff&&ff&","UO7N3&CCCC&&&&O6CCCC&&&&O5CCCC&&&&CCCC&&&&aa&&aa&&$a$a&&$a$a&"490 ţ"UX500W3T160O3N3cgffe$ed$dc6&O5N7$b","UO4N3&gfgga$bbC6&O5N7E","UO5N9&7&A"
500 RETURN
505 REM A tenger
kţk mţlye510 BORDER 4: GOSUB 1015
511 ţ"T200O3N3gGbGDGEG))","7&&&&bCb5ab7ge9d7bCb5agH","7&&&&ded5cd7$cc9$c7ded5c$c"
520 ţ"T200O3N3aAbACAEADDE5D3Cba","7Cb9a","7eg9f"
530 ţ"T200O3N3gGbGDGEG))","7bCb5ab7ge9dH","7ded5cd7$cc9"
540 ţ"T200O3N7gfe$e3dD
eDfDdD","5gg3g6d3g5ggC3C7ba","O4N7bb9C7BC"550 ţ"T200O3N3gGbGDGEG))","9_8g5&3&gaabgaabgaabCbage&ge&5g9d3&DG&ED&b&gabEDbgH","9_8$c5&9&&5&&&c9$c&&"
560 ţ"T200O3N3aAbACAEADDE5D3Cba","7Cb9a","7eg9f"
570 ţ"T200O3N3gGbGDGEG))","3&bCCDbCCDG&5E3DbgH"
580 ţ
"T200O3N3gG$bGDGEG))","3a","3$bgag$bgagED&5$b3ageH"590 ţ"T200O3N7gfe$e","3gded&ded&dedgdgC"
600 ţ"T200O3N3dDeDgDbDdDeDfDdDgGbGDGEG5g&O5N7E&&","9ba9_5g5&7A","9dc9_5$c5&O6N7d&&"
610 RETURN
615 REM a jatekos c.film zene
620 BORDER 5: GOSUB 1015
6
21 ţ"UX7000W0T190(O2N5D3DD5a3aa5C3C5g3gCg)","V13O4N5FF&&3A&5&7&5FF&&3A&5&&3FD","V13O4N5aa&&3C&5&&&aa&&3C&5"630 ţ"UX7000W0T190O2DDaaCCgg)","V13O4N5F5_3F3DDDFDDC7D5F5_3F3DDDAGGF7G5F5_3F3DDDFDDCDFFD5F5_3F3DDDAGGF7GH","V13O4N5a5_3a&5&9a5a5_3a3&&&9a5a5_3a3&&
&9a5a5_3a3&&&9a"640 ţ"UX7000W0T190O2N3DDDDDDDD$b$b$b$b$b$b$b$bDDDDDDDD$b$b$b$baaaaDDDDDDDD","V13O4N3&GGFFFFFGG5A6A3DAAGFFFFFGGEE5E3DC&AGFF5F3F","V13O4N3&6a7a$b6$b3&7aa$ba3&6a7a"
650 ţ"UX7000W0T190O2N3$b$b$b$b$b$b$b$bDDDDDDDD6C3C6C3C6C3CCCCC","V13O4N3G
5G3A5A3GF&AGFFFFFAGGF7_9G","V13O4N7$b$b3&6a7aC7_9C"660 ţ"UX7000W0T180O2N3DDDDDDDD$b$b$b$b$b$b$b$bggggggggCCCCCCCCDDDDDDDD$b$b$b$b$b$b$b$b","V13O4N5ADF3A3_8G3GF8G3GFAA5FDCADF3A9G3F","V13O4N7_6a3_8$b5&8b5&8C5&7_6a9$b3F"
670 ţ"UX7000W0T180O2N3ggggggggCCC
CCCCCDDDDDDDD$b$b$b$b$b$b$b$bggggggggCCCCCCCCDDDDDDDD","V13O4N8G3GFAA5F3DD5CDCDCDCDFDFDFDFDFAGAG","V13O4N8b5&8C5&9a$bbCD"680 ţ"UX7000W0T180O2N3$b$b$b$b$b$b$b$bggggggggCCCCCCCC","V13O4AGAGDF7D3&A5A3DDFD","V13O4N9$bg3&E5E"
690 ţ"UX7000W0T180O2N5D3DD5a3a
a5C3C5g3gCg)","V13O4(5FF&&3A&8&5aa&&3C&&&&CCC)","V13O4(5aa&&3C&8&5FF&&3A&&&&AAA)H"700 ţ"UX7000W0T180O2DDaaCCggDDaaCCggDDaaCCgg","V13O4&E6F5GD3D7C3&EEE5F3GF5AA3G6F5&E6F5GD3D7C","V13O4&5_6a9_3a3&7_6a9a5&5_6a9_3a"
710 ţ"UX7000W0T180O2DDaaCCggDDa","V13O4&
G3EDC7G3_7G8A","V13O4&5_6a9_3a8a"720 ţ"UX7000W0T180O2(5aCCggDDa)","V13O4(3&5EECaE6_5D)","V13O4(3&7_5a5&7_6a)"
730 ţ"UX7000W0T180O2N5aCCggDDaaCCggD3DD5a3aa","V13O4N3&5EECaE6_6D5FFFF6F","V13O4N3&7_5a5&7_6_3a5_7_6a6a"
740 ţ"UX7000W0T180O2C3C5g3gCg5D3DD
5a3aa5C3CC5g3gg5D3DD5a3aa5C3CC5g3gg","V13O4N3A&5&3&DFD5FF&&3A&5&3&FFD5FF&&3&A5A3DD","V13O4N3C&5&&&aa&&3C&5&&&aa&&3&C5C"750 ţ"UX7000W0T180O2D3DD5a3aa5C3C5g3gCg","V13O4N3&A&&A&&&A&&&&AAA","V13O4N3&D&&D&&&D&&&&DDD"
760 ţ"V13T180O2(5D3DD5a3aa5C3C5g3gCg)",
"V13O4(3&A&&A&&&A&&&&&&&","V13O4(3&D&&D&&&C&&&&&&&)V12O2N9D"770 RETURN
775 REM Nyitrai-hangulat zene
780 BORDER 6: GOSUB 1015
781 ţ"T200M14UX3000W0O1N5cO8N3BO1Nc5cO8B)","9&&5f3af5fCfa7C!!3FECbCa9_5f!!3EDbabg9_5e!!3Cbgfge9_5c!!O4N3FECbCa9_5f!!(5f3F
f5fF)","O2N9&&5f3af5fCfa7C!!(3bBfFbBfF)!!(aAeEaAeE)!!(fFcCfFcC)!!(bBfFbBfF)!!O3N9_9fH"790 ţ"T200M14UX3000W0O1N5cO8N3BO1Nc5cO8B)","9&&3FFDCagfgaCDF7F!!3EDCbgfefgbCD7E!!3CCagedcdegaC7C!!O4N3FFDCagfgaCDF7f(5f3Ff5fF)","O2N9&&(3bBfFbBfF)!!(aAeEaAeE)!!(fFcCfF
cC)!!(bBfFbBfF)!!O3N9_9FH"800 ţ"T200M14UX3000W0O1N5cO8N3BO1Nc5cO8B)","9&&3FECbCa9_5f!!3EDbabg9_5e!!3Cbgfge9_5c!!O4N3FECbCa9_5f!!(5f3Ff5fF)","O2N9&&(3bBfFbBfF)!!(aAeEaAeE)!!(fFcCfFcC)!!(bBfFbBfF)!!O3N9_9fH"
810 ţ"T200M14UX3000W0O1N7cO8B)","9&&F5FEFE9C5
CbCb7a7_9f","O3N9&&5bbbbbbbbCCCCCCCCFFFFFFFFH"820 ţ"T200M14UX3000W0O1N7cO8B)","9&&F5FEFE9C5CbCb7a7_9f","O3N9&&5bbbbbbbbCCCCCCCCFFFFFFFF9&&H"
830 ţ"T200M14UX3000W0O1N5cO8N3BO1Nc5cO8BO1N5cO8N1BBBBO1N5cO8B)","9&&(O6N3FCaO5FCfO4Ca3_5_7f!!O6N3EbgO5EbgeO4bg
3_5_7e!!O6N3CO5GECgecO4ge3_5_7c)!!O5N3FCafcO4afcO3a3_5_7f!!(O4N5f3Ff5fF)","9&&O2((3bBfFbBfF)!!(aAeEaAeE)!!(fFcCfFcC))!!(bBfFbBfF)9_9fH"840 ţ"T200M14UX3000W0O1N5cO8N3BO1Nc5cO8B)","9&&3FECbCa9_5f!!3EDbabg9_5e!!3Cbgfge9_5c!!O4N3FECbCa9_5f!!(5f3Ff5fF)","O2N
9&&(3bBfFbBfF)!!(aAeEaAeE)!!(fFcCfFcC)!!(bBfFbBfF)!!O3N9_9fH"850 ţ"M14T200UX2000W0O6N1ccccO4ccccO2ccccO0ccccX6000O8N7a": RETURN
855 REM a program fomenuje
860 FOR n=0 TO (25*31/9)+4: PRINT PAPER RND*7; INK 9;"ţţţţţţ ";: BEEP .0015,15: NEXT n
861 PRINT ; PAPER RND*5; INK 9;"..."
862 BORDER 0: PAPER 0: INK 4: BRIGHT 0
863 FOR i=1 TO 11
864 PRINT PAPER 0;AT 4+i,5;" ": NEXT i
865 PRINT INK 2;AT 6,6;"Nyitrai-SOFT"; INK 6;AT 8,10;"bemutatja"; INK 5;AT 10,10;"ZENE-demo"; INK 4;AT 12,10;"programjat"; INK 2;AT 14,6;"nyomj egy gombot!"
866 RESTORE 860: DIM a$(6,16): FOR f=1 TO 6: READ a$(f): NEXT f: DATA " AxelF-filmzene"," Vegyel el engem "," Teged varlak.."," A tenger melye","Jatekos-filmzene","Nyitrai hangulat"
868 PAUSE 0
869 BORDER 0: PAPER 0: INK 4: BRIGHT 0: CLS
870 FOR f=0 TO 5 STEP 2: PLOT 10-f,164+f: DRAW 0,-96-(f*2): DRAW 164+(f*2),0: DRAW 0,96+(f*2): DRAW -164-(f*2),0: NEXT f
875 REM ez itt a vurtlitzer
880 INK 0: GOSUB 1020: PRINT AT 1,24; INK 4;"ţ""$%"'AT 2,2
4;":&"; PAPER 0;"'("; PAPER 0;")"'AT 3,24;";"; PAPER 6;"*"; PAPER 0;"+,"; PAPER 6;"-";AT 4,24; PAPER 0;";"; PAPER 6;"."; PAPER 0;"/0"; PAPER 6;"1";AT 5,24; PAPER 0;";"; PAPER 6;"2"; PAPER 0;"34"; PAPER 6;"5"; PAPER 0'AT 6,24;"="; PAPER 6;"6"; PAPER 0;"78"; PAPER 6;"9"; PAPER 0;"<": GOSUB 1010: FOR f=6 TO 2 STEP -1: PRINT AT 21,0; INK 2; BRIGHT 1;" Nyomd le a kivţlasztott gombot!": FOR g=1 TO 5: NEXT g: NEXT f890 PRINT INK 2;AT 7,24;"128K+2"; INK 3;AT 8,23;"zenegţp!";AT 10,24; INK 7; PAPER 0;"ţţţţţţ ";AT 11,24;"jţtţk ";AT 12,24;"gyţros ";AT 13,24;" ţţ "
900 INVERSE 1: FOR f=1 TO 6: POKE 23606,198: POKE 23607,251: PRINT AT f*2,2; INK f;" ";: POKE 23606,0: POKE 23607,60: PRINT PAPER 7; INK f;f;: POKE 23606,198: POKE 23607,251: PRINT INK f;"!";: POKE 23606,160: POKE 23607,186: PRINT INK f; INVERSE 0; PAPER 0; BRIGHT 1;a$(f);: NEXT f:
903 GOSUB 1030
905 INVERSE 1: FOR f=1 TO 6: POKE 23606,198: POKE 23607,251: PRINT AT 19,4*f; INK f;" ";: POKE 23606,0: POKE 23607,60: PRINT PAPER 7; INK f;f;: POKE 23606,198: POKE 23607,251: PRINT INK f;"!";: POKE 23606,160: POKE 23607,186: PRINT INK f; INVERSE 0; PAPER
7; BRIGHT 1;: BEEP .01,f*10:ţ"7c": NEXT f: INVERSE 0: PRINT 0; INK 5;"ţţţţţţ ţţ - jatekgyaros-zenedemo"910 PRINT AT 15,0; INK INT (RND*8); BRIGHT 1;" Melyik zeneszamot kered ? ";TAB 31;" ": LET z$=INKEY$: IF z$ >= "1" AND z$ <= "6" THEN PRINT INK (VAL z$);AT 15,0; BRIGHT 1;a$(VAL z$);" c.lemezt hallod";: GOTO 930
920 GOTO 910
930 OUT 254,VAL z$-1:ţ"M14V13O4N7cO0UX3000W6N4cX1000N1cX3000N4cX1000N1cV15O8N6B3&O0UX8000W0N9c","O2N7d","O2N7d": FOR f=1 TO 50: NEXT f
940 IF z$="1" THEN GOSUB 10
950 IF z$="2" THEN GOSUB 180
960 IF z$="3" THEN GOSUB 350
970 IF z$="4" THEN GOSUB 510
980 IF z$="5" THEN GOSUB 620
990 IF z$="6" THEN GOSUB 780
1000 OUT 254,7: PRINT AT 17,0; INK 3;"Az elobb ";a$(VAL z$);TAB 31;" c.lemezt hallottad ";: GOTO 910
1010 POKE 23606,160: POKE 23607,186: RETURN
1015
ţ"": RETURN1020 POKE 23606,198: POKE 23607,251: RETURN
1030 ţ"T200M14UX2000W0O0N3c","3ffdO4bV14&bO5&e&V13e&egV12gabaV11aae&V10d&f&V9f&feeV8feffV7dO4b&bV6O5&e&eV5ggabV4aaaeV3&d&fV2&f&V1feef": RETURN
1040 CLEAR : SAVE "szinti" LINE 860: VERIFY "szinti"
1050 REM betukod CODE 48000,768 POKE 23606,160 POKE 23607,186
SZÓKERESŐ JÁTÉK - HÚSZ ELREJTETT KERESZTNEVET
KELL A TÁBLÁN MEGTALÁNI
Leírás: a program alaphelyzetben húsz elrejtett keresztnevet kínál-rejt el, ezeket kell megtalálni, majd a program értékel, és újból megpróbálhatjuk, vagy saját magunk új táblát is készíthetünk. a BEÍRT SZAVAKAT KIMENTHETJÜK, BETÖLTHETJÜK...

1 REM NYITRAI-BASIC
20 REM POKE 23606,150
30 REM POKE 23607,162
40 REM EKEZETES BETţUK
50 REM ţ ţ ţ ţ ţ ţ ţ ţ ţ
60 REM BETUKOD 41852,768
70 REM UDG CODE USR "A",168
80 REM ***********************
90 REM * *
100 REM * SZOREJTO JATEK *
110 REM * *
120 REM * NYITRAI 1999 *
130 REM * *
135 REM * 3 OKTAVOS HANGGAL *
137 REM * *
140 REM ***********************
150 BORDER 1: PAPER 1: INK 6: CLS
160 REM ALAPBEALLITASOK:
170 POKE 23658,8: REM NAGYBETU
180 CLEAR 64999: REM MEMORIATARLAS
190 REM
200 REM ***********************
210 REM * *
220 REM * FOPROGRAM *
230 REM * *
240 REM ***********************
250 GOSUB 750
260 CLS : PRINT AT 1,3;"BETOLTESZ ADATOKAT?": PAUSE 0: LET I$=INKEY$: IF I$="I" THEN GOSUB 2470: GOSUB 2150: GOTO 290
270 ţ"UX6000W7C"
280 GOSUB 1050
290 REM ***********************
300 REM * *
310 REM * ORANULLAZAS *
320 REM * *
330 REM ***********************
340 POKE 23672,0: POKE 23673,0: POKE 23674,0
350 LET PONT=0
360 LET C1=0
370 LET C2=0
390 IF E$(C1+1,C2+1)=" " THEN PRINT PAPER 2; FLASH 1;AT C1,C2;A$(C1+1,C2+1)
400 IF E$(C1+1,C2+1) <> " " THEN PRINT INK 2; FLASH 1;AT C1,C2;e$(C1+1,C2+1)
410 LET i$=INKEY$
420 IF i$="5" AND c2>0 THEN PRINT AT C1,C2;a$(c1+1,c2+1); INK 3;AT c1,c2;e$(C1+1,C2+1) AND e$(c1+1,c2+1) <> " ": LET c2=c2-1: GOTO 380
430 IF i$="6" AND c2<fugg-1 THEN PRINT AT C1,C2;a$(c1+1,c2+1);AT c1,c2; INK 3;e$(C1+1,C2+1) AND e$(c1+1,c2+1) <> " ": LET c1=c1+1: GOTO 380
440 IF i$="7" AND c1>0 THEN PRINT AT C1,C2;a$(c1+1,c2+1);AT c1,c2; INK 3;e$(C1+1,C2+1) AND e$(c1+1,c2+1) <> " ": LET c1=c1-1: GOTO 380
450 IF i$="8" AND c2<vissz-1 THEN PRINT AT C1,C2;a$(c1+1,c2+1);AT c1,c2; INK 3;e$(C1+1,C2+1) AND e$(c1+1,c2+1) <> " ": LET c2=c2+1: GOTO 380
460 IF i$=CHR$ 48 AND e$(C1+1,C2+1)=" " THEN LET e$(c1+1,c2+1)=a$(c1+1,c2+1):
ţ"UX7C": GOTO 380470 IF i$=CHR$ 48 AND e$(C1+1,C2+1) <> " " THEN LET e$(c1+1,c2+1)=" ":ţ"UX7C": GOTO 380
480 IF i$="V" THEN GOTO 540
490 IF i$="M" THEN GOSUB 2840: GOTO 380
500 GOTO 410
510 REM ***********************
520 REM * JATEK VEGE *
530 REM * IDOMERES *
540 REM ***********************
550 LET IDO=(INT ((PEEK 23672+PEEK 23673*256+PEEK 23674*65535)/30))/100
560 IF E$(C1+1,C2+1)=" " THEN PRINT AT C1,C2; INVERSE 1;E$(C1+1,C2+1)
570 IF E$(C1+1,C2+1)=" " THEN PRINT AT C1,C2;A$(C1+1,C2+1)
580 BORDER 2: PAPER 6: INK 2
590 PRINT 0;AT 0,0;" "
600 GOSUB 2160
610 BEEP .1,25: PRINT AT 21,21;"KIMASOLOD?": PAUSE 0: LET I$=INKEY$: IF I$="I" THEN GOSUB 2840
620 CLS
630 REM ***********************
640 REM * EREDMENYHIRDETES *
650 REM ***********************
651 REM
652 REM DUPLA KERET
653 PLAY"UX6000W7C"
655 INK 1: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175: PLOT 2,2: DRAW 251,0: DRAW 0,171: DRAW -251,0: DRAW 0,-171
660 PRINT AT 1,6;"EREDMENYHIRDETES:"
665 PRINT AT 3,3;"A TABLA OSSZES BETUJE:";vissz*fugg;AT 4,2;" 20 NEV BETUINEK SZAMA:133"
670 PRINT AT 6,3;"NEM TALALTAL MEG ";133-pont;" BETUT!"; INK 1;AT 7,8;"A PONTSZAMOD: ";PONT
680 PRINT AT 9,3;"KERESGELTED: ";IDO;" PERCIG!"
690 PRINT INK 1;AT 13,8;"KIMASOLOD? I/N":PLAY"UX2500W001M14$C"
700 PAUSE 0: LET I$=INKEY$: IF I$="I" THEN GOSUB 2840
710 PRINT AT 18,2;" MEGEGYSZER EZEN SZAVAKKAL,";AT 19,3;" VAGY UJ JATEKOT I/U ?"
715 PLAY"T240UX500W7N2CDECDECDECDECDECDECDE9C"
720 PAUSE 0: LET I$=INKEY$: IF I$="U" THEN GOTO 160
730 IF I$="I" THEN CLS : GOSUB 1560: GOTO 290
740 STOP
750 REM ***********************
760 REM * A TABLA *
770 REM ***********************
780 BORDER 1: PAPER 1: INK 6: CLS
790 FOR N=1 TO 704
800 PRINT CHR$ (65+INT (RND*26));
810 BEEP .01,-10: NEXT N
820 BRIGHT 1
830 FOR I=2 TO 19
840 PRINT PAPER 1; INK 2;AT I,2;" "
850 NEXT I
860 RESTORE 930
870 FOR N=1 TO 20: READ C$
880 PRINT AT 0+N,(16-LEN C$/2);
890 INK 2: FOR I=1 TO LEN C$
900 PRINT C$(I);: BEEP .01,-5
910 PAUSE 1: INK 2: NEXT I
920 NEXT N
930 DATA " SZOKERESO JATEK "
940 DATA
"NYITRAI LţSZLţ 2002"950 DATA "===================",""
960 DATA "EBBEN A JţTEKBAN MEG KELL","KERESNED A SZOVEGBEN ELREJ","TETT 20 DARAB,ELOZOLEG A","TARBA BEIRT SZAVAKAT,SZAMI","TOGEP PERCRE PONTOSAN MERI","A SZAVAK MEGTALALASI IDE-","JET."
970 PRINT
980 DATA "A JATEKMEZO VALASZTHATOAN","LEHET 10X10-TţL 22X20-AS","MERETIG,AZ ELREJTETT SZO","VEG LEHETSEGES FORMAI:"
990 DATA "VISSZINTESEN,FUGGOLEGESEN","FERDEN,ES VISSZAFELE IS."
1000 DATA "MOZGAS A SZOVEGBEN EGERREL ","KIJELOLES A ' 0 '-val"
1010 DATA " HA KEZDHETUNK,AKKOR ENTER-t"
1020 BRIGHT 0
1030 PAUSE 0
1040 RETURN
1050 REM ***********************
1060 REM *JţTţKMEZţ ELKţSZţTţSE*
1070 REM ***********************
1080 BORDER 6: PAPER 6
1090 BRIGHT 0: INK 9: CLS
1100 REM ***********************
1110 REM *10X20 ţS 22X20 MţRET *
1120 REM ***********************
1130 CLS
1140 LET h$="FUGGOLEGESVIZSZINTES"
1150 PRINT AT 1,1;"MILYEN MţRETţ LEGYEN A PţLYA?";AT 2,1;"1=10 ţS 20, 2=22 ţS 20"
1160 FOR N=1 TO 2
1170 INPUT (H$(N+((N=2)*9) TO (N=1)*10+(N=2)*20));" "; LINE X$
1180 IF X$="" THEN GOTO 1170
1190 FOR M=1 TO LEN X$
1200 IF X$(M)<"0" OR X$(M)>"9" THEN GOTO 1170
1210 NEXT M
1220 IF N=1 THEN LET fugg=VAL x$: IF fugg<10 OR fugg>22 THEN GOTO 1170
1230 IF N=2 THEN LET vissz=VAL x$: IF vissz<10 OR vissz>20 THEN GOTO 1170
1240 NEXT n
1250 PRINT : PRINT PAPER 5;" ";fugg;" * ";vissz;" NAGYSAGU PALYAT"'"
VţLASZTOTTţL "1260 PRINT
1270 PRINT "MAXIMALIS SZOHOSSZUSAG 1-9 LEHET ";
1280 INPUT "SZAVAK DARABSZAMA? 5-20 "; LINE x$
1290 IF x$="" THEN GOTO 1280
1300 FOR n=1 TO LEN x$
1310 IF x$(n)<"0" OR x$>"9" THEN GOTO 1280
1320 NEXT n
1330 LET darab=VAL x$
1340 IF darab<5 OR darab>20 THEN GOTO 1280
1350 PRINT : PRINT PAPER 5;darab;" SZOT VALASZTOTTAL"
1360 REM ***********************
1370 REM * SZOBEIRAS *
1380 REM ***********************
1390 PRINT
1400 LET w$=""
1410 DIM w(darab,2)
1420 FOR n=1 TO darab
1430 INPUT
(n);".SZţ: "; LINE X$1440 IF LEN x$>fugg AND LEN x$>vissz THEN PRINT 0; FLASH 1;"TUL HOSSZU": PAUSE 300: GOTO 1430
1450 FOR M=1 TO LEN x$
1460 REM IF x$(m)<"A" OR x$(m)>"Z" THEN GOTO 5260
1470 NEXT m
1480 LET w$=w$+x$
1490 LET w(n,2)=LEN w$
1500 LET w(n,1)=LEN w$-LEN x$+1
1510 REM
1520 PRINT PAPER 4;n;". ";w$(w(n,1) TO w(n,2)),
1530 NEXT n
1540 CLS
1550 REM ***********************
1560 REM * A SZţRAKTţR *
1570 REM ***********************
1580 PRINT INK 2;AT 10,3;"KEVEREM A SZAVAKAT !!!"
1590 PLAY"T240O2bb9E2bEb3E9B"
1600 DIM a$(fugg,vissz)
1610 DIM e$(fugg,vissz)
1620 DIM l$(fugg,vissz)
1630 FOR n=1 TO darab
1640 ţ"UX7C"
1650 LET x=1+INT (RND*fugg)
1660 LET y=1+INT (RND*vissz)
1670 LET r1=-1+INT (RND*3)
1680 LET r2=-1+INT (RND*3)
1690 IF r1=0 AND r2=0 THEN GOTO 1670
1700 LET xs=(w(n,2)-w(n,1)+1)*r2+x
1710 IF xs<1 OR xs>fugg THEN GOTO 1650
1720 LET ys=(w(n,2)-w(n,1)+1)*r1+y
1730 IF ys<1 OR ys>vissz THEN GOTO 1650
1740 FOR m=w(n,1) TO w(n,2)
1750 IF a$(xs,ys) <> " " AND a$(xs,ys) <> w$(m) THEN GOTO 1650
1760 LET xs=xs-r2
1770 LET ys=ys-r1
1780 NEXT m
1790 LET xs=(w(n,2)-w(n,1)+1)*r2+x
1800 LET ys=(w(n,2)-w(n,1)+1)*r1+y
1810 FOR m=w(n,1) TO w(n,2)
1820 LET a$(xs,ys)=w$(m)
1830 LET l$(xs,ys)=w$(m)
1840 LET xs=xs-r2
1850 LET ys=ys-r1
1860 NEXT m
1870 NEXT n
1880 FOR n=1 TO fugg
1890 FOR m=1 TO vissz
1900 IF a$(n,m)=" " THEN LET a$(n,m)=CHR$ (65+INT (RND*26))
1910 NEXT m
1920 ţ"UX7C"
1930 NEXT n
1940 REM ***********************
1950 REM * NYOMTATAS *
1960 REM ***********************
1970 BRIGHT 1: INK 7: BORDER 0: PAPER 0: CLS : PRINT INK 2;AT 10,0;"VEGEZTEM,ITT VAN A BETUREJTVENY!"
1980 LET X$="T240O2bb9E2bEb3E9B"
1990 LET Y$="T240O4bb9E2bEb3E9B"
2000 LET Z$="T240O6bb9E2bEb3E9B"
2010 PLAY X$,Y$,Z$: PAUSE 100: CLS
2015 CLS : INK 4: PLOT 162,170: DRAW 90,0: DRAW 0,-165: DRAW -90,0: DRAW 0,165
2020 FOR N=1 TO darab
2030 PRINT INK 2;AT 0+N,22;w$(w(n,1) TO w(n,2)); INK 5;AT 0,22;"NEVLISTA"
2040 NEXT N
2050 FOR n=1 TO fugg
2060 FOR m=1 TO vissz
2070 PRINT AT n-1,m-1; INVERSE (e$(n,m) <> " ");a$(n,m)
2080 NEXT m
2090 NEXT n
2100 PRINT 0;AT 0,0;"KIMASOLOD?": PAUSE 0: LET i$=INKEY$
2110 IF i$="I" THEN GOSUB 2840
2120 PRINT 0;AT 0,0;"ELMENTED AZ ADATOKAT?": PAUSE 0: LET i$=INKEY$: IF i$="I" THEN GOSUB 2610
2130 PRINT 0; PAPER 5; INK 2;AT 0,0;"MOZG
ţS:7-FEL,6-LE,5-BAL,8-JOBB, 0=KIJELOL M=MASOL V=VEGE "2140 RETURN
2150 REM ***********************
2160 REM * ITT A VEGE *
2170 REM ***********************
2180 LET da=10
2190 FOR n=1 TO fugg
2200 PLAY"UX2C"
2210 FOR m=1 TO vissz
2220 BEEP .001,10
2230 IF l$(n,m) <> " " THEN LET da=da+1
2240 IF l$(n,m)=e$(n,m) AND l$(n,m) <> " " THEN LET pont=pont+1
2250 REM Jţ SZţ
2260 IF l$(n,m) <> " " THEN PRINT AT n-1,m-1; INK (e$(n,m)=" "); INVERSE 1;l$(n,m)
2270 REM ROSSZ KIJELOLES
2280 IF l$(n,m)=" " AND e$(n,m) <> " " THEN PRINT AT n-1,m-1; PAPER 5; INK 2;a$(n,m): LET pont=pont-1
2290 PRINT 0;AT 1,0;"PONT: ";pont
2300 NEXT m
2310 NEXT n
2320 RETURN
2330 REM ***********************
2340 REM * SZOLISTA *
2350 REM ***********************
2360 CLS
2370 FOR N=1 TO darab
2380 PRINT " " AND n<10;n;". ";w$(w(n,1) TO w(n,2))
2390 NEXT n
2400 PRINT 0;AT 0,0;"KIMASOLOD?"
2410 LET pont=pont-10
2420 LET i$=INKEY$: IF i$="" THEN GOTO 2420
2430 IF i$="I" THEN GOSUB 2840
2440 CLS
2450 RETURN
2460 REM ***********************
2470 REM * ADATBETOLTES *
2480 REM ***********************
2490 LOAD "szo" DATA h()
2500 LET darab=h(1)
2510 LET fugg=h(2)
2520 LET vissz=h(3)
2530 LOAD "szo" DATA a$()
2540 LOAD "szo" DATA w()
2550 LOAD "szo" DATA l$()
2560 LOAD "szo" DATA h$()
2570 LET w$=h$()
2580 DIM e$(fugg,vissz)
2590 RETURN
2600 REM ***********************
2610 REM * ADATMENTES *
2620 REM ***********************
2630 DIM h(3)
2640 LET h(1)=darab
2650 LET h(2)=fugg
2660 LET h(3)=vissz
2670 DIM h$(LEN w$)
2680 LET h$()=w$
2690 SAVE "szo" DATA h()
2700 SAVE "szo" DATA a$()
2710 SAVE "szo" DATA w()
2720 SAVE "szo" DATA l$()
2730 SAVE "szo" DATA h$()
2740 RETURN
2750 REM ***********************
2760 REM * PROGRAM MENTES *
2770 REM ***********************
2780 CLEAR
2790 SAVE "szo" LINE 160
2800 STOP
2810 REM ***********************
2820 REM *
MţSOLAS NYOMTATORA *2830 REM ***********************
2840 COPY
2850 RETURN
SZOLITER JÁTÉK
Leírás: a játékban lépéseidet úgy teheted, hogy át kell ugorni a szomszédos bábut, és egy üres helyre kell érkezned. A játékban arra kell törekedni, hogy a végén csak egy bábu maradjon a tábla közepén.

1 REM SZOLITER
memoria-jatek otlet-
matematikai jatekok
1960-as kiadasu konyv alapjan
2 REM NyitraiSOFT 2003
3 REM irta: a jatekgyaros
10 BORDER 2: PAPER 4: INK 7: BRIGHT 1
20 CLS
30 PRINT " "; INK 6; PAPER 0;"*** SZOLITER ***": PRINT INK 3;" jatekgyaros 2003"
40 PRINT ''"Ebben a jatekban kezdeskor 44 dbbabud van,es egy ures hely."
50 PRINT '"A jatekban lepeseid ugy teheted,hogy at kell ugorni a szomszedosbabut,es egy ures helyre kell erkezned."
60 PRINT '"A jatekban arra kell torekedni, hogy "; PAPER 0; INK 6;"csak egy babu"; PAPER 4; INK 7;" - keruljon a tabla "; PAPER 0; INK 6;"kozepere,"; PAPER 4; INK 7;" ez a sikeres jatek-befejezes."
70 PRINT INK 3;''" Ha tisztaban vagy a jatekkal, akkor nyomd le az ENTER-t a kezdeshez."
90 IF INKEY$="" THEN GO TO 90
95 BRIGHT 0: BORDER 4: PAPER 4: INK 0: CLS
100 LET h=44
110 DIM a$(81)
120 LET b$=" OOO "
130 LET c$="OOOOOOOOO"
140 FOR n=0 TO 2
150 LET m=9*n
160 LET a$(m+1 TO m+9)=b$
170 LET a$(m+28 TO m+36)=c$
180 LET a$(m+55 TO m+63)=b$
190 NEXT n
200 LET a$(41)="."
220 CLS
224 PRINT INK 3;AT 0,9;" 123456789 "
225 PRINT INK 1;AT 1,9;"ö1/41/41/41/41/41/41/41/41/4÷"
230 FOR n=1 TO 9
240 LET m=(n-1)*9+1
250 PRINT AT n+1,8; INK 3;n; INK 1;"µ";a$(m TO m+8);"¶"; INK 3;n
260 NEXT n
264 PRINT INK 1;AT 11,9;"o"""""""""u"
265 PRINT INK 3;AT 12,9;" 123456789 "
270 DIM k$(4)
280 DIM s$(32)
310 PRINT AT 16,0;s$
320 PRINT AT 18,3;"Vissz/fugg pozicio? ";s$
330 INPUT e$
340 IF LEN e$<>2 THEN GO TO 430
350 FOR d=1 TO 2
360 IF e$(d)<"1" OR e$(d)>"9" THEN GO TO 430
370 NEXT d
380 LET d=VAL e$(1)-1
390 LET e=VAL e$(2)
400 PRINT AT 16,0;s$
420 GO TO 450
430 PRINT AT 16,12;"Ez most hibas!"
440 GO TO 320
450 LET n=9*d+e
455 LET g=e+9
460 IF a$(n)="O" THEN GO TO 500
470 PRINT AT 16,4; INK 3;"Hibas - a palyan kivul vagy!"
480 GO TO 320
500 LET k$="0000"
505 PRINT AT 15,0;s$;s$;s$;s$
510 IF e>7 THEN GO TO 550
520 IF a$(n+2)<>"." THEN GO TO 550
530 IF a$(n+1)<>"O" THEN GO TO 550
540 LET k$(1)="1"
550 IF d>6 THEN GO TO 590
560 IF a$(n+18)<>"." THEN GO TO 590
570 IF a$(n+9)<>"O" THEN GO TO 590
580 LET k$(2)="1"
590 IF e<3 THEN GO TO 630
600 IF a$(n-2)<>"." THEN GO TO 630
610 IF a$(n-1)<>"O" THEN GO TO 630
620 LET k$(3)="1"
630 IF d<2 THEN GO TO 670
640 IF a$(n-18)<>"." THEN GO TO 670
650 IF a$(n-9)<>"O" THEN GO TO 670
660 LET k$(4)="1"
670 IF k$<>"0000" THEN GO TO 700
680 PRINT AT 16,4; INK 3;"Hibas - szabalytalan!"
690 GO TO 320
700 IF k$="0001" THEN GO TO 850
710 IF k$="0010" THEN GO TO 1000
720 IF k$="0100" THEN GO TO 900
730 IF k$="1000" THEN GO TO 950
740 PRINT AT 16,0;"Merre lepjek ? nyomd 5,6,7,vagy 8-at!"
745 PRINT s$
750 LET f=CODE INKEY$-48
760 IF f<5 OR f>8 THEN GO TO 720
765 PRINT AT 15,0;s$;s$;s$
770 IF f=5 AND k$(3)="1" THEN GO TO 1000
780 IF f=6 AND k$(2)="1" THEN GO TO 900
790 IF f=7 AND k$(4)="1" THEN GO TO 850
800 IF f=8 AND k$(1)="1" THEN GO TO 950
810 PRINT AT 16,4; INK 3;"Hibas - szabalytalan!"
820 GO TO 750
850 LET a$(n-9)="."
860 LET a$(n-18)="O"
870 PRINT AT d+1,g;"."
880 PRINT AT d,g;"O"
890 GO TO 1050
900 LET a$(n+9)="."
910 LET a$(n+18)="O"
920 PRINT AT d+3,g;"."
930 PRINT AT d+4,g;"O"
940 GO TO 1050
950 LET a$(n+1)="."
960 LET a$(n+2)="O"
970 PRINT AT d+2,g+2;"O"
980 PRINT AT d+2,g+1;"."
990 GO TO 1050
1000 LET a$(n-1)="."
1010 LET a$(n-2)="O"
1020 PRINT AT d+2,g-1;"."
1030 PRINT AT d+2,g-2;"O"
1050 PRINT AT d+2,g;"."
1060 LET a$(n)="."
1070 LET h=h-1
1100 FOR d=0 TO 8
1110 FOR e=1 TO 9
1120 LET n=9*d+e
1130 IF a$(n)<>"O" THEN GO TO 1220
1140 IF e>7 THEN GO TO 1160
1150 IF a$(n+1)="O" AND a$(n+2)="." THEN GO TO 310
1160 IF e<3 THEN GO TO 1180
1170 IF a$(n-1)="O" AND a$(n-2)="." THEN GO TO 310
1180 IF d<2 THEN GO TO 1200
1190 IF a$(n-9)="O" AND a$(n-18)="." THEN GO TO 310
1200 IF d>6 THEN GO TO 1220
1210 IF a$(n+9)="O" AND a$(n+18)="." THEN GO TO 310
1220 NEXT e
1230 NEXT d
1250 IF h=1 THEN GO TO 1300
1260 PRINT AT 14,0;s$;s$;s$;s$;s$
1265 PRINT AT 14,6; INK 2;"Nincs tobb lepesed,"
1270 PRINT 'TAB 7;h;" babud maradt..."
1280 IF h<5 THEN PRINT INK 3;" Szep munka volt!"
1290 GO TO 1400
1300 PRINT AT 14,0;s$;s$;s$;s$;s$
1310 PRINT AT 14,0;"Gratulalok - egy babu maradt ..."
1320 IF a$(41)="O" THEN PRINT '"... a palya kozepso reszen!"
1400 PRINT ' INK 1;"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
1410 PRINT "Ha jatszol meg,nyomj egy gombot."
1415 PRINT " Ha vege,nyomd a SPACE-t."
1420 LET i$=INKEY$
1430 IF i$=" " THEN STOP
1440 IF i$="" THEN GO TO 1420
1450 GO TO 100
HARMADIK RÉSZ
BEVEZETŐ
Számítógépes játék - Képes Gábor tollából
Az informatika - bár egyes teoretikusai szerint egyidős az emberiséggel, lévén, hogy az embert emberré tevő munka, kooperáció és kommunikáció története egyben az információ, az adatmozgatás története is - alig hatvanéves tudomány. A modern számítástechnika alapjait a német Konrad Zuse, a magyar származású Neumann János és kortársaik rakták le, s az első digitális elektronikus számítógépek (köztük legfontosabbként az első Neumann-elvű gép, az IAS) a második világháború utáni években kerültek üzembe.
A számítástechnika, mely eleinte a népszámlálás, a hadtudomány (légvédelem, lőelemképzés), a kódfejtés, majd sok évtizedig az ipari vezérlés (innen a kibernetika, irányítástechnika szó) és a magas szintű matematikai-fizikai kutatások szolgálóleánya volt, ezekben az időkben zárt, elit szaktudomány lehetett csak, sőt néhány évig - gyakorlatilag Sztálin haláláig - a világ keleti felén veszélyes polgári elhajlásnak tekintették.
A géppark az egész világon is mindössze pár tucat komputert jelentett, s ez a szám a hatvanas évtized végéig is csak néhány ezerre növekedett, bár ez esetben a "csak" szó kizárólag utólagos okoskodásoknál adekvát.
Bizony, a számítástechnika első évtizedei (a mikroprocesszor megjelenéséig) csak utólag tűnhetnek sétagaloppnak, lassú fejlődésnek - egészen elképesztő mérvű fejlődést élt át az a mérnök, aki ilyen gépek között dolgozhatott. Ezeknek a berendezéseknek a tudása a mai otthoni változataik töredéke volt, az áruk viszont akár a milliószorosa is lehetett. Félelmetes belegondolni, hogy egy ilyen készülék egy holdra szállás hibátlan levezénylésére vagy egy atomerőmű folyamatainak koordinálására is alkalmas volt, könyvtárnyi anyagokat tárolt és rendszerezett - tehát legalább minderre mai asztali gépünk is képes lenne, ha akarnánk rá használni.
De a gépek hatékonyságnövekedése és a felhasználás körei cseppet sem egyenes arányban fejlődtek, sőt! valamiféle deficit alakult ki a hányavetin egymásra fércelt fejlesztések nyomán. Lassan szinte csak játszani van kedvünk egy olyan gépen, amely korábban a legtökéletesebb emberi munka eszköze volt. A gépi agy, amely máig sem váltotta be minden ígéretét (itt elsősorban a hibátlan gépi fordítás problematikájára gondolok), tökéletesen visszatükrözi a társadalmat, amelyben működik.
A modernista, haladáselvű és legalább még elemeiben optimista háború utáni társadalom (ez esetben tökéletesen mindegy, hogy keletről vagy nyugatról beszélünk) átlagos számítógépe egy steril környezetben működő szuperagy. A hetvenes-nyolcvanas évek átlagos számítógépe már metszetbe állítja a munka és a játék köreit, de ezek között még világos hierarchia működik. A számítógép az értelmes időtöltés eszköze, amely, mint egy jó tanár, akár képességfejlesztő játékokban is partnerünk lehet.
Posztmodern jelenünkben a játék és a munka körei veszélyesen és játékosan összemosódnak, s így a számítógép világa is képlékeny, örökké változó és veszélyesen ígéretes avagy ígéretesen veszélyes, ahogy tetszik.
Hiszem, hogy nemcsak a hegeli logika szerint, de a folyamatok elemzései is azt mutatják, a posztmodern után egy neomodern következik. Ahogy az építészetben a BAUHAUS-t és a funkcionalizmust felváltó csiricsáré posztmodernt egy a BAUHAUS-t légiességgel és szabadság-igénnyel fellazító (de azt mégiscsak rehabilitáló) neomodern irányzat váltotta fel (ugyanez újabban a költészetben is megfigyelhető), valószínűleg az élet egyéb területein is felmerül majd a világ egyben látása iránti igény, a visszatérés a közös víziókhoz és a haladásba vetett hithez, amelynek nemléte, bár a bölcseleti tudományokat cseppet sem zavarja, hosszabb távon a legfontosabb kutatási irányokat (orvostudomány, űrkutatás, informatika) véglegesen gúzsba köthetné. De ez, a modernitás reneszánsza talán a mai asztali számítógép halála is lesz: teljesen összemosódik majd telefon, Hi-Fi, televízió, teletext, PC és háztartási eszköz, s az elektronika csak ugyanolyan vivőanyag lesz, mint a levegő.
Ily módon a számítógépes szubkultúra is eltűnik.
Történeti aspektusból a számítástechnika legragyogóbb korszaka az 1975 és 93 közötti időszak volt. Példának okáért ebben a korszakban (1982 és 92 között) csak a Commodore-64-ből húszmillió példányt adtak el. A számítógép berobbant a köztudatba, elindított egy nagyszabású és az élet minden területére kiterjedő folyamatot (három dimenziós alkalmazások, villámgyors távkommunikáció, új típusú szövegkezelés, virtuális valóság), amelynek az esetleges agresszió és más negatív jelenségek csak sajnálatos mellékhatásai, s amelynek a számítógép (azaz a memóriából, vezérlőműből, számolóműből álló, tárolt programú berendezés) újra csak szolgálóleánya lesz, mint volt egykor a - lássuk be, sokkal zordabb - lőelemképzésnek.
Hogy a forradalomban katalizáló szerepe van az emberi tényezőnek, az ember-gép kapcsolat metamorfózisainak, az nem kérdés. És hogy az ember-gép kapcsolat legbiztosabb mérőműszere és egyben belső katalizátora a játék, az is tagadhatatlan.
Az első számítógépes játék valószínűleg még maga a hardver volt.
Magyarország első középiskolai számítástechnika tanára, a Piarista Gimnáziumban oktató szerzetes-tanár, Kovács Mihály is a rádióamatőr mozgalom mintájára, klubkeretek között kezdte a gyerekekkel megszerettetni a számítógépet (1959-től!), s ennek a "megszerettetésnek" természetesen a legősibb pedagógiai módszere a játék volt. Készítsünk kibernetikai játékokat, mondta Kovács Mihály a klimatizált termekbe zárt, fegyveres őrökkel védett komputerek korában. Így születtek meg az első magyar számítógépes játékok, a labirintusban szaladgáló műegér, a malmozó- és kártyázógép, majd a programozást játékká tevő Mikromat kibernetikai építőkészlet.
Ezek a játékok építőjátékok voltak, mint az építőkockázás. Más jellegű építőkockákból, így relékből, zseblámpaizzóból, telepből, huzalokból, de mégiscsak modell- jellegű játékszerek voltak készíthetőek. Ezen a tisztán az oktatásnak alárendelt, kontrollált - és ily módon meglehetősen atipikus - játékon nőtt föl a magyar informatikusok első nemzedéke.
A számítógépes játék viszont lényegéből adódóan alapvetően szoftver. De mi is a játék? A két kiváló kibernetikus, Csákány Antal és Dr. Vajda Ferenc a következő - nem túl eredeti, de valóban igen fontos - elvárásokat kéri számon a játékon és azon belül a számítógépes környezetben zajló változatokon is:
"- a játék nem tartozik közvetlenül az életfenntartás folyamataihoz, de mégsem felesleges időtöltés; - a játék szabad cselekvés; a játékosok önállóan, kényszer nélkül vállalkoznak rá; a kötelező játék nem játék; - a játékok legnagyobb részénél a játékosok lelkesedése, megszállottsága a mozgató erő, így a játék többnyire érdek nélkülinek tűnik (ezt még a szerencsejátékok esetében is igaznak tartjuk: az igazi lóverseny-fogadó nagyobb nyereség után sem hagyja abba a játékot); - a játék mindig zárt rendszer, vagyis elhatárolt, térbelileg és szabályait tekintve a valóságtól határozottan elkülönül. A játék szabályai áthághatatlanok, nincsenek 'kiskapuk'; - a játék nem nélkülözi a drámai elemeket: a konfliktushelyzet feszültséget teremt, a feszültség szabályozza a küzdelmet, a küzdelem végén megtaláljuk a feloldást, a sikerélményt.
(A vesztes is mindig talál a maga számára valamilyen magyarázatot.)"
Nos, ez az idézet épp olyan rendes és tiszta, mint a szellemi környezet, amelyben íródott. Tetszőlegesen kiegészíthetjük még (például a rekreáció, a szórakozás, a mintaelsajátítás ok-okozati viszonyaival), s bátran zárójelbe tehetjük szimbolikusan is a szerencsejátékosra vonatkozó bájosan naiv megjegyzést.
Összességében figyelemre méltó, hogy ezen sablon birtokában a szerzőpáros egy sor - főleg logikai és főleg hagyományos, azaz játék-elődökkel, gyökerekkel rendelkező - számítógépes játékot ismertet, némelyiknek, így a Star Trek nevű stratégiai programnak a kultuszát is elemzi vagy legalábbis említi (bajnokságok, divat, stb.).
S mi indítja a szerzők szerint "a számítógéphez hozzáférő szakembereket (sic! kiemelés K. G.) számítógépes- játékok írására? Elsősorban talán az a kísérteties gondolat: hátha sikerül valami olyat létrehozni, ami - legalább egy szűk területen, a játék szabályrendszerében - okosabb, mint az alkotója. A mesterséges intelligencia kutatás célja az, hogy megismerjék és leírják az emberi intelligencia azon jellegzetes vonásait, amelyeket a számítógép utánozni képes. Ezek közé tartoznak a játékok is, itt tehát a játékok elemzése során az emberi gondolkodás alapvető jellegzetességeit kutatják."
Íme, egy alkalmazott elmélet a számítógépes játékról és ez a megközelítés végül két metódusra vezeti vissza az összes játékprogramot: diszkrét helyzetek sorozatából álló játékokra (mint amilyenek a kalandjátékok) és differenciáljátékokra (mint amilyenek az ügyességi, reflexjátékok).
Magam is azon a véleményen vagyok, hogy a mai játékok is e két kristálytiszta matematikai mechanizmus különböző arányú és elrendezésű keverékei. S hiába a hátborzongatóan élethű (és így harci szituációkat modellező vagy bizarr környezetben játszódó programok esetén bizonyos életkor alatt vagy bizonyos lelki sérülékenység esetén veszélyes) képi világ, a filmről vagy a jövőben akár hologramról digitalizált látvány, az emberi beszédet szintetizáló hang: a program, ha meztelen, szinte teljesen ugyanolyan, mint volt a könyv írásakor, a nyolcvanas évek elején.
Ted Friedman, aki nálamnál bátrabb módon már a kilencvenes évek változásait is forradalomnak nevezi, a számítógépes játékot elsősorban az irodalomelmélet nézőpontjából és terminológiai vértezetével vizsgálva, egy játéktörténet, egy kialakulás-történet vázlatát is adja, amelyet én csak néhány aprósággal egészítenék ki, saját szerény hozzászólásaimat zárójelbe is utasítva.
Első lépés: 1962-ban készül el az első játék, a Spacewar. Ezt az asteroids-típusú játékot unatkozó programozók készítik egy 120 ezer dolláros PDP-1 gépen. (A zenélő számítógép is az unalom terméke: a futásellenőrzés könnyítésére és az éjszakai műszakban pihegő kollégák szórakoztatására találta ki az első zenei programot Kovács Győző és néhány munkatársa az M-3 elektroncsöves számítógépen).
A Spacewar már példázza, hogy (miként Csákány és Vajda is utal rá) a játék az ember-gép interakció legjobb modellje, másrészt pedig a gép képességeinek egyik, ha nem a legjobb demonstrálója a nagyközönség előtt. Második lépésként a sakkprogramok és a szöveges kalandjátékok, így az Adventure jelennek meg (a hatvanas években, amikor a nagyszámítógépekkel egyre több fiatal programozó is kapcsolatba léphetett terminálokon keresztül; a jövő számítástechnikáját is sok hatalmas számítóközpont és milliónyi semmi-tudású terminál kapcsolataként képzelték el).
1970-ben jelent meg az első, bár kissé még passzív szimulációs játék, a Life.
A hetvenes évektől jelennek meg a videojátékok, egy külön dimenziója a játéknak és a célszámítógépek alkalmazásának. (Az első Ralph H. Baer Magnavox Odyssey készüléke, még a fekete-fehér televíziókhoz szánt színes előlapokkal. A leghíresebb pedig az Atari cég Pongja.) A hetvenes évektől jelenik meg a személyi számítógép (és annak különböző kategóriái, az eldobhatótól, a zsebgépen át a professzionálisig).
S a Friedman-cikk keletkezésekor, 1992-ben évente négyezer hivatalos és több tízezer szabad terjesztésű (public domain) játék került forgalomba.
A számítógépes játéknak saját szubkultúrája, kritikus gárdája, ikonjai, szakzsargonja, folyóiratai jöttek létre. A játékipar Új Hollywood lett, s miként egy másik szerző, Beregi Tamás megjegyzi, míg korábban, így a Star Trek esetén a filmipar adott ötletet és ösztönzést a játékiparnak, ma ez egyre inkább fordítva történik (s tegyük hozzá: egyelőre a film minőségének, gondolatgazdagságának rovására).
Kialakultak a főbb játéktípusok is, így az akció/arcade, a kaland, a szerepjáték, a szimuláció, a sport, illetve a hagyományos táblás játék.
A szimulációs játékok egy speciális formája, mint a Sim City, egyben különös ideológiai felépítményt is alkot. S megjelenik a számítógépes játék pszichológiai kritikája is: hisz míg a játékok cserélgetése és a róluk való diskurzus tagadhatatlanul új, fiatalos és érdekes közösségeket teremt, maga a játék elidegenít, amennyiben mintaként a Magányos Hős képét adja át a játékosának.
A kilencvenes évek végén megjelenik az online játék, amely földrajzilag egymástól hihetetlenül messze élő embereket hoz egymáshoz közel, de rendszerint úgy, hogy leplezi a játékos igazi személyiségét. Az online szerepjátékokban, amelyek elődje az 1979-es Dungeon Master, a játékos bábuvá válik, s az egeret irányító kéz apró mozdulataival úgymond hatalmas tettekre lehet képes. Ez a felelősségérzetre vagy a brutalitás érzékelésére káros hatással is lehet.
Az ismert amerikai szociológus, Theodore Roszak szerint a hetvenes évek számítógépes mozgalma igazi ellenkultúra volt, a nagy elődök, így a beat nyomán. Kommunisztikus nemzedéki életérzés és egy nagy amerikai álom: a fiatalok helyzeti előnybe kerültek az idősebbekkel szemben, s a szerzői jogokra fittyet hányva cserélgetik programjaikat és közösen minden szabadidejüket egymásnak szentelik. Számítógépes játékkal játszani pompás szórakozás - de mellette a számítógépes játékot megtervezni, megírni egy programozási nyelven (tipikusan BASIC-ben): virtus. S közben néhányan közülük (a "játékosok" közül) - s ez itt már az amerikai álom - szemvillanás alatt milliomossá válnak.
KIRÁLYKISASSZONY KATONÁJA
Előzmény:
A karácsony előtti időszakban rendezgettem felnőtt gyermekeim itt hagyott játékait, hogy melyiket adhatok oda unokáimnak, mikor kezembe akadtak - az akkor 5 éves fiamnak - vett játék-színes-épitőkockái, egy nagy dobozban.
A kockákból, háromszögekből, korongokból, hengerekből, téglákból álló kis színes fajátékokból mindenféle alakzatot össze lehetett állítani és ez adta az ötletet az alábbi játékhoz.
Próbaképpen összeállítottam egy angol testőrhöz hasonló figurát (fekete kabát, piros nadrág, fekete, magas bőrsüveg) és egy kislányt is. (Ő lesz a királykisasszony)
Legyen a történet az, hogy a fiúkatona egy ajándékot visz el a kislánynak - ez itt egy szép torta legyen - és ha sok-sok kaland után sikerül ezt teljesíteni, sok-sok puszit kapva érte.
A különböző alakzatokat az UDG-s -sajátkészítésű grafikával meg lehet valósítani, bár elég sok kellett, a végén 4x20 darabból össze lehetett állítani. Tulajdonképpen ezzel volt a végén a legtöbb munka, és a memóriába négy egymás követő helyre be lehetett pókolni-tölteni, a végén 5870 bájt helyen elfért.
A játék meséje:
Legyen több helyszín:

1. Játékdoboz katonája - mint induló helyszín:

2. Kutyás öreganyó:

3. Óriási csizma-ház:

4. Három mackó konyhája:

5. Jancsi és Juliska kútja:

6. Égigérő paszuly:

7. Három nővér kertje:

8. Királykisasszony Palotája - mint végső helyszín:

A különböző helyszíneken és az indulásnál - mindenhol két-két dolog legyen, ezeket lehet felvenni és magunkkal vinni, vagy letenni, vagy elcserélni más dolgokért.
Legyenek ezek:
1. Pók
2. Seprű
3. Lámpa
4. Edény
5. Pálca
6. Cipő
7. Alma
8. Tej
9. Torta
10. Csont
11. Könyv
12. Ceruza
13. Óra
14. Ásó
Természetesen szerepeltetni kell olyanokat, akik ezeket elfogadják pl.
A seprű jól jön a Vasorrú Bábának, hogy repülni tudjon, a pók ijesztgetésre való, a csodalámpa és az Aladdinnak, a pálca a tündérnek, a cipő és a az edény az öregapónak, a ceruza és könyv a nővéreknek, a csont a kutyás öreganyónak, az ásó a paszulynak, az óra az óriásnak, az alma és a tej a kismackóknak stb.
A játék közben különböző irányokba lehet haladni, így:
1. előre
2. jobbra
3. balra
4. hátra
és szükséges még néhány parancs is: (minimálisra lerövidítve, hogy minél kevesebbet kelljen írni, persze elég az első betű is!!)
1. felvesz
2. kidob
3. csere
A játék különlegessége még, hogy iskolás gyermekeknek készült, és általuk is jól olvashatóan, lassan, különleges betűnként íródik ki minden, és ez a játékosokat is gyakoroltatja, írni és olvasni kell!!! így lehet a kéréseket, parancsokat is beírni. Az irányításnál és a parancsoknál elég az első betűt beírni, hogy azért egyszerűbb-gyorsabb legyen.
A játék során - természetesen véletlenszerűen, csalafinta kérdések következnek, és mint egy társasjátékban - nem lehet továbbmenni, vissza kell térni, helyesen kell válaszolni stb.

A játékban - a cél - természetesen meg kell keresni a tortát, (vagy meg kell jegyezni, hogy hol is volt elhelyezve, ide később vissza lehet térni), és el kell jutni a Királykisasszony Palotájához, és ott át lehet átadni az ajándék tortát. Előfordul, hogy torta nélkül jutunk el a végső célig, de akkor a királykisasszony igen haragos lesz, és visszaparancsol a kiinduló helyre.

Ha sikerrel eljutottunk a Palotába és a torta is nálunk van, akkor sok-sok puszi lesz a jutalmunk és egy kis győzelmi zenét is hallgathatunk.
0 REM Kiralykisasszony Palotaja
NyitraiSOFT jatekgyaros 2004
1 GOSUB 570: GOTO 3
2 INK 2: BEEP .01,15: LET zz=USR 63121: RETURN
3 RANDOMIZE : POKE 23658,0: POKE 23651,250: POKE 23652,250
5 LET xp=65184: LET yp=65185: LET yl=65186: LET xl=65187
6 RESTORE 9
7 FOR x=0 TO 7: READ a: POKE 65368+x,a: NEXT x
8 REM a-RETURN-nyil karakter
9 DATA 28,28,28,28,127,62,28,8
10 LET l=1: DIM g(9): DIM h(2): DIM o(9): DIM k(7,2): DIM f(9)
11 POKE 23609,75
14 LET g(1)=9
15 DIM c(8): FOR x=1 TO 8: LET c(x)=0: NEXT x: LET g(9)=10
16 IF INT (RND*2)+1=2 THEN LET x=INT (RND*8)+1: LET g(3)=x: LET c(x)=1: LET g(2)=9: GOTO 20
17 LET x=INT (RND*8)+1: IF c(x)=1 THEN GOTO 17
18 LET g(2)=x: LET c(x)=1
19 LET g(3)=9
20 LET x=INT (RND*8)+1: IF c(x)=1 THEN GOTO 20
21 LET c(x)=1: LET g(4)=x
22 IF INT (RND*2)+1=2 THEN GOTO 30
23 LET x=INT (RND*8)+1: IF c(x)=1 THEN GOTO 23
24 LET c(x)=1: LET g(5)=x: LET g(6)=9
25 GOTO 40
30 LET x=INT (RND*8)+1: IF c(x)=1 THEN GOTO 30
31 LET c(x)=1: LET g(6)=x: LET g(5)=9
40 LET x=INT (RND*8)+1: IF c(x)=1 THEN GOTO 40
50 IF INT (RND*2)+1=2 THEN GOTO 60
51 LET g(7)=x: LET c(x)=1: LET g(8)=9
52 GOTO 71
60 LET g(8)=x: LET c(x)=1: LET g(7)=9
71 LET g(9)=INT (RND*8)+1: IF c(g(9))=1 THEN GOTO 71
72 DIM c(14): IF g(3)=9 OR g(4)=9 THEN GOTO 76
73 LET x=INT (RND*3)+1
74 IF g(3)=9 THEN LET k(x,1)=g(4): LET c(g(4))=1: GOTO 76
75 LET k(x,1)=g(3): LET c(g(3))=1
76 LET x=INT (RND*4)+1
77 IF g(5)=9 THEN LET k(x,2)=g(6): LET c(g(6))=1: GOTO 80
78 LET k(x,2)=g(5): LET c(g(5))=1
80 FOR x=1 TO 7
81 FOR z=1 TO 2
82 LET y=INT (RND*14)+1: IF k(x,z)>0 THEN GOTO 88
83 IF c(y)=1 THEN GOTO 82
87 LET k(x,z)=y: LET c(y)=1
88 NEXT z
89 NEXT x
90 LET f(1)=1: LET f(9)=9
91 FOR u=2 TO 7
92 LET rnd=INT (RND*7)+1: IF rnd=1 THEN GOTO 92
93 IF f(u)>0 THEN GOTO 92
94 FOR x=2 TO 7
95 IF f(x)=rnd THEN GOTO 92
96 NEXT x
97 LET f(u)=rnd
98 NEXT u
99 REM a felveendo targyak 14 db 2 hosszon
100 DIM p(14,2)
105 RESTORE 125: FOR x=1 TO 14: FOR y=1 TO 2: READ p1
106 LET p(x,y)=p1: NEXT y: NEXT x
125 DATA 233,64,233,112,233,160,233,208,234,0,234,48,234,96,234,144,234,192,234,240,235,32,235,80,235,128,235,176
189 REM ketoldali zold fa
190 BORDER 7: PAPER 7: INK 0: CLS
191 POKE 23675,216: POKE 23676,232
192 PRINT AT 3,0; INK 4;" Á Á"
193 PRINT AT 4,0; INK 4;"ÁÉ ÁÉ"
194 FOR x=5 TO 7: PRINT AT x,0; INK 4;"ÁÉ ÁÉ": NEXT x
195 PRINT AT 8,0; INK 4;"ÁÉ ÁÉ"
196 PRINT AT 9,0; INK 0;" É"; INK 4;"Ő ö"; INK 0;"É"
197 FOR x=10 TO 11: PRINT AT x,0; INK 0;" É É"
198 NEXT x
199 PRINT AT 12,0;" É É"
211 POKE xp,6: POKE yp,1: POKE xl,20: POKE yl,104: POKE 64581,56: LET zz=USR 64560: POKE xl,32: POKE yl,72: POKE xp,0: POKE yp,103: LET zz=USR 64560: LET t$=" ": PRINT AT 21,0;: GOSUB 2
212 IF l=8 AND h(1)=9 THEN GOTO 9950
213 IF l=8 AND h(2)=9 THEN GOTO 9950
218 IF l=8 THEN GOTO 9900
220 GOSUB 8000+(f(l)*100)
235 GOSUB 7600
237 GOTO 7010
255 DIM e(4): FOR x=1 TO 4: LET e(x)=0: NEXT x
260 GOSUB 7500+(l*10)
265 REM a jatek iranyitasa
270 PRINT AT 17,0;: LET T$="Iranyod:": GOSUB 2
280 LET T=8: IF e(1)=1 THEN PRINT AT 17,T;: LET T$="elore,": GOSUB 2: LET T=T+6
290 IF e(2)=1 THEN PRINT AT 17,T;: LET T$="jobb,": GOSUB 2: LET T=T+5
300 IF e(3)=1 THEN PRINT AT 17,T;: LET T$="hatra,": GOSUB 2: LET T=T+6
310 IF e(4)=1 THEN PRINT AT 17,T;: LET T$="bal,": LET t=t+5: GOSUB 2
320 REM a parancsok
330 PRINT AT 19,0;: LET T$="Parancs ? (felvesz,kidob,csere)": GOSUB 2: GOSUB 510
335 LET a$=u$
340 IF a$="kidob" OR a$="k" THEN GOSUB 7605: GOTO 7100
350 IF a$="csere" OR a$="c" THEN GOSUB 7605: GOTO 7200
360 IF a$="felvesz" OR a$="f" THEN GOSUB 7605: GOTO 7300
370 IF a$="e" OR a$="elore" OR a$="j" OR a$="jobb" OR a$="h" OR a$="hatra" OR a$="b" OR a$="bal" THEN GOTO 390
375 IF LEN a$>7 THEN GOTO 211
376 IF a$=" e" OR a$=" j" OR a$=" h" OR a$=" b" THEN GOTO 390
380 GOTO 330
401 IF a$(1 TO 1)="e" THEN LET p=1
402 IF a$(1 TO 1)="j" THEN LET p=2
403 IF a$(1 TO 1)="h" THEN LET p=3
404 IF a$(1 TO 1)="b" THEN LET p=4
405 GOTO 9200+(l*10)
407 IF b=0 THEN GOSUB 7600: PRINT AT 15,0;: LET t$="Ez itt nem a kijarat.": GOSUB 2: GOSUB 5000: GOTO 235
409 IF g(b)=9 THEN LET l=n: GOTO 211
410 IF o(b)=1 THEN GOSUB 7600: GOSUB 9700+(10*g(b)): PAUSE 100: LET l=n: GOTO 211
415 GOSUB 7600: GOSUB 9800+(g(b)*10)
418 GOSUB 510: LET b$=u$
419 IF b$="igen" OR b$="i" THEN GOTO 450
420 IF b$="nem" OR b$="n" THEN GOTO 230
431 GOTO 418
450 IF h(1)=g(b) THEN LET h(1)=0: LET l=n: LET o(b)=1: GOTO 211
451 IF h(2)=g(b) THEN LET h(2)=0: LET l=n: LET o(b)=1: GOTO 211
452 GOSUB 7600
453 REM a talalos kerdesre rossz valasz
454 PRINT AT 15,0;: LET t$="A valaszod rossz,ezert vissza": GOSUB 2: PRINT AT 17,0;: LET t$="kell lepned,nyomd az ENTER-t.": GOSUB 2: GOSUB 5000: GOTO 230
510 LET u$=""
515 LET a$=""
516 LET oszlop=-1
517 IF oszlop=-1 THEN PRINT AT 21,0;: LET t$=".": GOSUB 2: GOTO 525
520 PRINT AT 21,oszlop;: LET t$=a$+".": GOSUB 2
525 LET a$=INKEY$
526 IF a$="" THEN GOTO 525
527 BEEP .05,30
530 LET u=CODE a$
535 IF u=12 OR u=48 THEN GOTO 510
540 IF u=13 THEN RETURN
550 IF u<97 THEN GOTO 525
560 IF u>122 THEN GOTO 525
561 IF LEN u$>20 THEN GOTO 510
565 LET u$=u$+a$: LET oszlop=oszlop+1: GOTO 520
566 REM jatek bevezeto
570 PRINT AT 0,2;: LET t$="A testorkatona kalandjai es": GOSUB 2: PRINT AT 2,4;: LET t$="a kiralykisasszony puszija.": GOSUB 2: PRINT AT 4,0; PAPER 5; INK 1;: LET t$="rajzos kalandjatek iskolasoknak": GOSUB 2: PRINT AT 8,0;: LET t$="egy testor vagy,es egy finom": GOSUB 2: PRINT AT 10,0;: LET t$="tortat ajandekozol a csinos": GOSUB 2: PRINT AT 12,2;: LET t$="es szep kiranylanynak,": GOSUB 2: PRINT AT 14,0;: LET t$="ezert sok-sok puszit kapsz erte.": GOSUB 2: PRINT INK 1;AT 18,0;: LET t$="Sikeres kuldetest kivanok !!!": GOSUB 2
571 PRINT AT 20,7;: LET t$="a jatekgyaros....": GOSUB 2
572 RETURN
4999 REM nyil karakter
5000 POKE 23675,88: POKE 23676,255: PRINT AT 21,31; PAPER 6; FLASH 1;"ö": IF INKEY$="" THEN GOTO 5000
5001 RETURN
6000 PRINT AT 0,0;" ": RETURN
7000 REM a hasznalati targyak
7010 LET q$="Itt ezek vannak: ": GOTO 7030
7011 LET q$=q$+"pok,": RETURN
7012 LET q$=q$+"sepru,": RETURN
7013 LET q$=q$+"lampa,": RETURN
7014 LET q$=q$+"edeny,": RETURN
7015 LET q$=q$+"palca,": RETURN
7016 LET q$=q$+"cipo,": RETURN
7017 LET q$=q$+"alma,": RETURN
7018 LET q$=q$+"tej,": RETURN
7019 LET q$=q$+"torta,": RETURN
7020 LET q$=q$+"csont,": RETURN
7021 LET q$=q$+"konyv,": RETURN
7022 LET q$=q$+"ceruza,": RETURN
7023 LET q$=q$+"aso,": RETURN
7024 LET q$=q$+"ora,": RETURN
7030 IF k(l,1)=0 AND k(l,2)=0 THEN LET q$=q$+" semmi": GOTO 7040
7032 IF k(l,1)>0 THEN GOSUB 7010+(k(l,1))
7033 IF k(l,2)>0 THEN GOSUB 7010+(k(l,2))
7040 PRINT AT 13,0;: LET t$=q$: GOSUB 2
7050 LET q$="Nalad van : "
7060 IF h(1)=0 AND h(2)=0 THEN LET q$=q$+" semmi": GOTO 7070
7062 IF h(1)>0 THEN GOSUB 7010+(h(1))
7064 IF h(2)>0 THEN GOSUB 7010+(h(2))
7070 PRINT AT 15,0;: LET t$=q$: GOSUB 2
7080 GOTO 240
7120 IF h(1)=0 AND h(2)=0 THEN GOSUB 7600: PRINT AT 15,0;: LET t$="Nalad semmi sincs.": GOSUB 2: GOSUB 5000: GOTO 235
7130 IF k(l,1) AND k(l,2)>0 THEN GOSUB 7600: PRINT AT 15,0;: LET t$="Ezen a helyen nem ": GOSUB 2: PRINT AT 17,0;: LET t$="teheted le.Nyomd a RETURN-t": GOSUB 2: GOSUB 5000: GOTO 235
7140 PRINT AT 19,0;: LET t$="Mit is akarsz letenni ?": GOSUB 2: GOSUB 510: LET b$=u$
7141 LET sor=7160
7142 LET ugras=7153: GOTO 9010
7153 POKE 23658,0: GOTO 7135
7160 IF NOT h(1)=j AND NOT h(2)=j THEN GOSUB 7600: PRINT AT 15,0;: LET t$="Nincs mit letenned. ": GOSUB 2: GOSUB 5000: GOTO 7135
7165 IF h(1)=j THEN LET h(1)=0
7170 IF h(2)=j THEN LET h(2)=0
7175 IF k(l,1)=0 THEN LET k(l,1)=j: GOTO 7180
7176 LET k(l,2)=j
7180 GOTO 235
7210 IF h(1)=0 AND h(2)=0 THEN GOSUB 7600: PRINT AT 15,0;: LET t$="Nem cserelhetsz el semmit.": GOSUB 2: GOSUB 5000: GOTO 235
7215 IF k(l,1)=0 AND k(l,2)=0 THEN GOSUB 7600: PRINT AT 15,0;: LET t$="Itt nincs mit elcserelned.": GOSUB 2: GOSUB 5000: GOTO 235
7220 PRINT AT 19,0;: LET t$="Mit akarsz letenni/eldobni?": GOSUB 2: GOSUB 510: LET b$=u$
7222 LET ugras=7234: LET sor=7235: GOTO 9010
7234 POKE 23658,0: GOTO 7220
7235 IF h(1)=j OR h(2)=j THEN GOTO 7260
7236 GOSUB 7600: PRINT AT 15,0;: LET t$="Ezt itt nem teheted le.": GOSUB 2: GOSUB 5000: GOTO 230
7261 PRINT AT 19,0;: LET t$="Mit akarsz itt felvenni ?": GOSUB 2: GOSUB 510: LET b$=u$
7263 IF b$="pok" THEN LET d=1: GOTO 7280
7264 IF b$="sepru" THEN LET d=2: GOTO 7280
7265 IF b$="lampa" THEN LET d=3: GOTO 7280
7266 IF b$="edeny" THEN LET d=4: GOTO 7280
7267 IF b$="palca" THEN LET d=5: GOTO 7280
7268 IF b$="cipo" THEN LET d=6: GOTO 7280
7269 IF b$="alma" THEN LET d=7: GOTO 7280
7270 IF b$="tej" THEN LET d=8: GOTO 7280
7271 IF b$="torta" THEN LET d=9: GOTO 7280
7272 IF b$="csont" THEN LET d=10: GOTO 7280
7273 IF b$="konyv" THEN LET d=11: GOTO 7280
7274 IF b$="ceruza" THEN LET d=12: GOTO 7280
7275 IF b$="ora" THEN LET d=14: GOTO 7280
7276 IF b$="aso" THEN LET d=13: GOTO 7280
7279 GOTO 7261
7280 IF k(l,1)=d OR k(l,2)=d THEN GOTO 7290
7285 GOSUB 7600: PRINT AT 15,0;: LET t$="Itt nincs cseretargy.": GOSUB 2
7286 GOSUB 5000: GOSUB 7600: GOTO 230
7290 IF k(l,1)=d THEN LET k(l,1)=j
7291 IF k(l,2)=d THEN LET k(l,2)=j
7292 IF h(1)=j THEN LET h(1)=d
7293 IF h(2)=j THEN LET h(2)=d
7294 GOTO 235
7300 REM ha kettonel tobb targy van nalunk,hibauzenet
7320 IF h(1)>0 AND h(2)>0 THEN GOSUB 7600: PRINT AT 15,0;: LET t$="Van mar ket targy nalad!": GOSUB 2: GOSUB 5000: GOTO 235
7330 IF k(l,1)=0 AND k(l,2)=0 THEN GOSUB 7600: PRINT AT 15,0;: LET t$="Itt nincs mit felvenned. ": GOSUB 2: GOSUB 5000: GOTO 235
7342 PRINT AT 19,0;: LET t$="Mit akarsz itt felvenni ?": GOSUB 2: GOSUB 510: LET b$=u$
7350 LET sor=7370: LET ugras=7362: GOTO 9010
7362 GOTO 7340
7370 IF k(l,1)=j OR k(l,2)=j THEN GOTO 7380
7372 GOSUB 7600: PRINT AT 15,0;: LET t$="Itt nincs ilyen targy.": GOSUB 2: GOSUB 5000: GOSUB 7600: GOTO 235
7380 IF k(l,1)=j THEN LET k(l,1)=0: GOTO 7385
7382 LET k(l,2)=0
7385 IF h(1)=0 THEN LET h(1)=j: GOTO 235
7386 LET h(2)=j: GOTO 235
7510 LET e(1)=1: LET e(2)=1: RETURN
7520 LET e(1)=1: LET e(4)=1: RETURN
7530 LET e(2)=1: LET e(3)=1: RETURN
7540 LET e(1)=1: LET e(2)=1: LET e(3)=1: LET e(4)=1: RETURN
7550 LET e(1)=1: LET e(4)=1: RETURN
7560 LET e(3)=1: LET e(4)=1: RETURN
7570 LET e(2)=1: LET e(3)=1: LET e(4)=1: RETURN
7580 LET e(2)=1: RETURN
7600 POKE xl,32: POKE yl,72: POKE xp,0: POKE yp,(13*8)-1
7601 LET qq=USR 64500
7602 REM uzenetek torlese
7605 LET t$=" "
7607 PRINT AT 21,0;: GOSUB 2
7700 LET z=1
7710 IF f(l)=1 OR f(l)=4 THEN LET alap=5: GOTO 7720
7713 LET alap=4
7720 IF k(l,z)=9 THEN LET alap=7
7725 IF k(l,z)=0 THEN GOTO 8000
7730 POKE 23675,p(k(l,z),2)
7740 POKE 23676,p(k(l,z),1)
7750 IF z=1 THEN LET px=11: GOTO 7770
7760 LET px=15
7770 IF k(l,z)=1 OR k(l,z)=2 OR k(l,z)=3 OR k(l,z)=4 THEN LET i1=0: LET i2=0: LET i3=0: LET i4=0: LET i5=0: LET i6=0: GOTO 8000
7780 IF k(l,z)=5 THEN LET i1=7: LET i2=7: LET i3=0: LET i4=7: LET i5=7: LET i6=0: GOTO 8000
7790 IF k(l,z)=12 THEN LET i1=2: LET i2=2: LET i3=0: LET i4=2: LET i5=2: LET i6=0: GOTO 8000
7800 IF k(l,z)=9 THEN LET i1=2: LET i2=2: LET i3=2: LET i4=2: LET i5=2: LET i6=2: GOTO 8000
7810 IF k(l,z)=7 THEN LET i1=2: LET i2=2: LET i3=0: LET i4=2: LET i5=2: LET i6=2: GOTO 8000
7820 IF k(l,z)=8 OR k(l,z)=10 THEN LET i1=7: LET i2=7: LET i3=7: LET i4=7: LET i5=7: LET i6=7: GOTO 8000
7830 LET i1=1: LET i2=1: LET i3=1: LET i4=1: LET i5=1: LET i6=1
8000 IF k(l,z)=0 AND px=11 THEN LET px=15: GOTO 8025
8010 IF k(l,z)=0 AND px=15 THEN LET px=11
8025 IF k(l,z)=0 THEN PRINT AT 11,px; PAPER alap;" ";AT 12,px; PAPER alap;" ": GOTO 8098
8050 PRINT AT 11,px; INK i1; PAPER alap;"ö"; INK i2;"ö"; INK i3;"ö"
8060 PRINT AT 12,px; INK i4; PAPER alap;"ö"; INK i5;"ö"; INK i6;"ö"
8098 IF z=2 THEN RETURN
8099 LET z=z+1: GOTO 7710
8100 REM a kezdo helyszin a jatekdoboz katonaja
8101 POKE 23675,231: POKE 23676,235: GOSUB 6000: GOSUB 9300: PRINT AT 0,5;: LET t$="A jatekdoboz katonaja": GOSUB 2
8102 PRINT AT 2,6; PAPER 5; INK 6;" ö "; INK 3;"ÁÉ"
8104 PRINT AT 3,6; PAPER 5; INK 2;" ö"; INK 4;"ö "; INK 1;"ö "; PAPER 6; INK 3;"ÁÉ"
8106 PRINT AT 4,6; PAPER 5; INK 3;" ö"; INK 6;"ö"; INK 2;"ö "; PAPER 6; INK 5;"ö"; INK 0;"ö"; INK 5;"ö"; PAPER 5; INK 2;" ö "; PAPER 6; INK 0;" ö ö ö"
8108 PRINT AT 5,6; PAPER 5; INK 0;" ö"; INK 4; PAPER 7;"ö"; INK 6;"ö"; INK 2;"ö"; INK 6;"ö"; INK 3;"ö"; INK 6; PAPER 5;"ö"; PAPER 6; INK 0;"ö"; INK 5;"ö"; PAPER 5; INK 2;"É "; PAPER 6; INK 0;" ö ö ö"
8110 PRINT AT 6,6; INK 1; PAPER 6;"ö"; INK 7; PAPER 0;"ö"; INK 2; PAPER 7;"ö"; INK 3;"ö"; INK 4;"ö"; INK 2;"ö"; INK 6;"ö"; INK 6; PAPER 1;"Éö"; INK 2; PAPER 1;"É ö"; INK 1; PAPER 6;"ö "
8112 PRINT AT 7,6; INK 7; PAPER 1;"ö"; INK 0; PAPER 3;"ö"; INK 6; PAPER 7;"ö"; INK 4;"ö"; INK 6;"ö"; INK 3;"ö"; INK 4;"ö"; INK 2;"ö"; PAPER 7; INK 6;"É "; INK 2;"Éö"; PAPER 6;"ö "; INK 0;"ö ö"
8114 PRINT AT 8,6; INK 1; PAPER 7;"ö"; INK 3; PAPER 1;"ö"; INK 1; PAPER 4;"ö"; INK 3;"ö"; INK 2;"ö"; INK 6;"ö"; INK 3;"ö"; INK 6; PAPER 0;"ö"; INK 3;"ö"; INK 6;"ö"; INK 1; PAPER 7;"É"; INK 5; PAPER 6;"ö ö"; INK 1;"ö"; INK 0; PAPER 7;"ö"; PAPER 6;" ö"
8116 PRINT AT 9,6; INK 3; PAPER 1;"Éö"; INK 1; PAPER 6;"ö"; INK 4;"ö"; INK 2;"ö"; PAPER 6; INK 0;"ö"; PAPER 0; INK 2;"ö"; INK 6;"É"; INK 1;"É"; PAPER 6; INK 2;" É "; INK 2; PAPER 1;"ö"; INK 6; PAPER 2;"ö"; INK 6; PAPER 2;"ö"; INK 0;"ö"
8118 PRINT AT 10,6; INK 1; PAPER 7;"Á"; PAPER 3;"ö"; INK 6;"ö"; INK 0;"Á"; PAPER 6;"É"; INK 5;"ö"; INK 2;"É"; INK 5;"ö"; INK 1; PAPER 2;"ö"; INK 6;"É"; INK 0;"ö"
8120 PRINT AT 11,6; INK 1; PAPER 7;"Áö"; INK 5;"ÁÁÁ"; INK 0;"ö"; INK 5;"ö"; INK 3;"ö"
8130 PRINT AT 12,6; INK 1; PAPER 7;"Áö"; INK 5;"ÁÁÉö"; PAPER 0;"ö ö"; INK 3;"ö"
8199 RETURN
8200 REM Oreganyo kutyaja
8201 POKE 23675,143: POKE 23676,236: GOSUB 6000: GOSUB 9300: PRINT AT 0,7;: LET t$="Oreganyo kutyaja": GOSUB 2
8202 PRINT AT 2,6; INK 4;"ö"; INK 2;"Á"; INK 6; PAPER 0;"ÁÁö"; INK 2; PAPER 5;"É "; PAPER 2; INK 5;"ö"; INK 4;"É"
8204 PRINT AT 3,6; INK 4;"ö"; PAPER 2; INK 0;" ÁÁö "; INK 7;"ö"; PAPER 7; INK 0;"ö"; PAPER 5;"ö "; PAPER 4;" "
8206 PRINT AT 4,6; INK 4;"ö"; PAPER 2; INK 0;"ö"; INK 7;"ö"; INK 0;" ÁÁö "; INK 7;"ö"; PAPER 7; INK 0;"É"; PAPER 5; INK 4;" ö"
8208 PRINT AT 5,6; INK 4;"ö"; PAPER 0; INK 7;"ö"; PAPER 7; INK 0;"É"; INK 2;"ö"; PAPER 6; INK 0;"ÁÁö"; PAPER 2; INK 7;" ö"; PAPER 7; INK 0;"ö "; PAPER 4;"ö "
8210 PRINT AT 6,6; INK 4;"ö"; PAPER 7; INK 0;"É"; PAPER 2;"ö ÁÁö "; INK 1;"É"; PAPER 4;"ö "
8212 PRINT AT 7,6; INK 4;"ö"; PAPER 7; INK 0;" ö"; INK 2;"ö"; PAPER 6; INK 0;"ÁÁö"; PAPER 2; INK 1;" ö"; INK 5; PAPER 1;"É "; INK 4;"ö"
8214 PRINT AT 8,6; INK 4;"ö"; PAPER 7; INK 2;" É"; INK 0;"ÁÁ"; INK 5;"ö"; PAPER 2;"ö"; PAPER 1;"É"; PAPER 5; INK 1;"É"; INK 4;"ö"
8216 PRINT AT 9,6; PAPER 4;" "; PAPER 7; INK 2;" É"; INK 0;"ÁÁ"; PAPER 5;"ö "; INK 1;"Éö"; INK 4;"ö"
8218 PRINT AT 10,6; PAPER 4;" "; PAPER 7; INK 2;" É"; PAPER 6; INK 0;"ÁÁö"; PAPER 5; INK 2;"É"; INK 1; PAPER 7;"Éö"; INK 4;"ö"
8220 PRINT AT 11,6; PAPER 4; INK 7;"Á"; PAPER 7; INK 4;"ÁÁÉö"; PAPER 4; INK 7;"ö"; INK 1;"Á"
8230 PRINT AT 12,6; PAPER 4; INK 0;"Áö "; PAPER 7; INK 1;" Á"
8299 RETURN
8300 REM az oriasi csizmahaz
8301 POKE 23675,55: POKE 23676,237: GOSUB 6000: GOSUB 9300: PRINT AT 0,5;: LET t$="Az oriasi csizma-haz": GOSUB 2: PRINT AT 2,6; PAPER 5; INK 2;" ÁÁÉ "; INK 4;"ö"
8302 PRINT AT 3,6; PAPER 5; INK 3;"ö"; INK 4;"Á"; PAPER 4; INK 2;"ÁÁÉö"; PAPER 5;"É"; INK 4;"É"
8304 PRINT AT 4,6; PAPER 5; INK 3;"É"; INK 4;"Á"; PAPER 0;"ö"; INK 3;"ö"; INK 1;"ÁÉö"; PAPER 4;"ö"; PAPER 5; INK 4;"ö"; INK 4;"ö"; PAPER 4; INK 7;"É"
8306 PRINT AT 5,6; PAPER 3; INK 4;"ÁÉ"; PAPER 0;"ö"; PAPER 3; INK 0;"ö";; PAPER 0; INK 1;"ö"; PAPER 0; INK 2;"Áö"; INK 1; PAPER 4;"É"; PAPER 4; INK 7;"Á"
8308 PRINT AT 6,6; PAPER 4; INK 2;"Éö"; INK 0;"Á"; PAPER 3;"ö"; PAPER 1;"ö"; INK 2;"ö"; PAPER 6; INK 0;"Éö"; INK 2;"ö"; PAPER 4; INK 1;"É"; INK 7;"Á"
8310 PRINT AT 7,6; PAPER 4; INK 2;"Éö"; INK 1;"É"; PAPER 1; INK 7;"ö "; INK 2;"ö"; PAPER 6; INK 0;"Éö"; INK 2;"ö"; INK 1; PAPER 4;"ö"; PAPER 1; INK 4;"ö"; PAPER 4; INK 7;"Á"
8312 PRINT AT 8,6; PAPER 6; INK 1;"Áö"; PAPER 1; INK 7;"Éö"; PAPER 2; INK 1;"É"; PAPER 6; INK 0;"Éö"; PAPER 2; INK 1;"Éö"; PAPER 3; PAPER 4; INK 7;"É"; PAPER 4; INK 0;"ö"; PAPER 4; INK 7;"ö"
8314 PRINT AT 9,6; PAPER 4; INK 1;"Áö"; PAPER 1; INK 7;"ÁÁÉö"; PAPER 4; INK 0;"Á"
8316 PRINT AT 10,6; PAPER 4; INK 1;"Áö"; PAPER 1; INK 7;"Éö"; INK 4;"ÁÉö"; PAPER 4; INK 1;"Éö"; INK 0;"É"
8318 PRINT AT 11,6; PAPER 4;"ÁÁÁÁÁ"
8320 PRINT AT 12,6; PAPER 4;"ÁÁÁÁÁ"
8399 RETURN
8400 REM a harom macko konyhaja
8405 POKE 23675,223: POKE 23676,237: GOSUB 6000: GOSUB 9300: PRINT AT 0,3;: LET t$="A harom macko konyhaja": GOSUB 2
8410 PRINT AT 2,6; PAPER 4; INK 2;"ÁÁÁö"; INK 0;"ÁÉö"
8420 PRINT AT 3,6; PAPER 1; INK 2;"ö"; PAPER 5;"ö"; PAPER 1; INK 5;"ö"; PAPER 4; INK 2;"ö"; PAPER 4; INK 2;"ö"; PAPER 6; INK 0;"É"; PAPER 4; INK 2;"ÁÉ"; INK 0;"ÁÉö"
8430 PRINT AT 4,6; PAPER 6; INK 0;"Á"; PAPER 4; INK 2;"ö"; PAPER 6; INK 0;"É"; PAPER 4; INK 2;"ÁÉ"; INK 0;"ÁÉö"
8440 PRINT AT 5,6; PAPER 6; INK 0;"Á"; PAPER 4; INK 2;"Á"; INK 6;"ÁÉ"; PAPER 6; INK 0;"ÁÉ"
8450 PRINT AT 6,6; PAPER 6; INK 0;"ö"; INK 2;"ö"; INK 0;"É"; PAPER 4; INK 6;"Á"; PAPER 6; INK 0;"ÁÁÁ"
8460 PRINT AT 7,6; PAPER 6; INK 2;"Á"; PAPER 1; INK 6;"Éö"; PAPER 6; INK 0;"ÁÁÁö"
8470 PRINT AT 8,6; PAPER 5; INK 2;"Áö"; INK 6;"ö"; PAPER 6; INK 0;"ÁÁÁö"; INK 5;"ö"
8480 PRINT AT 9,6; PAPER 5; INK 2;"Á"; INK 6;"ö"; PAPER 6; INK 0;"ÁÁÁö"; INK 5;"É"
8490 PRINT AT 10,6; PAPER 5; INK 2;"Á"; PAPER 6; INK 0;"ÁÁÁÉ"; INK 5;"É"
8492 PRINT AT 11,6; PAPER 5; INK 2;"Á"; INK 0;"ÁÁÁÁ"
8494 PRINT AT 12,6; PAPER 5; INK 0;"ÁÁÁÁÁ"
8499 RETURN
8500 REM Jancsi es Juliska kutja
8505 POKE 23675,135: POKE 23676,238: GOSUB 6000: GOSUB 9300: PRINT AT 0,4;: LET t$="Jancsi es Juliska kutja": GOSUB 2
8510 PRINT AT 2,6; PAPER 5; INK 3;"Á"; INK 2;"Áö"; PAPER 2; INK 1;"ö"; PAPER 5;"ÁÉ"; INK 2;"É"; PAPER 2; INK 4;"É"
8520 PRINT AT 3,6; PAPER 5; INK 3;"Éö"; INK 2;"Áö"; PAPER 2; INK 1;"Éö"; PAPER 5;"Áö"; PAPER 7; INK 0;"ö"; INK 4;"Éö"
8530 PRINT AT 4,6; PAPER 5; INK 3;"Á"; INK 0;"ö"; INK 6;"É"; INK 0;"ö"; INK 6;"É"; INK 0;"Á"; INK 3;"É"; PAPER 3; INK 4;"Á"
8540 PRINT AT 5,6; PAPER 5; INK 3;"Á"; INK 0;"ÁÁö"; INK 3;"É"; PAPER 3; INK 4;"Áö"
8550 PRINT AT 6,6; INK 3;"Á"; PAPER 6; INK 2;"ÁÉö"; PAPER 5; INK 3;"Éö"; PAPER 3; INK 4;"ÁÉ"
8560 PRINT AT 7,6; INK 3;"Á"; PAPER 6; INK 2;"ÁÉö"; PAPER 5; INK 3;"É"; PAPER 3; INK 4;"ÁÉö"
8570 PRINT AT 8,6; PAPER 3; INK 4;"Éö"; PAPER 0;"ÁÁö"; PAPER 6;"ÁÁ"
8580 PRINT AT 9,6; PAPER 3; INK 4;"ÁÁÁö"; PAPER 6;"Áö"; INK 0;"É"
8590 PRINT AT 10,6; PAPER 3; INK 4;"ö"; PAPER 4; INK 1;"ÁÁÁö"; PAPER 6; INK 4;"Éö"; INK 0;"É"; INK 1;"ö"
8592 PRINT AT 11,6; PAPER 4; INK 1;"ö"; PAPER 7; INK 1;"Éö"; PAPER 4; INK 7;"ÁÁÉö"; PAPER 6; INK 4;"ö"; INK 0;"Éö"; PAPER 1; INK 6;"ö"
8594 PRINT AT 12,6; PAPER 7; INK 1;"Á"; PAPER 4; INK 7;"ÁÁÁ"; PAPER 2; INK 4;"ö"; PAPER 6; INK 2;"ö"; INK 0;"É"
8599 RETURN
8600 REM az egig ero paszuly
8605 POKE 23675,47: POKE 23676,239: GOSUB 6000: GOSUB 9300: PRINT AT 0,6;: LET t$="Az egig ero paszuly": GOSUB 2
8610 PRINT AT 2,6; PAPER 1; INK 7;"ÁÉö"; INK 4;"Áö"; INK 2;"ö"; INK 4;"Éö"; PAPER 4; INK 1;"ö"; PAPER 1; INK 4;"ö"; INK 2;"ö"; INK 4;"ö"
8620 PRINT AT 3,6; PAPER 1; INK 7;"É"; INK 0;"Áö"; INK 7;"ö"; INK 0;"Éö"; INK 4;"É"; PAPER 4; INK 1;"ö"; PAPER 1; INK 4;"ÁÉ"
8630 PRINT AT 4,6; PAPER 1; INK 2;"ÁÁÉö"; INK 7;"ö"; INK 4;"É"; PAPER 4; INK 1;"ö"; PAPER 1; INK 4;"Áö"
8640 PRINT AT 5,6; PAPER 1; INK 4;"É"; PAPER 7; INK 0;"ÁÁ"; PAPER 1; INK 4;"Áö"; PAPER 4; INK 1;"ö"; PAPER 1; INK 4;"É"; INK 2;"ö"; INK 4;"ö"
8650 PRINT AT 6,6; PAPER 6;"É"; PAPER 7; INK 2;"ö"; PAPER 6; INK 0;"ö"; PAPER 7; INK 2;"Á"; PAPER 6; INK 0;"ö"; PAPER 7; INK 2;"ö"; PAPER 6; INK 4;"Áö"; INK 2;"ö"; PAPER 4;"É"; PAPER 6; INK 4;"ö"; PAPER 4; INK 6;"ö"
8660 PRINT AT 7,6; PAPER 6;"É"; PAPER 7; INK 0;"ÁÁ"; PAPER 6; INK 2;"Áö"; INK 4;"ö"; PAPER 4; INK 6;"Éö"; PAPER 6; INK 4;"ö"
8670 PRINT AT 8,6; PAPER 6;"É"; PAPER 7; INK 2;"ö"; PAPER 6; INK 0;"ö"; PAPER 7; INK 2;"Á"; PAPER 6; INK 0;"ö"; PAPER 7; INK 2;"É"; PAPER 6; INK 4;"Áö"; INK 2;"ö"; INK 4;"Éö"
8680 PRINT AT 9,6; PAPER 6; INK 0;"É"; PAPER 7; INK 0;"Éö"; INK 2;"Éö"; INK 0;"Éö"; PAPER 6; INK 0;"Éö"; INK 4;"ö"; PAPER 4; INK 6;"ö"; PAPER 6; INK 4;"ö"; PAPER 4; INK 2;"ö"; PAPER 6; INK 4;"É"
8690 PRINT AT 10,6; PAPER 6; INK 0;"ö"; PAPER 0; INK 4;"ÁÁÉö"; PAPER 6; INK 0;"Éö"; INK 4;"É"; PAPER 4; INK 6;"ö"; PAPER 6; INK 4;"É"
8692 PRINT AT 11,6; INK 4; PAPER 0;"ÁÁÁö"; PAPER 6; INK 0;"É"; INK 4;"Áö"
8694 PRINT AT 12,6; PAPER 0; INK 4;"ÁÁÁÉ"; PAPER 6; INK 0;"ö"; INK 4;"Áö"
8699 RETURN
8700 REM Harom nover kertje
8705 POKE 23675,216: POKE 23676,239: GOSUB 6000: GOSUB 9300: PRINT AT 0,6;: LET t$="Harom nover kertje": GOSUB 2
8710 PRINT AT 2,6; PAPER 5; INK 1;"ÁÉö"; INK 0;"ÁÉö"; INK 1;"ÁÉ"
8720 PRINT AT 3,6; PAPER 5; INK 1;"ÁÉö"; INK 0; PAPER 7;"ö"; PAPER 5;"É"; PAPER 7;"ö"; PAPER 5;"É"; PAPER 7;"ö"; INK 1; PAPER 5;"ÁÉ"
8730 PRINT AT 4,6; PAPER 4; INK 7;"Á"; INK 1;"É"; INK 2;"ö"; INK 0; PAPER 6;"ö"; PAPER 4; INK 2;"ö"; INK 1;"ö"; PAPER 2; INK 0;"ö"; PAPER 4; INK 1;"ö"; INK 6;"ö"; PAPER 1; INK 0;"ö"; PAPER 4; INK 6;"ö"; INK 1;"É"; INK 7;"Éö"
8740 PRINT AT 5,6; PAPER 4; INK 7;"Á"; INK 1;"É"; INK 2;"ö"; INK 0; PAPER 6;"ö"; PAPER 4; INK 2;"ö"; INK 1;"ö"; PAPER 2; INK 0;"ö"; PAPER 4; INK 1;"ö"; INK 6;"ö"; PAPER 1; INK 0;"ö"; PAPER 4; INK 6;"ö"; INK 1;"Éö"; INK 7;"É"
8750 PRINT AT 6,6; PAPER 4; INK 7;"Á"; INK 1;"Áö"; INK 6;"Éö"; INK 2;"Éö"; INK 1;"É"; INK 7;"Éö"
8760 PRINT AT 7,6; PAPER 4; INK 7;"Á"; INK 1;"Áö"; INK 6;"Éö"; INK 2;"Éö"; INK 1;"É"; INK 7;"Éö"
8770 PRINT AT 8,6; PAPER 4; INK 7;"Á"; INK 1;"Áö"; INK 6;"Éö"; INK 2;"Éö"; INK 1;"É"; INK 7;"Éö"
8780 PRINT AT 9,6; PAPER 4; INK 7;"Á"; INK 1;"ö"; INK 6;"ö"; PAPER 1;"É"; INK 2;"ö"; PAPER 6;"É"; INK 1;"ö"; PAPER 2;"É"; INK 6;"ö"; PAPER 4;"ö"; INK 1;"ö"; INK 7;"Éö"
8790 PRINT AT 10,6; PAPER 4; INK 7;"Á"; INK 1;"ö"; INK 6;"É"; INK 0;"ö"; INK 2;"É"; INK 0;"ö"; INK 1;"É"; INK 0;"ö"; INK 6;"É"; INK 1;"ö"; INK 7;"Éö"
8792 PRINT AT 11,6; PAPER 4; INK 7;"Á"; INK 1;"ÁÁÁö"; INK 7;"Éö"
8794 PRINT AT 12,6; PAPER 4; INK 1;"ÁÁÁÁÁ"
8799 RETURN
9010 IF b$="pok" THEN LET j=1: GOTO sor
9020 IF b$="sepru" THEN LET j=2: GOTO sor
9030 IF b$="lampa" THEN LET j=3: GOTO sor
9040 IF b$="edeny" THEN LET j=4: GOTO sor
9050 IF b$="palca" THEN LET j=5: GOTO sor
9060 IF b$="cipo" THEN LET j=6: GOTO sor
9070 IF b$="alma" THEN LET j=7: GOTO sor
9080 IF b$="tej" THEN LET j=8: GOTO sor
9090 IF b$="torta" THEN LET j=9: GOTO sor
9100 IF b$="csont" THEN LET j=10:: GOTO sor
9110 IF b$="konyv" THEN LET j=11: GOTO sor
9120 IF b$="ceruza" THEN LET j=12: GOTO sor
9130 IF b$="aso" THEN LET j=13: GOTO sor
9140 IF b$="ora" THEN LET j=14: GOTO sor
9150 GOTO ugras
9210 IF p=1 THEN LET b=2: LET n=3: GOTO 406
9211 IF p=2 THEN LET b=1: LET n=2: GOTO 406
9212 LET b=0: GOTO 406
9220 IF p=4 THEN LET b=1: LET n=1: GOTO 406
9221 IF p=1 THEN LET b=3: LET n=4: GOTO 406
9223 LET b=0: GOTO 406
9230 IF p=2 THEN LET b=4: LET n=4: GOTO 406
9231 IF p=3 THEN LET b=2: LET n=1: GOTO 406
9232 LET b=0: GOTO 406
9240 IF p=1 THEN LET b=6: LET n=7: GOTO 406
9241 IF p=2 THEN LET b=5: LET n=5: GOTO 406
9242 IF p=3 THEN LET b=3: LET n=2: GOTO 406
9243 LET b=4: LET n=3: GOTO 406
9250 IF p=1 THEN LET b=7: LET n=6: GOTO 406
9251 IF p=4 THEN LET b=5: LET n=4: GOTO 406
9252 LET b=0: GOTO 406
9260 IF p=3 THEN LET b=7: LET n=5: GOTO 406
9261 IF p=4 THEN LET b=8: LET n=7: GOTO 406
9262 LET b=0: GOTO 406
9270 IF p=2 THEN LET b=8: LET n=6: GOTO 406
9271 IF p=3 THEN LET b=6: LET n=4: GOTO 406
9273 IF p=4 THEN LET b=9: LET n=8: GOTO 406
9274 LET b=0: GOTO 406
9300 PRINT AT 0,0;: LET t$=" ": GOSUB 2: RETURN
9400 REM csalafinta mondatok es becsapos kerdesek
9710 PRINT AT 15,0;: LET t$="Te kesobb erkeztel ide,mint": GOSUB 2: PRINT AT 17,0;: LET t$="az ijeszto Vasorru Baba,": GOSUB 2: PRINT AT 19,0;: LET t$="es nem adtad oda a pokot.": GOSUB 2: GOSUB 5000: RETURN
9720 PRINT AT 15,0;: LET t$="Te megint elkestel,es nem": GOSUB 2: PRINT AT 17,0;: LET t$="adta d a boszorkanynak a seprut.": GOSUB 2: GOSUB 5000: RETURN
9730 PRINT AT 15,0;: LET t$="Te keson erkeztel,nem adtad": GOSUB 2: PRINT AT 17,0;: LET t$="oda Aladdinnak a lampat.": GOSUB 2: GOSUB 5000: RETURN
9740 PRINT AT 15,0;: LET t$="Ismet keson jottel,nem adtad": GOSUB 2: PRINT AT 17,0;: LET t$="oda az oregaponak az edenyt.": GOSUB 2: GOSUB 5000: RETURN
9750 PRINT AT 15,0;: LET t$="Megint keson erkeztel,es nem": GOSUB 2: PRINT AT 17,0;: LET t$="adtad a palcat a tundernek.": GOSUB 2: GOSUB 5000: RETURN
9760 PRINT AT 15,0;: LET t$="Elfelejtetted felvenni a": GOSUB 2: PRINT AT 17,0;: LET t$="ket cipot,amikor atjottel": GOSUB 2: PRINT AT 19,0;: LET t$="a saros reten.": GOSUB 2: GOSUB 5000: RETURN
9770 PRINT AT 15,0;: LET t$="Mielott ide ertel volna,": GOSUB 2: PRINT AT 17,0;: LET t$="ehes voltal,es megetted a": GOSUB 2: PRINT AT 19,0;: LET t$="nalad levo almat.": GOSUB 2: GOSUB 5000: RETURN
9780 PRINT AT 15,0;: LET t$="Sokaig tartott,mig ideertel,": GOSUB 2: LET t$="nagyon szomjas voltal,": PRINT AT 17,0;: GOSUB 2: PRINT AT 19,0;: LET t$="es megittad a tejet.": GOSUB 2: GOSUB 5000: RETURN
9810 PRINT AT 15,0;: LET t$="A Vasorru Baba vart itt teged,": GOSUB 2: LET t$="elhoztad neki a pokot,": PRINT AT 17,0;: GOSUB 2: LET t$="melyet nagyon vart ?": PRINT AT 19,0;: GOSUB 2: RETURN
9820 PRINT AT 15,0;: LET t$="A Vasorru Baba vart itt teged,": GOSUB 2: PRINT AT 17,0;: LET t$="nalad van a sepru,mellyel": GOSUB 2: LET t$="tovabb akart innen repulni ?": PRINT AT 19,0;: GOSUB 2: RETURN
9830 PRINT AT 15,0;: LET t$="Aladdin var itt az uton.": GOSUB 2: LET t$="Elhoztad neki a csodalampat": PRINT AT 17,0;: GOSUB 2: LET t$="a varazslashoz?": PRINT AT 19,0;: GOSUB 2: RETURN
9840 PRINT AT 15,0;: LET t$="Az oregapo var itt rad.": GOSUB 2: PRINT AT 17,0;: LET t$="O ruhakat tisztitana.": GOSUB 2: PRINT AT 19,0;: LET t$="Elhoztad az edenyt neki ?": GOSUB 2: RETURN
9850 PRINT AT 15,0;: LET t$="A tunder elvesztette a palcajat.": GOSUB 2: LET t$="Ha elhoztad neki,akkor lehet,": PRINT AT 17,0;: GOSUB 2: PRINT AT 19,0;: LET t$="hogy sikerrel jarsz majd ?": GOSUB 2: RETURN
9860 PRINT AT 15,0;: LET t$="Itt a mezon nagyon saros az": GOSUB 2: PRINT AT 17,0;: LET t$="ut.Hasznalod a ket cipot,mikor": GOSUB 2: LET t$="atkelsz majd a mezon?": PRINT AT 19,0;: GOSUB 2: RETURN
9870 PRINT AT 15,0;: LET t$="Mar sokaig vagy uton,es ehes": GOSUB 2: LET t$="vagy,megeszed az almat ?": PRINT AT 17,0;: GOSUB 2: RETURN
9880 PRINT AT 15,0;: LET t$="Te mar nagyon szomjas vagy,": GOSUB 2: LET t$="megiszod a tejet ?": PRINT AT 17,0;: GOSUB 2: RETURN
9910 LET v$="ö": GOSUB 9960
9912 REM ha nincs nalunk a torta
9915 FOR x=10 TO -10 STEP -1: BEEP .02,x: NEXT x
9916 LET t$="Sikeresen elerted a Palotat.": PRINT AT 14,0;: GOSUB 2: PRINT AT 16,0;: LET t$="De nincs nalad a torta.": GOSUB 2
9918 LET t$="A kiralylany merges,azt mondja,": PRINT AT 18,0;: GOSUB 2: LET t$="sipirc vissza a jatekdobozba!!": PRINT AT 20,0;: GOSUB 2
9920 LET l=1: GOSUB 5000: CLS : GOTO 191
9951 LET v$="ö": GOSUB 9960
9952 GOTO 9980
9955 REM sikerult a Palotat megtalalnunk,es a torta is nalunk van
9960 POKE 23675,128: POKE 23676,240
9961 GOSUB 9300: PRINT AT 0,2;: LET t$="A kiralykisasszony Palotaja": GOSUB 2: PRINT AT 2,6; PAPER 5; INK 7;"ÁÉ"; PAPER 7; INK 2;"ö"; PAPER 7; INK 5;"ÁÁÁö"
9962 PRINT AT 3,6; PAPER 5; INK 7;"ÁÁ"; INK 0;"ÁÁÁ"
9963 PRINT AT 4,6; PAPER 5; INK 7;"ÁÁÁÁö"; INK 2;"Éö"
9964 PRINT AT 5,6; PAPER 5; INK 7;"ÁÁÁÁ"; INK 6;"ö"; PAPER 6; INK 2;"ö"; INK 6; PAPER 5;"É"
9965 PRINT AT 6,6; PAPER 5; INK 7;"ÁÁ"; PAPER 0;"ö"; PAPER 5;"ÁÉö"; PAPER 6; INK 1;"Éö"; PAPER 5;"ö"
9966 PRINT AT 7,6; PAPER 5; INK 7;"Éö"; PAPER 0;"ö"; PAPER 5;"Á"; PAPER 0;"ö"; PAPER 5;"Á"; PAPER 0;"ö"; PAPER 5;"É"; PAPER 7; INK 0;"Éö"; PAPER 5;"ö"
9967 PRINT AT 8,6; PAPER 6; INK 5;"É"; PAPER 7; INK 0;"É"; PAPER 6; INK 7;"ö"; INK 5;"É"; PAPER 7; INK 2;"É"; INK 6;"ö"; PAPER 6; INK 5;"É"; PAPER 7; INK 0;"É"; INK 6;"ö"; PAPER 5;"ö"; INK 0; PAPER 7;"ö";v$;"ö"; PAPER 6; INK 5;"ö"
9968 PRINT AT 9,6; PAPER 6; INK 7;"Áö"; INK 0;"É"; PAPER 7;"É"; PAPER 6; INK 7;"ö"; INK 0;"É"; INK 7;"Á"; INK 0;"ö"; PAPER 2; INK 7;"ö"; INK 0;"ö"; INK 6;"ö"
9969 PRINT AT 10,6; PAPER 6; INK 7;"ÁÉö"; PAPER 0;"É"; PAPER 6;"ÁÉ"; INK 2;"ö"; PAPER 0;"ö"; PAPER 6;"ö"; PAPER 0;"ö"; PAPER 6;"ö"
9970 PRINT AT 11,6; PAPER 4; INK 7;"ÁÉö"; PAPER 0;"É"; PAPER 4;"ÁÉ"; PAPER 2;"É"; INK 6;"ö"; PAPER 7; INK 2;"É"
9971 PRINT AT 12,6; PAPER 4; INK 2;"ÁÁÁÁ"; PAPER 7;"ö"; PAPER 6;"ö"; PAPER 2; INK 7;"É"
9972 RETURN
9975 REM a sikeres jatek utani jutalom
9980 PRINT AT 13,0;: LET t$="Minden akadalyt legyoztel!": GOSUB 2
9982 PRINT AT 15,0;: LET t$="A kiralykisasszony boldog,": GOSUB 2
9984 PRINT AT 17,0;: LET t$="hogy megajandekoztad a tortaval!": GOSUB 2
9985 PRINT AT 19,0;: LET t$="Sok-sok puszit kapsz ezert!!.": GOSUB 2
9986 REM egy kis gyozelmi zene
9987 FOR x=1 TO 2: BEEP .11,7: BEEP .21,12: BEEP .11,12: BEEP .11,11: BEEP .11,9: BEEP .11,11: BEEP .21,12: BEEP .11,7: BEEP .21,7: NEXT x: BEEP .11,5: BEEP .315,4: BEEP .351,2: BEEP .41,0
9988 PRINT AT 21,0;: LET t$="Megegyszer megprobalod? i/n": GOSUB 2
9989 IF INKEY$="i" OR INKEY$="I" THEN RUN
9990 IF INKEY$="n" OR INKEY$="N" THEN GOTO 9998
9991 GOTO 9989
9995 REM a spectrum elkoszon
9998 PRINT AT 21,0;: LET T$="Koszonom a finom tortat!!": GOSUB 2: FOR n=1 TO 200: NEXT n: GOTO 9988
9999 SAVE "jatekdob" LINE 1: SAVE "kockakod"CODE 59608,5870
FEKETE HATTYÚ

- Dóri - unokám, aki már 12 éves lesz májusban, vele leültünk megírni élete első BASIC programját.
Azt gondoltuk ki közösen, hogy folytatjuk a rút kiskacsa meséjét, mikoris a rút kiskacsából egy szép, fekete hattyú lett. A hattyú a nádasban gondtalanul él, és ott fogja ki a kis halakat, de életét megkeserítik a mindenhol leskelődő, vérre éhes szúnyogok. Ezért szövetkezik a szintén ott fészkelő, gyors-szárnyú fecskével, és megbeszélik, hogy a hattyú ide-oda úszkál a nádas sekély vizén, és felveri az ott lévő, éppen a fecske elől elrejtőző szúnyogokat. Így azok felreppennek, és a fecskének már könnyű dolga van, szépen összefogdossa őket. Így mindenki jól jár, a szúnyogok nem csipkedik a hattyút, és a fecske is jól megebédel belőlük.
A programozás menete:
1./ Először mindig megtervezzük a "játékosokat" - a hattyút, a repülő fecskét, a nádast, és a szúnyogokat.
Erre legjobb a kockás papír, 8*8-as kockában elkészítjük a fentieket.
2./ Főcím, majd a magyarázó szöveg elkészítése, a program irányítása, 8000 sorban a nádas "felépítése"
3./ az alapértékek beállítása, szúnyog=0, szárny=0, hattyú és a fecske alappozíciója: d=19, a=4, m=3, n=28
A fenti értékek határozzák meg az ide-oda úszkáló hattyú és a fecske kezdő pozícióit
4./ a fecske repülése - irányítás beállítása 5=bal, 8=jobb, 6=le, 7=fel
5./ a 7000-es sor a szúnyogok véletlenszerű elhelyezkedése
6./ a fecske elfogja a szúnyogot 100-as sorban, hangjelzés adása
7./ a sikeres elfogás kiírása
8./ ha sikerült mind a 30 szúnyogot elfogni, a játéknak vége
9./ Új játék indítás
1 REM Fekete hattyu 16-48-128K-s Spec
2 REM keszitette : Szabo Dora 9 eves kislany - a jatekgyaros - segitsegevel
10 PRINT "Fekete hattyu": PAUSE 50
20 PRINT "A fekete hattyu szovetkezett a gyorsroptű fecskevel,hogy a nadast megtisztitsak a kinzo csipesű szunyogoktol.Iranyitas a kurzorgombokkal.Nyomd az ENTER-t": PAUSE 0
25 REM az UDG-k beolvasasa
30 GOSUB 9000
35 REM a nadas felepitese
40 GOSUB 8000
45 LET szunyog=0: LET szarny=0
50 LET d=19: LET a=4: LET m=3: LET n=28
51 REM a szunyogok
55 GOSUB 7000
60 PRINT AT d,a;" AA";AT d+1,a;" AA"
75 PRINT AT m,n;" "
79 REM a fecske iranyitasa
80 LET m=m+(INKEY$="6" AND m<14)-(INKEY$="7" AND m>1)
90 LET n=n+(INKEY$="8" AND n<31)-(INKEY$="5" AND n>0)
95 IF INKEY$="5" OR INKEY$="6" OR INKEY$="7" OR INKEY$="8" THEN LET szarny=szarny+1: BEEP .005,30
100 IF SCREEN$ (m,n)="" THEN LET szunyog=szunyog+1: BEEP .008,40
110 PRINT AT m,n;"B"
112 FOR i=1 TO 4: NEXT i
114 LET a=a+1: IF a>23 THEN PRINT AT d,a;" ";AT d+1,a;" ": LET a=4
116 IF a<4 THEN LET a=4
120 PRINT INK 2;AT 0,8;"elkaptal ";szunyog ; " szunyogot"
160 IF szunyog=30 THEN GOTO 1000
170 GOTO 60
1000 FOR f=0 TO 40: BEEP .008,f: NEXT f: CLS : PRINT AT 11,0;"A fecskenek sikerult minden szunyogot elfogni": PAUSE 150
1010 CLS : INPUT AT 11,2;"Ha jatszol ujra,nyomd az ENTER-t"; LINE c$: GOTO 40
7010 FOR i=1 TO 30
7020 LET y=2+INT (RND*12): LET x=INT (RND*31)
7030 IF y=m AND x=n THEN GOTO 7020
7040 IF SCREEN$ (y,x)="" THEN GOTO 7020
7050 PRINT AT y,x;"B"
7060 NEXT i: RETURN
7100 REM a nádas
8000 PAPER 6: BORDER 4: CLS
8010 FOR f=0 TO 31: PRINT INK 5;AT 21,f;"B": NEXT f
8110 PRINT AT 19,1; INK 4;"B";AT 19,3; INK 4;"B";AT 19,26; INK 4;"B";AT 19,28; INK 4;"B";AT 19,30; INK 4;"B"
8120 PRINT AT 20,1; INK 4;"B";AT 20,3; INK 4;"B";AT 20,26; INK 4;"B";AT 20,28; INK 4;"B";AT 20,30; INK 4;"B"
8130 PRINT AT 18,1;"B";AT 18,3; INK 4;"B";AT 18,26;"B";AT 18,28; INK 4;"B";AT 18,30; INK 4;"B"
8140 PRINT AT 17,3;"B";AT 17,26;"B";AT 17,28;"B";AT 17,30; INK 4;"B"
8150 PRINT AT 16,28;"B";AT 16,30; INK 4;"B"
8160 PRINT AT 15,30;"B"
8200 RETURN
8500 REM a hattyu,fecske , es a szunyog UDG-i
9000 FOR n=USR "a" TO USR "h"+7
9010 READ v: POKE n,v: NEXT n
9020 DATA 0,0,224,112,60,62,31,15
9030 DATA 0,48,120,104,124,102,48,56
9040 DATA 7,231,55,31,143,255,127,63
9050 DATA 204,238,255,255,255,254,252,248
9060 DATA 0,0,20,8,0,0,0,0
9065 DATA 16,16,16,16,16,16,16,16
9070 DATA 16,56,56,56,56,56,56,16
9080 DATA 1,5,106,220,60,2,1,0
9090 RETURN
9999 SAVE"hattyu":SAVE "hattyuUDG" CODE USR "a",8*8
RÓKA ÉS A LIBÁK (LUDAK ZX81)

1 REM NYITRAISOFT 2004
2 REM JATEKGYAROS 1982-BEN ZX81-EN 2004-BEN SPECATULATOR EMULATORON
3 BORDER 1: PAPER 1: INK 7: CLS
5 LET A$="ouououououououououououououououou"
6 LET B$="üýüýüýüýüýüýüýüýüýüýüýüýüýüýüýüý"
10 PRINT AT 0,0;A$;AT 20,0;A$
11 PRINT AT 1,0;B$;AT 21,0;B$
14 REM A J»TúK MAGYAR»ZATA
16 PRINT INK 6;AT 3,7;"ROKA ES A LIBAK..."
17 PRINT INK 6;AT 5,4;"EZ A JATEK EGY KOZMONDAST";AT 6,3;"IDEZ,SOK LIBA ROKAT GYOZ."
18 PRINT INK 6;AT 8,4;"A FELADAT AZ,HOGY BE KELL";AT 9,8;"KERITENI A ROKAT,";AT 10,4;"ES A SAROKBA KELL ZARNI."
20 PRINT INK 6;AT 12,4;"IRANYITAS 5=BALRA,";AT 13,14;"8=JOBBRA";AT 14,4;"VALTANI A LIBAK";AT 15,4;"KOZOTT ""V""-VEL LEHET"
22 PRINT INK 6;AT 17,1;"ELOSZOR 4 LIBAD VAN,MAJD SZA-";AT 18,1;"MUK CSOKKEN HAROMRA,KETTORE."
24 PRINT INK 2;AT 19,11;"KEZDHETJUK ?"
25 PRINT INK 7;AT 11,25;" ou ";AT 12,25;" üý "
26 PRINT INK 7;AT 13,25;"ou"; INK 2;"uy"; INK 7;"ou";AT 14,25;"üý"; INK 2;"?o"; INK 7;"üý"
27 PRINT INK 7;AT 15,25;" ou ";AT 16,25;" üý "
28 PAUSE 0
29 CLS
30 REM ROKA úS A LIBAK
40 DIM d(10,10)
50 DIM x(4): DIM y(4)
60 DIM a(4): DIM b(4)
70 GO SUB 1370
80 GO SUB 940
90 LET h=INT (RND*3)+2: GO SUB 1110
100 GO SUB 650
110 GO SUB 140
120 GO TO 100
130 IF qj>6 THEN RETURN
140 PRINT AT 21,0;"A ROKA LEP"
150 IF d(qi+2,qj+2) AND d(qi+2,qj) AND d(qi,qj+2) AND d(qi,qj) THEN GO TO 1420
160 LET m=1
170 GO SUB 410
180 IF qi+n<1 OR qi+n>8 THEN GO TO 210
190 IF d(qi+n+1,qj+m+1) THEN GO SUB 340
200 IF d(qi+n+2,qj+m+2)=1 AND d(qi+n,qj+m+2)=1 AND qj<7 AND qj>1 THEN LET m=-m
210 IF d(qi+n+1,qj+m+1) THEN GO SUB 340
220 IF oi=qi AND oj=qj THEN LET m=-m: LET n=SGN (RND-.5): GO TO 180
230 LET oi=qi: LET oj=qj
240 PRINT PAPER 7;AT qy,qx;" ";AT qy+1,qx;" "
250 LET qx=qx+n*2
260 LET qy=qy+m*2
270 PRINT PAPER 7; INK 2;AT qy,qx;"uy";AT qy+1,qx;"?o"
280 LET d(qi+n+1,qj+m+1)=2
290 LET d(qi+1,qj+1)=0
300 LET qi=qi+n
310 LET qj=qj+m
320 IF qj=8 THEN GO TO 1470
330 RETURN
340 LET n=-n
350 IF d(qi+n+1,qj+m+1)<>1 THEN RETURN
360 LET m=-m
370 IF qj<4 THEN LET n=1
380 IF d(qi+n+1,qj+m+1)<>1 THEN RETURN
390 LET n=-n
400 RETURN
410 LET n=(qi<5)-(qi>=5)
420 LET r=RND
430 IF r>.5 AND qi>3 THEN GO TO 470
440 IF qi>7 THEN GO TO 460
450 IF (d(qi+3,qj+3)=0 OR d(qi+2,qj+3)=0) AND d(qi+2,qj+2)=0 THEN LET n=-1: RETURN
460 IF qi<4 OR r>.5 THEN RETURN
470 IF (d(qi-3,qj+3)=0 OR d(qi-2,qj+3)=0) AND d(qi-2,qj+2)=0 THEN LET n=1: RETURN
480 IF r>.5 THEN GO TO 440
490 RETURN
500 LET a(hm)=a(hm)+m
510 LET b(hm)=b(hm)-1
520 IF d(a(hm)+1,b(hm)+1)<>0 THEN GO TO 560
530 LET d(a(hm)-m+1,b(hm)+2)=0
540 LET d(a(hm)+1,b(hm)+1)=1
550 GO TO 600
560 LET a(hm)=a(hm)-m
570 LET b(hm)=b(hm)+1
580 BEEP 1,-10
590 GO TO 650
600 PRINT PAPER 7;AT y(hm),x(hm); FLASH 0;" ";AT y(hm)+1,x(hm);" "
610 LET y(hm)=y(hm)-2
620 LET x(hm)=x(hm)+m*2
630 PRINT PAPER 7; INK 1;AT y(hm),x(hm); FLASH 1;"ou";AT y(hm)+1,x(hm);"üý"
640 RETURN
650 PRINT AT 21,0;"LúPúSED? ": REM 3 HELY
660 BEEP .1,6
670 LET m$=INKEY$
680 IF m$="" THEN GO TO 670
690 IF m$="v" OR m$="V" THEN GO TO 730
700 IF m$="5" THEN LET m=-1: GO TO 500
710 IF m$="8" THEN LET m=+1: GO TO 500
720 GO SUB 770
730 PRINT AT 21,15;"VALTASZ? I"
740 LET a$=INKEY$
750 IF a$="n" OR a$="N" THEN GO TO 1470
760 GO TO 650
770 GO SUB 880
780 LET hm=hm+1
790 IF hm>h THEN LET hm=1
800 GO SUB 820
810 RETURN
820 LET f=22528+x(hm)+y(hm)*32
830 POKE f,PEEK f+128
840 POKE f+1,PEEK (f+1)+128
850 POKE f+32,PEEK (f+32)+128
860 POKE f+33,PEEK (f+33)+128
870 RETURN
880 LET f=22528+x(hm)+y(hm)*32
890 POKE f,PEEK f-128
900 POKE f+1,PEEK (f+1)-128
910 POKE f+32,PEEK (f+32)-128
920 POKE f+33,PEEK (f+33)-128
930 RETURN
940 REM A T»BLA
945 PRINT AT 3,8;
950 FOR i=1 TO 4
960 FOR j=1 TO 8
970 PRINT INK 3; PAPER 7;" ÷÷";
980 IF j/4=INT (j/4) THEN PRINT : PRINT TAB 8;
990 NEXT j
1000 FOR j=1 TO 8
1010 PRINT INK 3; PAPER 7;"÷÷ ";
1020 IF j/4=INT (j/4) THEN PRINT : PRINT TAB 8;
1030 NEXT j
1040 NEXT i
1050 INK 1: PLOT 63,23: DRAW 129,0: DRAW 0,129: DRAW -129,0: DRAW 0,-129
1055 PLOT 61,21: DRAW 133,0: DRAW 0,133: DRAW -133,0: DRAW 0,-133
1060 PLOT 59,19: DRAW 137,0: DRAW 0,137: DRAW -137,0: DRAW 0,-137
1070 INK 1: FOR A=3 TO 11: PLOT 195+A,133: DRAW 0,-120: DRAW -120,0: PLOT 78,20-A: DRAW 128,0: NEXT A
1090 PRINT INK 2;AT 10,26;"BAL =5";AT 11,26;"JOBB=8"; INK 0;AT 13,26;"VALTAS"
1100 RETURN
1110 FOR i=1 TO h
1120 LET x=i*4+6
1130 PRINT INK 1; PAPER 7;AT 17,x;"ou";AT 18,x;"üý"
1140 LET d(i*2+1,9)=1
1150 LET x(i)=x
1160 LET y(i)=17
1170 LET hm=1
1180 LET a(i)=i*2
1190 LET b(i)=8
1200 NEXT i
1210 GO SUB 820
1220 LET qi=5
1230 LET qj=1
1240 LET qx=qi*2+6
1250 LET qy=3
1260 PRINT PAPER 7; INK 2;AT qy,qx;"uy";AT qy+1,qx;"?o"
1270 FOR i=1 TO 10
1280 LET d(i,1)=1
1290 LET d(1,i)=1
1300 LET d(10,i)=1
1310 LET d(i,10)=1
1320 NEXT i
1330 LET d(qi+1,qj+1)=2
1340 LET oi=0
1350 LET oj=0
1360 RETURN
1370 BORDER 4: INK 0
1380 PAPER 4
1390 CLS
1392 PRINT INK 2;AT 0,9;"ROKA "; INK 0;"ES A "; INK 1;"LIBAK";AT 1,8; INK 6;" BEKERITOS JATEK"
1400 BORDER 4
1410 RETURN
1420 PRINT INK 1;AT 21,0;"GYOZTEL,ELFOGTAD A ROKAT!! "
1430 FOR n=0 TO 10
1440 BEEP .5,n
1450 NEXT n
1460 GO TO 1510
1470 PRINT INK 2;AT 21,0;"A ROKA KIJUTOTT,ES GYOZOTT.... "
1480 FOR n=0 TO -10 STEP -1
1490 BEEP .5,n
1500 NEXT n
1510 INPUT "MEGEGYSZER ?";a$
1520 IF a$="i" OR a$="I" THEN RUN
1530 CLS
1540 PRINT AT 10,5;"SOK SIKERT KIVANOK,";AT 12,9;"LEGKOZELEBB..."
ITT VAN AZ 1982-BEN KESZULT ZX81-ES OS-VALTOZAT,MELY NYOMTATASBAN MEGJELENT A BITLET-OTLET 1984-ES SZAMABAN
1 REM NYITRAI LASZLO 1982
5 REM DISZNO ES A LUDAK LOGIKAI JATEK
6 LET B$="éééééééééééééééééééééééééééééééé"
8 LET C$=B$(1)+" "+B$(1)
10 PRINT AT 0,0;B$;AT 21,0;B$
12 FOR N=1 TO 20
14 PRINT AT N,0;C$
15 NEXT N
16 PRINT AT 3,5;"DISZNO ES A LUDAK"
17 PRINT AT 5,2;"EZ A JATEK EGY KOZMONDAST";AT 6,1;" IDEZ,SOK LUD DISZNOT GYOZ."
18 PRINT AT 8,2;"A FELADAT AZ,HOGY BE KELL";AT 9,4;"KERITENI A DISZNOT,";AT 10,2;"ES A SAROKBA KELL ZARNI."
20 PRINT AT 12,2;"IRANYITAS A KURZORRAL,";AT 13,5;"<-BALRA-JOBBRA->,";AT 14,2;"VALTANI A LUDAK KOZOTT ";AT 15,2;"A 7-ES NYILLAL LEHET."
22 PRINT AT 17,11;"KEZDHETJUK ?"
24 PAUSE 4E4
25 CLS
26 PRINT AT 1,5;"DISZNO ES A LUDAK"
29 PRINT AT 14,10;"á????????â ";AT 5,10;"ä????????? "
30 FOR I=1 TO 4
40 PRINT TAB 10;"? ? ? ? ??";TAB 10;"?? ? ? ? ?"
50 NEXT I
55 REM A DISZNO INDULO HELYZETE KOZEPROL
60 LET P=PEEK 16396+256*PEEK 16397+33*6+12
70 LET H=P+3
80 POKE H,151
85 REM IRANYITAS
90 PRINT AT 8,24;"5 8";AT 9,20;"BALRA-JOBRA";AT 11,21;"7";TAB 23;"MASIK LUD";AT 14,21;"K-KILEPES"
95 REM A LUDAK A MEMORIABAN
100 DIM A(4)
110 FOR I=1 TO 4
120 LET A(I)=P+7*33+2*I-2
129 REM A LUD KODJA "L"
130 POKE A(I),177
140 NEXT I
150 LET L=H
160 FOR I=1 TO 4
165 REM ELLENORZES,HOGY URES KOCKA VAN-E
170 IF PEEK (A(I)-2)=128 AND PEEK (A(I)+32)=128 AND PEEK (A(I)-34)=128 THEN LET L=A(I)-1
180 IF PEEK (A(I)+2)=128 AND PEEK (A(I)+34)=128 AND PEEK (A(I)-32)=128 THEN LET L=A(I)+1
190 NEXT I
200 LET R=33+SGN (L-H-33*(INT ((L-P)/33)-INT ((H-P)/33)))
210 IF R=33 THEN LET R=32+2*(PEEK (H+34)=128)
220 IF PEEK (H+R)<>128 THEN LET R=R-66
230 IF PEEK (H+R)<>128 THEN LET R=-R
240 IF PEEK (H+R)<>128 THEN LET R=R-66
250 IF PEEK (H+R)<>128 THEN GOTO 470
260 POKE H,128
270 LET H=H+R
275 REM A DISZNO KODJA "D"
280 POKE H,169
285 REM A DISZNO KITORT,ES ELMENEKULT
290 IF H>P+230 THEN GOTO 450
300 FOR I=1 TO 4
310 POKE A(I),364-PEEK A(I)
320 LET I$=INKEY$
325 REM LEPUNK BALRA ES JOBBRA
330 IF I$="5" OR I$="8" THEN GOTO 390
335 REM EZ BIZONY A FELADAS
340 IF I$="K" THEN GOTO 450
345 REM MASIK LUDDAL LEPUNK
350 IF I$<>"7" THEN GOTO 310
360 POKE A(I),177
370 NEXT I
380 GOTO 300
385 REM CSAK EGYET LEPHETUNK
390 LET R=-34+2*(I$="8")
400 IF PEEK (A(I)+R)<>128 THEN GOTO 310
410 POKE A(I),128
420 LET A(I)=A(I)+R
430 POKE A(I),CODE "L"
435 REM KERGETODZUNK
440 GOTO 150
450 PRINT AT 16,5;"A DISZNO MEGSZOKOTT"
455 PAUSE 4E4
457 REM UJABB PROBA
458 PRINT AT 16,5;" "
460 GOTO 483
465 REM HA SIKERULT MEGFOGNUNK, MI GYOZTUNK
470 PRINT AT 16,3;"A LUDAK DISZNOT GYOZTEK"
480 PAUSE 4E4
483 PRINT
485 PRINT " MEGEGYSZER ? I/ENTER-T"
486 INPUT A$
487 IF A$<>"I" THEN NEW
488 GOTO 25
500 SAVE "LUDAK"
SÁRGA TENGERALATTJÁRÓ - BEATLES UTÁN
SZABADON PROGRAMOZVA!!!

A SÁRGA II. tengeralattjárót irányítva meg kell keresni az elrejtett kincses ládákat, majd ki kell a polip fogságából szabadítani a SÁRGA I-et, irányítás a kurzorral, három életed van...
A program érdekessége, hogy képernyőként új-és új karakterkészletet használ, BASIC-ból így átlépve a bűvös 21 karakteres használatot, a programot különösképpen nem lassítja le, váltásoknál kell csak 1-2 másodpercet várni, míg az új képernyőkép megjelenik.
0 REM ******SARGA******
*****************
*TENGERALATTJARO*
*****************
**NYITRAI LASZLO*
** 2001 JANUAR **
*****************
*****************
1 REM sarga tengeralattjaro BEATLES rajzfilm zeneje
2 DATA 0.75,11,0.25,12,2,14,0.75,14,0.25,11,0.75,9,0.25,11,3,7,0.75,11,0.25,11,0.75,9,0.25,7,1,4,0.75,4,0.25,4,0.75,11,0.25,11
3 DATA 3,9,0.25,11,0.75,12,2,14,0.75,14,0.25,11,0.25,9,0.75,11,3,7,0.75,11,0.25,11,0.75,9,0.25,7,1,4,0.75,4,0.25,4,0.75,11,0.25,11,3,9,0.75,11,0.25,12,2,14,0.75,14,0.25,11,0.25,9,0.75,11,3,7,0.75,11,0.25,11,0.75,9,0.25,7,1,4,0.75,4,0.25,4,0.5,11,0.75,11
4 DATA 3,9,0.75,11,0.25,12,2,14,0.75,14,0.25,11,0.75,9,0.25,11,3,7,0.25,11,0.75,9,0.25,11,3,7,0.25,11,0.75,11,0.25,9,0.5,7,1,4,0.75,11,0.25,11,4,9
5 DATA 1,14,1,14,1,14,0.75,14,0.25,16,0.75,9,0.25,9,0.75,9,0.25,9,2,9,0.75,9,0.25,9,0.75,9,0.25,9,2,9,0.75,7,0.25,7,0.75,7,0.25,7,2,7
6 DATA 1,14,1,14,1,14,0.75,14,0.25,16,0.75,9,0.25,9,0.75,9,0.25,9,2,9,0.75,9,0.25,9,0.75,9,0.25,9,2,9,0.75,7,0.25,7,0.75,7,0.25,7,2,7
7 DATA 1,14,1,14,1,14,0.75,14,0.25,16,0.75,9,0.25,9,0.75,9,0.25,9,2,9,0.75,9,0.25,9,0.75,9,0.25,9,2,9,0.75,7,0.25,7,0.75,7,0.25,7,2,7
8 DATA 1,14,1,14,1,14,0.75,14,0.25,16,0.75,9,0.25,9,0.75,9,0.25,9,2,9,0.75,9,0.25,9,0.75,9,0.25,9,2,9,0.75,7,0.25,7,0.75,7,0.25,7,2,7
10 FOR f=1 TO 150
11 READ a,b: BEEP a/3,b
12 NEXT f
15 REM NYITRAIL felirat es a magyarazat taviratban
30 RANDOMIZE USR 60000: CLS : GO SUB 9900: INK 1: RANDOMIZE USR 60094: GO TO 75
31 LET a$="...TAVIRAT-A FEDELZETRE: MOST ö÷o EGY TENG uúuERA- LATTJARO ": RETURN
32 LET a$="KAPITANY VAGYA SARGA II.- VEL BEJAROD A TENGEREK MELYET. ": RETURN
33 LET a$=" 4 ARANNYAL TELI LADIKOT KELL MEGKERESNED EGY SOTETBARLANGBAN, MELYBE NEHEZ ": RETURN
34 LET a$="LESZ BEHATOL-NI,MERT LAN- COS HORGONYOKVEDIK A BE-JARATOT,AHOL A LADIKA VAN ": RETURN
35 LET a$=" IRANYITAS: KEMPSTON- JOYSTICK ": RETURN
36 LET a$=" VAGY : KURZOR NYILAK (5/6/7/8) HASZNALATA. ": RETURN
37 LET a$="0 - TUZ CSAK EGYSZER,AZ ORIASPOLIP ELLEN ": RETURN
38 LET a$="A LADIKAT3 KERESVE MINDEFELE TENGERI SZORNYEKET FOGSZ LATNI. ": RETURN
39 LET a$="KI KELL SZABADITANOD A SARGA I.-ET A POLIP KARJAIBOL....... SZERZO: NY.L.": RETURN
75 FOR s=1 TO 9: GO SUB ad: LET ad=ad+1
80 FOR d=1 TO 6: FOR f=1 TO 13: BEEP 0.02,30: PRINT AT 9+d,16+f;a$(f): NEXT f: LET a$=a$(14 TO ): NEXT d
82 PAUSE 50: NEXT s
83 CLS : PRINT INK 2;AT 11,17;"KEMPSTON- ";AT 12,17;"JOYSTICK ";AT 13,17;" (I/N)"
84 IF INKEY$<>"" THEN GO TO 84
85 IF INKEY$= "" THEN GO TO 85
86 IF INKEY$= "I" OR INKEY$="i" THEN LET joy=0
87 PAUSE 100
88 PAPER 5: INK 6: CLS
89 GO TO pos
99 STOP
100 IF NOT joy THEN GO TO 150
101 REM iranyitas Kempston es kurzor
105 IF INKEY$="8" THEN GO SUB 200
110 IF INKEY$="5" THEN GO SUB 300
120 IF INKEY$="6" THEN GO SUB 400
130 IF INKEY$="7" THEN GO SUB 500
140 RETURN
150 IF IN 31=1 THEN GO SUB 200
160 IF IN 31=2 THEN GO SUB 300
170 IF IN 31=4 THEN GO SUB 400
180 IF IN 31=8 THEN GO SUB 500
190 RETURN
200 LET b=b+1: IF b=28 THEN GO TO 600
205 BEEP .0005,46: LET li=0
206 REM mozgatas es utkozesek
210 PRINT AT a,b-1; INK 6;" ö÷o";AT a+1,b-1;" uúu"
220 LET att=ATTR (a,b+3)
221 IF att=111 THEN GO TO 900
222 IF att<>42 AND att<>45 AND att<>46 THEN GO TO 800
225 LET att=ATTR (a+1,b+3)
226 IF att=111 THEN GO TO 900
227 IF att<>42 AND att<>46 AND att<>45 THEN GO TO 800
230 RETURN
300 LET b=b-1: IF b=1 THEN GO TO 650
305 BEEP .001,39: LET li=1
310 PRINT AT a,b; INK 6;"üý? ";AT a+1,b;"yµ¶ "
320 LET att=ATTR (a,b-1)
321 IF att=111 THEN GO TO 900
322 IF att<>42 AND att<>46 AND att<>45 THEN GO TO 800
325 LET att=ATTR (a+1,b-1)
326 IF att=111 THEN GO TO 900
327 IF att<>46 AND att<>42 AND att<>45 THEN GO TO 800
330 RETURN
400 LET a=a+1: IF a=20 THEN GO TO 700
405 BEEP .001,35
410 IF li=1 THEN GO TO 415
412 PRINT AT a,b; INK 6;"ö÷o";AT a+1,b;"uúu";AT a-1,b;" ": GO TO 420
415 PRINT AT a,b; INK 6;"üý?";AT a+1,b;"yµ¶";AT a-1,b;" "
420 LET att=ATTR (a+2,b+1): IF att<>42 AND att<>46 AND att<>45 THEN GO TO 800
430 RETURN
500 LET a=a-1: IF a<=1 THEN GO TO 750
505 BEEP .0005,49
510 IF li=1 THEN GO TO 515
512 PRINT AT a,b; INK 6;"ö÷o";AT a+1,b;"uúu";AT a+2,b;" ": GO TO 520
515 PRINT AT a,b; INK 6;"üý?";AT a+1,b;"yµ¶";AT a+2,b;" "
520 LET att=ATTR (a-1,b+1): IF att<>42 AND att<>46 AND att<>45 THEN GO TO 800
530 RETURN
600 LET pos=pos+100
610 LET b=2
620 GO TO pos
650 LET pos=pos-100
660 LET b=27
670 GO TO pos
700 LET pos=pos+800
710 LET a=1
720 GO TO pos
750 LET pos=pos-800
760 LET a=19
770 GO TO pos
800 IF li=1 THEN GO TO 802
801 FOR f=1 TO 30: PRINT AT a,b; INK 6;"ö÷o";AT a+1,b;"uúu";AT a,b;" ";AT a+1,b;" ": BEEP .005,f: NEXT f: GO TO 810
802 FOR f=1 TO 30: PRINT AT a,b; INK 6;"üý?";AT a+1,b;"yµ¶";AT a,b;" ";AT a+1,b;" ": BEEP .005,f: NEXT f:
810 INK 0: FOR f=15 TO 0 STEP -1: PLOT b*8,(22-a)*8-f: DRAW 24,0: NEXT F
815 INK 6
820 PAPER 5: INK 0: CLS
825 REM utkozesek utani utasitasok
830 PRINT AT 6,10; INK 6;"üý?";AT 7,10;"yµ¶"; INK 0;"3"; INK 7;"......"; INK 2;AT 10,8;"A KINCSKERESEST";AT 12,8;"FOLYTATNOD KELL!"; INK 1;AT 14,8;"A MASIK";AT 16,8;"TENGERALATTJAROT,";AT 18,8; INK 2; FLASH 1;"IS KERESD MEG!"
840 PRINT INK 1;AT 20,8; FLASH 0;"FOLYTATOD ?"; INK 2;"(I/N)"
845 IF INKEY$<>"" THEN GO TO 845
846 IF INKEY$="" THEN GO TO 846
847 IF INKEY$="i" OR INKEY$="I" THEN GO TO 890
848 CLS : FLASH 1: PRINT INK 2;AT 10,8;"VISZONTLATASRA!": FLASH 0
849 STOP
890 CLS : GO SUB 9900: PAUSE 100: CLS : GO TO 83
900 PAPER 3: CLS : PRINT AT 6,4; INK 0;"MEGTALALTAD A KINCSES-";AT 8,4;"LADAT,DE A SARGA I.-ET";AT 10,4;"MEG KI KELL";AT 12,4;"SZABADITANOD, ";i$;" MEG A HAJO!": PAUSE 350
915 LET u(q)=0
917 IF i$="nincs" THEN GO TO pos
918 LET i=i+1
919 INK 7
921 REM i=a kincsesladak szama
925 IF i=2 OR i=3 OR i=4 THEN GO TO 950
927 CLS : PRINT AT 4,4; INK 0;"A JAVITAST SIKERULT ";AT 6,4;"IDORE BEFEJEZNI, ";AT 8,4;"HAJOD UJ NEVE SARGA II.": LET fire=1: GO TO 960
950 CLS : PRINT AT 6,4; INK 0;"SIKERULT MAR ";5-i;AT 7,4;"LADAT MEGTALALNI";AT 8,4;"DE JO LENNE MEG ";AT 9,4;"FOLYTATNI A KUTATAST."
960 INK 6: FOR f=1 TO 20: BEEP f/20,f: NEXT f: GO TO pos+100
1000 DATA 255,252,254,252,255,252,255,255,255,34,34,85,85,136,136,255,0,0,41,255,239,0,0,0
1001 RESTORE 1000: FOR l=USR "n" TO USR "p"+7: READ m: POKE l,m: NEXT l: REM N=¸ M=3 O=1 P=o
1002 PAPER 5: CLS : INK 3: FOR l=0 TO 21: PRINT AT l,0;"i";AT l,1;"i" AND l>1;AT l,2;"i" AND l>8;AT l,3;"i" AND l>19: NEXT l
1003 INK 2: FOR l=0 TO 21: PRINT AT l,1;"¸" AND l<3 AND l>=0;AT l,2;"¸" AND l<9 AND l>2;AT l,3;"¸" AND l<20 AND l>8;AT l,4;"¸" AND l<=21 AND l>19: NEXT l
1004 GO SUB 6000: PRINT AT 10,4; INK 0; OVER 1;"1111111"; INK 1; OVER 1;"ooooooooooooooooooooo";AT 15,4; INK 0; OVER 1;"111111111111": IF iop=0 THEN PRINT AT a,b; INK 6;"ö÷o";AT a+1,b;"uúu": LET iop=1
1006 LET att=46
1007 GO SUB 100: GO TO 1007
1100 DATA 0,0,41,255,239,0,0,0
1101 RESTORE 1100: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: REM N=¸
1102 PAPER 5: CLS : PRINT AT 10,0; INK 1; OVER 1;"¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸": GO SUB 9100: GO SUB 6000
1104 GO SUB 100: GO TO 1104
1200 DATA 0,0,41,255,239,0,0,0
1201 RESTORE 1200: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: REM N=¸
1202 PAPER 5: CLS : PRINT AT 10,0; INK 1; OVER 1;"¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸": GO SUB 9100: GO SUB 6000
1203 GO SUB 100: GO TO 1203
1300 DATA 0,0,41,255,239,0,0,0,255,127,63,255,127,255,63,127,255,252,254,252,255,252,255,255
1301 RESTORE 1300: FOR f=USR "n" TO USR "p"+7: READ g: POKE f,g: NEXT f: REM N=¸ O=1 P=o
1302 PRINT AT 3,14; INK 2; OVER 1;"1"; INK 3;"i"; INK 2;"o";AT 4,14;"o"; INK 3;"iiii"; INK 2;"o";AT 5,13;"1"; INK 3;"iiiiiiii"; INK 2;"o";AT 6,12;"1"; INK 3;"iiiiiiiii"; INK 2;"o";AT 7,12;"1"; INK 3;"iiiiiiiii"; INK 2;"o";AT 8,12;"1"; INK 3;"iiiiiiiii"; INK 2;"o"
1303 GO SUB 6000: FOR f=9 TO 16: PRINT AT f,12; INK 2;"1"; INK 3;"iiiiiiiiiii"; INK 2;"o": NEXT f: PRINT AT 10,0; INK 1;"¸¸¸¸¸¸¸¸¸¸¸¸";AT 10,25;"¸¸¸¸¸¸¸": FOR f=17 TO 21: PRINT AT f,10; INK 2;"1"; INK 3;"iiiiiiiiiiiiiiiiiiii"; INK 2;"o": NEXT f
1304 IF u(9)=2 THEN LET i$="nincs"
1305 IF u(9)=1 THEN LET i$="megvan"
1306 IF u(9)<>0 THEN PRINT AT 14,25; BRIGHT 1; INK 0;"3": BRIGHT 0: LET q=9
1310 GO SUB 100: GO TO 1310
1400 DATA 0,0,41,255,239,0,0,0
1401 RESTORE 1400: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: REM N=¸
1402 PAPER 5: CLS : PRINT AT 10,0; INK 1; OVER 1;"¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸": GO SUB 9100: GO SUB 6000
1403 GO SUB 100: GO TO 1403
1500 DATA 0,0,41,255,239,0,0,0
1501 RESTORE 1500: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: REM N=¸
1502 PAPER 5: CLS : PRINT AT 10,0; INK 1; OVER 1;"¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸": GO SUB 9100: GO SUB 6000
1503 GO SUB 100: GO TO 1503
1600 DATA 0,0,41,255,239,0,0,0
1601 RESTORE 1600: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: REM N=¸
1602 PAPER 5: CLS : PRINT AT 10,0; INK 1; OVER 1;"¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸": GO SUB 9100: GO SUB 6000
1603 GO SUB 100: GO TO 1603
1700 DATA 0,0,41,255,239,0,0,0,255,127,63,255,127,255,63,127
1701 RESTORE 1700: FOR f=USR "n" TO USR "o"+7: READ g: POKE f,g: NEXT f: REM N=¸ O=1
1702 PAPER 5: CLS : PRINT AT 10,0; INK 1;"¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸": FOR f=8 TO 21: PRINT AT f,28; INK 3;"1"; INK 2;"iii": NEXT f: GO SUB 9100: GO SUB 6000
1703 IF u(4)=2 THEN LET i$="nincs"
1704 IF u(4)=1 THEN LET i$="megvan"
1705 IF u(4)<>0 THEN PRINT AT 12,27; BRIGHT 1; INK 0;"3": BRIGHT 0: LET q=4
1710 GO SUB 100: GO TO 1710
1800 DATA 255,252,254,252,255,252,255,255
1801 RESTORE 1800: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS : REM N=¸
1802 FOR f=0 TO 21: PRINT AT f,0; INK 3;"iii"; INK 2; OVER 1;"¸": NEXT f: GO SUB 6000
1803 LET re=9200
1807 GO SUB re
1810 GO SUB 100: GO TO 1807
1900 PAPER 5: CLS : GO SUB 6000
1901 LET re=8000
1905 GO SUB re
1910 GO SUB 100: GO TO 1902
2000 PAPER 5: CLS : GO SUB 6000
2001 LET re=8000
2005 GO SUB re
2010 GO SUB 100: GO TO 2002
2100 DATA 255,127,63,255,127,255,63,127
2101 RESTORE 2100: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS : REM N=¸
2102 GO SUB 6000: FOR f=0 TO 7: PRINT AT f,12; INK 2;"¸"; INK 3;"iiiiiiiiiiiiiiiiiii": NEXT f: FOR f=8 TO 16: PRINT AT f,27; INK 2;"¸"; INK 3;"iiii": NEXT f: FOR f=17 TO 21: PRINT AT f,12; INK 2;"¸"; INK 3;"iiiiiiiiiiiiiiiiiii": NEXT f
2103 LET re=9050
2104 IF u(2)=2 THEN LET i$="nincs"
2105 IF u(2)=1 THEN LET i$="megvan"
2106 IF u(2)<>0 THEN PRINT AT 15,26; BRIGHT 1; INK 0;"3": BRIGHT 0: LET q=2
2110 GO SUB re
2120 GO SUB 100: GO TO 2110
2200 DATA 255,252,254,252,255,252,255,255
2201 RESTORE 2200: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
2202 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,0; INK 3;"iii"; INK 2; OVER 1;"1": NEXT f
2203 GO SUB 9000
2204 GO SUB 100: GO TO 2204
2300 PAPER 5: CLS : GO SUB 6000
2305 LET re=9200
2307 GO SUB re
2310 GO SUB 100: GO TO 2307
2400 PAPER 5: CLS : GO SUB 6000
2401 LET re=8050
2405 GO SUB re
2410 GO SUB 100: GO TO 2402
2500 DATA 255,127,63,255,127,255,63,127
2501 RESTORE 2500: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
2502 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,28; INK 2; OVER 1;"o"; INK 3;"iii": NEXT f
2503 GO SUB 9000
2504 GO SUB 100: GO TO 2504
2600 DATA 255,252,254,252,255,252,255,255
2601 RESTORE 2600: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
2602 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,0; INK 3;"iii"; INK 2;"¸";AT f,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii" AND f>=19: NEXT f
2603 IF u(5)=2 THEN LET i$="nincs"
2604 IF u(5)=1 THEN LET i$="megvan"
2605 IF u(5)<>0 THEN PRINT AT 12,4; BRIGHT 1; INK 0;"3": BRIGHT 0: LET q=5
2610 GO SUB 100: GO TO 2610
2700 DATA 255,252,254,252,255,252,255,255
2701 RESTORE 2700: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
2702 GO SUB 6000: PRINT AT 19,0; INK 3;"iiiiiiiiiiiiiiiiii"; INK 2;"o";AT 20,0; INK 3;"iiiiiiiiiiiiiiiiiii"; INK 2;"o";AT 21,0; INK 3;"iiiiiiiiiiiiiiiiiiiii"; INK 2;"o"
2703 LET re=9200
2705 GO SUB re
2710 GO SUB 100: GO TO 2705
2800 PAPER 5: CLS : GO SUB 6000
2801 LET re=8050
2805 GO SUB re
2810 GO SUB 100: GO TO 2802
2900 DATA 255,127,63,255,127,255,63,127
2901 RESTORE 2900: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
2902 GO SUB 6000: FOR f=0 TO 7: PRINT AT f,12; INK 2;"¸"; INK 3;"iiiiiiiiiiiiiiiiiii": NEXT f: FOR f=8 TO 16: PRINT AT f,27; INK 2;"¸"; INK 3;"iiii": NEXT f: FOR f=17 TO 21: PRINT AT f,0; INK 2;"¸"; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii": NEXT f
2903 LET re=9050
2904 IF u(1)=2 THEN LET i$="nincs"
2905 IF u(1)=1 THEN LET i$="megvan"
2906 IF u(1)<>0 THEN PRINT AT 15,26; BRIGHT 1; INK 0;"3": BRIGHT 0: LET q=1
2910 GO SUB re
2920 GO SUB 100: GO TO 2910
3000 DATA 255,252,254,252,255,252,255,255
3001 RESTORE 3000: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
3002 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,0; INK 3;"iii"; INK 2; OVER 1;"1": NEXT f
3003 LET re=9200
3005 GO SUB re
3010 GO SUB 100: GO TO 3005
3100 PAPER 5: CLS : GO SUB 6000
3101 LET re=8000
3105 GO SUB re
3110 GO SUB 100: GO TO 3102
3200 PAPER 5: CLS : GO SUB 6000
3201 LET re=9200
3205 GO SUB re
3210 GO SUB 100: GO TO 3205
3300 DATA 255,127,63,255,127,255,63,127
3301 RESTORE 3300: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
3302 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,28; INK 2; OVER 1;"o"; INK 3;"iii": NEXT f
3303 LET re=8050
3305 GO SUB re
3310 GO SUB 100: GO TO 3305
3400 DATA 255,252,254,252,255,252,255,255
3401 RESTORE 3400: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
3402 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiii" AND f<=2; INK 2;"¸" AND f<=2 AND f>=0;AT f,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiii" AND f>=3 AND f<=5; INK 2;"¸" AND f>=3 AND f<=5;AT f,0; INK 3;"iiiiiiiiiiiiiiii" AND f>=6 AND f<=8; INK 2;"¸" AND f>=6 AND f<=8;AT f,0; INK 3;"iii" AND f>=9; INK 2;"¸" AND f>=9: NEXT f
3403 IF u(6)=2 THEN LET i$="nincs"
3405 IF u(6)=1 THEN LET i$="megvan"
3406 IF u(6)<>0 THEN PRINT AT 12,4; INK 0; BRIGHT 1;"3": BRIGHT 0: LET q=6
3410 GO SUB 100: GO TO 3410
3500 DATA 255,252,254,252,255,252,255,255
3501 RESTORE 3500: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
3502 GO SUB 6000: PRINT AT 0,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiii"; INK 2;"1";AT 1,0; INK 3;"iiiiiiiiiiiiiiiiiiiii"; INK 2;"1";AT 2,0; INK 3;"iiiiiiiiiiiiiiiiiii"; INK 2;"1"
3503 LET re=8050
3505 GO SUB re
3510 GO SUB 100: GO TO 3505
3600 DATA 255,127,63,252,127,255,63,127
3601 RESTORE 3600: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
3602 GO SUB 6000: LET w$="iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii": PRINT AT 0,31; INK 2;"¸": FOR f=1 TO 21: PRINT AT f,30-f; INK 2;"¸"; INK 3;w$(31-f TO 31): NEXT f
3603 GO SUB 100: GO TO 3603
3800 DATA 225,252,254,252,255,252,255,255
3801 RESTORE 3800: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
3802 GO SUB 6000: LET w$="iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii": PRINT AT 0,0; INK 2;"¸": FOR f=1 TO 21: PRINT AT f,0; INK 3;w$(1 TO f): NEXT f
3803 LET re=8050
3805 GO SUB re
3810 GO SUB 100: GO TO 3805
3900 PAPER 5: CLS : GO SUB 6000
3901 GO SUB 9000
3905 GO SUB 100: GO TO 3905
4000 PAPER 5: CLS : GO SUB 6000
4001 LET re=9200
4005 GO SUB re
4010 GO SUB 100: GO TO 4005
4100 DATA 255,127,63,255,127,255,63,127
4101 RESTORE 4100: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
4102 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,28; INK 2; OVER 1;"¸"; INK 3;"iii": NEXT f
4103 GO SUB 9000
4104 GO SUB 100: GO TO 4104
4200 DATA 255,252,254,252,255,252,255,255
4201 RESTORE 4200: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
4202 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,0; INK 3;"iii"; INK 2; OVER 1;"¸": NEXT f
4203 LET re=8050
4204 GO SUB re
4210 GO SUB 100: GO TO 4204
4300 PAPER 5: CLS : GO SUB 6000
4301 LET re=8050
4305 GO SUB re
4310 GO SUB 100: GO TO 4302
4400 DATA 255,127,63,252,127,255,63,127
4401 RESTORE 4400: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
4402 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,12; INK 2;"¸"; INK 3;"iiiiiiiiiiiiiiiiiii": NEXT f
4403 GO SUB 100: GO TO 4403
4500 PAPER 5: CLS : GO SUB 6000: PRINT AT 0,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii": FOR f=2 TO 21: PRINT AT f,0; INK 3;"ii";AT f,30;"ii": NEXT f: INK 0
4501 PLOT 65,90: DRAW -6,0: DRAW -9,2: DRAW -19,18: DRAW -4,9: DRAW 0,10: DRAW 5,10: DRAW 12,4: DRAW 13,-4: DRAW 19,-20: DRAW 4,-9: DRAW 0,-4
4502 PLOT 80,105: DRAW 15,-11: DRAW 33,25: DRAW 9,19: DRAW 8,3: DRAW 17,0: DRAW 5,-2: DRAW 6,-6: DRAW -1,-10: DRAW -9,-6: DRAW -15,-3: DRAW -6,2: DRAW 0,3: DRAW 23,3: DRAW 3,9: DRAW -3,6: DRAW -12,1: DRAW -13,-3: DRAW -9,-23: DRAW -29,-24
4503 PLOT 100,87: DRAW 13,2: DRAW 29,0: DRAW 52,19: DRAW 12,1: DRAW 10,-3: DRAW 7,-9: DRAW -3,-4: DRAW -5,9: DRAW -8,3: DRAW -12,-3: DRAW -14,-7: DRAW -17,-5: DRAW -30,-4: DRAW -33,-1
4504 DRAW 25,-3: DRAW 52,4: DRAW 21,7: DRAW 10,8: DRAW 0,-6: DRAW -5,-7: DRAW -7,-5: DRAW -60,-8: DRAW -25,4: DRAW -12,1
4505 DRAW 10,-2: DRAW 49,-18: DRAW 15,1: DRAW 14,8: DRAW 5,0: DRAW 23,5: DRAW 5,-4: DRAW -3,-3: DRAW -12,2: DRAW -11,-4: DRAW -12,-12: DRAW -8,0: DRAW -67,18: DRAW -10,-2
4506 DRAW 2,-2: DRAW 9,-1: DRAW 72,-32: DRAW 11,2: DRAW 11,6: DRAW 14,0: DRAW 3,-2: DRAW -3,-4: DRAW -8,2: DRAW -10,-2: DRAW -11,-7: DRAW -7,1: DRAW -84,34: DRAW -4,0
4507 DRAW 110,-56: DRAW 10,0: DRAW 0,-3: DRAW -12,-1: DRAW -15,3: DRAW -12,5: DRAW -21,15: DRAW -17,6: DRAW -36,22: DRAW -13,4
4508 DRAW 14,-9: DRAW 17,-19: DRAW 35,-19: DRAW 9,-4: DRAW -1,-6: DRAW -26,17: DRAW -16,8: DRAW -8,5: DRAW -10,14: DRAW -13,9
4509 DRAW 0,-20: DRAW 8,-9: DRAW 29,-15: DRAW -1,-3: DRAW -18,6: DRAW -13,6: DRAW -8,11: DRAW -2,11: DRAW 1,16: DRAW -4,11: DRAW -12,10: DRAW -3,10
4510 CIRCLE 55,105,3: CIRCLE 65,115,3: PLOT 40,110: DRAW 0,20: DRAW 0,-10: DRAW -10,0: DRAW 20,0: CIRCLE 40,120,2: CIRCLE 40,120,5: CIRCLE 40,120,11
4515 PRINT AT 5,18; OVER 1; INK 6;"üý?";AT 6,18;"yµ¶"; OVER 0
4525 LET fire=1
4526 IF INKEY$="0" AND fire=1 OR IN 31=16 AND fire=1 THEN GO TO 4550
4530 GO SUB 100: GO TO 4525
4550 INK 0: FOR f=40 TO 120: BEEP 0.05,f/3: PLOT 40,f: DRAW 4,-12: DRAW -4,2: DRAW -4,-2: DRAW 4,12: PLOT 35,f-18: INK 5: DRAW 15,0: INK 0: NEXT f
4560 FOR f=1 TO 200: INK 5: BEEP .002,f/4: LET xd=INT (RND*12)+5: LET yd=INT (RND*24)+4: PRINT AT xd,yd;"i": NEXT f
4565 FOR f=18 TO 8 STEP -1: BEEP .05,-f: PRINT AT 23-f,f; INK 6;"üý? ";AT 24-f,f;"yµ¶";AT 22-f,f; INK 5;"iiii": NEXT f
4566 FOR f=1 TO 15: FOR q=0 TO 7: BEEP f/500,q: PAUSE 1: BORDER q: NEXT q: NEXT f
4570 FOR k=1 TO 5: FOR f=1 TO 7: PAPER f: BORDER f: CLS : NEXT f: NEXT k
4572 PRINT AT 3,6; INK 2; INVERSE 1;" S I K E R U L T "; INK 1;AT 5,3;"SIKERULT......SIKERULT"; INK 3;AT 8,7; INVERSE 0;"KISZABADITOTTAD"; PAPER 1; INK 6;AT 10,5;"AZ ELFOGOTT 'SARGA I.'"; PAPER 7; INK 2;AT 12,5;"TENGERALATTJAROT!"; INK 1;AT 16,5;" A JATEKNAK VEGE!!"
4580 DATA 0.1,1,0.1,3,0.1,3,0.1,3,0.1,2,0.1,4,0.1,6,0.1,6,0.1,6,0.1,5,0.2,3,0.1,5,0.1,3,0.1,4,0.1,4,0.1,2,0.1,1: RESTORE 4580: FOR f=1 TO 17: READ a,b: BEEP a*1.27,b*2: NEXT f
4581 STOP
4600 DATA 255,252,254,252,255,252,255,255
4601 RESTORE 4600: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
4602 GO SUB 6000: FOR f=0 TO 7: PRINT AT f,0; INK 3;"iiiiiiiiiiiiiiiiiiiii"; INK 2;"o": NEXT f: FOR f=8 TO 21: PRINT AT f,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii": NEXT f
4603 IF u(3)=2 THEN LET i$="nincs"
4605 IF u(3)=1 THEN LET i$="megvan"
4606 IF u(3)<>0 THEN PRINT AT 6,22; INK 0; BRIGHT 1;"3"; BRIGHT 0: LET q=3
4610 GO SUB 100: GO TO 4610
4700 DATA 255,252,254,252,255,252,255,255
4701 RESTORE 4700: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
4702 GO SUB 6000: LET w$="iiiiiiiiiiiiiiiiiiiiiii": PRINT AT 8,0; INK 3;"iiii"; INK 2;"¸": FOR f=9 TO 21: PRINT AT f,0; INK 3;w$(1 TO f/2); INK 2;"¸": NEXT f
4703 LET re=8050
4705 GO SUB re
4710 GO SUB 100: GO TO 4705
4800 PAPER 5: CLS : GO SUB 6000
4801 LET re=8000
4805 GO SUB re
4810 GO SUB 100: GO TO 4802
4900 DATA 255,127,63,255,127,255,63,127
4901 RESTORE 4900: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
4902 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,28; INK 2; OVER 1;"¸"; INK 3;"iii": NEXT f
4903 LET re=9200
4905 GO SUB re
4910 GO SUB 100: GO TO 4905
5000 DATA 255,252,254,252,255,252,255,255
5001 RESTORE 5000: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
5002 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,0; INK 3;"iii"; INK 2;"¸";AT f,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii" AND f>=19: NEXT f
5003 GO SUB 9000
5004 IF u(7)=2 THEN LET i$="nincs"
5005 IF u(7)=1 THEN LET i$="megvan"
5006 IF u(7)<>0 THEN PRINT AT 17,4; INK 0; BRIGHT 1;"3"; BRIGHT 0: LET q=7
5010 GO SUB 100: GO TO 5010
5100 PAPER 5: CLS : GO SUB 6000: PRINT AT 19,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
5101 LET re=9200
5105 GO SUB re
5110 GO SUB 100: GO TO 5105
5200 DATA 255,127,63,255,127,255,63,127
5201 RESTORE 5200: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
5202 PAPER 5: CLS : GO SUB 6000: LET w$="iiiiiiiiiiiiiiiii": FOR f=0 TO 8: PRINT AT f,14+f; INK 2;"1"; INK 3;w$(1 TO 17-f): NEXT f: PRINT AT 19,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
5203 LET re=8050
5205 GO SUB re
5210 GO SUB 100: GO TO 5205
5300 PAPER 5: CLS : GO SUB 6000: FOR f=0 TO 8: PRINT AT f,0; INK 3;"ii";AT f,30;"ii": NEXT f: PRINT AT 19,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
5301 LET re=8050
5305 GO SUB re
5310 GO SUB 100: GO TO 5305
5400 DATA 0,0,41,255,239,0,0,0,255,127,63,255,127,255,63,127,255,252,254,252,255,252,255,255
5401 RESTORE 5400: FOR f=USR "n" TO USR "p"+7: READ g: POKE f,g: NEXT f
5402 PAPER 5: CLS : GO SUB 6000: FOR f=0 TO 4: PRINT AT f,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii": NEXT f: FOR f=5 TO 8: PRINT AT f,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiii"; INK 2;"o": NEXT f: FOR f=9 TO 15: PRINT AT f,9; INK 2;"1"; INK 3;"iiiiiiiiiii"; INK 2;"o": NEXT f: FOR f=19 TO 21: PRINT AT f,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii": NEXT f
5403 GO SUB 100: GO TO 5403
5500 DATA 255,252,254,252,255,252,255,255
5501 RESTORE 5500: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
5502 GO SUB 6000: FOR f=0 TO 4: PRINT AT f,0; INK 3;"iiiiiiiiii"; INK 2;"o": NEXT f: PRINT AT 19,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
5503 LET re=8050
5505 GO SUB re
5510 GO SUB 100: GO TO 5505
5600 PAPER 5: CLS : GO SUB 6000: PRINT AT 19,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"
5601 LET re=8050
5605 GO SUB re
5610 GO SUB 100: GO TO 5602
5700 DATA 255,127,63,255,127,255,63,127
5701 RESTORE 5700: FOR f=USR "n" TO USR "n"+7: READ g: POKE f,g: NEXT f: PAPER 5: CLS
5702 GO SUB 6000: FOR f=0 TO 21: PRINT AT f,28; INK 2;"¸"; INK 3;"iii";AT f,0; INK 3;"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii" AND f>=19: NEXT f
5703 GO SUB 9000
5704 IF u(8)=2 THEN LET i$="nincs"
5705 IF u(8)=1 THEN LET i$="megvan"
5706 IF u(8)<>0 THEN PRINT AT 17,27; INK 0; BRIGHT 1;"3"; BRIGHT 0: LET q=8
5710 GO SUB 100: GO TO 5710
6000 IF li=1 THEN GO TO 6002
6001 INK 6: PRINT AT a,b;"ö÷o";AT a+1,b;"uúu": RETURN
6002 INK 6: PRINT AT a,b;"üý?";AT a+1,b;"yµ¶": RETURN
6005 IF a=an+2 AND b=11 OR a=an+2 AND b=13 OR a=an+2 AND b=17 OR a=an+2 AND b=19 OR a=an+2 AND b=22 OR a=an+2 AND b=24 THEN GO TO 800
6006 RETURN
7000 REM a kicsi polip
8000 DATA 0,30,63,127,251,255,239,127,0,0,0,0,192,254,240,254,127,27,3,3,1,1,1,0,192,224,176,88,44,38,0,0,224,240,248,111,64,144,168,136,1,14,113,128,65,36,75,240,192,48,136,68,68,136,16,224,137,177,130,84,66,66,60,0
8001 RESTORE 8000: FOR f=USR "n" TO USR "u"+7: READ g: POKE f,g: NEXT f: REM N=¸ O=1 P=o Q=» R=1 S=1 T=3 U=?
8002 LET re=8005: PRINT AT 2,1; INK 5;"ii";AT 3,1;"ii"
8003 LET fx=20: LET fy=26
8005 LET fx=fx-1: LET fy=fy-1.5: IF fx=2 THEN LET re=8002
8010 PRINT AT fx+1,fy; INK 5;"iiiii";AT fx+2,fy+1;"iii";AT fx,fy; PAPER 5; INK 4;"¸1";AT fx+1,fy;"o»"; INK 5;"ii"
8020 IF INT (RND*3)=2 THEN PRINT AT fx,fy+3; INK 1;"113";AT fx+1,fy+3;"?"
8030 RETURN
8035 REM az elektromos raja
8050 DATA 0,0,0,1,3,7,13,62,0,32,96,240,248,248,252,2,0,0,0,0,0,0,0,2,125,15,3,3,1,0,0,0,255,248,248,240,240,224,32,0,252,0,0,0,0,0,0,0
8051 RESTORE 8050: FOR f=USR "n" TO USR "s"+7: READ g: POKE f,g: NEXT f: REM N=¸ O=1 P=o Q=» R=1 S=1
8052 LET fx=10: LET fy=15
8053 LET re=8055
8055 IF fx<a THEN LET fx=fx+.5: GO TO 8060
8056 IF fx>a THEN LET fx=fx-.5: GO TO 8065
8057 IF fy<b THEN LET fy=fy+.5: GO TO 8075
8058 IF fy>b THEN LET fy=fy-.5: GO TO 8070
8060 PRINT AT fx-1,fy; INK 5;"iii";AT fx,fy; INK 0;"¸1o";AT fx+1,fy;"»11"
8061 GO TO 8080
8065 PRINT AT fx+2,fy; INK 5;"iii";AT fx,fy; INK 0;"¸1o";AT fx+1,fy;"»11"
8066 GO TO 8080
8070 PRINT AT fx,fy+3; INK 5;"i";AT fx+1,fy+3; INK 5;"i";AT fx,fy; INK 0;"¸1o";AT fx+1,fy; INK 0;"»11"
8071 GO TO 8080
8075 PRINT AT fx,fy; INK 0;"¸1o";AT fx,fy-1; INK 5;"i";AT fx+1,fy; INK 0;"»11";AT fx+1,fy-1; INK 5;"i"
8080 IF fx=a AND fy=b THEN GO TO 800
8090 INK 6: RETURN
8100 REM tengeri tuskes-csillag
9000 DATA 0,16,24,12,14,7,63,255,0,16,48,96,224,192,254,248,7,7,14,12,24,16,32,0,224,224,224,112,24,8,0,0
9001 RESTORE 9000: FOR f=USR "n" TO USR "q"+7: READ g: POKE f,g: NEXT f: REM N=¸ O=1 P=o Q=»
9005 FOR f=1 TO 15
9010 LET fx=INT (RND*16)+2: LET fy=INT (RND*23)+4
9015 PRINT AT fx,fy; INK 3;"¸1";AT fx+1,fy;"o»": NEXT f: RETURN
9025 REM horgony a lancokkal
9050 DATA 56,68,68,56,56,68,68,56,60,66,66,36,24,24,24,24,31,17,22,30,18,1,0,0,25,25,152,255,0,128,127,0,240,16,144,48,80,128,0,0
9051 RESTORE 9050: FOR f=USR "n" TO USR "r"+7: READ g: POKE f,g: NEXT f: REM N=¸ O=1 P=o Q=» R=1
9052 LET re=9055
9053 LET an=8
9055 PRINT AT an+1,11; INK 5;"iii";AT an,12; INK 0;"¸";AT an+1,12;"1";AT an+2,11;"o»1"
9056 PRINT AT an+1,17; INK 5;"iii";AT an,18; INK 0;"¸";AT an+1,18;"1";AT an+2,17;"o»1"
9057 PRINT AT an+1,23; INK 5;"iii";AT an,24; INK 0;"¸";AT an+1,24;"1";AT an+2,23;"o»1"
9060 LET an=an+1: IF an=13 THEN GO TO 9074
9061 GO SUB 6005
9070 INK 6: RETURN
9074 LET re=9075
9075 PRINT AT an+3,11; INK 5;"iii";AT an,12; INK 0;"¸";AT an+1,12;"1";AT an+2,11;"o»1"
9076 PRINT AT an+3,17; INK 5;"iii";AT an,18; INK 0;"¸";AT an+1,18;"1";AT an+2,17;"o»1"
9077 PRINT AT an+3,23; INK 5;"iii";AT an,24; INK 0;"¸";AT an+1,24;"1";AT an+2,23;"o»1"
9080 LET an=an-1: IF an=7 THEN GO TO 9052
9081 GO SUB 6005
9090 RETURN
9095 REM albatrosz-madar
9100 DATA 0,0,0,31,127,191,10,0,0,66,60,219,255,189,36,24,0,0,0,248,254,253,80,0,28,63,107,60,42,106,0
9101 RESTORE 9100: FOR f=USR "n" TO USR "q"+7: READ g: POKE f,g: NEXT f: REM N=¸ O=1 P=o Q=»
9110 FOR f=1 TO 28: PRINT AT 7,f; INK 1;" ¸1o"
9115 IF RND<.1 THEN FOR g=11 TO INT (RND*10)+10: PRINT AT g,f; INK 5;"i";AT g+1,f; INK 4;"1": NEXT g
9120 NEXT f
9125 FOR f=28 TO 1 STEP -1: PRINT AT 7,f; INK 1;"¸1o "
9130 IF RND<.4 THEN FOR g=11 TO INT (RND*10)+10: PRINT AT g,f; INK 5;"i";AT g+1,f; INK 4;"o": NEXT g
9135 NEXT f
9136 PRINT AT 7,0; INK 5;"iiii"
9140 RETURN
9150 REM a tengeristen-poseidon
9200 DATA 0,56,124,84,254,68,124,59,0,0,34,42,42,62,8,24,3,7,6,6,6,3,3,0,255,215,124,124,124,124,254,254,152,216,120,56,8,8,8,8,0,2,4,8,11,19,32,64,254,198,198,198,199,199,0,0,8,234,9,8,136,128,0,0
9201 RESTORE 9200: FOR f=USR "n" TO USR "u"+7: READ g: POKE f,g: NEXT f: REM N=¸ O=1 P=o Q=» R=1 S=1 T=3 U=?
9202 PRINT AT 8,14; INK 4;"¸1";AT 9,13;"o»1";AT 10,13;"13?"
9203 DATA 192,60,3,0,0,0,0,0,0,0,192,56,7,1,1,0,0,0,240,140,192,32,0,248
9204 RESTORE 9203: FOR f=USR "n" TO USR "p"+7: READ g: POKE f,g: NEXT f
9205 LET re=9210
9210 IF RND<.1 THEN RETURN
9215 LET fx=INT (RND*18)
9220 IF fx=8 OR fx=9 OR fx=10 THEN GO TO 9215
9225 LET fy=INT (RND*22)+4
9240 PRINT AT fx,fy; INK 0;"¸1o"
9250 RETURN
9300 REM a tengeralattjaro
9900 RESTORE 9990: FOR a=USR "a" TO USR "m"+7
9910 READ x: POKE a,x
9915 NEXT a: REM A=ö B=÷ C=o D=u E=ú F=u G=ü H=ý I=? J=y K=µ L=¶ M=3
9920 DIM u(9)
9921 FOR i=1 TO 9: LET u(i)=2: NEXT i
9922 FOR i=1 TO 4
9923 LET te=INT (RND*8)+1
9924 IF u(te)=1 THEN GO TO 9923
9925 LET u(te)=1
9926 NEXT i
9927 LET a=12: LET b=5
9928 LET li=0
9929 LET iop=0
9930 LET pos=1000
9931 LET att=46
9932 LET ad=31
9933 LET i=1: LET i$=""
9936 LET fire=0
9937 LET joy=1
9940 RETURN
9990 DATA 0,0,0,0,0,128,195,167,24,24,30,31,31,31,255,255,0,0,0,0,0,0,248,252,159,159,159,167,195,129,0,0,255,57,57,255,255,255,0,0,254,206,206,252,248,240,0,0,0,0,0,0,0,0,31,63,24,24,120,248,248,248,255,255,0,0,0,0,0,1,195,229,127,115,115,63,31,15,0,0,255,156,156,255,255,255,0,0,249,249,249,229,195,129,0,0,0,0,63,67,253,133,134,252
9998 SAVE "SARGAII": SAVE "NYITRAIL"CODE 60000,119

PIRAMIS SZOLITER-JÁTÉK
A játékban közrefogva két másik számot, le kell venni, és ezt folytatni kell, míg a játék kockái elfogynak.

1 REM Piramis szoliter
2 REM
3 REM Nyitrai 2001'
5 GO TO 9500
8 DIM Z$(15,17): LET Q=8: LET DEMO=0
9 REM dimenzionalas
10 BORDER 0: INK 7: PAPER 0: CLS : DIM I(15)
11 LET L=5: LET O=1
12 PRINT AT 0,28;"NY.L"
20 DIM L(15,2)
30 FOR X=1 TO 15
40 LET I(X)=1
50 NEXT X
55 REM a szamok kivalasztasa
60 LET Z=INT (1+RND*15)
61 IF DEMO=1 THEN LET Z=5
70 LET I(Z)=0
73 REM DEMO adatok beolvasasa
75 RESTORE
80 FOR X=1 TO 15
100 READ L(X,1),L(X,2)
110 NEXT X
115 REM Koordinatak a DEMO-hoz
120 DATA 13,2,13,6,13,10,13,14,13,18,11,4,11,8,11,12,11,16,9,6,9,10,9,14,7,8,7,12,5,10
125 GO SUB 8000
140 IF DEMO=1 THEN GO TO 1000
141 INPUT "Melyik mezorol?: ";LINE A$: IF A$="STOP" OR A$="stop" OR A$=" STOP " THEN GO TO 9500
150 INPUT "Hova ugrasz? ";LINE B$: IF B$="STOP" OR B$="stop" OR B$=" STOP " THEN GO TO 9500
151 IF CODE a$<48 OR CODE A$>57 THEN PRINT 1;"A szam csak 1-15 lehet !!!": BEEP .50,-10: GO TO 130
152 IF CODE B$<48 OR CODE B$>57 THEN PRINT 1;"A sz»m csak 1-15 !!! lehet": BEEP .50,-10: GO TO 130
154 LET a=VAL a$: LET b=VAL b$
156 IF a>15 OR b>15 THEN PRINT 1;"Csak 1-15 lehet !!!": BEEP .50,-10: GO TO 130
157 REM bevitt lepes ellenorzese
160 RESTORE 180
170 READ C,D,E
175 IF A=C AND B=D THEN GO TO 205
176 IF C=999 THEN PRINT 1;"Rossz,ismeteld! ";A;"-";B: BEEP .50,-10: GO TO 140
177 GO TO 170
178 REM J¶ lepesek
180 DATA 1,3,2,2,4,3,3,5,4,6,8,7,7,9,8,10,12,11,3,1,2,4,2,3,5,3,4,8,6,7,9,7,8,12,10,11
190 DATA 1,10,6,6,13,10,10,15,13,2,11,7,7,14,11,3,12,8,10,1,6,13,6,10,15,10,13,11,2,7,14,7,11,12,3,8
200 DATA 5,12,9,9,14,12,12,15,14,4,11,8,8,13,11,3,10,7,12,5,9,14,9,12,15,12,14,11,4,8,13,8,11,10,3,7,999,999,999
205 IF I(E)=0 THEN PRINT 1;"Teves lepes! ";A;;"-";B: BEEP .50,-10: GO TO 140
210 IF I(A)=1 AND I(B)=0 AND I(E)=1 THEN LET I(A)=0:: LET I(B)=1: LET I(E)=0: PRINT AT L(A,1),L(A,2)-1; PAPER 0;" ": PRINT AT L(A,1),L(A,2); PAPER 0; INK 7;A: PRINT AT L(B,1),L(B,2)-1; PAPER 7;" ": PRINT AT L(B,1),L(B,2); PAPER 7; INK 0;B: PRINT AT L(E,1),L(E,2)-1; PAPER 0;" ": PRINT AT L(E,1),L(E,2); PAPER 0; INK 7;E: PRINT AT L,23;A;"-";B: LET L=L+1: BEEP .01,39
211 IF I(E)=1 THEN PRINT 1;"Teves lepes! ";A;"-";B: BEEP .50,-10
250 REM DEMO-jatek vege
260 RESTORE 180
270 READ C,D,E
280 IF C=999 THEN GO TO 9100
285 IF I(C)=1 AND I(D)=0 AND I(E)=1 AND DEMO=1 THEN RETURN
290 IF I(C)=1 AND I(D)=0 AND I(E)=1 THEN GO TO 140
300 GO TO 270
1000 REM DEMO
1001 FOR O=1 TO 13
1003 IF O=1 THEN LET A=12: LET B=5
1004 IF O=2 THEN LET A=15: LET B=12
1005 IF O=3 THEN LET A=7: LET B=9
1006 IF O=4 THEN LET A=13: LET B=8
1007 IF O=5 THEN LET A=6: LET B=13
1008 IF O=6 THEN LET A=4: LET B=11
1009 IF O=7 THEN LET A=2: LET B=4
1010 IF O=8 THEN LET A=5: LET B=3
1011 IF O=9 THEN LET A=9: LET B=14
1012 IF O=10 THEN LET A=14: LET B=7
1013 IF O=11 THEN LET A=3: LET B=10
1014 IF O=12 THEN LET A=13: LET B=6
1015 IF O=13 THEN LET A=1: LET B=10
1016 GO SUB 157
1017 NEXT O
7999 REM Jatek mezo
8000 PRINT AT 0,28;"NY.L"
8001 INK 6: PLOT 180,138: DRAW 46,0: DRAW 0,-130: DRAW -46,0: DRAW 0,130
8002 PLOT 180,138: DRAW 4,4: DRAW 46,0: DRAW -4,-4: PLOT 230,142: DRAW 0,-130: DRAW -4,-4
8004 PLOT 20,160: DRAW 200,0: DRAW 0,-4: DRAW -200,0: DRAW 0,4: PLOT 20,160: DRAW 4,4: DRAW 200,0: DRAW -4,-4: PLOT 224,164: DRAW 0,-4: DRAW -4,-4
8005 PRINT AT 2,3; INVERSE 1;" S Z O L I T E R 2001' "
8007 PLOT 0,0: DRAW 251,0: DRAW 4,4: DRAW -251,0: DRAW -4,-4
8010 FOR X=1 TO 15
8011 BEEP .01,-1
8020 PRINT AT L(X,1),L(X,2)-1; PAPER 7;" ": PRINT AT L(X,1),L(X,2); PAPER 7; INK 0;X
8030 NEXT X
8035 PRINT AT L(Z,1),L(Z,2)-1; PAPER 0;" ": PRINT AT L(Z,1),L(Z,2); PAPER 0; INK 7;Z
8990 FOR a=0 TO 72 STEP 16
9000 FOR p=7+a TO 135-a STEP 32
9001 BEEP .01,1
9010 PLOT p,72+a: DRAW 25,0: DRAW 0,-9: DRAW -25,0: DRAW 0,9
9011 PLOT p,72+a: DRAW 4,4: DRAW 25,0: DRAW -4,-4: PLOT p+29,76+a: DRAW 0,-9: DRAW -4,-4
9020 NEXT p
9030 NEXT a
9035 PRINT 1; FLASH 1;" Bemutato-jatek."
9040 RETURN
9100 REM lepes
9110 LET M=0
9115 FOR X=1 TO 15
9120 IF I(X)=1 THEN LET M=M+1
9125 NEXT X
9130 PRINT AT 17,0;"maradt meg:";M;" lepes"
9132 PRINT '"ertekeles:";
9135 IF M=1 THEN PRINT INVERSE 1;"szolimester"
9140 IF M=2 THEN PRINT BRIGHT 1;" mester!!"
9145 IF M=3 THEN PRINT "felprofi !"
9150 IF M=4 THEN PRINT FLASH 1;" amator!!! "
9160 IF M>=5 THEN PRINT FLASH 1;"bena-kacsa"
9185 PLOT 0,14: DRAW 169,0: DRAW 0,26: DRAW -169,0: DRAW 0,-26: PLOT 0,14+26: DRAW 4,4: DRAW 169,0: DRAW -4,-4: PLOT 173,18+26: DRAW 0,-26: DRAW -4,-4
9186 RESTORE 9188
9187 IF M<=2 THEN FOR X=1 TO 15: READ A,B: BEEP B/100,A+12: NEXT x
9188 DATA 7,10,7,10,7,15,2,15,11,10,11,10,11,15,7,15,7,10,11,10,14,20,14,10,12,10,11,10,9,25
9200 IF NOT M=1 THEN PRINT 1;" Ezt meg lehet gyakorolni!": PAUSE 1: PAUSE 0: GO SUB 9900: GO TO 9235
9210 IF DEMO=1 THEN GO SUB 9900: GO TO 9235
9211 INPUT "IRD be a neved:"';LINE Z$(q)
9225 REM Men¸
9230 GO SUB 9900
9232 LET Q=Q+1: IF Q=12 THEN LET Q=8
9233 LET DEMO=0
9235 LET DEMO=0: BEEP .01,30: BEEP .020,31: BEEP .030,32: IF CODE INKEY$=49 THEN GO TO 9600
9240 IF CODE INKEY$=50 THEN GO TO 9
9245 IF CODE INKEY$=51 THEN LET DEMO=1: GO TO 9
9246 IF CODE INKEY$=48 THEN GO TO 9999
9250 GO TO 9235
9500 DIM z$(15,17): POKE 23609,1
9501 RESTORE 9560
9510 FOR M=1 TO 3
9520 READ X$
9530 FOR N=0 TO 7
9540 READ X
9550 POKE USR X$+N,X
9551 NEXT N
9552 NEXT M
9560 DATA "y",8,16,68,198,198,198,124,0
9570 DATA "µ",16,32,112,48,48,48,120,0
9580 DATA "¶",8,16,124,198,198,198,124,0
9590 LET Q=8: GO SUB 9900: GO TO 9235
9591 GO SUB 9900: GO TO 9235
9599 REM Jatekismerteto
9600 BORDER 0: PAPER 0: CLS : PRINT AT 0,28;"NY.L"
9602 PLOT 20,160: DRAW 200,0: DRAW 0,-4: DRAW -200,0: DRAW 0,4: PLOT 20,160: DRAW 4,4: DRAW 200,0: DRAW -4,-4: PLOT 224,164: DRAW 0,-4: DRAW -4,-4
9604 PRINT AT 2,3; INVERSE 1;" S Z O L I T E R jatek"
9605 PRINT AT 4,6;"Jatek-ismerteto:"
9610 PRINT AT 5,6;"================="
9620 PRINT AT 7,4;" A jatek lenyege:";AT 8,4;" mindig az ures kockara"
9630 PRINT AT 9,4;" kell ugorni,atugorva a";AT 10,4;" koztelevo masikat."
9640 PRINT AT 11,4;" Az ugras lehet ferden,";AT 12,4;" vizszintesen,le,es fel."
9650 PRINT AT 13,4;" Ezt addig kell folytatni,";AT 14,4;" mig lehetoseg van erre."
9660 PRINT AT 16,4;" A STOP-beirasaval a jatekot";AT 17,4;" meg lehet allitani."
9700 PRINT AT 19,1;" Nyomj egy gombot!": PAUSE 1: PAUSE 0
9800 GO TO 9591
9899 REM PROGRAM-inditsa
9900 PAPER 1: BORDER 0: CLS
9910 PRINT AT 0,28;"NY.L"
9950 INK 6: PLOT 20,160: DRAW 200,0: DRAW 0,-4: DRAW -200,0: DRAW 0,4: PLOT 20,160: DRAW 4,4: DRAW 200,0: DRAW -4,-4: PLOT 224,164: DRAW 0,-4: DRAW -4,-4
9960 PRINT AT 2,3; PAPER 1; INK 6; INVERSE 1;" S Z O L I T E R 2001' "
9970 PRINT AT 4,1; PAPER 1; INK 6;" (c) Nyitrai Laszlo";AT 5,10;"MMI ev majusaban"
9983 PRINT 0;" Nyomd a megfelelo szamot!"
9985 PRINT AT 8,3; PAPER 7; INK 2; INVERSE 1;"Jatek szoliter-mestereknek"
9986 PRINT AT 12,6; PAPER 1; INK 6;"1=jatek-magyarazata."
9987 PRINT AT 14,6; PAPER 1; INK 6;"2=jatek-inditasa."
9988 PRINT AT 16,6; PAPER 1; INK 6;"3=jatek-bemutatoja."
9989 PRINT AT 18,6; PAPER 1; INK 6;"0=kilepes a jatekbol!"
9990 PLOT 0,0: DRAW 255,0: DRAW 0,168: PLOT 223,175: DRAW -223,0: DRAW 0,-175
9995 RETURN
9996 REM SAVE RUTIN
9999 INK 0: PAPER 7: BORDER 7: CLEAR : PRINT AT 10,1;"A jatek 'RUN'-nal ujraindithato"
LÁDATOLOGATÓ JÁTÉK (SOKOBAN)
Ládatologató játék Graphics BASIC-ban készítve: Itt egy raktárost kell irányítani, akinek az a feladata, hogy a nagy ládákat a kijelölt helyükre kell tolni, kikerülve az akadályokat, és ezeket a megadott időn belül el kell végezni. A pálya teljesítése után automatikusan a következő pályára ugrik. Jelenleg 15 pálya van, de a játékszerkesztővel még újabb pályákat is lehet készíteni.

1 REM NYITRAI 2000'
2 REM
3 REM LADATOLOGATO -SOKOBAN- JATEK
4 REM
5 REM HIBA ESETEN RANDOMIZE USR 54500
6 REM
7 GO TO 5050
9 LET PH=15
10 GO SUB 5100: DIM K(7): RESTORE 20: FOR I=1 TO 7: READ K(I): NEXT I
20 DATA 19,20,21,11,38,33,40
30 LET K$="1234567890QWERTYUIOPASDFGHJKL"+CHR$ 0+CHR$ 0+"ZXCVBNM"+CHR$ 0+" "
40 DIM R$(10,10): DIM R(10)
50 FOR I=1 TO 10: LET R$(I)="NYITRAI": LET R(I)=(11-I)*100: NEXT I
55 RESTORE 90: DIM S(3,8): FOR I=1 TO 3: FOR J=1 TO 8: READ S(I,J): NEXT J: NEXT I
90 DATA 10,11,10,9,12,13,12,9,15,16,15,14,17,18,17,14,20,21,20,19,22,23,22,19
100 _BRON :_OFFERR :INK 6: POKE 23658,8: BORDER 1: PAPER 1: CLS
110 _COLOR 1,8;4,18;104:_COLOR 0,7;4,18;120
120 _ATOFF :_SIZE 1,2;12:_SPRINT 56,1;4,1;"Lödatologatü":_SPRINT 85,15;4,1;" jötok"
130 _COLOR 7,4;14,28;96:_COLOR 6,3;14,28;112
140 _SIZE 1,1;7:_SPRINT 32,54;4,1;"1 - Pölyatervezos-ötalakútös"
145 _SPRINT 32,64;4,1;"2 - Irönyútös beöllútösa"
150 _SPRINT 32,74;4,1;"3 - Sajöt pölyök bet?ltose"
155 _SPRINT 32,84;4,1;"4 - Sajöt pölyök kimentose"
160 _SPRINT 32,94;4,1;"5 - Jötok 1-15 pölyökkal"
162 _SPRINT 32,104;4,1;"6 - Lotezµ pölya tesztelose"
163 _SPRINT 32,114;4,1;"7 - A jötok ismertetµje"
164 _SPRINT 32,124;4,1;"8 - Visszatoros BASIC-be"
165 _ATON :FOR I=-1.5 TO 1.5:_PUT 3+ABS I;120+I*32,144;0: NEXT I
167 FOR I=3 TO 12:_PUT 6;I*16,160;0: NEXT I
168 _SIZE 1,1;8:_SPRINT 0,184;4,1;"(c)NYITRAI L÷SZLý 2000 öprilisöban"
170 FOR I=1 TO 800: LET I$=INKEY$: IF I$<"1" OR I$>"8" THEN NEXT I: GO TO 200
175 IF I$="1" THEN LET TV=2050: GO TO 2000
180 IF I$="2" THEN GO TO 500
185 IF i$="4" THEN GO TO 300
190 IF i$="3" THEN GO TO 320
192 IF I$="5" THEN GO TO 1000
193 IF I$="6" THEN LET TV=2360: GO TO 2000
195 IF I$="7" THEN _SCROLL SCREEN$ 0,1,32: GO TO 6
199 IF i$="8" THEN _OFFERR :_BRON : STOP
200 _ATOFF :LET N$="00000": BORDER 1: PAPER 1: INK 7: CLS
210 _COLOR 4,7;17,19;88:_COLOR 3,6;17,19;104
220 _SIZE 1,1;10:_SPRINT 70,36;64,0;"A LEGJOBBAK"
230 _SIZE 1,1;8:FOR I=1 TO 10:_SPRINT 56,60+I*8;4,0;R$(I): LET A=LEN STR$ R(I):_SPRINT 148,60+I*8;4,0;N$(1 TO 5-A)+STR$ R(I): NEXT I
240 FOR I=1 TO 400: LET I$=INKEY$: IF I$<"1" OR I$>"7" THEN NEXT I: GO TO 250
245 GO TO 175
250 GO TO 100
300 INPUT "Magnüra vagy Lemezre ? ";a$:_ONERR 100: IF a$="m" OR a$="M" THEN SAVE "LEVELS"CODE 45000,5280
301 IF a$="l" OR a$="L" THEN GO TO 310
305 GO TO 100
310 INPUT "Neve :";a$: IF LEN a$=0 OR LEN a$>8 THEN GO TO 310
311 SAVE *a$CODE 45000,5280
315 GO TO 100
320 INPUT "Magnürül vagy Lemezrµl ? ";a$:_ONERR 350: IF a$="L" OR a$="L" THEN GO TO 330
323 LOAD "LEVELS"CODE 45000,5280
325 GO TO 100
330 INPUT "Neve :";a$: IF LEN a$=0 OR LEN a$>8 THEN GO TO 330
335 LOAD *A$CODE 45000,5280: GO TO 100
340 GO TO 100
350 _COLOR 22,0;2,32;215
360 _ATOFF :_SIZE 1,1;8:_SPRINT 68,180;4,0;"Olvasösi hiba !"
370 PAUSE 200: GO TO 100
500 _SOUND 1;0,0;255,255:CLS :_SIZE 1,1;8
510 _SPRINT 32,8;4,0;"Korem sorban a gombokat !"
520 RESTORE 600: FOR i=1 TO 7
530 READ i$:_SPRINT 80,40+I*16;4,0;I$
539 IF INKEY$<>"" THEN GO TO 539
540 IF INKEY$="" THEN GO TO 540
550 LET I$=INKEY$: FOR J=1 TO 40: IF I$<>K$(J) THEN NEXT J: GO TO 539
560 _DRUM 20,1;60,253:LET K(I)=J:_SPRINT 160,40+I*16;4,0;I$: NEXT I
570 GO TO 100
600 DATA "Balra :","Jobbra :","Le :","Fel :","T»z :","¸jra :","Kilopos :"
1000 REM JATEK
1005 LET M=3: LET GS=1050: LET PA=1: LET EL=4: LET PN=0
1010 _SCALE 1;9,10,11,10,9,12,13,12
1020 _SCALE 2;14,15,16,15,14,17,18,17:_SCALE 3;19,20,21,20,19,22,23,22
1030 _SCALE 4;19,20,21,20,19,22,23,22
1040 _DIRECT 1;-2,0:_DIRECT 2;2,0:_DIRECT 3;0,2:_DIRECT 4;0,-2
1050 GO SUB 5000: LET ID=DB*70: GO SUB 5300
1060 _PLACE 1;16*XX,16*YY:LET R=1
1090 _FAST :LET HP=15: LET S=5:_ONERR 1400
1095 POKE 23672,0
1100 GO SUB 5200: IF B+J+F+L<>1 THEN GO TO 1400
1110 GO TO 1050+(B+2*J+3*L+4*F)*70
1120 IF R<>1 THEN _PLACE 1;XX*16,YY*16:_SET R:_SET 1: LET R=1
1125 LET A=P(YY+1,XX): IF A>3 THEN GO TO 1150
1130 FOR I=1 TO 8:_SOUND S;0,0;100,100: GO SUB 5600:_MOVE 1: NEXT I: LET XX=XX-1
1135 LET B=?KEY(K(1)): IF B=1 AND ID>0 THEN GO TO 1125
1140 GO TO 1400
1150 IF A>5 THEN GO TO 1400
1155 LET B=P(YY+1,XX-1): IF B>3 THEN GO TO 1400
1160 _INTO U(YY+1,XX-1)TO 25;0,0;0:_INTO U(YY+1,XX) TO 25;16,0;0:_INTO U(YY+1,XX+1) TO 25;32,0;0
1165 FOR I=1 TO 8: GO SUB 5600:_INTO 25 TO 26;0,0;0:_INTO A TO 26;16-I*2,0;0:_ATOFF :_INTO S(1,I) TO 26;32-I*2,0;3:_ATON :_PUT 26;(XX-2)*16,YY*16;0: NEXT I
1170 LET P(YY+1,XX-1)=A: LET P(YY+1,XX)=1: LET XX=XX-1
1173 _PLACE 1;XX*16,YY*16
1175 LET B=?KEY(K(1)): IF B=1 AND ID>0 THEN GO TO 1155
1180 GO TO 1400
1190 IF R<>2 THEN _PLACE 2;XX*16,YY*16:_SET R:_SET 2: LET R=2
1195 LET A=P(YY+1,XX+2): IF A>3 THEN GO TO 1220
1200 FOR I=1 TO 8:_SOUND S;0,0;100,100: GO SUB 5600:_MOVE 2: NEXT I: LET XX=XX+1
1205 LET J=?KEY(K(2)): IF J=1 AND ID>0 THEN GO TO 1195
1210 GO TO 1400
1220 IF A>5 THEN GO TO 1400
1225 LET B=P(YY+1,XX+3): IF B>3 THEN GO TO 1400
1230 _INTO U(YY+1,XX+1)TO 25;0,0;0:_INTO U(YY+1,XX+2) TO 25;16,0;0:_INTO U(YY+1,XX+3) TO 25;32,0;0
1235 FOR I=1 TO 8: GO SUB 5600:_INTO 25 TO 26;0,0;0:_INTO A TO 26;16+I*2,0;0:_ATOFF :_INTO S(2,I) TO 26;I*2,0;3:_ATON :_PUT 26;XX*16,YY*16;0: NEXT I
1240 LET P(YY+1,XX+3)=A: LET P(YY+1,XX+2)=1: LET XX=XX+1
1243 _PLACE 2;XX*16,YY*16
1245 LET J=?KEY(K(2)): IF J=1 AND ID>0 THEN GO TO 1225
1250 GO TO 1400
1260 IF R<>3 THEN _PLACE 3;XX*16,YY*16:_SET R:_SET 3: LET R=3
1265 LET A=P(YY+2,XX+1): IF A>3 THEN GO TO 1290
1270 FOR I=1 TO 8:_SOUND S;0,0;0,0:_MOVE 3: GO SUB 5600: NEXT I: LET YY=YY+1
1275 LET L=?KEY(K(3)): IF L=1 AND ID>0 THEN GO TO 1265
1280 GO TO 1400
1290 IF A>5 THEN GO TO 1400
1295 LET B=P(YY+3,XX+1): IF B>3 THEN GO TO 1400
1300 _INTO U(YY+1,XX+1)TO 27;0,0;0:_INTO U(YY+2,XX+1) TO 27;0,16;0:_INTO U(YY+3,XX+1) TO 27;0,32;0
1305 FOR I=1 TO 8: GO SUB 5600:_INTO 27 TO 28;0,0;0:_INTO A TO 28;0,16+I*2;0:_ATOFF :_INTO S(3,I) TO 28;0,I*2;3:_ATON :_PUT 28;XX*16,YY*16;0: NEXT I
1310 LET P(YY+3,XX+1)=A: LET P(YY+2,XX+1)=1: LET YY=YY+1
1313 _PLACE 3;XX*16,YY*16
1315 LET L=?KEY(K(3)): IF L=1 AND ID>0 THEN GO TO 1295
1320 GO TO 1400
1330 IF R<>4 THEN _PLACE 4;XX*16,YY*16:_SET R:_SET 4: LET R=4
1335 LET A=P(YY,XX+1): IF A>3 THEN GO TO 1360
1340 FOR I=1 TO 8:_SOUND S;0,0;100,100: GO SUB 5600:_MOVE 4: NEXT I: LET YY=YY-1
1345 LET F=?KEY(K(4)): IF F=1 AND ID>0 THEN GO TO 1335
1350 GO TO 1400
1360 IF A>5 THEN GO TO 1400
1365 LET B=P(YY-1,XX+1): IF B>3 THEN GO TO 1400
1370 _INTO U(YY-1,XX+1)TO 27;0,0;0:_INTO U(YY,XX+1) TO 27;0,16;0:_INTO U(YY+1,XX+1) TO 27;0,32;0
1375 FOR I=1 TO 8: GO SUB 5600:_INTO 27 TO 28;0,0;0:_INTO A TO 28;0,16-I*2;0:_ATOFF :_INTO S(3,I) TO 28;0,32-I*2;3:_ATON :_PUT 28;XX*16,(YY-2)*16;0: NEXT I
1380 LET P(YY-1,XX+1)=A: LET P(YY,XX+1)=1: LET YY=YY-1
1393 _PLACE 4;XX*16,YY*16
1395 LET F=?KEY(K(4)): IF F=1 AND ID>0 THEN GO TO 1365
1400 IF B+J+L+F=0 THEN FOR I=1 TO DB: IF P(D(I,2),D(I,1))=5 THEN IF INKEY$="" THEN NEXT I: GO TO 1500
1410 GO SUB 5600
1420 LET B=?KEY(K(7)): LET A=?KEY(K(6)): GO SUB 5325: IF ID=0 THEN GO TO 1700
1425 IF A=1 THEN GO TO 1730
1426 IF B=1 THEN GO TO 100
1430 GO TO 1100
1500 REM UJ PALYA
1505 LET PN=PN+ID*10
1510 _SCROLL SCREEN$ 0,3,24
1520 LET PA=PA+1: IF PA<PH+1 OR GS>2000 THEN GO TO GS
1530 PAPER 6: BORDER 6: INK 1: CLS
1540 _COLOR 4,4;15,25;88:_COLOR 3,3;15,25;120
1550 _ATOFF :_SIZE 1,1;7
1560 _SPRINT 82,32;0,1;"GRATUL÷LOK !"
1570 _SPRINT 32,56;0,1;" Teljesútetted a ?sszes "
1575 _SPRINT 32,68;0,1;"nehozsogi szintet. Rajtad"
1580 _SPRINT 32,82;0,1;"nem tudtam kifogni."
1585 _SPRINT 32,100;0,1;" ysszesen "+STR$ pn+" pontot"
1590 _SPRINT 32,112;0,1;"szereztol."
1600 GO TO 1820
1700 BORDER 5: PAPER 5: INK 0: CLS
1710 PAUSE 1:_SIZE 1,2;8
1720 _COLOR 7,6;4,22;88:_COLOR 6,5;4,22;120
1725 _ATOFF :_SPRINT 52,56;0,1;"Elfogyott az idµd !"
1730 LET EL=EL-1: IF EL=0 THEN GO TO 1800
1740 PAUSE 10: PAUSE 300: GO TO GS
1800 _COLOR 11,6;4,22;88:_COLOR 10,5;4,22;120
1810 _SPRINT 52,88;0,1;" A jötoknak voge ! "
1820 FOR i=10 TO 1 STEP -1: IF pn>R(I) THEN NEXT I
1825 LET I=I+1
1830 IF I=11 THEN GO TO 100
1840 _ONERR 1860
1850 FOR J=10 TO I: LET R$(J)=R$(J-1): LET R(J)=R(J-1): NEXT J
1860 INPUT "urd be a neved : ";r$(i)
1865 _OFFERR :LET R(I)=PN
1870 GO TO 200
2000 REM TERVEZO
2010 _ATON :GO SUB 5100
2020 _SIZE 1,1;10:_SPRINT 38,8;64,0;"L÷DATOLOGATý-J÷TuK"
2030 _SIZE 1,1;8:_SPRINT 76,64;4,0;"Pölya te"+("rvezµ"AND TV=2050)+("sztelµ" AND TV<>2050)
2040 _ONERR 2040:INPUT "Szöma (1-30) :";PA
2043 IF PA<0 OR PA>30 OR PA<>INT PA THEN GO TO 2040
2044 IF PA=0 THEN GO TO 100
2045 _OFFERR :GO TO TV
2050 LET M=0: GO SUB 5000
2060 LET V=1: FOR I=0 TO 7:_PUT I+1;I*16,176;0: NEXT I
2065 _COLOR 22,0;2,2;199:_SIZE 1,1;5:_SPRINT 132,180;0,1;"T?r?l Mösik Kosz Teszt"
2070 FOR i=0 TO 3:_COLOR 22,16+I*4;2,4;96+I*8: NEXT I
2075 LET ST=0:_SCALE 16;24:_PLACE 16;120,80:_MODE 16;1,0:_SET 16
2100 GO SUB 5200: IF B+J+L+F+T<>0 THEN GO TO 2110
2101 LET ST=0
2102 LET A=?KEY(K(6)): LET B=?KEY(K(7)): IF A+B=0 THEN GO TO 2100
2103 GO TO 100
2110 LET ST=ST+(ST<8):_DIRECT 16;ST*(J-B),ST*(L-F)
2120 _MOVE 16:IF T=0 THEN GO TO 2100
2125 LET Y=?YPOS(16): LET Y=Y+7
2130 IF Y>175 THEN GO TO 2150
2135 LET X=?XPOS(16): LET Y=INT (Y/16): LET X=INT ((X+7)/16):_SET 16:_PUT V;X*16,Y*16;0:_SET 16: LET P(Y+1,X+1)=V: GO TO 2100
2150 LET X=?XPOS(16): LET X=X+7
2155 IF X>127 THEN GO TO 2190
2160 _SET 16:_PUT V;(V-1)*16,176;0:LET V=INT (X/16)+1: LET A=ATTR (22,(V-1)*2):_COLOR 22,(V-1)*2;2,2;A+128:_SET 16: GO TO 2100
2190 _PUT V;(V-1)*16,176;0:_SET 16:GO TO 2200+INT ((X-128)/32)*50
2200 FOR Y=1 TO 11: FOR X=1 TO 16: LET P(Y,X)=1: NEXT X: NEXT Y
2210 GO SUB 5100: GO TO 2060
2250 GO SUB 2400: IF A=0 THEN GO TO 2000
2260 _SIZE 1,2;7:_SPRINT 0,176;0,0;"Hibös pölyöt terveztol ! Javitsd ki!"
2270 PAUSE 1: PAUSE 0
2275 _SIZE 1,2;7:_SPRINT 0,176;0,3;"Hibös pölyöt terveztol ! Javitsd ki!"
2280 GO TO 2060
2300 GO SUB 2400: IF a=1 THEN GO TO 2255
2310 GO TO 100
2350 GO SUB 2400: IF A=1 THEN GO TO 2255
2360 LET M=3: LET GS=2370: LET EL=2: LET PN=0
2365 GO TO 1010
2370 GO TO 100
2400 LET CIM=45000+(PA-1)*176: DIM T(8): FOR Y=1 TO 11: FOR X=1 TO 16: LET A=P(Y,X): POKE CIM,A: LET CIM=CIM+1: LET T(A)=T(A)+1: NEXT X: NEXT Y
2410 LET A=0: IF T(2)<>T(5) OR T(2)>14 OR T(5)>14 THEN LET A=1
2420 IF T(8)<>1 THEN LET A=1
2430 RETURN
5000 REM PALYA RAJZOLAS
5005 _ATON :GO SUB 5100:_COLOR 0,0;22,32;8
5010 LET DB=0: DIM D(14,2): DIM P(11,16): DIM U(11,16): LET CIM=45000+(PA-1)*176
5020 FOR Y=0 TO 10: FOR X=0 TO 15: LET A=PEEK CIM:_PUT A;X*16,Y*16;0: LET CIM=CIM+1
5030 LET U(Y+1,X+1)=A-((A-1) AND (A=4 OR A=5 OR A=8)): LET P(Y+1,X+1)=A-((A-1) AND (A=2 OR A=3 OR A=8) AND M<>0): IF A=2 THEN LET DB=DB+1: LET D(DB,1)=X+1: LET D(DB,2)=Y+1
5035 IF A=8 THEN LET XX=X: LET YY=Y
5040 NEXT X: NEXT Y
5045 RETURN
5050 REM MAGYARAZAT
5051 BORDER 1: PAPER 1: INK 2: CLS
5052 LET A$=CHR$ 128+CHR$ 132+CHR$ 136+CHR$ 0+CHR$ 4
5054 RESTORE 5110
5056 READ a: IF a=0 THEN GO TO 5066
5057 FOR I=3 TO 12:_PUT 8;I*16,80;0: NEXT I
5058 READ B,D,E,B$
5060 _SIZE A,B;8*A
5062 FOR I=1 TO 5: PAUSE 5:_SPRINT D,E;CODE A$(I),0;B$: INK 2: NEXT I
5063 FOR I=3 TO 12:_PUT 5;I*16,80;0: NEXT I
5064 GO TO 5056
5066 _ATON :FOR I=-1.5 TO 1.5:_PUT 3+ABS I;120+I*32,144;0: NEXT I
5068 FOR I=3 TO 12:_PUT 6;I*16,160;0: NEXT I
5070 PAUSE 150:_BRON :_OFFERR : INK 5:_SCROLL SCREEN$ 0,4,32
5072 RESTORE 5074: PAUSE 100: LET A=17: GO SUB 5124
5074 DATA " Ebben a jötokban egy raktörost kell he-"
5076 DATA "lyettesitened,aki az egyes szinteken lo-"
5078 DATA "vµ lödökat a kijel?lt helyekre tolja. "
5079 DATA "A jötokban a nehozsoget az adja, hogy "
5080 DATA "csak elµre lehet mozogni, os noha egy-"
5081 DATA "egy kµkolonc is akadölyozza utunkat,"
5082 DATA "bör ezeket el lehet az 3tbül tolni."
5083 DATA "A jötok pölyaszerkesztµvel is el van"
5084 DATA "lötva, igy sajöt szintet is lehet ko-"
5085 DATA "sziteni.A program szalagra,lemezre ment."
5086 DATA "A programúrü jü lödatologatöst kúvön."
5087 DATA "","Szúnestechnika:LM1889 chip"," Asszisztens:U L A chip"," Zene : 254-es port."
5088 DATA ""," NYITRAI L÷SZLý 2000."
5099 REM CLS
5100 BORDER 0: PAPER 0: INK 7: BRIGHT 1: FLASH 0: INVERSE 0: OVER 0: CLS : RETURN
5110 DATA 1,1,120,16,"Az"
5112 DATA 2,2,64,40,"NYL"
5114 DATA 1,1,120,48,"SZOFTVER"
5116 DATA 1,1,96,64,"BEMUTATJA"
5118 DATA 1,2,64,104,"a NYITRAI SOKO"
5120 DATA 1,1,80,132," J÷TuK÷T"
5122 DATA 0
5124 DIM A$(40):_WINDOW 1;0,8;32,184
5126 _SOUND 1;0,0;255,255:_DRUM 200,1;200,255
5128 _SIZE 1,1;6:FOR I=1 TO A: READ A$
5130 FOR K=0 TO 9: INK K:_SPRINT K*24+8,184-K;0,1;A$(K*4+1 TO K*4+4):_SCROLL POINT 1,3,1: INK 9-K: NEXT K
5132 NEXT I: PAUSE 200: GO TO 8
5199 REM BILLENTYUZET
5200 LET B=?KEY(K(1)): LET J=?KEY(K(2)): LET L=?KEY(K(3)): LET F=?KEY(K(4)): LET T=?KEY(K(5)): RETURN
5300 REM ADAT TABLA
5305 _SIZE 1,1;8:PAPER 3:_SPRINT 0,176;4,0;" Szint Pont uletek Idµ "
5310 PAPER 0:_SPRINT 36-(LEN STR$ PA)*4,184;4,0;STR$ PA
5315 _SPRINT 96-(LEN STR$ PN)*4,184;4,0;STR$ PN
5320 _SPRINT 160-(LEN STR$ EL)*4,184;4,0;STR$ EL
5325 _SPRINT 212-(LEN STR$ ID)*4,184;4,0;" "+STR$ ID+" "
5327 _COLOR 23,0;1,32;71
5330 RETURN
5600 REM ORA LEPTETES
5605 LET V=PEEK 23672: IF V<50 THEN RETURN
5610 LET VV=INT (V/50): POKE 23672,V-VV*50
5615 LET ID=ID-VV: IF ID<0 THEN LET ID=0
5620 RETURN
9900 REM DISC SAVE
9910 CLEAR : LET A=?ADDR(0):_DPOKE 65534,A: SAVE *"GAME"LINE 9920: SAVE *"chars2"CODE 65368,168: SAVE *"gamecd"CODE A,54500-A: SAVE *"levels/n"CODE 45000,5280
9915 STOP
9920 REM DISC LOAD
9930 CLEAR 44999: LOAD *"gamecd"CODE : LOAD *"basic/sp"CODE : LOAD *"chars2"CODE : LOAD *"levels/n"CODE : RANDOMIZE USR 54500
9940 LET A=?DPEEK(65534):_START A: RUN
9989 REM LOAD
9990 CLEAR 44999: LOAD ""CODE : LOAD ""CODE : RANDOMIZE USR 54500: RUN
9998 REM SAVE
9999 CLEAR : SAVE "GAME"LINE 9990: LET A=?ADDR(0): SAVE "GAME CODE"CODE A,65536-A: SAVE "LEVELS"CODE 45000,5280: CLEAR : PRINT " VERIFY ": VERIFY "": VERIFY ""CODE : VERIFY ""CODE
MASTERMIND 128K
Itt van a MASTERMIND 128K új Basic játékprogramom, mely más a megszokott mastermind játékoktól, itt 8 POFA néz velünk szemben, és a Spectrum fordulóként 4-et rejt el, melyet találgatásokkal kell megtalálnunk. Minden találgatás után visszajelzést kapunk, mely szerint ha,
1. fehér, akkor egyet sem találtunk el,
2. piros, akkor a négy POFA valamelyike szerepel, de nem ott áll, ahol kiválasztottuk,
és végül ha,
3. sárga, akkor eltaláltuk és a sorban jó helyen is van.
Nincs az korlátozva, hogy mindnek egyszerre ugyanazt válasszuk (mindnek pl. 1-es jelölünk, de akkor a Spectrum téves jelzést adhat)
A POFÁ-k nem sprite-ban vannak megrajzolva, hanem más karakterkészletben és a megfelelő POKE -kal van beállítva. (9x8=72 karakter) A betűk sem a megszokott - egyszerű - Spectrum karakterkészletek, hanem az ATIC-ATAC játék betűi.

0 REM JATEKGYAROS-NYITRAISOFT
5 REM MASTERMIND JATEK 2004
10 RESTORE 15: FOR f=0 TO 7: READ a: POKE USR "A"+f,a: NEXT f: CLEAR 64600: GOSUB 9000
15 DATA 0,24,60,126,126,60,24,0
20 BORDER 2: PAPER 2: INK 1: CLS : PRINT AT 15,10;"MASTERMIND": PRINT AT 16,10;"128K BASIC"
90 PRINT AT 17,18; PAPER 2; INK 1;"JATEK";AT 19,15;"NYITRAISOFT 2004'"
100 FOR n=1 TO 4:ţ"T240UX1000W0O7N2cfgEA": NEXT n
105 LET rec=12
110 PRINT 1;" NYOMD LE AZ ENTER-T"
130 PAUSE 0
1000 REM menu
1001 POKE 23606,0: POKE 23607,246
1005 GOSUB 8100: BORDER 5: PAPER 5: INK 0: CLS : PRINT AT 7,9;"MAGYARAZAT (M)";AT 10,9;"JATEK (J)"
1010 LET c$=INKEY$: IF c$ <> "m" AND c$ <> "j" THEN GOTO 1010
1020 IF c$="m" THEN GOTO 1500
1030 IF c$="j" THEN GOTO 2000
1500 REM MAGYARAZAT
1510 BORDER 1: PAPER 1: INK 6: CLS
1515 POKE 23606,0: POKE 23607,246
1520 PRINT AT 2,10;"MASTERMIND"
1525 FOR n=1 TO 2:ţ"T240UX1000W0O7N2cfgEA": NEXT n
1530 PRINT AT 6,2;"EBBEN A JATEKBAN A RENDELKEZESRE ALLO NYOLC POFABOL A SPECTRUM NEGYET REJT EL,ES EZEKET KELL TALALGATASSAL KITALALNI."
1540 PRINT AT 12,2;"MINDEN PROBALKOZASUNK UTAN VA-LASZT KAPUNK A SZAMITOGEPTOL, EZEK A KOVETKEZOK:"
1545 PRINT 1;" NYOMD LE AZ ENTER-T": GOSUB 8100
1547 PAUSE 0: CLS
1550 PRINT AT 3,2;"HA FEHER A JELZES,AZ AZT JELENTI,HOGY EGY POFA SINCS A KIVA-LASZTOTT NEGYBOL,"
1560 PRINT AT 6,2;"HA PIROS,AZ AZT JELENTI,HOGY ELTALALTUK A POFAT,DE ROSSZ HELYEN VAN,HA SARGA AKKOR ELTALALTUK ES JO HELYEN IS ALL."
1565 PRINT AT 11,2;"A JATEKBAN OSSZESEN 12 PROBAL KOZASUNK VAN,JATSZHATUNK MASIK JATEKOSSAL IS,NEMCSAK A SPECTRUM ELLEN."
1570 PRINT AT 18,11; PAPER 6; INK 2;"SOK SIKERT!!": GOSUB 8100
1572 PRINT 1;" NYOMD LE AZ ENTER-T"
1580 PAUSE 0: GOTO 1000
2000 REM kivalasztas
2010 BORDER 0: PAPER 0: INK 7: CLS : PRINT AT 8,3;"JATEKOS A SPECTRUM ELLEN (1)": GOSUB 8100
2020 PRINT AT 11,3;"JATEKOS JATEKOS ELLEN (2)"
2030 LET a$=INKEY$: IF a$ <> "1" AND a$ <> "2" THEN GOTO 2030
2040 IF a$="1" THEN LET jug=1
2050 IF a$="2" THEN LET jug=2
2100 REM BEALLITAS
2150 LET int=0: LET aci1=0: LET aci2=0: LET aci0=4
2200 LET v=22: LET z=2: LET e=23: LET r=3: LET s=7: LET t=11: LET u=15
2210 BORDER 4: PAPER 4: INK 0: CLS : GOSUB 8100
2220 PRINT AT 0,0; PAPER 6; INK 0;"PROBALKOZAS:";int;" VEGE ";rec;" "
2222 LET c$=STR$ rec: IF LEN c$<2 THEN PRINT AT 0,22; PAPER 6; INK 0;" ";rec;" "
2225 PRINT AT 0,26; PAPER 6; INK 0;"MASTER";AT 1,26;" MIND "
2228 PRINT AT 1,0; PAPER 6; INK 0;" "
2230 PRINT AT 1,2; PAPER 2; INK 7;"
ţ6 5 4 3 2 1 "2240 FOR n=0 TO 23: PRINT AT 2,2+n; PAPER 0; INK 7;"ţ": NEXT n
2245 FOR n=3 TO 17: PRINT AT n,1; INK 1;"ţ": NEXT n
2250 FOR n=3 TO 17: PRINT AT n,26; INK 1;"ţţ": NEXT n
2255 LET nn=3: GOSUB 2260: GOTO 2265
2260 PRINT AT nn,28
;"ţţţ";AT nn+1,28;"ţţţ";AT nn+2,28;"ţţţ": RETURN2265 LET nn=7: GOSUB 2260
2270 LET nn=11: GOSUB 2260
2275 LET nn=15: GOSUB 2260
2280 FOR n=3 TO 23 STEP 4: PRINT AT r,n;"ţţţ";AT s,n;"ţţţ";AT t,n;"ţţţ";AT u,n;"ţţţ": NEXT n
2290 IF r=5 THEN GOTO 2300
2295 LET r=r+1: LET s=s+1: LET t=t+1: LET u=u+1: GOTO 2280
2300 LET r=3: LET s=7: LET t=11: LET u=15
2305 PRINT AT 18,7; PAPER 2; INK 7;"1 2 3 4 5 6 7 8 "
2310 PRINT AT 19,0; PAPER 2; INK 7;"VALASZD";AT 20,0;"KI A JO ";AT 21,0;"POFAT!!"
2315 POKE 23607,252: PRINT AT 19,7; PAPER 7; INK 0;CHR$ 32;CHR$ 33;CHR$ 34;CHR$ 41;CHR$ 42;CHR$ 43;CHR$ 50;CHR$ 51;CHR$ 52;CHR$ 59;CHR$ 60;CHR$ 61;CHR$ 68;CHR$ 69;CHR$ 70;CHR$ 77;CHR$ 78;CHR$ 79;CHR$ 86;CHR$ 87;CHR$ 88;CHR$ 95;CHR$ 96;CHR$ 97
2320 PRINT AT 20,7; PAPER 7; INK 0;CHR$ 35;CHR$ 36;CHR$ 37;CHR$ 44;CHR$ 45;CHR$ 46;CHR$ 53;CHR$ 54;CHR$ 55;CHR$ 62;CHR$ 63;CHR$ 64;CHR$ 71;CHR$ 72;CHR$ 73;CHR$ 80;CHR$ 81;CHR$ 82;CHR$ 89;CHR$ 90;CHR$ 91;CHR$ 98;CHR$ 99;CHR$ 100
2330 PRINT AT 21,7; PAPER 7; INK 0;CHR$ 38;CHR$ 39;CHR$ 40;CHR$ 47;CHR$ 48;CHR$ 49;CHR$ 56;CHR$ 57;CHR$ 58;CHR$ 65;CHR$ 66;CHR$ 67;CHR$ 74;CHR$ 75;CHR$ 76;CHR$ 83;CHR$ 84;CHR$ 85;CHR$ 92;CHR$ 93;CHR$ 94;CHR$ 101;CHR$ 102;CHR$ 103: POKE 23607,246
2500 IF jug=1 THEN GOTO 2600
2510 REM 2 JATEKOS JATSZIK
2515 LET n=0: GOSUB 2520: GOTO 2530
2520 PRINT AT 3,n; PAPER 4; INK 0;"*";AT 6,n;"J";AT 7,n;"A";AT 8,n;"T";AT 9,n;"E";AT 10,n;"K";AT 11,n;"O";AT 12,n;"S";AT 15,n;"*";AT 17,n;"*": RETURN
2530 LET n=31: GOSUB 2520: PRINT AT 13,0;"1";AT 13,31;"2"
2540 PRINT 0;"2 JATEKOS BEIRJA A KOMBINACIOT": PAUSE 100
2545 INPUT "ELSO POFA ";a: IF a<1 OR a>8 THEN GOTO 2545
2550 INPUT "MASODIK POFA ";b: IF b<1 OR b>8 OR b=a THEN GOTO 2550
2555 INPUT "HARMADIK POFA ";c: IF c<1 OR c>8 OR c=a OR c=b THEN GOTO 2555
2560 INPUT "NEGYEDIK POFA ";d: IF d<1 OR d>8 OR d=a OR d=b OR d=c THEN GOTO 2560
2565 BEEP .8,2: PRINT 1;"ELSO JATEKOS LEP": PAUSE 60: GOTO 3000
2600 LET n=0: GOSUB 2520
2610 PRINT AT 3,31; PAPER 4; INK 0;"*";AT 6,31;"S";AT 7,31;"P";AT 8,31;"E";AT 9,31;"C";AT 10,31;"T";AT 11,31;"R";AT 12,31;"U";AT 13,31;"M";AT 15,31;"*";AT 17,31;"*"
2615 POKE 23607,246: PRINT 0;"SPECTRUM BEALLIJA A KOMBINACIOT": PAUSE 40: RANDOMIZE
2617 FOR n=1 TO 2:
ţ"T240UX1000W0O7N2cfgEA": NEXT n2620 LET a=INT (RND*8+1)
2625 LET b=INT (RND*8+1): IF b=a THEN GOTO 2625
2630 LET c=INT (RND*8+1): IF c=a OR c=b THEN GOTO 2630
2635 LET d=INT (RND*8+1): IF d=a OR d=b OR d=c THEN GOTO 2635
3000 GOSUB 8100
3001 POKE 23606,0: POKE 23607,246
3005 GOSUB 8100: INPUT "ELSO POFA (1-8) ";j: IF j<1 OR j>8 THEN GOTO 3005
3010 LET li=r: LET co=e: LET kj=j: GOSUB 3015: GOTO 3100
3015 IF kj=1 THEN GOSUB 8000: RETURN
3020 IF kj=2 THEN GOSUB 8010: RETURN
3025 IF kj=3 THEN GOSUB 8020: RETURN
3030 IF kj=4 THEN GOSUB 8030: RETURN
3035 IF kj=5 THEN GOSUB 8040: RETURN
3040 IF kj=6 THEN GOSUB 8050: RETURN
3045 IF kj=7 THEN GOSUB 8060: RETURN
3050 IF kj=8 THEN GOSUB 8070: RETURN
3095 GOSUB 8100: PRINT 1; PAPER 4; INK 0;""
3100 POKE 23607,246: INPUT "MASODIK POFA ";k: IF k<1 OR k>8 THEN GOTO 3100
3105 LET li=s: LET co=e: LET kj=k: GOSUB 3015
3107 POKE 23607,246: PRINT 1; PAPER 4; INK 0;""
3110 GOSUB 8100: INPUT "HARMADIK POFA ";l: IF l<1 OR l>8 THEN GOTO 3110
3115 LET li=t: LET co=e: LET kj=l: GOSUB 3015
3116 POKE 23607,246: PRINT 1; PAPER 4; INK 0;""
3120 GOSUB 8100: INPUT "NEGYEDIK POFA ";m: IF m<1 OR m>8 THEN GOTO 3120
3125 LET li=u: LET co=e: LET kj=m: GOSUB 3015
3200 REM ELLENORZES
3205 POKE 23607,246: PRINT 1; PAPER 4; INK 0;"A SPECTRUM ERTEKELI A VALASZT": PAUSE 50
3207 FOR n=1 TO 2:ţ"T240UX1000W0O7N2cfgEA": NEXT n
3210 IF j=a THEN GOSUB 4000: GOTO 3230
3215 IF j=b THEN GOSUB 4100: GOTO 3230
3220 IF j=c THEN GOSUB 4100: GOTO 3230
3225 IF j=d THEN GOSUB 4100
3230 IF k=a THEN GOSUB 4100: GOTO 3250
3235 IF k=b THEN GOSUB 4000: GOTO 3250
3240 IF k=c THEN GOSUB 4100: GOTO 3250
3245 IF k=d THEN GOSUB 4100
3250 IF l=a THEN GOSUB 4100: GOTO 3270
3255 IF l=b THEN GOSUB 4100: GOTO 3270
3260 IF l=c THEN GOSUB 4000: GOTO 3270
3265 IF l=d THEN GOSUB 4100
3270 IF m=a THEN GOSUB 4100: GOTO 3290
3275 IF m=b THEN GOSUB 4100: GOTO 3290
3280 IF m=c THEN GOSUB 4100: GOTO 3290
3285 IF m=d THEN GOSUB 4000
3290 LET vj=v
3295 IF aci1=0 THEN GOTO 3300
3297 FOR n=1 TO aci1:
PRINT AT z,vj; PAPER 0; INK 6;"ţ": LET vj=vj+1: GOSUB 8100: NEXT n3300 IF aci2=0 THEN GOTO 3320
3310 FOR n=1 TO aci2: PRINT AT z,vj; PAPER 0; INK 2;"ţ": LET vj=vj+1: GOSUB 8100: NEXT n
3320 LET aci0=4-(aci1+aci2): IF aci0=0 THEN GOTO 3500
3330 FOR n=1
TO aci0: PRINT AT z,vj; PAPER 0; INK 7;"ţ": LET vj=vj+1: GOSUB 8100: NEXT n3500 IF aci1=4 THEN LET int=int+1: GOSUB 3700: GOTO 3730
3510 LET int=int+1: LET e=e-4: LET aci1=0: LET aci2=0: LET v=v-4
3520 LET c$=STR$ int: IF LEN c$>1 THEN PRINT AT 0,13; PAPER 6; INK 0;int
3525 IF LEN c$=1 THEN PRINT AT 0,13; PAPER 6; INK 0;int
3530 IF int=12 THEN GOSUB 3705: GOTO 3900
3532 IF int=6 THEN LET e=23: LET v=22: PRINT AT 1,2; PAPER 2; INK 7;"ţ12ţţ11ţţ10ţ 9 ţ8ţţ 7 "
3535 GOTO 3000
3705 LET kj=a: LET li=r: LET co=28: GOSUB 3015
3710 LET kj=b: LET li=s: GOSUB 3015
3715 LET kj=c: LET li=t: GOSUB 3015
3720 LET kj=d: LET li=u: GOSUB 3015: PAUSE 300: RETURN
3730 POKE 23607,246
3731 FOR n=1 TO 2: LET x$="T240O2bb9E2bEb3E9B"
3732 LET y$="T240O4bb9E2bEb3E9B"
3733 LET
w$="T240O6bb9E2bEb3E9B":ţx$,y$,w$: NEXT n3734 BORDER 5: PAPER 5: INK 0: CLS : PRINT AT 8,3;"SZEP MUNKA VOLT,EZ IGEN!!!"
3735 IF int<rec THEN PRINT AT 12,5;"A MAI NAPON MEGDONTOTTED A";AT 14,12;"CSUCSOT!!!": LET rec=int
3740 PRINT 1;"MEGEGYSZER ? (I/N)"
3741 FOR n=1 TO 2: LET x$="T170O3N1cge3C"
3742 LET y$="T170O5N1cge3C"
3743 LET w$="T170O7N1cge3C"
3744 ţx$,y$,w$: NEXT n
3745 LET d$=INKEY$: IF d$ <> "i" AND d$ <> "n" THEN GOTO 3745
3750 IF d$="n" THEN NEW
3755 IF d$="i" THEN GOTO 1000
3900 POKE 23607,246
3901 FOR n=1 TO 4: LET x$="T170O3N1cge3C"
3902 LET y$="T170O5N1cge3C"
3903 LET w$="T170O7N1cge3C"
3904 ţx$,y$,w$: NEXT n: PAUSE 150: BORDER 0: PAPER 0: INK 7: CLS : PRINT AT 8,3;"HAT,MOST EZ NEM SIKERULT..."
3905 GOTO 3740
4000 LET aci1=aci1+1: RETURN
4100 LET aci2=aci2+1: RETURN
8000 POKE 23607,252: PRINT AT li,co; PAPER 7; INK 0;CHR$ 32;CHR$ 33;CHR$ 34;AT li+1,co;CHR$ 35;CHR$ 36;CHR$ 37;AT li+2,co;CHR$ 38;CHR$ 39;CHR$ 40: POKE 23607,60: RETURN
8010 POKE 23607,252: PRINT AT li,co; PAPER 7; INK 0;CHR$ 41;CHR$ 42;CHR$ 43;AT li+1,co;CHR$ 44;CHR$ 45;CHR$ 46;AT li+2,co;CHR$ 47;CHR$ 48;CHR$ 49: POKE 23607,60: RETURN
8020 POKE 23607,252: PRINT AT li,co; PAPER 7; INK 0;CHR$ 50;CHR$ 51;CHR$ 52;AT li+1,co;CHR$ 53;CHR$ 54;CHR$ 55;AT li+2,co;CHR$ 56;CHR$ 57;CHR$ 58: POKE 23607,60: RETURN
8030 POKE 23607,252: PRINT AT li,co; PAPER 7; INK 0;CHR$ 59;CHR$ 60;CHR$ 61;AT li+1,co;CHR$ 62;CHR$ 63;CHR$ 64;AT li+2,co;CHR$ 65;CHR$ 66;CHR$ 67: POKE 23607,60: RETURN
8040 POKE 23607,252: PRINT AT li,co; PAPER 7; INK 0;CHR$ 68;CHR$ 69;CHR$ 70;AT li+1,co;CHR$ 71;CHR$ 72;CHR$ 73;AT li+2,co;CHR$ 74;CHR$ 75;CHR$ 76: POKE 23607,60: RETURN
8050 POKE 23607,252: PRINT AT li,co; PAPER 7; INK 0;CHR$ 77;CHR$ 78;CHR$ 79;AT li+1,co;CHR$ 80;CHR$ 81;CHR$ 82;AT li+2,co;CHR$ 83;CHR$ 84;CHR$ 85: POKE 23607,60: RETURN
8060 POKE 23607,252: PRINT AT li,co; PAPER 7; INK 0;CHR$ 86;CHR$ 87;CHR$ 88;AT li+1,co;CHR$ 89;CHR$ 90;CHR$ 91;AT li+2,co;CHR$ 92;CHR$ 93;CHR$ 94: POKE 23607,60: RETURN
8070 POKE 23607,252: PRINT AT li,co; PAPER 7; INK 0;CHR$ 95;CHR$ 96;CHR$ 97;AT li+1,co;CHR$ 98;CHR$ 99;CHR$ 100;AT li+2,co;CHR$ 101;CHR$ 102;CHR$ 103: POKE 23607,60: RETURN
8100
ţ"UX6000W7C": RETURN9000 POKE 23607,246: BORDER 5: PAPER 5: INK 0: CLS : FOR i=0 TO 7: PRINT AT 1+i,2; INK i/2;"VARJ,BEOLVASOM AZ ADATOKAT": GOSUB 8100: NEXT i: RESTORE 9010: FOR g=64768 TO 65343: READ a: POKE g,a: NEXT g
9001 PRINT : POKE 23607,252: PRINT AT 15,4; PAPER 7; INK 0;CHR$ 32;CHR$ 33;CHR$ 34;CHR$ 41;CHR$ 42;CHR$ 43;CHR$ 50;CHR$ 51;CHR$ 52;CHR$ 59;CHR$ 60;CHR$ 61;CHR$ 68;CHR$ 69;CHR$ 70;CHR$ 77;CHR$ 78;CHR$ 79;CHR$ 86;CHR$ 87;CHR$ 88;CHR$ 95;CHR$ 96;CHR$ 97
9002 PRINT AT 16,4; PAPER 7; INK 0;CHR$ 35;CHR$ 36;CHR$ 37;CHR$ 44;CHR$ 45;CHR$ 46;CHR$ 53;CHR$ 54;CHR$ 55;CHR$ 62;CHR$ 63;CHR$ 64;CHR$ 71;CHR$ 72;CHR$ 73;CHR$ 80;CHR$ 81;CHR$ 82;CHR$ 89;CHR$ 90;CHR$ 91;CHR$ 98;CHR$ 99;CHR$ 100
9003 PRINT AT 17,4; PAPER 7; INK 0;CHR$ 38;CHR$ 39;CHR$ 40;CHR$ 47;CHR$ 48;CHR$ 49;CHR$ 56;CHR$ 57;CHR$ 58;CHR$ 65;CHR$ 66;CHR$ 67;CHR$ 74;CHR$ 75;CHR$ 76;CHR$ 83;CHR$ 84;CHR$ 85;CHR$ 92;CHR$ 93;CHR$ 94;CHR$ 101;CHR$ 102;CHR$ 103: POKE 23607,246
9004 PRINT AT 20,1;"A KITALALANDO NYOLC POFA...": GOSUB 8100
9005 PAUSE 500: RETURN
9010 DATA 255,128,128,128,128,128,128,128,255,63,87,65,1,1,1,1,255,129,65,161,81,81,81,65,135,136,136,138,136,159,160,192,188,67,67,83,67,195,125,85,121,69,69,85,85,69,73,121,192,161,159,133,133,133,133,255,213,84,92,244,84,84,84,255,9,1,1,1,1,1,1,255
9015 DATA 255,128,128,129,129,130,130,131,255,62,193,0,0,0,0,240,255,1,129,65,65,33,33,33,130,132,132,130,133,132,132,137,16,8,8,8,248,136,228,84,33,17,17,17,17,9,9,9,137,137,137,145,145,145,145,255,36,140,116,116,34,114,114,255,9,9,5,5,5,5,5,255
9020 DATA 255,128,128,129,130,132,137,146,255,0,136,4,82,137,36,146,255,1,1,1,1,1,129,1,165,139,130,130,130,130,130,129,201,4,2,18,18,18,34,194,49,73,133,149,149,165,133,201,128,130,130,129,129,128,128,255,18,226,4,24,232,40,40,255,181,145,9,1,1,1,1,255
9025 DATA 255,128,130,130,130,130,130,128,255,0,170,170,170,170,170,0,255,1,1,1,1,1,1,1,134,159,190,190,158,143,144,144,240,252,255,121,114,224,0,32,1,1,225,17,9,41,169,73,144,143,133,133,133,128,131,255,65,163,83,75,64,8,208,255,17,145,225,129,1,1,1,255
9030 DATA 255,128,128,128,140,147,146,149,255,6,31,127,127,255,213,213,255,1,1,193,217,229,117,121,137,143,147,151,147,167,183,167,253,199,199,199,255,255,255,255,105,249,245,245,253,251,251,59,171,163,175,161,148,141,131,255,254,255,255,255,32,0,255,255,19,37,197,149,201,49,193,255
9035 DATA 255,128,128,128,128,129,129,158,255,0,0,0,82,117,237,0,255,1,1,1,1,1,1,241,162,168,166,144,140,128,129,129,66,165,165,231,255,255,0,60,137,41,105,17,97,1,129,129,129,128,128,128,128,128,129,255,0,255,36,36,36,230,255,255,129,1,1,1,1,1,1,255
9040 DATA 255,129,130,135,132,128,128,141,255,254,1,224,24,15,0,143,255,1,129,97,17,241,1,241,146,146,159,149,159,161,160,161,72,72,201,74,74,138,11,138,17,17,201,41,169,169,73,73,158,135,132,131,128,128,128,255,15,130,4,8,208,80,80,255,169,41,57,1,1,1,1,255
9045 DATA 255,128,128,128,128,128,128,128,255,20,39,87,106,106,78,13,255,193,65,65,65,129,129,1,128,129,129,129,129,129,128,128,219,36,36,231,101,231,36,126,1,129,129,129,129,129,1,1,128,128,128,128,128,128,129,255,66,90,66,126,136,93,62,255,1,1,1,1,129,1,65,255
PUZZLE 2004
A játék egyszerű - csak helyére kell tologatni a kockákat, legalább 200 lépes kell a megoldáshoz, gyermekkorom kedvenc játéka volt...

1 REM
5 REM *********************
10 REM *(c) NyitraiSOFT 2004'*
20 REM *********************
25 REM
30 REM *********************
40 REM **** Puzzle játék ***
50 REM *********************
60 REM
65 REM *********************
66 REM **** játékgyáros ***
67 REM *********************
68 REM
70 REM UDG-k
90 REM **********************
100 REM *** ABC puzzle ***
110 REM * Nyitrai László *
120 REM *** 48K BASIC ***
125 REM *** új karakter ****
130 REM **********************
140
150 DIM c$(16): DIM y$(1)
160 BORDER 1: PAPER 4: INK 0: CLS
170 GO SUB 860
180 PRINT INK 1;AT 2,8;"játékgyáros 2004"; INK 2;AT 3,11;" 48K BASIC";AT 5,8; INK 3; BRIGHT 1;"ABC puzzle játék"
190 LET a$=" ABCDEFGHIJKLMNO"
200 LET b$=a$(2 TO )+" "
210 LET d$="öüu": LET e$="÷ ú": LET f$="oýu": LET g$=" "
220 PRINT AT 6,7; INK 1;"Rakd ossze ABC sorba!!"
230 PRINT AT 8,10;d$;d$;d$;d$
232 PRINT AT 11,10;d$;d$;d$;d$
234 PRINT AT 14,10;d$;d$;d$;d$
236 PRINT AT 17,10;d$;d$;d$;d$
240 PRINT AT 9,10;e$;e$;e$;e$
242 PRINT AT 12,10;e$;e$;e$;e$
244 PRINT AT 15,10;e$;e$;e$;e$
246 PRINT AT 18,10;e$;e$;e$;e$
250 PRINT AT 10,10;f$;f$;f$;f$
252 PRINT AT 13,10;f$;f$;f$;f$
254 PRINT AT 16,10;f$;f$;f$;f$
256 PRINT AT 19,10;f$;f$;f$;f$
260 INK 2: OVER 1: PRINT AT 9,11;"A": BEEP .5,-10: PRINT AT 9,14;"B": BEEP .5,-15: PRINT AT 9,17;"C": BEEP .5,-20: PRINT AT 9,20;"D": BEEP .5,-25
262 PRINT AT 12,11;"E": BEEP .5,10: PRINT AT 12,14;"F": BEEP .5,15: PRINT AT 12,17;"G": BEEP .5,20: PRINT AT 12,20;"H"
266 PRINT AT 15,11;"I": BEEP .5,-20: PRINT AT 15,14;"J": BEEP .5,-15: PRINT AT 15,17;"K": BEEP .5,-10: PRINT AT 15,20;"L"
267 PRINT AT 18,11;"M": BEEP .5,10: PRINT AT 18,14;"N": BEEP .5,15: PRINT AT 18,17;"O": BEEP .5,20: OVER 0
270 LET min=200
275 PAUSE 100
278 PRINT AT 17,19;g$: RANDOMIZE USR 65055: PRINT AT 18,19;g$: RANDOMIZE USR 65055: PRINT AT 19,19;g$
280 RANDOMIZE USR 65055: PRINT INK 1; FLASH 1;AT 21,7;"Nyomd az ENTER-t!!"; FLASH 0: PAUSE 0
290 LET e=0
300 BORDER 2: INK 0: PAPER 4: CLS
310 INK 1: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175: PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173
320 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
330 PRINT INK 1;AT 1,8;" Tol»ssz»m:";e;" "; INK 2;AT 19,8;"Utolsy rekord=";min;" "
340 PRINT INK 2;AT 7,24;"Kock»k";AT 8,24;"tol»sa:";AT 10,24;"Fel :7";AT 11,24;"Le :6";AT 12,24;"Bal :5";AT 13,24;"Jobb :8";AT 17,24;"Kil1p:K"
350 BRIGHT 1: PRINT INK 1;;AT 8,4;"ABC"; INK 2;AT 10,2;" Bet¶"; INK 1;AT 12,2;"Puzzle"; INK 2;AT 14,3;"J»t1k": INK 6: PRINT AT 21,8;"NyitraiSOFT 2004"
360 INK 0: PLOT 74,36: DRAW 0,104: DRAW 104,0: DRAW 0,-104: DRAW -104,0
370 INK 0: PLOT 72,34: DRAW 0,108: DRAW 108,0: DRAW 0,-108: DRAW -108,0
375 INK 0: PLOT 70,32: DRAW 0,112: DRAW 112,0: DRAW 0,-112: DRAW -112,0
380 INK 0: FOR A=3 TO 10: PLOT 180+A,130: DRAW 0,-99: DRAW -99,0: PLOT 81,34-A: DRAW 109,0: NEXT A
390 FOR i=0 TO 3
400 PRINT PAPER 6; INK 1;AT 3*i+5,10;d$;d$;d$;d$
410 PRINT PAPER 6; INK 1;AT 3*i+6,10;e$;e$;e$;e$
420 PRINT PAPER 6; INK 1;AT 3*i+7,10;f$;f$;f$;f$
430 BEEP .2,10*i: NEXT i
440 LET c$=b$
450 FOR i=6 TO 15 STEP 3: FOR j=11 TO 20 STEP 3
460 LET k=1+INT (16*RND): IF c$(k)="x" THEN GO TO 460
470 PRINT PAPER 6; INK 2;AT i,j;c$(k)
475 BEEP .01,k
480 IF c$(k)=" " THEN LET s1=i: LET o1=j: PRINT AT i-1,j-1;" ";AT i,j-1;" ";AT i+1,j-1;" "
490 LET c$(k)="x"
500 NEXT j: NEXT i
510 BEEP .1,30: BEEP .1,-30: BEEP .1,30
520 LET s=s1: LET o=o1
530 LET y$=INKEY$: IF y$=" " THEN GO TO 530
540 LET o1=o+3*(y$="5" AND o1<21)-3*(y$="8" AND o1>10)
550 LET s1=s+3*(y$="7" AND s1<16)-3*(y$="6" AND s1>5): IF y$="K" THEN LET c$=a$: GO TO 720
560 LET y$=SCREEN$ (s1,o1)
570 IF y$=" " THEN GO TO 530
580 PRINT INK 1;AT s1-1,o1-1;" ";AT s1,o1-1;" ";AT s1+1,o1-1;" "
590 PRINT PAPER 6; INK 1;AT s-1,o-1;d$;AT s,o-1;e$;AT s+1,o-1;f$
600 PRINT PAPER 6; INK 2;AT s,o;y$
610 REM BEEP .01,(4 AND s>s1)+(7 AND o<o1)+(12 AND o>o1)
612 RANDOMIZE USR 65055
620 LET k=1: FOR i=6 TO 15 STEP 3: FOR j=11 TO 20 STEP 3: LET c$(k)=SCREEN$ (i,j)
630 LET k=k+1: NEXT j: NEXT i
640 LET e=e+1: PRINT AT 1,19; FLASH 1;e; FLASH 0
650 IF b$<>c$ AND a$<>c$ THEN GO TO 520
660 PRINT INK 2;AT 2,10; FLASH 1;"!!!SIKER!!!": FLASH 0
670 FOR i=11 TO 1 STEP -1: BEEP .1,i: NEXT i: BEEP .3,i
680 IF e<min THEN LET min=e: PRINT INK 1;AT 3,10;"µj rekord! ";e
690 PRINT 0;"Nyomd az ENTER-t "; FLASH 1;" az µj j»t1khoz!"; FLASH 0
700 IF INKEY$="" THEN GO TO 700
710 GO TO 280
720 BEEP .1,-10: BEEP .2,-20: BEEP .3,-30: PRINT AT 2,10;"Nem siker3lt!": PRINT AT 19,3;" "
725 PRINT AT 21,8; INK 1;"NYITRAISOFT 2004"
730 PRINT 0;"Nyomd az ENTER-t"; FLASH 1;" az µj j»t1khoz"; FLASH 0
740 PAUSE 0: PAUSE 0
750 GO TO 290
860 INK 9: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175: PLOT 1,1: DRAW 253,0: DRAW 0,173: DRAW -253,0: DRAW 0,-173
870 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
880 RETURN
SZÓKERESŐ JÁTÉK
A táblán elrejtett 1-10 szót kell megtalálni, a megtalált szó más színű lesz, segítséget is lehet kérni, a betűk különlegesek. Ha meguntad, akkor fel is adhatod.

1 REM SZOKERESO JATEK
10 REM JATEKGYAROS 2004'
15 GOSUB 5000: GOSUB 5500
20 BORDER 0: PAPER 0: INK 7: CLS : POKE 23658,8
22 POKE 23607,246
90 PRINT AT 9,9;"SZOKERESO": LET a$=" JATEK": FOR g=1 TO 10: FOR f=1 TO 7: PRINT AT 11,f+11;a$(f): POKE 23728,11: POKE 23729,f+11: BEEP .05,33: RANDOMIZE USR 23300: NEXT f: NEXT g
95 INK 7: PAUSE 200: GOSUB 9000
96 BORDER 0
100 REM A SZAVAK BEKERESE
110 CLS : INPUT "HANY SZO LESZ? (MAX. 10): ";npal: IF npal>10 OR npal<1 THEN GOTO 110
115 DIM p$(npal,10): DIM z$(npal,7)
117 FOR f=1 TO npal
120 INPUT (F);"- SZO ";": "; LINE a$: IF LEN a$<2 OR LEN a$>10 THEN BEEP .5,-33: GOTO 120
125 LET p$(f)=a$
126 IF f>1 THEN FOR g=1 TO f-1: IF p$(f)=p$(g) THEN INPUT "": PRINT 0;">> EZ A SZO MAR SZEREPELT <<": PAUSE 100: GOTO 120
127 IF f>1 THEN NEXT g
130 NEXT f
140 GOSUB 7000
150 INPUT "": PRINT 0; FLASH 1; INK 2;"ţţţţţţ"; FLASH 0;" EGY KIS TURELMET "; FLASH 1;"ţţţţţţţ"
1000 REM SZAVAK ELTUNTETESE
1010 DIM x$(17,17,1): RANDOMIZE PEEK 23672
1020 FOR f=1 TO npal
1025 POKE 23673,0: GOSUB 8000
1030 LET dir=INT (RND*8)+1
1040 LET a$=p$(f): GOSUB 7500: FOR c=1 TO LEN a$: IF a$(c) <> " " THEN NEXT c
1050 LET len=c-1
1055 IF PEEK 23673 >= 15 THEN BEEP 1,-33: FOR f=7 TO 21: PRINT AT f,0;"ţţţţţţţţţţţţţţţ": NEXT f: INPUT "": PRINT 0;" CSEND LEGYEN,ELTEVESZTETTEM!! ": BEEP 2,33: GOTO 150
1056 LET posx=INT (RND*17)+1: LET posy=INT (RND*17)+1: IF x$(posx,posy) <> a$(1) AND x$(posx,posy) <> CHR$ 32 THEN GOTO 1056
1060 GOTO 1000+100*dir
1100 IF posx+len >= 18 THEN GOTO 1055
1105 FOR v=posx TO (len+posx)-1: IF x$(v,posy) <> CHR$ 32 AND X$(v,posy) <> p$(f)((v+1)-posx) THEN GOTO 1055
1106 NEXT v
1110 LET c=1: FOR g=posx TO (len+posx)-1: LET x$(g,posy)=a$(c): LET c=c+1: NEXT g
1120 GOTO 1900
1200 IF posx-len <= 0 THEN GOTO 1055
1205 FOR v=posx TO (posx-len)+1 STEP -1: IF x$(v,posy) <> CHR$ 32 AND x$(v,posy) <> p$(f)((posx+1)-v) THEN GOTO 1055
1206 NEXT v
1210 LET c=1: FOR g=posx TO (posx-len)+1 STEP -1: LET x$(g,posy)=a$(c): LET c=c+1: NEXT g
1220 GOTO 1900
1300 IF posy+len >= 18 THEN GOTO 1055
1305 FOR v=posy TO (len+posy)-1: IF x$(posx,v) <> CHR$ 32 AND x$(posx,v) <> p$(f)((v+1)-posy) THEN GOTO 1055
1306 NEXT v
1310 LET c=1: FOR g=posy TO (len+posy)-1: LET x$(posx,g)=a$(c): LET c=c+1: NEXT g
1320 GOTO 1900
1400 IF posy-len <= 0 THEN GOTO 1055
1405 FOR v=posy TO (posy-len)+1 STEP -1: IF x$(posx,v) <> CHR$ 32 AND x$(posx,v) <> p$(f)((posy+1)-v) THEN GOTO 1055
1406 NEXT v
1410 LET c=1: FOR g=posy TO (posy-len)+1 STEP -1: LET x$(posx,g)=a$(c): LET c=c+1: NEXT g
1420 GOTO 1900
1500 IF posx+len >= 18 OR posy+len >= 18 THEN GOTO 1055
1505 FOR v=0 TO len-1: IF x$(posx+v,posy+v) <> CHR$ 32 AND x$(posx+v,posy+v) <> p$(f)(v+1) THEN GOTO 1055
1506 NEXT v
1510 FOR g=0 TO len-1: LET x$(posx+g,posy+g)=a$(g+1): NEXT g
1520 GOTO 1900
1600 IF posx-len <= 0 OR posy-len <= 0 THEN GOTO 1055
1605 FOR v=0 TO len-1: IF x$(posx-v,posy-v) <> CHR$ 32 AND x$(posx-v,posy-v) <> p$(f)(v+1) THEN GOTO 1055
1606 NEXT v
1610 FOR g=0 TO len-1: LET x$(posx-g,posy-g)=a$(g+1): NEXT g
1620 GOTO 1900
1700 IF posx+len >= 18 OR posy-len <= 0 THEN GOTO 1055
1705 FOR v=0 TO len-1: IF x$(posx+v,posy-v) <> CHR$ 32 AND x$(posx+v,posy-v) <> p$(f)(v+1) THEN GOTO 1055
1706 NEXT v
1710 FOR g=0 TO len-1: LET x$(posx+g,posy-g)=a$(g+1): NEXT g
1720 GOTO 1900
1800 IF posx-len <= 0 OR posy+len >= 18 THEN GOTO 1055
1805 FOR v=0 TO len-1: IF x$(posx-v,posy+v) <> CHR$ 32 AND x$(posx-v,posy+v) <> p$(f)(v+1) THEN GOTO 1055
1806 NEXT v
1810 FOR g=0 TO len-1: LET x$(posx-g,posy+g)=a$(g+1): NEXT g
1900 LET z$(f)( TO 2)=STR$ posx: LET z$(f)(3 TO 4)=STR$ posy: LET z$(f)(5 TO 6)=STR$ len: LET z$(f)(7)=STR$ dir: NEXT f
1902 FOR f=5 TO 21: PRINT AT f,0;"
ţţţţţţţţţţţţţţţţţ": NEXT f1905 INPUT "": PRINT 0; FLASH 1; INK 6;"ţţţţţţţ"; FLASH 0;" ROGTON VEGZEK "; FLASH 1;"ţţţţţţţ"
1910 DIM e$(17,17): FOR f=1 TO 17: FOR g=1 TO 17: IF CODE x$(f,g)=32 THEN LET x$(f,g)=CHR$ (INT (RND*25)+65)
1920 LET e$(g)(f)=x$(f,g): NEXT g: NEXT f
1930 BEEP 1,33: INPUT "": FOR f=5 TO 21: PRINT AT f,0;"": BEEP .01,33: NEXT f: FOR f=21 TO 5 STEP -1: PRINT AT f,0;e$(f-4): BEEP .01,33: NEXT f
1940 INPUT "": PRINT 0;"NYOMD AZ ""F""-T,HA FELADOD...."
2000 REM AZ IRANYITAS
2010 LET posy=9
2020 PRINT AT posy,18;"
ţ"2030 IF INKEY$=CHR$ 10 THEN BEEP .1,33: PRINT AT posy,18;" ": LET posy=posy+1: IF posy=npal+9 THEN LET posy=npal+8
2040 IF INKEY$=CHR$ 11 THEN BEEP .1,33: PRINT AT posy,18;" ": LET posy=posy-1: IF posy=8 THEN LET posy=9
2050 IF INKEY$="0" THEN GOSUB 6000
2055 IF INKEY$="P" THEN GOSUB 9500
2060 IF INKEY$="F" THEN GOTO 100
2070 GOTO 2020
5000 REM A PROGRAM ESZE
5010 RESTORE 5050
5020 FOR f=23300 TO 23344
5030 READ a: POKE f,a
5040 NEXT f: RETURN
5050 DATA 58,176,92,71,58,177,92,79,62,0,22,4,245,205,30,91,126,15,119,241,60,21,200,195,16,91,245,120,230,24,246,64,103,241,132,103,120,230,7,15,15,15,129,111,201
5500 REM SAJAT GRAFIKA
5510 RESTORE 5550
5520 FOR f=USR "a" TO USR "i"+7
5530 READ a: POKE f,a
5540 NEXT f: RETURN
5550 DATA 251,23,47,223,0,0,0,0,123,177,218,239,180,24,176,240,144,144,144,160,208,176,112,240
5551 DATA 222,141,219,247,45,24,13,15,9,9,9,5,11,13,14,15,15,13,24,45,247,219,141,222
5552 DATA 0,0,0,0,239,23,11,253,240,176,24,180,239,219,177,123,126,195,165,129,165,153,195,126
6000 REM OSSZEKEVERTEM MINDENT
6010 LET x1=VAL z$(posy-8)( TO 2): LET y1=VAL z$(posy-8)(3 TO 4): LET len=VAL z$(posy-8)(5 TO 6): LET dir=VAL z$(posy-8)(7)
6020 GOTO 6000+100*dir
6100 LET x2=x1+(len-1): LET y2=y1: LET stx=1: LET sty=1: GOTO 6900
6200 LET x2=x1-(len-1): LET y2=y1: LET stx=-1: LET sty=1: GOTO 6900
6300 LET x2=x1: LET y2=y1+(len-1): LET stx=1: LET sty=1: GOTO 6900
6400 LET x2=x1: LET y2=y1-(len-1): LET stx=1: LET sty=-1: GOTO 6900
6500 LET x2=x1+(len-1): LET y2=y1+(len-1): LET stx=1: LET sty=1: GOTO 6950
6600 LET x2=x1-(len-1): LET y2=y1-(len-1): LET stx=-1: LET sty=-1: GOTO 6950
6700 LET x2=x1+(len-1): LET y2=y1-(len-1): LET stx=1: LET sty=-1: GOTO 6950
6800 LET x2=x1-(len-1): LET y2=y1+(len-1): LET stx=-1: LET sty=1: GOTO 6950
6900 RANDOMIZE PEEK 23672+256*PEEK 23673: LET bright=INT (RND*2): LET ink=INT (RND*7)+1: FOR f=x1 TO x2 STEP stx: FOR g=y1 TO y2 STEP sty: LET col=f-1: LET fil=g+4: PRINT AT fil,col; INVERSE 1; OVER 1; INK ink; BRIGHT bright;" ": POKE 23728,fil: POKE 23729,col: FOR v=1 TO 8: RANDOMIZE USR 23300: BEEP .01,33: NEXT v: NEXT g: NEXT f: RETURN
6950 RANDOMIZE PEEK 23672+256*PEEK 23673: LET bright=INT (RND*2): LET ink=INT (RND*7)+1: FOR f=0 TO len-1: LET col=((x1+f)-1 AND stx=1)+((x1-f)-1 AND stx=-1): LET fil=(y1+f+4 AND sty=1)+(y1-f+4 AND sty=-1): PRINT AT fil,col; INVERSE 1; OVER 1; INK ink; BRIGHT bright;" ": POKE 23728,fil: POKE 23729,col: FOR v=1 TO 8: RANDOMIZE USR 23300: BEEP .01,33: NEXT v: NEXT f: RETURN
7000 REM KEPERNYO
7005 LET t$=" SZOKERESO JATEK NYITRAISOFT JATEKGYAROS 2004' MAJUS"
7010 PRINT INK 2;AT 1,6;t$
7020 PRINT INK 5;AT 0,0;"
ţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţţ"; INK 5;AT 4,0;"ţţţţţţţţţţţţţţţţţ"; INK 5;AT 21,17;"ţţţţţţţţţţţţţţţ"7030 FOR f=1 TO 3: PRINT INK 5;AT f,0;"ţ"; INK 5;AT f,31;"ţ": NEXT f
7040 PRINT INK 5;AT 4,31;"ţ": FOR f=5 TO 20: PRINT INK 5;AT f,17;"ţ"; INK 5;AT f,31;"ţ": NEXT f: PRINT INK 5;AT 4,17;"ţ"
7050 REM OVER 1: FOR f=170 TO 140 STEP -2: INK 1: PLOT 5,f: DRAW 245,0: NEXT f: OVER 0
7060 INK 4: FOR f=5 TO 21 STEP 2: PRINT AT f,0;"ţţţţţţţţţţţţţţţţţ": BEEP .1,33: NEXT f
7065 FOR f=20 TO 5 STEP -2: PRI
NT INK 4;AT f,0;"ţţţţţţţţţţţţţţţţţ": BEEP .1,33: NEXT f7070 PRINT INK 3;AT 7,18;"KERESENDOK:"; INK 2;AT 7,18; OVER 1;"__________"
7080 FOR f=1 TO npal: LET a$=p$(f): GOSUB 7500: FOR g=1 TO v: PRINT AT 8+f,18+g;a$(g): POKE 23728,8+f: POKE 23729,18+g: BEEP .01,0: RANDOMIZE USR 23300: NEXT g: NEXT f
7090 RETURN
7500 FOR v=1 TO 10: IF CODE a$(v) <> 32 THEN NEXT v
7505 LET v=v-1
7510 LET a$=a$( TO v)
7520 RETURN
7777 PRINT OVER 0;AT 21,0;a$,: FOR v=1 TO 15: FOR g=1 TO 15: PRINT AT v,g;x$(g,v): PAUSE 0: NEXT g: NEXT v: RETURN
8000 REM BEOLVASAS
8020 RESTORE 8500: FOR v=0 TO npal-f: READ c$: NEXT v
8030 INVERSE 1: PRINT INK 2;AT 11,2;" MAR CSAK";(" " AND npal-f <> 1);(" " AND npal-f=1);AT 12,2;" ";c$;AT 13,2;" SZO VAN";(" " AND npal-f <> 1);(" " AND npal-f=1);AT 14,2;" HATRA "
8035 INVERSE 0
8040 RETURN
8499 REM SZAVAK SZAMA
8500 DATA "AZ UTOLSO ","EGY ","KETTO ","HAROM ","NEGY ","OT ","HAT ","HET ","NYOLC ","KILENC "
9000 REM MAGYARAZAT
9010 LET A$="EBBEN A JATEKBAN 10 HOSSZU ES MAX.10 DARAB SZOT KELL AZ ELE- JEN BEIRNUNK,MELYET A SPECTRUM EGY 17X17-ES SZOVEGMATRIXBAN HELYEZ,REJT EL,MELYET MEG KELL TALALNUNK.HA EZ SIKERULT,AKKOR A '0' LENYOMASAVAL MEG IS JE- LENITI NEKUNK,MAJD A KURZORRAL A KOVETKEZO SZORA LEPHETUNK ES A KERESEST TOVABB FOLYTATHAT- JUK.A 'P'-VEL NYOMTATORA KULD- HETJUK A TABLAT,ES AZ 'F'-LE- NYOMASAVAL FELADHATJUK,VAGY UJ JATEKOT KERHETUNK."
9020 INK 5: CLS : PRINT AT 0,0; INVERSE 1;"SZOREJTO JATEK NYITRAISOFT 2004'"'''
9030 LET border=0: FOR f=1 TO LEN a$: PRINT a$(f);: BEEP (.005 AND CODE a$(f) <> 32)+(0 AND CODE a$(f)=32),33
9032 IF A$(F) <> CHR$ 32 THEN BORDER border
9035 IF LEN INKEY$ THEN RETURN
9036 LET border=NOT border: NEXT f
9040 PRINT 0;" NYOMD LE AZ ENTER-T": PAUSE 0
9050 RETURN
9500 REM NYOMTATAS
9510 INPUT "": PRINT 0;" NYOMTATOM ..."
9520 FOR f=1 TO npal: LPRINT e$(f);" ";f;"- ";p$(f): NEXT f
9530 FOR f=f TO 17: LPRINT e$(f): NEXT f
9540 GOSUB 5000: INPUT "": PRINT 0;"NYOMD AZ ""F""-T,AZ UJ JATEKHOZ"
9550 RETURN
ÚJTÉGLA - FALTÖRŐ
Készülvén a 20 éves évfordulóra elővettem 1983-ban kapott (első) Spectrum demonstrációs kazettát, - valószínűleg nektek is ez volt az első kazettátok - melyet először kipróbáltatok, és azon lévő Psion cég 1982-es WALL nevű programját lejátszva, úgy gondoltam, hogy az évfordulót úgy kéne nekem megünnepelni, hogy ezt a 48k-ra készült programot, a mai igényeknek megfelelően átalakítom 128K-s programmá, egy kicsit felgyorsítva és többszólamú aláfestő zenét kreálva hozzá. Elővettem a ZX Spectrum 128K-2-es gépemet, és ezzel készítettem el az új változatot. Az aláfestő zenét némi próbálkozás után elkészítettem, ezt volt a dolog neheze, persze a régi labdát és ütőt is átalakítottam kissé. A játék menürészét meg úgy alakítottam, mintha a 128K-s gép bejelentkező képe lenne.
A régi WALL és az új UJTEGLA programokat a levelemhez mellékelem, érdemes egymás után kipróbálni.
Játékgyáros (e nevemet egyébként Edy találta ki, szívesen használom!!)

1 REM TEGLATORES
2 REM (c) NYITRAISOFT 2002
3 REM KESZITETTE:JATEKGYAROS
4 REM A PROGRAM EREDETIJE A ZX SPECTRUM 48K DEMONSTRACIOS KAZETTAJAN A WALL PROGRAM !!
10 POKE 64062,255: POKE 64001,25: LET tt=-1: LET f$=CHR$ (PEEK 30000): LET g$=CHR$ (PEEK 30001): LET t$=CHR$ (PEEK 30002)
20 LET tt=tt+1: LET t=0: LET p=1: BORDER 7: INK 0: PAPER 7
30 FOR m=1 TO 4 STEP 2
32 FOR n=0 TO 30 STEP 2
34 PRINT AT m+3,n; PAPER m+1; INK 0;"ţţ";: PRINT AT m+4,n; PAPER m+2; INK 0;"ţţ"
36 NEXT n: NEXT m
38 FOR n=0 TO 30 STEP 2
40 PRINT AT m+3,n; PAPER 6; INK 0;"ţţ": NEXT n
46 LET u=0: LET v=0
47 LET w=0
48 LET a=14: LET t=0
50 FOR r=1 TO 6
52 LET m=10: LET n=8+INT (RND*14)
54 LET g=200: LET p=0: LET a=13
56 PRINT AT 21,0;" ţţţ "
65 GOSUB g: PRINT AT u,v;" "
70 PRINT AT m,n;"ţ": LET u=m: RANDOMIZE : LET v=n: RANDOMIZE USR 64000
74 IF m=20 THE
N PRINT AT m,n;"ţ"80 PAUSE 1: LET a$=INKEY$: IF a$ =f$ THEN GOSUB 224
86 IF a$ =g$ THEN GOSUB 234
88 IF a$ =t$ THEN GOTO 410
90 GOTO 60
100 IF m>20 THEN GOTO 240
101 IF m<20 THEN GOTO 106
102 IF t >= 558 THEN GOTO 20
103 LET p=0: LET w=0: IF n=a+1 OR n=a+2 THEN LET g=120: GOTO 120
104 IF n=a THEN LET g=180: GOTO 190
105 IF n=a-1 THEN LET g=140: GOTO 140
106 IF n>30 THEN LET g=160: GOTO 160
110 LET m=m+1: LET n=n+1
112 LET c=ATTR (m,n): IF c <> 56 THEN GOSUB 250: IF p=0 OR w=1 THEN LET g=120
114 RETURN
120 IF n>30 THEN LET g=140: GOTO 140
125 IF m<1 THEN LET w=1: LET g=100: GOTO 100
130 LET m=m-1: LET n=n+1
132 LET c=ATTR (m,n): IF c <> 56 THEN GOSUB 250: LET p=1: LET g=100+40*w
134 RETURN
140 IF m<1 THEN LET w=1: LET g=160: GOTO 160
145 IF n<1 THEN LET g=120: GOTO 120
150 LET m=m-1: LET n=n-1
152 LET c=ATTR (m,n): IF c <> 56 THEN GOSUB 250: LET p=1: LET g=160-40*w
154 RETURN
160 IF m>20 THEN GOTO 240
161 IF m<20 THEN GOTO 166
162 IF t >= 558 THEN GOTO 20
163 LET p=0: LET w=0: IF n=a+3 THEN LET g=120: GOTO 120
164 IF n=a+2 THEN LET g=180: GOTO 180
165 IF n=a OR n=a+1 THEN LET g=140: GOTO 140
166 IF n<1 THEN LET g=100: GOTO 100
170 LET m=m+1: LET n=n-1
172 LET c=ATTR (m,n): IF c <> 56 THEN GOSUB 250: IF p=0 OR w=1 THEN LET g=140
174 RETURN
180 IF m<1 THEN LET g=200: GOTO 212
190 LET m=m-1: LET c=ATTR (m,n): IF c <> 56 THEN GOSUB 250: LET g=200
195 RETURN
200 IF m>20 THEN GOTO 240
202 IF m<20 THEN GOTO 212
203 IF t >= 558 THEN GOTO 20
204 LET p=0: LET w=0: IF n=a+2 THEN LET g=120: GOTO 120
206 IF n=a+1 THEN LET g=20*(6+INT (RND*2)): GOTO g
210 IF n=a THEN LET g=140: GOTO 140
212 LET m=m+1: RETURN
220 IF a<1 THEN RETURN
222 LET a=a-1: PRINT AT 21,a;"ţţţţ": RETURN
224 IF a<2 THEN GOTO 220
226 LET a=a-2: PRINT AT 21,a;"ţţţţ ": RETURN
230 IF a>28 THEN RETURN
232 LET a=a+1: PRINT AT 21,a-1;" ţţţ": RETURN
234 IF a>27 THEN GOTO 230
236 LET a=a+2: PRINT AT 21,a-2;"
ţţţ": RETURN240 BEEP 1,6: PRINT 1;"ţ";
241 NEXT r
242 BORDER 7: PAPER 7: INK 0: CLS
243 LET x$="ELERT PONTSZAM " +STR$ t: PRINT AT 10,(32-LEN x$)/2;x$
244 LET a$="T100N3&gagdec6dd3cdeagd9g3gagdec5dd3edcage9dH": LET b$="O2T100V10N3"+a$ (7 TO ):
LET c$="O3T240((1ce))(1gb)))":ţa$,b$,c$: PAUSE 70: CLS : GOTO 410250 LET t=t+10-c/8
252 LET b=ABS (m-n)
254 LET y=INT (b/2)*2
256 IF b=y AND n<31 THEN PRINT AT m,n+1;" "
258 IF b <> y AND n>0 THEN PRINT AT m,n-1;" "
260 RETURN
300 REM itt a kezdes
301 BORDER 7: PAPER 7: INK 7: CLS
303 POKE 23606,160: POKE 23607,186: POKE 64001,165
310 FOR m=1 TO 4 STEP 2
312 FOR n=0 TO 30 STEP 2
314 PRINT AT m,n; PAPER m+1; INK 0;"ţţ";: PRINT AT m+1,n; PAPER m+2; INK 0;"ţţ"
316 NEXT n: NEXT m
400 PRINT INK 0;AT 1,5;"a SPECTRUM 20 eves!!!"
410 POKE 30000,54: POKE 30001,55: POKE 30002,48: POKE 24456,249: LET i1=7: LET i2=7: LET i3=2: LET i4=7
420 POKE 64062,220: PRINT AT 8,8; PAPER 2; INK i1;"2 IRANYITAS ";AT 7,8; PAPER 1; INK i2;"1 JOYSTICK II ";AT 9,8; PAPER 3; INK 7;"3 ZENE"; INK i4;" KIKAPCS ";AT 10,8; PAPER 4; INK 7;"4 ZENE"; INK i3;" BEKAPCS ";AT 11,8; PAPER 5; INK 7;"5 UJRA-INDITAS ";AT 13,8; PAPER 7; INK 0;"0 JATEK INDITAS"
430 INK 0: PRINT AT 4,7;"JATEK 128K MENUJE:"
440 PRINT AT 19,6;"(c) 1982 PSION SOFTWARE";AT 20,6;"(c) 2002 JATEKGYAROS"
450 PRINT INK 2;AT 17,3;"NYOMJ EGY GOMBOT (0-5) !"
460 RANDOMIZE USR 64000
470 IF INKEY$="1" THEN POKE 30000,49: POKE 30001,50: POKE 30002,53: LET i1=7: LET i2=4: GOTO 420
480 IF INKEY$="2" THEN LET i1=4: LET i2=7: GOTO 6000
490 IF INKEY$="3" THEN POKE 24456,234: LET i4=1: LET i3=7: GOTO 420
500 IF INKEY$="4" THEN POKE 24456,249: LET i3=2: LET i4=7: GOTO 420
510 IF INKEY$="5" THEN RANDOMIZE USR 4700
520 IF INKEY$="0" THEN GOTO 630
530 GOTO 470
630 RUN
6000 CLS : INK 0
6010 PRINT AT 10,2;"MOZGAS BALRA:": PAUSE 0: PRINT AT 10,18;INKEY$: POKE 30000,CODE (INKEY$)
6020 PRINT AT 12,2;"MOZGATAS JOBBRA:": PAUSE 0: PRINT AT 12,18;INKEY$: POKE 30001,CODE (INKEY$)
6030 PRINT AT 14,2;"JATEK KILEPES:": PAUSE 0: PRINT AT 14,18;INKEY$: POKE 30002,CODE (INKEY$)
6040 PAUSE 70: CLS : GOTO 415
9999 SAVE "TEGLA128+2" LINE 300
MAGYAR TRIKOLOR ZÁSZLÓ
Egy kis játék a 128K betöltőjével, egymásra hívott képek mozgásba hozzák a magyar zászlót, mintha a szél fújná, úgy lobog.

1 rem magyar zaszlo
3 rem jatekgyaros 2005-08
10 PAPER 7: BORDER 2: INK 0: CLS
20 FOR n=65 TO 120
30 LET i=2: LET c=5*COS (n/40*PI)
40 PLOT INK i;n,87+c: DRAW INK i;0,33
50 PLOT INK 4;n,56+c: DRAW INK 4;0,-33
60 NEXT n
70 FOR n=100 TO 180: LET c=5*COS (n/40*PI)
80 PLOT INK i;n,87+c: DRAW INK i;0,33
90 PLOT INK 4;n,56+c: DRAW INK 4;0,-33
100 NEXT n
110 FOR v=5 TO 21: PRINT AT v,7;"": NEXT v
140 SAVE !"zaszlo"SCREEN$
141 CLS
145 FOR n=65 TO 120
147 LET i=2: LET c=COS (n/40*PI)
148 PLOT INK i;n,87+c: DRAW INK i;0,33
149 PLOT INK 4;n,56+c: DRAW INK 4;0,-33
151 NEXT n
153 FOR n=100 TO 180: LET c=COS (n/40*PI)
155 PLOT INK i;n,87+c: DRAW INK i;0,33
157 PLOT INK 4;n,56+c: DRAW INK 4;0,-33
159 NEXT n
161 FOR v=5 TO 21: PRINT AT v,7;"": NEXT v
170 SAVE !"zaszlo2"SCREEN$
180 LOAD !"zaszlo"SCREEN$
185 LOAD !"zaszlo2"SCREEN$
190 LET a$=INKEY$: IF a$<>"" THEN CLS : GO TO 210
200 O TO 180
210 PRINT 1;"Maradek hely a memoriaban ";65535-USR 7962;" bajt.": PAUSE 0: INPUT PI
220 AVE "zaszlo"LINE 1
230 STOP
HARMADIK ZENEDEMÓ
A harmadik zenedemóm:
1. Ábrándos dallamok
2. Napsugaras este
3. Rock a szívemből
4. Vangelis
5. Kalinka
6. Mike Oldfield

1 REM harmadik zenedemo
2 REM keszitette Nyitrai Laszlo- alias jatekgyaros 2004'
10 INK 1: PLOT 0,0: DRAW 255,0: DRAW 0,175: DRAW -255,0: DRAW 0,-175
12 PLOT 2,2: DRAW 251,0: DRAW 0,171: DRAW -251,0: DRAW 0,-171
13 PLOT 4,4: DRAW 247,0: DRAW 0,167: DRAW -247,0: DRAW 0,-167
14 PAPER 5: BORDER 5: LET a=3: LET b=1: LET d=0: LET e=6: PRINT AT a,b; PAPER 1; INK 6;"(1).ţbrţndos dallamok (2001)": PRINT AT a+1,b; PAPER 2; INK 7;"(2).Napsugaras este (2004)": PRINT AT a+2,b; PAPER 4; INK 7;"(3).Rock a szţvembţl (2001)": PRINT AT 1,2; INK 0; PAPER 4;" "; PAPER 6;" Harmadik zenedemţ 2004' "; PAPER 4;" ": PRINT AT 2,1; PAPER 4;"
"15 PRINT AT a+3,b; PAPER 5; INK 1;"(4).Vangelis-imeretlen (2004)": PRINT AT a+4,b; PAPER 6; INK 2;"(5).Orosz dal Kalinka (2004)": PRINT AT a+5,b; PAPER 4; INK 1;"(6).Mike Oldfield 1 (2004)"
20 PRINT AT 17,3; INK 2;"ţţţţţţţţ alias jţtţkgyaros": PRINT AT 18,1;; PAPER 6;" Zenedemţ csak a SPECTRUM 128 ";AT 19,1; PAPER 4;" 128K+2,128k+2a,b,ţs 128K+3 "; PAPER 3;AT 20,1;" szţmţtţgţpeken mţkţdik!!! "
30 PRINT AT 13,8; PAPER 6; INK 1;"E dal szţl most:"
40 IF INKEY$="1" THEN PRI
NT AT 15,8; INK 0; PAPER 5;"ţbrţndos dallamok": GOTO 10050 IF INKEY$="2" THEN PRINT AT 15,8; INK 0; PAPER 5;"Napsugaras este": GOTO 180
60 IF INKEY$="3" THEN PRINT AT 15,8; INK 0; PAPER 5;"Rock a szţvembţl": GOTO 320
63 IF INKEY$="4" THEN PRINT AT 15,4; INK 0; PAPER 5;"Vangelis ismeretlen ember": GOTO 600
65 IF INKEY$="5" THEN PRINT AT 15,8; INK 0; PAPER 5;" Kalinka": GOTO 700
67 IF INKEY$="6" THEN PRINT AT 15,8; INK 0; PAPER 5;" Mike Oldfield 1": GOTO 800
75 LET d=d+1: IF d=7 THEN LET d=0
80 LET e=e-1: IF e=-1 THEN LET e=6
90 GOTO 30
100 LET t$="T136"
110 LET a$=t$+"V14 O4 5g5G3FEDCDDFED$ba ((O4 6g5G3FEDCDDFED$ba))(O4 6g5G3FEDCDDFED$ba)O4 6g5G3FEDCDDFED$b5a(6g6f5g6a6g5a5gG3FEDCDDFED$b5a)5g5G3FEDCDDFED$b5a"
120 LET b$=t$+"((V0 5&V13 b6a5b5b3b5aa))O4 5g3Db6C5f3fCa$bffO4 6g3Db6C5f3fCa$bffO4 6g3Db6C5f3fCa$bffO4 6g3Db6C5f3fCa$bf4_1f(O5 9$efO4 5gb6a5b5b3b5aa)5gb6a5b5b3b5a"
130 LET c$=t$+"((V0 5&V13 d6c5d5d3d5cc))V15 (O5 5d5D6C5D3D5EF7E5D6C5C3agffefg)(O4 9$bC 5g5d6c5d5d3d5cc)5g5d6c5d5d3d5cc"
140 LET d$=t$+"(O5 5d5D6C5D3D5EF7E5D6C5C3agffefg)(O4 9$bC 5g5d6c5d5d3d5cc)5g5d6c5d5d3d5ccO4 9$bC5g5d6c5d5d3d5ccO4 9$bC7D UX5000W0 M14 O8 3cO7 1cO6 3cO5 1cO4 3cO3 5c"
150 LET e$=t$+"O4 5g3Db6C5f3fCa$bffO4 6g3Db6C5f3fCa$bffO4 6g3Db6C5f3fCa$bffO4 6g3Db6C5f3fCa$bf4_1f(O5 9$efO4 5gb6a5b5b3b5aa)5gb6a5b5b3b5aaO5 9$efO4 5gb6a5b5b3b5aa O5 9$ef7g"
160 LET f$=t$+"((O4 5g5G3FEDCDDFED$b5a)) (6g6f5g6a6g5a5gG3FEDCDDFED$b5a)5g5G3FEDCDDFED$b5a6g6f5g6a6g5a5gG3FEDCDDFED$b5a 6g6f5g6a6g5a7g"
170 ţa$,b$,c$:ţd$,e$,f$: CLS : GOTO 10
180 LET t$="T240 "
190 LET a$=t$+"((V14 O3 ((5aEG)aE(eEG)gE)))(((5aEG)aE(eEG)gE))(V13 O5 (5egb)eg(fgb)fg (gbE)gb(abE)ab)"
200 LET b$=t$+"V12 O5 ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) ((((10Cae))))((((10bge)))) V13 O5((((10Cge)))) ((((10bfd))))((((10Ebe))))((((10baf))))((((10gec))))((((10bfd))))((((10Ebe))))((((10baf))))"
210 LET c$=t$+"V11 ((((10 ECa))))((((10Dbg))))((((O4 10 ECa))))((((O4 10Dbg))))((((O5 10ECa))))((((10Dbg))))((((O4 10ECa))))((((10Dbg))))(V14 UX40000W2 O5 9_9_9_8E3DC9_9_9_5a5aCD7EG6ED5C9_8D3ED9_9_9_9C)(V13 O3(5Ceg)Cg(Dfa)Da(Egb)Eg(FaD)FD)"
220 LET d$=t$+"V11 ((3egbEEbge)(dfaDDafd))(O5 V13 9_9_8E5GFDba9_9_7_3g3ababDbDbDbD9_9_8E5DEGABO6 9_9_9_9E)UX30000W0 O5 9_7E 7EED5ba7g9_7E7G5FGFD9a9_7E7EED5ba7gega9_9_5_5b"
230 LET e$=t$+"V12 O5 ((((10GEb))((10FDb))((10GEb))((10BGE))((10AFD))((10FDa))((10EDa))((10Daf)))) ((((10GEb))((10FDb))((10GEb))((10BGE))((10AFD))((10FDa))((10EDa))((10Daf))))(((10GEb))((10FDb))((10GEb))((10BGE))((10AFD))((10FDa))((10EDa))((10Daf))) O4 V12 ((((10ECg))))(((10FDa)))((10GDa))((10FDa))((((10ECg))))((((10FDa))))((((10ECg))))(((10FDa)))((10GDa))((10FDa))((((10ECg))))((10BFD))(((10BFD)))((10BFD))"
240 LET f$=t$+"UX5000W0O2 (((5EBbB)(DAaA)))(((5EBbB)(DAaA)))((5EBbB)(DAaA))(V13 O3 5CE5&5CE5&CEDF5&DGFDa) 5CE5&5CE5&CEDF5&DGFDa 5CE5&5CEGA9_5_5_5_5_5B"
250 LET g$=t$+" (3GEbFDa)GEFDGEbFDa9_5G(3GEbFDa)GEFD7BBBBV11 ((3egbEEbge)(dfaDDafd))(O5 V13 9_9_8E5GFDba9_9_7_3g3ababDbDbDbD9_9_8E5DEGABO6 9_9_9_9E)UX30000W0 O5 9_7E 7EED5ba7g9_7E7G5FGFD9a9_7E7EED5ba7gega9_9b"
260 LET h$=t$+"V12(((10bge)))((10bge))((10afd))((((10bge))))(((10bge)))((10bge))((10afd))((((10Dbf))))V12 O5 ((((10GEb))((10FDb))((10GEb))((10BGE))((10AFD))((10FDa))((10EDa))((10Daf)))) ((((10GEb))((10FDb))((10GEb))((10BGE))((10AFD))((10FDa))((10EDa))((10Daf))))(((10GEb))((10FDb))((10GEb))((10BGE))((10AFD))((10FDa))((10EDa))((10Daf))) O4 V12 ((((10ECg))))(((10FDa)))((10GDa))((10FDa))((((10ECg))))((((10FDa))))((((10ECg))))(((10FDa)))((10GDa))((10FDa))((((10ECg))))((10BFD))(((10BFD)))((10BFD))"
270 LET i$=t$+"O3 (5E9&5bDD)5E9&5bDD3BFbAFb(GFb)(Fb)UX5000W0O2 (((5EBbB)(DAaA)))(((5EBbB)(DAaA)))((5EBbB)(DAaA))(V13 O3 5CE5&5CE5&CEDF5&DGFDa) 5CE5&5CE5&CEDF5&DGFDa 5CE5&5CEGA9_5_5_5_5_5B"
280 LET j$=t$+"O4V12((((10ECg))))(((10FDa)))((10GDa))((10FDa))((((10ECg))))((((10FDa))))((((10ECg))))(((10FDa)))((10GDa))((10FDa))((((10ECg))))9_5_5_5G"
290 LET k$=t$+"UX30000W0 O5 9_7E7EED5ba7g9_7E7G5FGFD9a9_7E7EED5ba7gCba9_9_5b"
300 LET l$=t$+"O3((CEgE)(DFaF))(CEgE)(DFaF)7egCV15 9_9_5g"
310 ţa$,b$,c$:ţd$,e$,f$:ţg$,h$,i$:ţj$,k$,l$: CLS : GOTO 10
320 LET t$="T240 "
330 LET a$=t$+"UX10000W0M15 O3((6ggM14O0 4gM15 O3 bDg)(6ffM14O0 4fM15 O3 aCf))"
340 LET b$=t$+"V12 O5(((1BGDGDbDbgbgd))((1AFCFCaCafafc)))"
350 LET c$=t$+"V10 O5((((1bgd))))((((1afc))))((((1bgd))))((((1afc))))"
360 LET a$=a$+t$+"UX10000W0M15 O3 (((6ggM14O0 4gM15 O3 bDg)(6ffM14O0 4fM15 O3 aCf)))"
370 LET b$=b$+t$+"(V0 6c V15 O5 4ba6bD4DCCDbgab6a9_9_7_3C6&4ba6bD9_7G8FEDC)"
380 LET c$=c$+t$+"V13 O5(((1BGDGDbDbgbgd))((1AFCFCaCafafc)))(((1BGDGDbDbgbgd))((1AFCFCaCafafc)))"
390 LET a$=a$+t$+"UX10000W0M15 O3 ((6$e$eM14O0 4$eM15 O3 g$bg)(6ffM14O0 4fM15 O3 aCf))(6$e$eM14O0 4$eM15 O3 g$bg)(6ffM14O0 4fM15 O3 aCf)(6$e$eM14O0 4$eM15 O3 g$bg)UX10000W0 M15 O3 6ccM14 O0 4cM15 O3 egcM15 6cc M14 O0 4cM15 O3 f$af 6ccc4cc8&"
400 LET b$=b$+t$+"8$EDC6$b8D9_9CV06cV15 8$EFG6$B9_9CV06cV15 8$EDC6$b8D9_9CV0 7_3cV15 8$EFG$BO6 9_9_9C"
410 LET c$=c$+t$+"V13 ((2$eg$b$EG$BG $E$b$E$bg$bg$eg)(2faCFAO6CO5AFCFCaCafa))"
420 LET c$=c$+t$+"V13 (2$eg$b$EG$BG $E$b$E$bg$bg$eg)(2faCFAO6CO5AFCFCaCafa) (2$eg$b$EG$BG $E$b$E$bg$bg$eg)(2cegCEGO6CEO5)(2cegCEGO6CEO5)"
430 LET a$=a$+t$+"V0 8& V15 UX10000W0M15 O3((6ggM14O0 4gM15O3bDg6ffM14O0 4fM15O3aCf6$e$eM14 O0 4$eM15 O3 g$b$e6ffM14O0 4fM15 O3 aCf))"
440 LET b$=b$+t$+"V0 9_9_5_8&V13(((O5 1BGDGDbDbgbgd)(1AFCFCaCafafc)O6 (1$E$bg$bg$eg$eO5 $b$E$bg)(O6 1AFCFCaCafafc)))"
450 LET c$=c$+t$+"V0 9_9_5_8& (V0 6& V15 O5 4bCDCbg6A9_3G9_7$BO6 9_7C6&4Dbgdgb6E9_3D(4D$bg$eg$bD$b))"
460 LET a$=a$+t$+"UX10000W0 (M15 O3 6$e4$e$eM14 O0 6cM15 O3 6$e$e$eM14 O0 6cM15 O3 4$eeO3 6f4ffM14 O0 6cM15 O3 6fffM14 O0 6cM15 O3 4fe) M15 O3 6$e4$e$eM14 O0 6cM15 O3 6$e$e$eM14 O0 6cM15 O3 4$eeO3 6f4ffM14 O0 6cM15 O3 6fffM14 O0 6cM15 O3 4$ef M15 O3 6$g4$g$gM14 O0 6cM15 O3 6$g$g$gM14 O0 6cM15 O3 4$gg4$a$a$a$a$e$e$e$eO2$a$a$a$a$a$a$aaM14 O0 7_1c4cO5 8cO0 4c6c4cO5 8cO0 7_1c4cO5 6cO0 6c O5 2cccc O4 cccc O3 cccc O2 cccc"
470 LET b$=b$+t$+"O4 (((1$eg$b$Eg$b$EG$b$EG$BO5)((O5 $EG$BO6$E))(O5$EG$BO6$E)(O6 1CFCaCafafcfcO5aCaf(cfaf))O4)O4(1$eg$b$Eg$b$EG$b$EG$BO5)((O5 $EG$BO6$E))(O5$EG$BO6$E)(O6 1CFCaCafafcfcO5aCaf(cfaf))(V14 O6 2C$GCaCafafcfcO5aCaf)V13 O4 4GDbGGDbGEDCEDbgD"
480 LET c$=c$+t$+"9_4$e9_2g8$b9_3a9_2f8d9_3$e9_3$b8D9_9_9C9_4$e9_2g8$b9_3a9_2f8a8$D$D$D$b6$D8D9_8_3D"
490 LET a$=a$+t$+"UX10000W0M15O3((6ggM14O0 4gM15O3bDg6ffM14O0 4fM15 O3 aCf6$e$eM14 O0 4$eM15 O3 g$b$e6ffM14O0 4fM15 O3 aCf)) "
500 LET b$=b$+t$+"V0 9_9_9_9_9_9&V13(((O5 1BGDGDbDbgbgd)(1AFCFCaCafafc)O6(1$E$bg$bg$eg$eO5 $b$E$bg)(O6 1AFCFCaCafafc)))"
510 LET c$=c$+t$+"V0 9_9_9_9_9_9& (V0 6& V15 O5 4bCDCbg6A9_3G9_7$BO6 9_7C6&4Dbgdgb6E9_3D(4D$bg$eg$bD$b))"
520 LET a$=a$+t$+"(UX10000W0 (M15 O3 6$e4$e$eM14 O0 6cM15 O3 6$e$e$eM14 O0 6cM15 O3 4$eeO3 6f4ffM14 O0 6cM15 O3 6fffM14 O0 6cM15 O3 4fe) M15 O3 6$e4$e$eM14 O0 6cM15 O3 6$e$e$eM14 O0 6cM15 O3 4$eeO3 6f4ffM14 O0 6cM15 O3 6fffM14 O0 6cM15 O3 4$ef M15 O3 6$g4$g$gM14 O0 6cM15 O3 6$g$g$gM14 O0 6cM15 O3 4$gg4$a$a$a$a$e$e$e$eO2$a$a$a$a$a$a$aa)M15 O3 4$a$a$a$a$e$e$e$eO2$a$a$a$a$a$a$aaV11 M7 O4 9_9_9g V0 9_9_9&V13 UX5000W0 M7 O4 8$b7fO3 8$b"
530 LET b$=b$+t$+"(O4 (1$eg$b$Eg$b$EG$b$EG$BO5 1$eg$b$Eg$b$EG$b$EG$BO5O5 $EG$BO6$EO5 $EG$BO6$EO5 $EG$BO6$EO5 $EG$BO6$EO5 $EG$BO6$E O5 $EG$BO6$EO6 1CFCaCafafcfcO5aCafcfafcfafO6 1CFCaCafafcfcO5aCafcfafcfaf O4)O4(1$eg$b$Eg$b$EG$b$EG$BO5)(O5 $EG$BO6$E)(O5 $EG$BO6$E)(O5$EG$BO6$E)(O6 1CFCaCafafcfcO5aCafcfafcfaf)(V14 O6 2C$GCaCafafcfcO5aCaf)V13 O4 4GDbGGDbGEDCEDbgD)(O4 4GDbGGDbGEDCEDbgD)V12 O5 9_9_9_9_8_3D"
540 LET c$=c$+t$+"(9_4$e9_2g8$b9_3a9_2f8d9_3$e9_3$b8D9_9_9C 9_4$e9_2g8$b9_3a9_2f8a8$D$D$D$b6$D8D9_8_3D)(6$D8D9_8_3D)O5 V12 9_9_9_9_8_3E"
550 ţa$,b$,c$: CLS : GOTO 10
600 REM vangelis
610 LET a$="T160O2V12 5A(((5DDDDD)DA))((((DDDDD)DA)(aaaaa)aA(DDDDD)DA))((bbbbb)bb(fffff)fA)(ggggg)gA(DDDDD)DA(aaaaa)aA(DDDDD)"
615 LET b$="UX10000W0O5N9&&&&&&&&&&&8&((4g1f4e1d9a&7&4g1f4g1a8gf9&)(4g1f4e1d9a&7&4g1f4g1a8gf9&)4g1f4e1d9a&7&4g1f4g1a8gf9&4g1f4e1d9a&7&4g1f4e1f8ed9&(4D1C4b1C9D&7&4C1b4a1b8a&9&)4b1a4g1a9b&7&4a1g4f1g9a&7&4g1f4e1d9a&7&4g1f4e1f8ed9&"
620 LET c$="UO4N"+b$(12 TO )
625 LET d$="T160O2V12 5DA(((DDDDD)DA)(aaaaa)aA(DDDDD)DA)(((bbbbb)bB(FFFFF)FC)(GGGGG)Ga(DDDDD)DA(aaaaa)aA(DDDDD)DA)((aaaaa)aA(DDDDD)DA)9_9DV7N4DV5DV3DV1D"
630 LET e$="UX10000W0O4(4g1f4e1d9a&7&4g1f4g1a8gf9&)4g1f4e1d9a&7&4g1f4g1a8gf9&4g1f4e1d9a&7&4g1f4e1f8ed9&((4D1C4b1C9D&7&4C1b4a1b8a&9&)4b1a4g1a9b&7&4a1g4f1g9a&7&4g1f4e1d9a&7&4g1f4e1f8ed9&)(4g1f4e1d9a&7&4g1f4e1f8ed9&)4g1f4e1dV11N9_9dV7N4dV5dV3dV1d"
635 LET f$="7&O3V11N7_9_9F7_9E9_9A7_9_9E7_9F9_9A7_9_9F7_9G9_9A7_9_9E7_9G9FE(9_9_9F9_9_9C)9_9_9D9_9_9A9_9_9E9_9_9FO4N7bfO5N7b7_9_9_9F7Cabfb7_9_9_9F7CfO3N5_9B5D7_9B5_9A5a7_9A(5_9E5e7_9E5_9A5a7_9A)5_9E5e7_9E5_9A5a7_9A9_9AV9N4AV6AV4V2A"
650
ţa$,b$,c$660 ţd$,e$,f$: CLS : GOTO 10
700 REM kalinka
710 LET a$="O5V14T140N6D5C3ab5C3ab5C3ba5gT145N3DD4C1b3ab5C3ab5C3ba5g"
715 LET b$="O5V14T140N6g(5a3gg)5a3gg5gT145N3bb4a1g3gg5a3gg5a3gg5g"
720 LET c$="O3V13T140N6g(3DADA)3DADAGBT145bGDADA(3DADA)GB"
725 LET d$="O5V14T150N5D5C3ab5C3ab5C3ba5gT155N3DD4C1b3ab5C3ab5C3ba5&6GN7F"
730 LET e$="O5V14T150N5g(5a3gg)5a3gg5gT155N3bb4a1g3gg5a3gg5a3gg5g6&V15N6CV13N3E"
735 LET f$="O3V13T150N5g(5D3DA)5D3DAGBT155gb(DA)5D3DA3DADD5G6&7f"
740 LET g$="O5V14T145N3DF3D1DC5bf3DFE1DC5bfg3gaCbag5ff7f7F"
745 LET h$="O5V14T145N5bC3bDC1ba5f1c$$c$cc5d$c7egf9f"
750 LET i$="O3V14T145N5b3f1ga5bD3b1Cbafga5bD7EC5fg9a"
755 LET j$="O5V14T160N(3DFCD5bf)5g3gacbag5FE7D"
760 LET k$="O5V14T160N(3bDaa5fd)5e3ee5ggaa7a"
765 LET l$="O3V14T160N(5b3FF1BAGA5F)5E3EE5CCC7D"
770 LET m$="O5V14T150N5D5C3ab5C3ab5C3ba5gT155N3D6D4C1b3ab5C3ab5C3ba5gV15N3G&H"
775 LET n$="O5V14T150N5g&5a3gg)5a3gg5gT155N3bb4a1g3gg5a3gg5a3gg5gV15N3b&H"
780 LET o$="O3V13T150N5g(5D3DA)5D3DAGBT155gb(DA)5D3DA3DADD5gV15N3G&H"
785 ţa$,b$,c$
786 ţd$,e$,f$
787 ţg$,h$,i$
788 ţj$,k$,l$
789 ţa$,b$,c$
790 ţm$,n$,o$
795 CLS : GOTO 10
800 REM Mike Oldfield Napsugţr
805 LET a$="T200O5V12((3eg8C)3eg5CDDEE&&3CD5EGECagg3ef5gC3CaCD5C&&)3&&O4N7E5DCaggegedc5d&&5e3dc5dfgg&&&7G5FEFEDCagCDG&&GAO5N5CGEDCaage3agCD5C&&H"
810 LET b$="5&M21O4V9N1c&&&V13N1C&3&)"
815 LET c$="5&O3V12(7cfcccgcccfcccgcc)cfcccgggcfcccgccffccggcccfc"
820 LET d$="T200N5&O5V12N7DFDa5Cbab7b&DFABO6N3CEDabDCbab5g&H"
825 LET e$="5&O3V12((7d))((g))((d))gdgg"
830 LET f$="T200O6N5&V12N3gecd5fdedc&3gecd5fdeag&O5N3gaCD5FDEDC&gC3CaCD5C7&H"
835 LET g$="5&O3V12(7cfcccf5cg7c)"
840 LET h$="T200N5&O6V10N9_7_7gUX500W4N9_7_7gH"
850 LET i$="O4V11N5c9_7_7c"
895
ţa$,b$,c$896 ţa$,b$,c$
897 ţd$,b$,e$
898 ţa$,b$,c$
899 ţd$,b$,e$:ţf$,b$,g$:ţa$,b$,c$:ţh$,b$,i$: CLS : GOTO 10
900 REM Mike Oldfield boldog Johanna
FÜGGELÉK:
SZÖVEGES KALANDJÁTÉK
Szöveges kalandjátékok készítésének gyakorlati problémái.
1. TARTALOM
1. Tartalomjegyzék
2. Összefoglaló
3. Kidolgozás
3.1. A kalandjáték-készítés általános tudnivalói
3.1.1. A kalandjáték fogalmának tisztázása
3.1.2. Kalandjáték és mitológia
3.1.3. A számítógép beszélni tanul
3.1.4. A szavaktól a mondatok felé
3.1.5. Helyiségek összefüggő labirintusa
3.1.6. Barangolás a térképen
3.1.7. Lakberendezővé változunk
3.1.8. Hogyan találjunk meg valamit?
3.1.9. "Sokasodjatok és növekedjetek!"
3.1.10. Az idő kerekéhez kötve
3.1.11. Néhány jó tanács és további lehetőségek
4. Irodalom
2. ÖSSZEFOGLALÓ
Az először a kalandjáték fogalmát tárgyaljuk, illetve általánosságban beszélünk, annak megvalósítási formáiról és lépéseiről. Főképpen a hagyományos szöveges kalandjátékról esik szó benne, külön koncentrálva a magyar nyelvű szövegértés nehézségeire (főnevek és igék ragozása, kötetlen szórend, ékezetes betűk stb.).
Játékokkal foglalkozni nem feltétlenül tartozik a lenézendő vagy megvetendő tevékenységek közé: minden élőlény egészséges állapota, ha játszik, és különösen pedig a legnagyobb matematikusok mindig is rendkívül játékos elmék voltak. Itt van pl. mindjárt Neumann János; vagy a John Conway angol matematikus által kiagyalt Életjáték - sejtautomata, mely kiált a számítógépes megvalósítás után. Állítom, hogy a kalandjáték is ugyanebbe a kategóriába tartozik!
3. KIDOLGOZÁS
3.1. A kalandjáték-készítés általános tudnivalói
3.1.1. A kalandjáték fogalmának tisztázása
Az isteni szikra két egyetemista (bizonyos Crowther és Woods nevezetű úriemberek) fejéből pattant ki 1977-ben, amikor is előálltak PDP-10 számítógépre készített - és akkoriban még teljesen eredetinek számítójáték-programjukkal, melynek az "Adventure" (magyarul: "Kaland") címet adták.
Egy kígyókkal, manókkal és más mesebeli lényekkel benépesített földalatti labirintusban elszórt kincseket kellett a játékosnak megtalálnia. Maga a program a korabeli diákság kedvenc szórakozásává lépett elő; a ráakasztott elnevezés pedig - az azóta eltelt két évtized során - olyan fogalommá terebélyesedett, melyről ma már szinte mindenkinek más-más dolgok jutnak eszébe. Számítógépjátékok tízezrei viselik büszkén vagy kevésbé büszkén ezt a besorolást, de ha némelyiket közülük egymás mellé raknánk, hát bizony meg sem fordulna a fejünkben a gondolat, hogy ezeknek bármi közük is lehet egymáshoz.
Az egyik képernyőn egy kicsinyített színes csatateret látunk mintegy madártávlatból, vezényszóra ide-oda rohangáló figurákkal tarkítva; a másikat egy térhatású, penészes falú börtön hatalmas sötét alagútja tölti be; a harmadikon mondatokba és bekezdésekbe tördelt, sűrűn szedett apró betűs szöveg olvasható. Pedig valamennyi ugyanarról a közös tőről fakad: amiről ebben az írásban szó lesz, az mindezek őstípusa, mely mindazonáltal nem pusztult ki és nem tűnt el teljesen ma sem, csupáncsak erősen háttérbe szorította őt ezer ágon fejlődő leszármazottainak hihetetlen burjánzása - pontos meghatározás szerint ez az ún. hagyományos szöveges kalandjáték. A "kalandjáték" szót tehát mostantól kezdve ebben az értelemben használom. Még ha másfajta programot szándékozik készíteni valaki, akkor is erről az alapról kell elindulnia; s noha főképpen ezekről lesz szó, természetesen a téma alapelvei mindenfajta grafikus játékra is vonatkoznak - elvégre a rajzos külső is csak egy burok, amit ha lehántunk róla, a program belsejében hasonlóan kell nyilvántartanunk a dolgokat. (S minekutána egy színvonalas szöveges játékot megírni némileg nehezebb programozói feladat, mint egy grafikust, ez egyúttal jó iskolát is jelent a későbbiek számára.)
Mihelyt egy ilyen programot elindítunk, rendszerint valamilyen különös helyszínen, egy fantáziavilág közepén találjuk magunkat. Kapunk egy bekezdésre való leírást vagy valamilyen képet tartózkodási helyünk közvetlen környezetéről - esetleg némi magyarázatot is arról, miképpen kerültünk oda -, és elindulunk fölfedezni világunk ismeretlen titkait. A klasszikus modellben a játék egyfajta párbeszédes üzemmódban működik: mi valamit mondunk a számítógépnek (kérjük vagy utasítjuk valaminek a megtételére), ő pedig üzenetek útján értesít bennünket lépéseink eredményéről. De cselekvéstől függetlenül is történhetnek események. Maga a játék lényegében egy kitalált világ életének szimulációja: ez a világ, hogy könnyebben ábrázolható legyen, határozott, különálló helyiségekre oszlik. Egy-egy ilyen helyszín lehet pl. egy erdei tisztás, egy lépcsőforduló, egy szoba egy házban vagy egy tó vizén ringatózó csónak - általánosságban a terep bármely jellegzetes pontja, mely a folyamatos mozgás számára megállóhelyet, a látványnak kapaszkodót biztosít; egyedül a készítők gondosságán múlik, milyen részletességgel tagolják az egész helyszínt kisebb vagy nagyobb helyiségek sokaságára. A különálló helyeket átjárók kötik össze egymással; megállapodás szerint ezeket égtájakkal szokás azonosítani, így rendszerint tíz-tizenkét irányban haladva kerülhetünk egyikből a másikba (a nyolc égtáj, kiegészítve a FEL/LE/KI/BE lehetőségeivel).
Pl. egy folyópartról észak felé indulva egy erdő pereméhez érkezünk. Egy helyszínről többnyire három-négy kijárat vezet (a többi irányban pl. fal van, vagy más gátló tényezők), s a világ térképét megkaphatjuk úgy, ha ezeket az utakat, mint csomópontokat összekötő hálózatot, lerajzoljuk egy papírra. Hogy ne lehessen rögtön az egészet bejárni, ajtók, kapuk és más nyílászárók feszülnek itt-ott két-két helyiség között (ezek nyitva, csukva és zárva lehetnek), de gyakorlatilag bármilyen típusú akadály is elképzelhető: kőomlás, amit el kell takarítani, ellenséges szereplő, aki elállja az utat, vagy akár egy vizesárok, egy kerítés vagy bármi. A helyiségeket helyhez kötött díszletek és mozdítható tárgyak töltik meg - utóbbiakat föl lehet venni, le lehet rakni, el lehet cipelni máshová és a legkülönbözőbb célokra alkalmazni őket. Tipikus eszközök pl. a lámpa, mellyel sötétben világítani tudunk, vagy a lezárt ajtók kulcsai - de itt is akármi elképzelhető. Ugyancsak jelen vannak itt a hozzánk hasonló (csak a gép által vezérelt) élőlények, szereplők. A legváltozatosabb módokon kommunikálhatunk velük: beszélgethetünk, megtámadhatjuk őket, tárgyakat csereberélhetünk; lehetnek helyhez kötöttek és passzívak, de mozoghatnak is egyik helyiségből a másikba, sőt, hozzánk hasonlóan "saját akaratukból" cselekedhetnek is ezt-azt; lehetnek ellenségesek vagy barátságosak. Legegyszerűbb viselkedésünk egy ilyen világban az lehet, hogy céltalanul csavargunk kusza labirintusának terein, miközben érdeklődve figyeljük előre beprogramozott vagy véletlenszerűen változó életét. Ez minden kalandjáték váza, s különbséget mindössze az tesz egyik vagy másik közt, hogy a helyiségek, akadályok, tárgyak és szereplők egymáshoz való viszonyát mennyire összetetten és sokoldalúan képes megjeleníteni számunkra.
Még néhány szót arról, miért is jelent egy igényes (!!!) szöveges játék elkészítése keményebb megpróbáltatást, mint grafikus testvéreié. Egy igazán intelligens programnak igék és főnevek százait, ezreit kell megértenie és helyesen alkalmaznia, köztük egy rakás, semmilyen szabályba sem sorolható kivétellel: a játékos ezeket tetszése szerint variálhatja egymással, aminek következtében a parancsoknak sok tízezer vagy akár több millió (vagy még ennél is több!) kombinációja és variációja is elképzelhető bennük, s ez ráadásként még a helyszínek és helyzetek számával is igencsak fölszorzódik (nem mindegy, hogy hol adjuk ki őket, vagy hogy melyik lépésünk előzi meg a másikat) - olyan rengeteg, hogy egyetlen játék(os) sem képes akárcsak töredékéig kiaknázni őket. Ha egy kalandjáték fenn kívánja tartani a valószerűség látszatát (és ezen keresztül a játékosok érdeklődését.), úgy ezek a lehetőségek közül minél többre kell valamilyen értelmes válasszal szolgálnia, azt az illúziót keltve, mintha birtokában lenne valamennyinek - a programozónak lehetőség szerint minden számbajöhető kombinációt figyelembe kéne vennie, elvarrnia minden elképzelhető szálat. Később majd látni fogjuk, hogy az utasítások kielemzése, a szóragozás és a szövegértés nehézségei is micsoda egy bonyolult problémával keserítik életünket. Ezzel szemben egy grafikus játék irányítása ikonokon, menükön keresztül zajlik, s a mindössze maroknyi alapfunkció már önmagában töredékére zsugorítja a kipróbálható lehetőségek számát, melyeket csupán listaszerűen végig kell venni. (A tényleges megjelenítés problémája pedig már nem is a programozóra, hanem a rajzolóra tartozik.) A cselekvési térnek éppen ez a beszűkülése magyarázza egyébként azt is, hogy igazán intelligens játékokat miért nem lehet grafikusan, hanem kizárólag szöveges alapúként elkészíteni. (Esetleg olyan kereszteződések formájában, mint amilyen pl. a Maniac Mansion volt, a Times of Lore vagy a Tir Na Nog.) A szöveges játékok legnagyobb varázsát pontosan az nyújtja, hogy sohasem érezhetjük bennük úgy, hogy kimerítettük összes rendelkezésre álló lehetőségeiket; elvégre örökké tömegével maradnak még olyan párosítások, amelyeket egyszerűen nem jutott eszünkbe leírni (különösen, ha a programozók gondoskodtak róla, hogy ébrentartsák bennünk a reményt, mindenféle utalások képében) - egy grafikus játéknál ez a tágasság érzése csak sokkal szerényebb mértékben van jelen. (Azonkívül manapság már egy szöveges játékkal szemben is alapvető elvárás, hogy grafikus képernyőt kezeljen - legalább a megtervezett betűkészlet és az állóképek erejéig.)
3.1.2. Kalandjáték és mitológia
Ha valaki szereti a sört, annak nyilván nagyobb örömet okoz elfogyasztani egy korsónyi Soproni Ászokot, mint a számítógépbe pötyögni, hogy IGYÁL SÖRT. Természetesen a számítógépes játékok nem arra valók, hogy helyettesítsék az igazi dolgokat (helytelenül teszi, aki erre használja őket), hanem hogy valami olyasmit nyújtsanak, amelyet máshol nem talál meg az ember. Mert mi is tulajdonképpen egy kalandjáték? Világmodell: olyan, mint a Karácsonyfa a gyertyáival, amely a csillagos égre emlékeztet (a boák a Tejutat, az üveggömbök a bolygókat jelképezik rajta stb.). Az általunk elképzelt világnak egy - ugyancsak általunk - létrehozott, kicsinyített mása.
És minél gazdagabb, árnyaltabb és részletesebb ez a világ, annál nagyobb örömet jelent foglalkozni vele. Minden egyes embernek - hacsak nem kíván maga is elveszni, eltévedni vagy szétforgácsolódni a nagyvilágban - alapvetően sürgető igénye van rá, hogy az őt körülvevő világot egy egységes egészként lássa át. Mivel pedig ezt a valóságban kivitelezni - tekintettel rá, hogy a Mindenség milyen elképzelhetetlenül roppant tömegű, szövevényes és bőséges valami nyilvánvalóan reménytelen és lehetetlen vállalkozás volna, így nem marad más hátra, mint ennek mintájára egyszerűsített, stilizált fantáziaképeket, szimbólumokat teremteni magunkban. Olyanokat, melyek - végesek lévén - befogadhatóan és megemészthetően utalnak vissza a Végtelenségre. (Maga a Nyelv, amit beszélünk, a leggyönyörűbb példája ennek!)
A mitológia a régiek által elképzelt hétrétegű világegyetem ábrázolása volt: a regék és mítoszok többsége az egyes csillagképeket és az égitestek mozgását (és azok ránk gyakorolt hatását, a napszakok és évszakok változásait) írja le jelképes, metaforikus megfogalmazásban. A magyar népmeséket elemző Jankovics Marcell írásaiból kiderül, hogy részben ugyanez a hagyomány folytatódik a népmesék világában is: amikor Borsszem Jankó megüli a hatökrös szekeret, az eredetileg a Göncöl hét csillagának megjelenítése volt. (A hetedik, a leghalványabb, a szekér rúdjának a tövében, a Jankó.) Az általunk oly előszeretettel magunkénak vallott Csodaszarvas mondája sem kizárólag a miénk, hanem főként Szibériában, de gyakorlatilag az egész északi félgömbön általánosan elterjedt motívumot alkot; s hogy az éghez kötődik, azt mi sem bizonyítja jobban, mint hogy e terület legtávolabbi vidékein is - egymás létéről semmit sem tudva - megszólalásig hasonló történeteket szőttek az emberek az északi égbolt bizonyos csillagképei köré. (A Cassiopeia, a Perseus és az Auriga együtt egy szaladó szarvashoz hasonlít, s az ezt körülvevő alakok a történet további hősei. A különböző népek sajátos változatai közti különbségek pedig jórészt visszavezethetők arra, ahogy az eltérő földrajzi körülmények miatt másképpen látszanak a csillagok az égen.)
Természetesen nem puszta szórakozásból fektettek tekintélyes mennyiségű szellemi munkát egy teljes, összefüggő jelképrendszer kialakításába, hanem mert elemi szükségük volt rá: írás-olvasás, naptár, iránytű, térkép és más, tájékozódást segítő találmányok híján ezekkel írták le a körülöttük levő világ naponta, havonta és évenként ciklikusan visszatérő változásait. (Egyes szibériai sámándobokon például olyan elrendezésben lyukakat fúrtak, hogy azokon keresztül az égbolt megfelelő csillagaira nézve, a dob valamelyik díszítése mutatta az északi irányt - úgy használták ezeket, mint tengerész a szextánst.) Nemcsak romantikus álmodozás hozta őket létre, de a maguk környezetében komoly gyakorlati jelentőséggel bírtak. A bűvös számok, alkímiai, asztrológiai jelképek, a népi babonában csökönyösen meglapuló számmisztika - mindezek talán egy történelem előtti, összefüggő csillagászat és matematika darabokra hullott, törmelékes maradványai.
A szöveges kalandjátékoknak kezdetben még megvolt az az egyedülálló varázsuk, hogy az archaikus világnak erre az elveszített rendjére emlékezhetett általuk az ember (bár persze nem közvetlenül, hanem csak áttételesen: magát az előbbi alapelvet, a csillagképek ábrázolását hiába keresné bennük bárki - de például a kelta mitológia elemeit ezerszer is fölhasználták bennük); a hömpölygő szöveg és a mellette illusztrációként alkalmazott képek látványa régi könyvek hangulatára emlékeztetett; a szellemes útvesztők, a jól eltalált leírások - és egyáltalán: a Nyelv, a Beszéd központi szerepe - pedig tagadhatatlanul némi irodalmi ízt adtak neki.
Azóta lassanként eluralta őket a rajzfilm meg az üzlet, s kiadóik ma már Walt Disney-szerű giccsfigurákkal keresnek dollármilliókat. Amikor még jóformán csak szövegek voltak bennük, a játékosnak (a szerzőnek meg aztán pláne!) igencsak meg kellett tornáztatnia a képzeletét, hogy maga előtt lássa a mögöttük rejlő világot; és ezt a világot mindenki egy picit másmilyennek látta, attól függően, hogy mennyire és mivel egészítette ki azt önmagában, belül (amitől aztán részben a magáénak is érezhette őket). Ha egy 16-millió színű, térhatású mozgókép jelenik meg a képernyőn, az - a tökéletes illúzió lehengerlő erejével bírva - jóval csekélyebb belső részvételt igényel a nézőtől, aki ennek megfelelően nem is csinál egyebet, mint lustán és közönyösen kattintgat az egérrel ide-oda. Ha egy hangzás tökéletes, már nincs mit kiegészíteni rajta, s a hallgatóságra szinte nincs is szükség hozzá: az első pár perc izgalma után méla undorba és unalomba fullad az egész.
Mivel a kalandjáték, mint olyan, is csak egy jelképes ábrázolás, ezért egyértelműen a dekadencia jelének tekinthető, ha a játékosok attól vannak elragadtatva, hogy a kép- és hanghatásoknak köszönhetően milyen élethűen jelennek meg benne a főhősök meg a helyszín - ahelyett, hogy a lényegével törődnének a játéknak! A készítők pedig a divathullámot meglovagolva szorgalmasan csomagolják számukra a látványosan ragyogó semmit.
Jelenleg szinte alig akad olyan területe a PC-s világnak, ahol az eredeti szándék még érvényesülni képes; de ez is inkább csak a technikai körülményeknek (pontosabban azok korlátainak.) köszönheti létét; az Interneten keresztül játszható kalandjátékokról van szó. A TELNET egy viszonylag gyors és egyszerű szöveges párbeszédes kapcsolatot létesít egy központi gép és a hozzá bejelentkező terminálok között - ezt kihasználva rengeteg szöveges játékot írtak és írnak, amelyek egy (rendszerint Linux-os alapú) szolgáltató gépen éjjel-nappal futnak, és a világ bármelyik pontjáról bárki beléjük léphet. Legkellemesebb vonása ezeknek a programoknak az, hogy rajtunk kívül is még akárhány illető részt vehet bennük egyidejűleg, a játék többi szereplőjét is igazi hús-vér emberek irányítják: nincs szükség többé a számítógép által jól-rosszul szimulált értelemre, hiszen valódi értelem (mégpedig egyszerre akár több száz!) jelenik meg helyette, a szereplőkön, mint szócsöveken át. A különböző játékosok együttműködhetnek, segíthetik egymást, csapatokat alkothatnak, vagy akár versenghetnek is egymással vagy egymás ellen. Ezekben az élet megszakítás nélkül zajlik - hogyha mi kilépünk belőle, az addigi helyzet akkor is létezik tovább. Található köztük néhány színvonalas alkotás (pl. Holy Mission, Isengard). Hátrányuk viszont, hogy ezeknek a parancsértelmezőjét - lustaságból, vagy ki tudja, miért - szinte minden esetben rendkívül elhanyagolják: sokszor csak a legprimitívebb, "egy ige meg egy főnév" típusú utasítások kiértékelésére képesek, nem lehet egyben több parancsot beírni és így tovább. A hiányzó minőséget itt a mennyiséggel pótolják: a nagyszámú szereplőre méretezve rendszerint sokezer helyszínt és tárgyat zsúfolnak össze beléjük; jóllehet ötleteik többsége nem igazán eredeti. Szintén eléggé rossz tulajdonságuk még az is, hogy sablonos módon valamennyi inkább szerepjáték, mint kaland - ami azt jelenti, hogy különféle ellenségek leöldösése árán begyűjtött tapasztalati pontok segítségével lehet fölfelé lépkedni a ranglétrán, és ez a "fejlődés" képezi a játék tulajdonképpeni lényegét és célját. Léteznek belőlük magyar nyelvű alkotások is - egyszerűen borzalmasak. Nem azért, mert a TELNET-en nem lehet keresztülzavarni az ékezetes betűket, ez még rendben is volna; hanem a szövegek hemzsegnek a fogalmazási és helyesírási hibáktól - a parancsok szintaktikájáról nem is szólva. (Egyik legszerencsétlenebb húzás volt például az angol HELP helyettesítése a SÚGÓ-val és hasonlók.)
3.1.3. A számítógép beszélni tanul
A kalandjáték "lelke" - azaz legfontosabb, legbonyolultabb és legtöbbet foglalkoztatott része - a beadott mondatokat értékelő programrész (parancsértelmező, szövegértelmező, értelmező, fordító, vagy angolul "parser", "interpreter" stb.). Hiába a legkáprázatosabb szobor-kompozíció, ha az egy bevakolt szobában, a látogatók elől elzárva hever, úgyhogy kívülről senki sem férhet hozzá. Számunkra is egyik leglényegesebb kérdés, hogy a programunkban tárolandó világba miképpen kapjon betekintést a játékos. Egy kritikus megjegyzés szerint a kalandjátékok a "néma gyereknek anyja sem érti a szavát" közmondáson alapulnak, és ez eleinte valóban így is szokott lenni: ha valaki csak úgy leül egy ilyen játék elé, az leginkább egy üres beviteli mezővel találja magát szembe, és fogalma sincs róla, mit várnak el tőle. A más helyeken általánosságban kialakult szokások ugyan segítenek kissé eligazodni egy új programban is, de legjobb egy teljesen laikus felhasználót feltételezni. Sohasem tudhatjuk előre, hogy a - mienkétől esetleg teljesen elütő észjárású - kalandozónak miféle ötletei támadnak, ezért a játékok intelligenciájának fokmérője, hogy ugyanannak a szándéknak a megnyilvánulásait milyen sokféle különböző formában képesek azonosítani.
Például, ha egy ház kijárata egy délkeletre nyíló ajtó, akkor nem elég a programot csak a DK, DÉLKELET, MENJ DÉLKELETRE. stb. típusú parancsok fogadására fölkészíteni, elvégre a szemfüles játékos teljes lelki békével nyilatkozhat úgy is, hogy MENJ KI A KERTBE, HAGYD EL A HÁZAT, TÁVOZZ, LÉPJ ÁT AZ AJTÓN. - és még hosszan sorolhatnánk ugyanannak a mozgásnak a különféle megfogalmazásait. Minél több ilyen azonos értékű kifejezéssel elboldogul, annál színvonalasabb lesz a programunk, és a játékosok is annál jobban fogják élvezni! Régebben, amikor még a 16-, 48-, 64-kbyte-os mikroszámítógépek jelentették - a játékpiacon - az általánosan elfogadott szintet, elegendő volt azok teljesítőképességére hivatkozni, ami a játékok lehetőségeit is eleve behatárolta. Ma viszont, amikor egy PC nemritkán akár 32-64 MB RAM-ot is rejteget, s a processzorok sebessége is hihetetlen értékeket produkál, ráadásul mindez folytonosan egyre tovább bővül (és ki tudja, hová vezet mindez?!.), a fizikai korlátok egyszerűen megszűnnek létezni: egy kalandjáték színvonalát most már egyedül a készítője lustasága, vagy fantáziája, szókincsének bősége (vagy prózaibb okok közül: a készítésre rászánt idő.) határozza meg. De tény, hogyha egy ÜSD LE A RABLÓT mellett azt is magunkénak akarjuk tudni, hogy LÁSD EL A BAJÁT A RABLÓNAK, az nemcsak egyszerűen a szótár bővítését jelenti, hanem efféle szóvirágok kezelésével a kód is egyre bonyolultabbá válik.
Na de túlságosan előre szaladtunk (ez lett volna a bevezető ugyanis.): hogyan is szólunk egyáltalán egy ilyen játékhoz? Valamit ugyebár cselekedni óhajtunk benne, és ezt a közvetítő programnak az értésére próbáljuk adni: szándékunkat egy megállapodás szerinti nyelv szabályain keresztül kell megfogalmaznunk. Legjobb (volna), ha ez a nyelv mind közelebb áll(na) a természetes beszélt nyelvhez - de ahhoz, hogy ezt maradéktalanul megvalósítsuk, egy olyan "számítógépet" kellene építenünk, melyben - mint régi szélhámos sakkautomatákban - benne ül egy ember. Megközelíteni azonban lehet - pontosabban azt a látszatot kelteni, mintha megközelítettük volna.
Általános szabály, hogy mindinkább egyszerűnek, spontánnak és magától értetődőnek látszik valami a felhasználó szemszögéből nézve, annál nagyobb apparátust kénytelen a programozó megmozgatni hozzá, hogy egyáltalán működjön a dolog. A kívülálló számára természetes a nyelv, amelyen beszél, a legcsekélyebb szellemi erőfeszítés nélkül helyezi egymás mellé a szavakat.
Fogalma sincs róla, milyen egy irdatlanul bonyolult rendszernek a birtokában van, s hogy a szerencsétlen programozó mennyit izzad vele, míg végül valami, ehhez úgy-ahogy hasonlót nagy-nehezen kiprésel magából. Különösképp érvényes ez a magyar nyelvre. Világszerte a kalandjátékok túlnyomó többségét angol nyelven írták. Ez nemcsak a nyugati régió egyik legáltalánosabb nyelve, de egyszersmind a legegyszerűbb nyelvtani szerkezetűek közé is tartozik - ezért is olyan könnyűszerrel megtanulható, mint köztudott róla. Az angol nyelv nem (vagy csak elvétve) használ ragokat, jeleket, maguk a szavak többnyire változatlanok maradnak, helyette a köztük fennálló viszonyt az erősen kötött szórend és az elöljárók mutatják meg. A főneveknek nincsenek nemeik, és még csak a magázódást sem ismeri. Összetett szavak képzése is úgy történik, hogy egyszerűen egymás mellé raknak két darab névszót, s legtöbbször még csak egybe sem írják őket (vagy ha mégis, akkor kötőjellel). Semminemű ékezetet nem használnak, az összetett hangzókkal sincs különösebb gond. Egyszóval, akárcsak az akácfa vagy a káposztalepke, az angol nyelv is alapvető igénytelenségének köszönheti azt, hogy világszerte elterjedhetett. Nézzük meg, hogyan hangzik angolul, ha valakit megkérünk rá, hogy nyissa ki az ajtót: OPEN THE DOOR (esetleg még hozzátehetjük, hogy PLEASE - de ennek most semmi jelentősége nincsen). Az egész felszólítás két egyszerű szóból tevődik össze (a névelővel most nem foglalkozunk, azokat szimplán át lehet lépni): OPEN és DOOR, melyek - bármilyen összefüggésben is használjuk őket - minden esetben változatlanok maradnak, nem számítva az időnként a végükre kerülő "-s" betűt vagy "-ing" végződést, így egy szótárból kikeresve szemvillanás alatt azonosítani lehet őket. Ráadásul a mondat szórendje is szigorúan kötött (nem mondhatjuk pl. azt, hogy DOOR OPEN), tehát bizonyosan tudjuk róluk azt is, hogy az első az ige és a második a főnév. (Itt most csak a kalandjátékok irányításához felhasznált nyelvről esik szó.) Bővítsük most egy határozóval ezt a mondatot! Tegyük fel, hogy kulccsal szeretnénk kinyitni az ajtót. Ez esetben így hangzik: OPEN THE DOOR WITH KEY. A szórend most is kötött, és mindössze annyi a különbség, hogy a WITH elöljárót követő főnevet, mint eszközhatározót vesszük figyelembe, nem pedig, mint tárgyat.
Ugyanez magyarul már jóval keményebb diót jelent. Hogyan is fordítanánk le az előbbi példákat úgy, hogy értelmesen összefüggő mondatokat kapjunk? Valahogy így: NYISD KI AZ AJTÓT (ha netántán magázódunk a programmal, akkor a NYISD helyett NYISSA áll.), vagy ha nem parancsolgatni akarunk, akkor mondjuk KINYITOM AZ AJTÓT. De mi van akkor, ha NYISD KI AZ AJTÓT KULCCSAL helyett mi inkább úgy fogalmaznánk, hogy NYISD KI KULCCSAL AZ AJTÓT?
Vagy: KULCCSAL NYISD AZ AJTÓT KI? Esetleg: AZ AJTÓT A KULCCSAL NYITOM KI?. Folytathatnánk a sort: valamennyi értelmes, és - a hangulati árnyalatoktól eltekintve - ugyanazt jelentik. A szórend itt már semmiféle támpontot nem nyújt, hiszen gyakorlatilag korlátlanul szabad - a szavak értelmét egymástól elszakítva, önmagukban kell megtalálnunk. De miképpen döntsük el, hogy egyáltalán melyik szóról van szó? Hiába szerepel a szótárunkban a NYIT ige, ha egyszer nekünk olyanokat írnak, hogy NYISD, NYISSA, KINYITOM, NYITOM. - és még vagy százféle különböző ragozott alak. Még ha attól eltekintünk is, hogy az igekötővel egybe- avagy különírjuk-e az igét, akkor is mennyi lehetőség marad! A főnevek ragozása ugyancsak egy cifra eset. Már maga a legalapvetőbb tárgyrag sem pusztán csak egy "-t" betűből áll: magánhangzós végű szavaknál ékezetet kap az utolsó betű (pl. alma - almát), néha kimarad egy hangzó (bokor- bokrot, tükör - tükröt), hosszú magánhangzók rövidülhetnek (ég - eget, tűz -tüzet), azután meg ott vannak a különféle kötőhangok is (-at, -et, -ot, -öt), minden szóhoz más-más fajta. Minden egyes határozónak saját ragja van: -ba, -be, -ra, -re, -n, -on, -en, -ön, -ból, -ből, -ról, -ről, -tól, -től, -nak, -nek, -hoz, -hez, -höz, -val, -vel, -vá, -vé, -kor, -ért, -ig. stb. stb.
Ebből is van vagy negyven-ötven féle! (A KULCCSAL ráadásul még egy különleges eset is, hiszen -val, -vel esetén a "-v-" helyett duplázódik az utolsó betű, s miután "cs"-ről van szó, még csak nem is az "s", hanem a "c" betű.)
Amennyiben emellé még a többesszám és birtokos eset jeleit is engedélyezzük, úgy az előbbi mennyiség ezek számával szorzódik (!!!), tehát végeredményben minden egyes főnévnek többszáz féle különböző ragozott alakja lehet! Ha a szótárunk mondjuk ezer szóból áll, akkor a kereséskor ez több százezer szóval való összehasonlítást jelent, ami már önmagában véve is egy képtelenség; nem beszélve arról, hogy lehetetlen volna ennyi alakot mind-mind letárolni.
Megabyte-okat foglalna el, és percekig tartana megtalálni benne valamit. A legegyszerűbb, korai, igénytelen játékokban még kikerülték ezt a problémát, ahelyett, hogy megbirkóztak volna vele. Valamiféle hallgatólagos megállapodással kialakítottak maguknak egy ún. "csonka magyart" - ezalatt a nyelvnek egy roppant alacsony szintre csökkentett változata értendő. Az angol forráshoz igazodva, azonos sorrendű szópárokat várt el bevitel gyanánt a program, és kizárólag a szavak ragozatlan szótári alakját lehetett alkalmazni benne. Az idézett parancsok így hangzottak ezen a nyelven: NYIT AJTÓ, ill. NYIT AJTÓ KULCS. Némelyest fifikásabb, de éppilyen gépies és felszínes megoldásnak bizonyult az is, amikor a szavak első néhány betűje alapján kerestek a szótárban (többnyire az első háromtól az első ötig terjedt ez a hossz). Például egy program az első négy betűt vette figyelembe, s ezáltal a NYISS ABLAKOT utasításból ennyit látott csak: NYIS ABLA. A szótárban ennek alapján egységesen négybetűs jelsorozatok voltak tárolva, az ennél rövidebb szavaknak - vagy amelyek töve megváltozott, mint a NYIT ige esetében a "t" és az "s" betű - természetesen föl kellett venniük a ragozott alakjait is. (A CSOMÓ és a CSOMAG szavakat már nem is tudta volna megkülönböztetni egymástól.)
Amennyiben igényesebb programokat szeretnénk írni, nem elégedhetünk meg ezekkel a primitív mankókkal! Meg kell tanítanunk beszélni azt a buta ócskavasat.
Szükség lesz tehát egy algoritmusra, mely a szótárban külön-külön meglévő szótövek és ragok alapján dolgozik, és mindkét irányú működésre képes: egyrészt a begépelt szavakat szétbontja szótőre és ragokra (ezeket a programon belül majd sorszámmal fogjuk azonosítani), vagyis értelmezi azokat - másrészt fordítva: a megadott szónak előállítja a megadott típusú ragozott alakját. (Erre azért lesz szükség, hogy parancsunkra a számítógép válaszolni is tudjon, azaz ki tudja írni helyesen a képernyőre a neveket.) Figyelembe kell vennie bizonyos szavak különleges tulajdonságait is (épp az imént említettük őket: kulccsal, tükröt, nyisd.), és különbséget kell tennie az igék és főnevek teljesen eltérő ragozása közt. Fontos követelmény még, hogy megfelelően gyors legyen: elvégre a legegyszerűbb mondatok is min. három-négy szóból állanak, de mint később látni fogjuk, ennek akár a sokszorosát is kaphatjuk - a szótár pedig nyugodtan állhat akár több ezer szóból is.
3.1.4. A szavaktól a mondatok felé
A kalandjátékok utasításaira általában jellemző, hogy az alany hiányzik belőlük ill. rejtett (első vagy második személyű), s csaknem kivétel nélkül valamilyen igei állítmányra épülnek, amihez gyakran különféle tárgyak, jelzők és határozók csatlakozhatnak. Utóbbiak önmagukban egyszerűek, egy-két szóból állanak, s ami még nagyon jelentős egyszerűsítés, hogy alá-, fölérendelt tagmondatok sosem fordulhatnak elő. (Legalábbis ez idáig nem volt rá még példa.) Tipikusan egyszerű parancs pl. az alábbi: VEDD FEL A KULCSOT.
Ebben föllelhető mindkét alapvető szófaj: az ige és a főnév - tulajdonképpen az összes többi szófaj fölfogható úgy is, mintha ezek speciális esetei lennének. Az ige fontos tartozéka (vagy inkább: része) még az igekötő is, hiszen ha azt mondjuk, hogy VEDD FEL, VEDD LE vagy VEDD MEG, azok teljesen eltérő cselekvésre utalnak. E kettő együttesen dönti el, hogy mit akarunk csinálni, a főnevek és társaik pedig a cselekvésünk célját határozzák meg, azáltal, hogy az elérhető tárgyak és szereplők közül konkrétan kijelölnek valamit. Ez nem mindig egyértelmű: egyrészt létezhet a játékban több hasonló nevű tárgy is, másrészt használhatunk különféle gyűjtőneveket. Előbbi esetre példa lehet az, ha többféle különböző kulcs van: ilyenkor mindegyiknek van valamilyen sajátos jelzője, mely megkülönbözteti az összes többitől (pl. "kis kulcs" vagy "nagy kulcs" stb.); a főnevek elé melléknevek járulnak (VEDD FEL A NAGY KULCSOT). Gyűjtőnév esetén pedig az illető szó ugyan pontosan megjelöli a tárgyat, ám egyszerre akár többet is - legjobb példa erre a MINDEN szónak az alkalmazása: egy VEGYÉL FEL MINDENT utasítás egyszerre vonatkozik a közelünkben látható valamennyi tárgyra. Melléknevek szintjén is elképzelhető hasonló, pl. így: VEDD FEL AZ ÖSSZES KULCSOT. (Hogy miért is célszerű a melléknevet is speciális főnévként nyilvántartani, az kitűnik abból, hogy alkalomadtán ezek is a főnevekhez hasonlóan ragozódhatnak. Egy jólnevelt kalandjáték ugyanis, ha nem egészen biztos a dolgában, további kérdéseket tesz fel: megkérdezi tőlünk, hogy melyik kulcsot szándékozunk fölvenni. Erre mi felelhetjük azt is, hogy a NAGY KULCSOT - vagy egyszerűen ennyit: NAGYOT. A melléknév ilyenkor kifejezetten úgy viselkedik, mintha főnév lenne; fordított esetben pedig egyes főnevek is állhatnak a melléknévi jelzők helyén.) Mivel igencsak ritka eset (úgy értem, egy kalandjátékban.) az, hogy teljesen azonos tárgyakból legyen több példány ugyanazon a helyen, s ráadásul ezek közül többre, de nem valamennyire akarunk hivatkozni egyidejűleg, ezért számnevek csak elvétve fordulnak elő; ilyenkor, mint sejthető, a melléknévhez hasonlóak, csak funkciójuk más. Ugyancsak fehér holló egy másikfajta jelzős szerkezet, nevezetesen a birtokos jelző: egyfelől erre is csak viszonylag ritkán kerül szükség, másfelől meg akkor is kiválthatjuk más, egyszerűbb jelzőkkel a szerepét. Pl. ha az iménti nagy kulcs egy őr kezében van: egy VEDD EL AZ ŐR KULCSÁT helyett a FOGD A NAGY KULCSOT utasítás sokkal egyszerűbb.
Jóllehet ezek kezelése eléggé bonyolult eljárást igényel, mindenesetre sokat emel egy játék színvonalán, ha - mint értékes egzotikumot - ilyesmit is beleépítünk. Annál nagyobb igény lehet ezzel szemben (márminthogy a játékosok oldaláról) egy másik, teljes főnévi értékű szófajra, a névmásra: ha leírjuk, hogy BESZÉLGESS VELE vagy NÉZZ RÁ, miközben a legutóbbi parancsunk egy KÖSZÖNJ A MADÁRIJESZTŐNEK volt, ez kétségkívül azt jelenti, hogy ezúttal is a madárijesztőre gondolunk - az utolsóként előfordult főnevet helyettesíthetjük valamilyen névmással. Érthetetlen, hogy ezt is csak alig néhány program ismeri, amikor pedig a megvalósítása egyszerű (hisz' mindössze egy szócseréről, behelyettesítésről van szó), és igen nagy könnyebbség, ha nem kell a hosszadalmas MADÁRIJESZTŐ szót mindig újra és újra bepötyögni, hanem helyette ezt a "kézre álló" pár betűt.
A határozók már nem önálló szófajok, hanem csak mondattani egységek - lényegében a főnevek eltérő ragozású alakjai. Miután a szórend szabad, és más támpontunk nincsen, egyedül a ragozásuk alapján tudjuk csoportosítani a különféle kifejezéseket. Túlságosan körülményes és fölösleges is volna azonban valamennyi raghoz külön határozót rendelni, így legcélravezetőbb öt csoportba sorolni őket (az egy csoportba tartozó ragok nemigen szoktak előfordulni egy parancsban együtt, és körülbelül hasonló dolgot jelentenek, így nyugodtan tekinthetjük azonosnak őket): 1.) tárgy: -t raggal vagy rag nélkül; 2.) helyhatározó: -n, -ban, -nál, -ról, -ból, -tól; 3.) célhatározó: -ra, -ba, -nak, -hoz; 3.) eszközhatározó: -val; 5.) egyéb: -ért, -ig. stb. Pl. az ADJ PÉNZT A KOLDUSNAK utasítás három mondatelemet tartalmaz: egy igét, egy tárgyat és egy célhatározót (az, hogy ezt a nyelvtanban részeshatározónak nevezik, ne zavarjon túlzottan bennünket.). A ragokon túl használhatunk névutókat is a főnév jelentésének módosítására, így helyhatározó lehet az is, hogy ASZTAL ALATT, vagy a KULCCSAL helyett eszközhatározó, hogy KULCS RÉVÉN vagy KULCS SEGÍTSÉGÉVEL stb. stb.
Összefoglalva tehát, minden egyes begépelt parancs lényegében a következő részekből tevődik össze: az ige (a beleértett igekötőjével együtt), valamint a felsorolt ötféle tárgy ill. határozó. A parancsot akár fölfoghatjuk úgy is, mint egy rekordot, aminek ez a hatféle mezője van. A programon belül persze a szavak nem szövegként jelennek meg, hanem minden egyes dolgot valamilyen sorszám azonosít. Pl. ha a "kinyitni" ige a 13-as sorszámot kapta az előzetes tervezés során, akkor ez azt jelenti, hogy az ige változójába egy 13-as szám kerül. Amelyik fajta eleme hiányzik a mondatnak, az természetesen a 0-ás értéket kapja. Ez gyanúsan egyszerűnek látszik, holott valójában egyáltalán nem az: ugyanis ez a végeredményül kapott egyszerűség a valóságban egy hosszú és bonyolult értelmezési folyamatot takar, melynek folyamán a különféle szókapcsolatok és más szerkezetek fokozatosan a lehető legtömörebb viszonyokká bomlanak le. Ahhoz, hogy ez megvalósuljon, tucatnyi eltérő algoritmust kell egymás után lefuttatni, amelyek mindegyikének feladata a megfelelő szavak vagy szópárok cseréje, helyettesítése valamilyen másik, egyszerűbb szóval. Ezek a cserék táblázatokban való keresések útján történnek.
Efféle algoritmus lehet például az, amelyik az igék és igekötők különálló párosát egyetlen összetett igére cseréli ki (a NYISD és a KI szavakat törli, és helyükre egy KINYITNI szót ír - ha pedig nemlétező párosítást talál, pl. azt írtuk, hogy NYISD ÖSSZE, ami nincs benne a táblázatban, akkor hibát jelez, és az ige értelmezhetetlen). Vagy egy másik, mely a névmás helyére elegánsan becsempészi az utolsóként alkalmazott főnevet. Egy olyan, mely a "melléknév + főnév" szókapcsolatot egyetlen új főnévvel helyettesíti be (a NAGY és a KULCS szavak sorszámait kiiktatva, helyettük egy másik, a NAGY KULCS szó sorszámát illeszti a mondatba). És így tovább; minél több ilyen funkcióval ellátjuk, annál intelligensebb lesz a programunk. (És annál nehezebb lesz megírni.)
Természetesen az sem mindegy, milyen sorrendben hajtjuk végre ezeket az egyes szabályokat a mondatban. Pl. ha azt találjuk leírni, hogy NAGYOT, akkor az először is felbomlik a - kissé idegenszerűen hangzó - NAGY AZT szókapcsolatra, majd az AZ helyére bekerül a KULCS főnév (mint névmás-helyettesítés!), s csupán ezután lehet belőle NAGY KULCSOT. Egy szöveges kalandjáték értelmező programját elkészíteni körülbelül hasonló feladat, mintha mondjuk egy PROLOG fordítóprogramot óhajtanánk írni.
A parancs és a mondat kifejezéseket az eddigiekben egy kissé összekeverten használtuk, úgyhogy lassanként ideje lenne szétválasztanunk őket egymástól: míg egy parancs mindig egyetlen meghatározott cselekvésre utal, vagyis lényegében tagmondat (a fentiekben hozott példák mind parancsok voltak), addig egy mondat nyugodtan akár több parancsból is állhat. (Már amelyik program hajlandó ezt tudomásul venni.) Vagy az ellenkező irányból megközelítve a dolgot: egy mondat az a szövegmennyiség, amit a játékos egy szuszra begépel a bevitel során, s a parancs ennek egy-egy önállóan végrehajtható része. A mondaton belüli parancsok elválasztására írásjeleket (pont, vessző és társaik), valamint az ÉS szócskát vagy annak szinonimáit (MAJD, TOVÁBBÁ, VALAMINT. stb.) használjuk. A játék a mondatban lépésről lépésre halad előre; mihelyt egy parancsot végrehajtott, utána kezdi el értelmezni a következőt. Pl. egy tipikus összetett mondat így hangzik: VEDD FEL A KULCSOT ÉS NYISD KI VELE AZ AJTÓT. Ebben az esetben a két tagmondatot akár egy-egy külön mondatként is le lehetne írni, de előfordul olyan is, hogy szorosabb összefüggés kapcsolja őket össze, miáltal szétválaszthatatlanok lesznek - ez akkor állhat fenn, mikor a második parancsból kihagyunk valamit, amit már tartalmaz az első. Pl.: GYÚJTSD MEG A GYERTYÁT ÉS A MÉCSEST. Itt a második parancsból kimaradt az ige. Ahhoz, hogy ezt értelmezni tudjuk, egy aprócska trükköt kell alkalmazni a programban, nevezetesen amíg a mondatnak nincs vége, addig az aktuális parancs változóit sohasem töröljük, hanem csak az újabbik parancs szavai mindig felülírják a régit - így tehát a teljes első parancs változatlanul megmarad, mindössze a MÉCSES, mint tárgy fogja felülírni az előző tárgyat, a GYERTYÁ-t. Ezáltal egyetlen állítmány mögé tetszőleges számú tárgyat fölsorakoztathatunk. Sokkalta nehezebb volna - éppenhogy a lépésenkénti végrehajtás miatt! - ugyanezt az ellenkező irányból is megcsinálni, valahogy ilyképpen: NYISD KI ÉS CSUKD BE AZ AJTÓT. Ebben az esetben ugyanis a programnak szinte "előre kéne gondolkodnia": amikor odáig jut, hogy NYISD KI, még fogalma sincsen róla, hogy mire is vonatkozik ez a dolog - jóllehet a keresett főnév benne van a mondatban, csak jóval később volna esélye megtalálni azt. Az eredmény: a számítógép megkérdi, hogy "Mit akarsz kinyitni?". Ennek feloldására be lehetne vezetni egy ún. öröklési rendszert, ami abból állna, hogy még mielőtt hozzálátna a legelső lépés végrehajtásához, a program végigértelmezné a teljes mondatot, és mindegyik tagmondat állapotát eltárolná valahol, egy rekordokból álló láncban úgy, hogy az aktuális rekord mindig örökölné - az iméntiekben leírt módon - az előzőnek azt a részét, ami nem változott. Azután ugyanezt végigcsinálná fordított irányban, az utolsótól az első felé haladva is - és ami valahonnan hiányzik, azt mindig a másikból vett megfelelő részekkel pótolná és kiegészítené benne ekkor is. Eközben az első parancsba, ahonnan hiányzik a tárgy, beíródna az utána következő tagmondat tárgya (ami esetleg szintén a következőből örökölte azt, és így tovább). Csupán ezt követően hajtódnának végre a parancsok.
Amivel aztán el is érkeztünk az értelmezés következő állomásához: mi történjék, amikor valamilyen szó végképp hiányzik a mondatból. Erre több megoldás is kínálkozik. Lehet egyszerűen a felhasználó képébe vágni, hogy márpedig ez nem egy értelmes mondat, és legközelebb szíveskedjék jobban megválogatni a szavait. Ennél valamivel udvariasabb (és intelligensebb) megoldás, amikor a homályos részekre vonatkozó kérdéseket teszünk fel, és további kiegészítéseket várunk. Pl. ha csak annyit kaptunk parancsként, hogy NYISD, akkor feltesszük neki a következő kérdést: "Mit akarsz kinyitni?" - ami után következő bevitelként kétféle felelet várható. A játékos vagy begépel egy teljesen új mondatot, nagylelkűen elfelejtve az előzőt - vagy pedig a kérdésünkre válaszol, és mindössze a hiányzó tárgyat adja meg. Hogyan készítsük fel a játékot a helyes reagálásra mindkét esetben, amikor e kettőt tulajdonképpen nem is igazán lehet megkülönböztetni egymástól? Hát úgy, hogy nem is különböztetjük őket meg. Az előbb láttuk, hogy az esetleg összefüggő részmondatok miatt a parancsok változóit mindig a mondat végén töröljük, amikor egy új mondatba kezdünk. Egyszerűen annyit kell tennünk, hogy mikor valamilyen kérdést intézünk a kalandorhoz, olyankor az újabb bevitel megkezdése előtt nem töröljük ezeket a változókat, azaz nyitva hagyjuk a mondatot - akármit begépel a tisztelt felhasználó, az a jelenleg meglévő parancsot fogja felülírni, éppúgy, mintha az a következő parancs volna. Teljesen mindegy, hogy töredékeket kapunk-e tőle, vagy egy új mondatba kezd.
Így akár több, eltérő tartalmú kérdés is követheti egymást, és mégis valamennyi válasz ugyanazt a parancsot fogja fokozatosan gazdagítani - szabályos kis párbeszéd alakulhat ki a program és a felhasználója között.
Komolyabb probléma akkor adódik, ha már bevezettük az előzőkben vázolt örökléses rendszert - ilyenkor ugyanis a kérdés feltevése előtt meg kell jegyezünk az egész mondat állapotát, majd a kiegészítés megtétele után ismételten végigfuttatni rajta oda-vissza a parancsokat összefűző eljárást.
Harmadik, és egyben legintelligensebb megoldása a hiányos mondatok esetének, ha a program maga automatikusan megkísérel behelyettesíteni a kimaradt részek helyére valamit, és ha csak ez végképp nem sikerül neki, akkor teszi fel a kérdést. Pl. a NYISD megadása esetén sorjában végignézi az összes elérhető tárgyat, s csak ha nincs közöttük egyetlen olyan sem, ami nyitható, akkor kérdi meg a kezelőjét, hogy voltaképpen mire is gondolt. (Vagy ha többet talált, akkor azt, hogy melyiket.) Hasonlít ez némiképpen a gyűjtőnevek kezeléséhez. Leggyakoribb gyűjtőnév a korábban már megemlített MINDEN szó: ilyenkor a parancs végrehajtását egy külső ciklusba kell ágyazni - sorban egymás után behelyettesíteni a kívánt szó helyére az összes elérhető tárgynevet, és mindegyikkel egyesével végrehajtani ugyanazt a parancsot.
(Érdemes elgondolkodni rajta, hogy mi történik akkor, ha netán a huncut játékos egyazon parancson belül többször is alkalmazott valamilyen gyűjtőnevet. Pl. így: MUTASS MEG MINDENT MINDENKINEK. Ez az, ami a programozó idegeit végképp próbára teszi.)
3.1.5. Helyiségek összefüggő labirintusa
Említettük, hogy a kalandjáték életének teljes színtere egyes, különálló helyiségekre tagozódik. Ez valahogy úgy néz ki, hogy tartózkodunk valahol, pl. egy szobában, és érzékelésünk azokra a dolgokra korlátozódik, amelyek szintén ugyanazon a helyen vannak - egészen addig, míg át nem haladunk valamelyik szomszédos területre. Hogyha a jelenlegi szobában hever egy asztal, akkor azzal, mint tárggyal, elméletileg megtehetünk bármit (megvizsgálhatjuk és hasonlók), de ha valahol másutt leírjuk, hogy ASZTAL, akkor már az alábbihoz hasonló válasz érkezik: "Nincs itt semmiféle asztal." Miképpen lehet ezt a világot a számítógépen keresztül leképezni a játékosok számára? Minden helyiség egyértelműen azonosítható és a többitől megkülönböztethető kell legyen, és a játékban szereplő valamennyi objektumot (tárgyat, élőlényt, beleértve minket is!) pontosan el kell helyezni valahol a térképen, úgy, hogy annak helyzete változtatható is legyen. Le kell írni a csatlakozó helyiségek viszonyát, a mozgást gátló akadályokkal és más tényezőkkel együtt.
Természetesen hűek maradunk eddigi alapelvünkhöz: mindenhol sorszámok és táblázatok sarjadnak a lépteink nyomán. Egy jól szervezett kalandjáték-világ valójában igen összetett rendszert alkot, annak megfelelően, amit a filozófiában is előszeretettel hangoztatni szoktak: minden összefügg benne minden egyébbel. Emiatt is olyan nehéz eldönteni, hogy egyáltalán hol kezdjen neki az ember. A parancsok és cselekvések végrehajtásának kidolgozásába bele sem foghatunk addig, amíg a játék teljes leendő világának leíró adatai holmi adatbázis-szerűen nincsenek letárolva a gépben. Egy nagyobb lélegzetű műnél ez hosszú hónapokig tartó tervezést és előkészületeket igényel, mielőtt még egyetlen sort is leírnánk bármilyen programozási nyelven.
Igazából ez a munka legkellemesebb része, hiszen - játékról lévén szó - jórészt álmodozással, ötleteink lejegyzésével és összerendezésével, az epizódok és jelenetek kiagyalásával telik el. Azonban fabatkát sem érne az egész, ha nem mindjárt abban a formában kezdenénk el az adatok gyűjtését, ahogyan azt majd a későbbi programban felhasználni fogjuk.
Legelső feladatunk, hogy fölépítsük a helyiségek rendszerét. Ehhez legjobb, ha fogunk egy darab üres papírost, és térképet rajzolunk a képzeletünkben fölsejlő világról. Ez a térkép egy csöppet elvont megjelenéssel bír a szokásos atlaszokhoz képest: a helyszíneket vázlatos körök jelképezik, az egyikből a másikba vezető utakat a közéjük húzott vonalak. Mindegyik helynek valamilyen nevet adunk (pl.: "Erdei tisztás"), ezt a megfelelő karika belsejébe írjuk; s hogy két-két helyiség között melyik irányban lehet közlekedni, azt a köztük feszülő vonal végére biggyesztett nyíllal ábrázolhatjuk. A nyíl tövébe írjuk azt is, hogy mi módon kell mozognunk a jelzett helyváltoztatáshoz: ennek jelzésére - megállapodás szerint, de persze nem kötelező jelleggel - az iránytű nyolc égtája valamint a két függőleges irány szolgál. Pl. ha a lakásunk szobáit szeretnénk ábrázolni, ami öt helyiségből áll, akkor a papírra öt darab kört húzunk, a szobák állásának megfelelő elrendezésben, beléjük irkálva egy-két szavas elnevezéseiket; ha mondjuk a hálószoba a nappalitól nyugatra fekszik, akkor a "Nappali" feliratú buboréktól a "Hálószoba" feliratúig rajzolunk egy nyilat, tövében egy NY betűvel, s miután nyilván visszafelé is vezet út, a vonal ellenkező végét is nyíllal látjuk el, a másik tövébe egy K betűt írva. Ha a két szoba közt ajtó is nyílik, a vonal közepe táját kiegészítjük egy kisebb téglalappal, belevezetve az "Ajtó" szót. Azután ezt a módszert végigvisszük a termek egész hálóján. (Tág kiterjedésű, szabadtéri helyeknél élhetünk azzal a trükkel, hogy önmagába visszamutató nyilakat rajzolunk - ameddig a játékos a jelzett irányban gyalogol, folyton ugyanabban a térben marad.) Amerre egy helyről nem vezetnek nyilak, ott fal van, vagy más hasonló áthághatatlan akadály. Nagyobb térképeket célszerű több részre bontva elkészíteni, hogy áttekinthetőek legyenek.
Idáig minden pofonegyszerű, bárkinek eszébe juthatott volna mindez - csak kár, hogy a számítógép egy összefirkált papírlappal semmit sem tud kezdeni. Le kell fordítanunk a számok nyelvére az egészet. Kezdjük el ezt azzal, hogy valamennyi helyünknek egytől növekvő rendben sorszámokat osztunk: a hálószoba lesz az 1-es, a nappali a 2-es stb. - írjuk be ezeket a megfelelő buborékokba, a névszövegek mellé. A választható irányokhoz is rendeljünk hasonlóan sorszámot; a felsorolt tíz égtáj mellé fölvehetjük még a KI és BE irányokat is, úgyhogy összesen tizenkét irányunk lesz; 1-től 12-ig számozzuk meg őket - mondjuk az 1-es jelentse az északot, és így tovább. Ezt követően a térképet már táblázattá lehet alakítani: olyan elrendezésben, ahol baloldalt függőlegesen a helyiségek sorszámait tüntetjük fel sorban, vízszintesen pedig az irányok helyezkednek el. A táblázatban minden helyhez tartozik egy sor, ezeket úgy kell kitölteni, hogy a sor mindegyik rubrikájába annak a másik helyszínnek a száma kerül, ahová a hozzá tartozó irányban az adott szobából kimozdulva érkezünk. Ha a jelzett irány sehová sem vezet (lezárt irány - fal), akkor ide nullát írunk, ha önmagába kanyarodik vissza, akkor a saját helyszín száma kerül ide is. Ha arra vagyunk kíváncsiak, hogy a nappalitól (ez most ugye a 2. helyiség) észak felé (1. irány) mi található, akkor egyszerűen kiolvassuk a táblázat 2. sorának 1. oszlopát, ahol tegyük fel, egy 4-es számot találunk (legyen ez az előszoba száma): a nappalitól északra az előszoba vár ránk. Ezt számítógéppel kezelni igen egyszerű lesz később.
3.1.6. Barangolás a térképen
Mihelyt ezzel megvolnánk, ne felejtsünk még egy második táblázatot is készíteni, az egyes utakat lezáró akadályok nyilvántartására. Mondanom sem kell, hogy ezek is tipikus sorszámokat kapnak, ám itt már nem árt némi rendszert is vinni a dologba: ha valamiből több hasonló van, úgy célszerű azokat egy csoportba venni, még ha távol esnek is egymástól (pl. 1-től valameddig számozzuk az ajtókat, utána jönnek sorjában az ablakok stb.); ezáltal a későbbiekben megkönnyítjük ezek kezelését. Az egy-egy akadályhoz tartozó sorokban itt a következő adatokat szükséges feltüntetnünk: két-két rubrika az általuk elválasztott két-két helyiség számára (pl. a nappaliból a hálóba nyíló ajtó esetén egy 1-es és egy 2-es), valamint egy harmadik mező, ami pedig az akadály jelenlegi állapotát tükrözi. Ezúttal is számokkal kell élnünk: legalább három értéket használjunk (célszerűen 0-tól 2-ig számozva) annak jelzésére, hogy az ajtó nyitva, csukva vagy zárva van-e - de ennél jóval több lehetőség is elképzelhető (lehet mondjuk félig behajtva vagy betörve az ajtó, vagy függöny esetében behúzva vagy elhúzva, akármi az eszünkbe juthat!).
Végül hagyjunk még egy negyedik oszlopot is saját megjegyzéseink részére: ide lehet beírni az akadály nevét (ajtó, kapu stb.), és esetleg még azt is, hogyan kezelődjék később, azaz miképpen nyitható (milyen cselekvést kell véghezvinni az állapota megváltoztatásához - mondjuk milyen kulccsal nyitható egy zárt ajtó). Listánkba fölvehetünk olyan "elvont" akadályokat is, mint egy kerítés, vagy az utunkat álló eleven őrszem - csak vigyázzunk ez utóbbi esetén, mert ő az ajtókkal ellentétben nem két, hanem egyszerre csak egy helyiségben létezik, s így másként kell majd kezelni később. Egyáltalán, az akadálylistába fölvenni azokat a tényezőket érdemes, amelyeknek állapota változik - ha egy falon sohasem juthatunk át semmilyen módon, azt egyszerűbb inkább a másik táblában a megfelelő irányhoz, mint valami fiktív, valójában nem létező helyszínszámot beírni.
Most már megtehetjük első - egyelőre csupán képzeletbeli - sétánkat kezdetleges szobáink kis színpadán. Azt is látjuk, hogy - noha még csak két táblázatunk van - máris mennyi mindent kéne ellenőriznie egy vezérlő programnak olyan, primitívnek látszó művelet elvégzéséhez, mint egy meghatározott irányban való haladás. Először is - jelenlegi pozíciónk tudatában - a bejárási táblázatból ki kell olvasnia az elérendő célhelyiség számát. Meg kell néznie, az akadályok listájában szerepel-e olyan objektum, melynek összekapcsolt két helyisége éppen az általunk igénybe vett két szobával egyezik-e meg (ráadásul duplán is kell vizsgálódnia, mert hátha az ellenkező irányból jövünk, a 2-esből az 1-esbe, s nem pedig az 1-esből a 2-esbe), majd ha talált egy ilyet, akkor tájékozódni róla, nyitva van-e az akadály. Ha nem járható az az út, figyelmeztető üzenetet kapunk ("Az ajtó csukva van."), ha igen, akkor további ellenőrzések következnek: létezik-e egyáltalán abban az irányban bármi. Nullás célhelyiség esetén: "Nem mehetsz abba az irányba." - de lehetnek további fiktív sorszámok is, melyek például külön jelölik a falat, a sövénykerítést, a vizes árkot stb. Sőt, akár még halálos irányokat is kiképezhetünk - mondjuk, hogy egy veszélyes hegyi úton az északnyugati irány végzetes lezuhanással végződik. Csak ha minden stimmel, akkor szabad elvégezni a tényleges mozgatást. (Hogy hogyan, azt is hamarosan meglátjuk.)
Egy kalandjátékban szereplő bármilyen élőlény alapvetően négyféle mozgási formát követhet a helyszínen történő kalandozása folyamán. Ezek: a közvetlen haladás, a közvetett haladás, egy távoli célpont megközelítése és az ún. "mágikus" bejárás. Közülük az első három mindegyike az őt megelőzőre épül, és egyre magasabb szintű cselekvési módokat tesznek elérhetővé.
1.) Közvetlen (vagy magyarul: "explicit") haladás esetén olyan mozgási utasításról van szó, mely pontosan meghatározza az illető által követendő haladási irányt. Az ezt kiváltó parancsok például a következőképpen hangzanak: DÉLKELET vagy MENJ BE A KUNYHÓBA stb. (Ez utóbbit az teszi közvetlenné, hogy szerepel benne a BE szócska! Máskülönben a következő csoportba tartozna - és akkor is, ha a BE irányt nem vettük volna fel az irányok közé az előző fejezetben.) Hogy ezek megvalósítása miképpen történik, azt épp az imént magyaráztam el, a továbbiakról pedig a következő fejezetben esik némi szó.
2.) A közvetett ("implicit") mozgás ezzel szemben a kalandozó részéről egy olyan kívánságot jelent, amelyben nem fogalmazza meg konkrétan, hogy melyik irányban szeretné a következő lépést megtenni - hanem csak bizonyos utalásokat tesz, az elérendő célpont megjelölésével. Ez már nehezebb feladat a programunk számára, hiszen őrá hárul az irány kiválasztásának felelőssége: a mondatban megadott célról el kell döntenie, melyik irányban fekszik tőlünk. Ha sikerült eldöntenie, akkor a lépés már egy egyszerű közvetlen mozgássá redukálható. Ilyenek rendkívül sokfélék lehetnek, és ráadásul valamennyiük egyéni bánásmódot igényel. HASZNÁLD AZ AJTÓT típusú felszólítás, pl. MÁSSZ KERESZTÜL A CSAPÓAJTÓN esetében az akadályok táblázatából ki kell keresni a helyszínről kivezető csapóajtót (ha van olyan), azután ennek másik helyiségét kell megkeresni a bejárási táblázat megfelelő sorában - ezzel megvan a követendő irány (ha esetleg több irány is vezet ugyanoda, a program dönthet, melyiket használja); LÉPD ÁT A KÜSZÖBÖT: majdnem ugyanaz, mint az előző, azzal a különbséggel, hogy miután küszöbe többféle eszköznek is lehet, ha ugyanott van mondjuk egy ajtó és egy kapu, akkor megint csak el kell döntenünk azt is, hogy melyiket koptassuk; MÁSSZ FÁRA: egyértelműen a FEL irány helyettesítése; UGORJ: valószínűleg a LE irányt jelenti, de helyzettől függően egészen más is lehet. Fölösleges sorolni a példákat tovább, a dolog lényege ennyiből is látható.
3.) Az eddigi két mozgásfajta egyszerű volt abból a szempontból, hogy mindkettő egyetlen lépés megtételére korlátozódott - valamelyik szomszédos terembe ruccanhatott át segítségükkel a játékos. Távoli célpont megközelítése esetén ugyanakkor már egy teljes útvonalat szükséges végigjárnia, méghozzá úgy, hogy ennek kiválasztását is legnagyobb mértékben a számítógépre hagyja: MENJ A KASTÉLYHOZ, KERESS EGY TISZTÁST, KÖVESD A VÁNDORT típusú parancsok ilyenek. Mint valami taxiba szálló utazó, egyszerűen közli velünk, hová óhajt elkeveredni, és attól fogva a játék idegenvezetésére bízza magát. Ez a legmagasabb szintű, legelvontabb és legnehezebben kivitelezhető haladási forma, a kalandjátékok túlnyomó többsége teljes mértékben nélkülözi. Van azért egy kicsike előnye is a közvetett mozgással szemben, az, hogy nem kell olyan sokféle eltérő kivétellel vacakolni, hanem egyetlen általános eljárásba bele lehet foglalni az egészet. Az viszont a maga nemében szép egy darab.
Ismerjük ugyebár a teljes világ térképét a rajta elszórt akadályokkal egyetemben, a saját pozíciónkat és azt, hogy hová kell majd eljutnunk: meg kell találnunk az egyiktől a másikhoz vezető legrövidebb (?!) utat. Ha egy ember rápillant egy térképre, a megoldás szinte önmagától adódik - de egy számítógépnek ugyanezt a diót már sokkal nehezebb lesz föltörnie. Bonyolítja (vagy egyszerűsíti?) a helyzetet az is, hogy esetleg még magáról a célhelyiségről sincs pontos tudomásunk; utóvégre, ha egy játékban vagy harminc ajtó lézeng itt-ott elszórtan, és a tisztelt játékos megsúgja nekünk, hogy MENJÜNK AZ AJTÓHOZ - akkor mégis melyikre gondolt?! Nyilván arra, amelyiket leghamarább elérjük - ha legrövidebb útvonalat keresünk, akkor ez egyszersmind a legközelebb lévő. Nincs más megoldás: el kell indulni, lépésről lépésre tapogatózva előre a helyiségek végtelen óceánjában, s minden új helyszínre lépve ellenőrizni, hogy találtunk-e a leírásnak megfelelő tárgyat. Persze nem összevissza, hanem módszeresen: sorban végigpróbáljuk mind a tizenkét irányt, s amelyik járható, arra lépünk tovább; ha végképp zsákutcába futottunk, úgy mindig visszalépünk az ezt megelőző helyre, és a következő iránnyal kísérletezünk. Ha visszaértünk a kiindulásra, akkor kudarcot vallottunk: a célpontot nem tudjuk elérni. Na most ehhez három dolog szükségeltetik: először is maximalizálni kell a megtehető legnagyobb távolságot, mondjuk 30-40 lépésben (minden újabb lépéssel hatványozódik a lehetőségek száma! - ennyi pedig bármekkora térképhez bőségesen elég lesz); másodszor egy listában nyilván kell tartanunk az eddig megtett útvonalat (melyik helyszínről merre haladtunk tovább), hogy legyen hová visszalépnünk és tudjuk, merre kell majd mennünk; harmadszor pedig - ugyancsak e lista alapján - folyton ellenőriznünk kell, nehogy egy, már érintett helyszínre másodszor is rálépjünk (ilyenkor úgy tekintjük az arrafelé nyíló irányt, mintha akadály zárná el - egyedül így kerülhetjük el, hogy önmagába visszatérő hurkokat írjunk le). Ezzel a módszerrel szépen meg is találjuk a keresett célpontot, csak éppenséggel egyetlen bökkenő lesz vele: korántsem biztos, hogy a legrövidebb útvonalon jutottunk el oda! Ahhoz, hogy amazt is fölleljük, kénytelenek vagyunk a keresést először egyetlen lépésre szűkítve elvégezni, s ha nem találjuk, akkor fokozatosan (mindig egy-egy lépéssel) hosszabbra engedni a pórázt, minden ilyen bővítés után újra és újra végigkeresve - egészen addig, míg el nem jutunk a célba, vagy el nem érjük a bűvös határt. Lassú géppel jobb nem belekezdeni. A KÖVESD ige (egy közelben mozgó illetőnek a nyomába szegődni) a közönséges MENJ-től annyiban eltér, hogy hatósugarát már eleve csak 2-3 lépésre kell zsugorítani - azonkívül, ha sikeres volt, addig ismételni, míg az "üldözött" személy meg nem állapodik valahol. Ha igazán nagyon intelligens programmal akarjuk elkápráztatni a közönségünket, ezt az egészet esetleg még megpakolhatjuk olyan finomságokkal, hogy gyaloglás közben az emberkénk reflex-szerűen nyissa ki az útjába eső ajtókat (majd ha áthaladt rajtuk, csukja is be maga után őket.), sőt, ha zárva vannak, először próbálja végig bennük a nála levő kulcsokat, majd kopogtasson rajtuk, és így tovább.
3.) A negyedik mozgás, az ún. "mágikus bejárás" (DaCosta), nem egy nagy szám, semmi köze az előző háromhoz, és jól hangzó nevével ellentétben mindössze azt jelenti, hogy a szokásos útvonalakat mellőzve, egy csapásra egyik helyről a másikra kerülünk. Tulajdonképp semmi hagyományos - irányokhoz kötődő - mozgás nem történik ekkor. Mindez történhet valamilyen bűbájos varázsige kimondásával, esetleg hasonló módon, mondjuk egy varázsló elteleportál bennünket máshová. Ide sorolható az az eset is, amikor valamilyen, a valóságban hosszabb műveletsort igénylő tevékenységet a játék - dramaturgiai megfontolásból - egy lépésbe sűrítve hajt végre. Például megfizetünk egy kocsist, hogy fuvarozzon el minket, s erre a program tényleges utaztatás helyett mindössze pár mondatban ecseteli számunkra hosszú utunk viszontagságait - aztán a következő lépésben már éppen kiszállunk a kocsiból a célnál. Jellegéből adódóan ezt a legkönnyebb megvalósítani.
3.1.7. Lakberendezővé változunk
A játék alapkövét letettük, világunk színterének hálózata megvan - de rajtunk kívül senki másnak nem telne benne túl sok öröme, hogy az üres helyszínek közt mászkál. A Teremtés csak félkész állapotban van: még föl kell húznunk a falakat, bevakolnunk őket, s a szobákat berendezni díszletekkel, tárgyakkal és élőlényekkel. E három dolog nem is különbözik egymástól annyira: ugyanabba a számozási rendbe bele lehet vonni az összeset, s hogy aztán melyik objektum viselkedik mozdíthatóként vagy élőként, azt már csak a konkrét programműködés dönti el, a megfelelő sorszámokra reagáló eljárásaink. Azért mindenesetre alaposan megkönnyítjük vele a saját dolgunkat, ha ezt sem végezzük teljesen logikátlanul. Tapasztalataim alapján elmondhatom, hogy úgy a legcélravezetőbb a sorszámokat megválasztani, hogy legelsőként vesszük a legmagasabb rendű, legtöbb szereppel bíró "tárgyakat": az élőlényeket.
Amiképpen az ajtók sorolásakor tettük, 1-től valameddig legyenek sorszámozva, és úgy, hogy mi magunk (azaz a főhős, a játékos!) is csupán egyek legyünk közülük, semmilyen kitüntetett szereppel ellátva - ez majd később fog jól jönni, ha azt akarjuk megvalósítani, hogy egyszerre több szereplő bőrébe is bele tudjunk bújni. Közvetlen utánuk következzenek az olyan, mozdítható tárgyak, eszközök, amelyeket föl tudunk venni és magunkkal tudunk vinni útjaink során - alighanem ezekből lesz a legtöbb. Folytassuk a leltárt a mozdíthatatlan, de azért még jelentős szerepet játszó díszletekkel (pl. egy asztal, amelyet megvizsgálva találhatunk rajta valamit, vagy szekrény, amit ki lehet nyitni stb.), utánuk azokkal, melyeknek már nincsen központi szerepük, ténylegesen csupán díszítő és hangulatfestő háttérelemek gyanánt vannak jelen a játékban (pókhálók a sarokban, fal, föld, erdő, víz.) - s a legvégére kerüljenek a rendkívül nagy példányszámban tenyésző, teljesen különleges nyilvántartású elemek (pl. ajtók). Az egyes csoportok között hagyhatunk kisebb hézagokat, kihasználatlan területeket, mert ha később netán kiderülne, hogy kifelejtettünk egy tárgyat, vagy még okvetlenül be szeretnénk szúrni valamit, akkor ne kelljen utólag átsorszámozni az egészet. Ügyeljünk ezenkívül arra is, hogy a gyűjtőnévként összevonható, hasonló funkciójú elemek (pl. a különféle kulcsok) lehetőleg egyetlen, nagy tömbben hézagok nélkül legyenek - nem mindegy ugyanis, ha a játékos egy határozatlan értékű KULCS szót használ valahol, akkor összevissza kell-e szaladgálni a különféle főnevek között, vagy csupán az x-diktől az y-dikig terjedő területet egy rendezett ciklussal végigfutni, közelebbi meghatározás végett.
Az egyes tárgyak kezelése egy gondosan és körültekintően kialakított sorszámozással rendkívüli módon leegyszerűsödik. Pl. ha éppen egy NYISD AJTÓT utasítás végrehajtása közepette vagyunk, s már eldöntöttük, melyik ajtóról van szó, de az ajtó feltárulkoztatásához történetesen a 28-as számú bronzkulcsra van szükség, akkor annak ellenőrzése, hogy a kalandozó ezt próbálja-e használni e nemes célra, mindössze annyiból fog állni, hogy megvizsgáljuk a jelenlegi parancs eszközhatározó rekeszét: ha ez nulla, akkor kiírjuk, hogy "Az ajtó zárva van."; ha egyenlő 28-cal (ami éppen akkor fordulhat csak elő, ha a parancshoz hozzáfűzte a BRONZKULCCSAL szót is!), akkor sikeres lesz a művelet, kinyílik az ajtó; míg ha valami más érték van ott, úgy egyszerűen annyit üzenünk neki, hogy ezt az ajtót nem nyitja az a valami, amelyet próbál.
(Természetesen előtte azért meg kell bizonyosodni arról, hogy tényleg zárva van-e az az ajtó, nem pedig csak - mondjuk - csukva.) Amennyiben nagyon sok ajtónk és hozzájuk való kulcsunk van, és mindegyikük hasonló módon működik, akár ezeket is lehet egy újabb táblázatba rendezni, hogy ne kelljen külön-külön foglalkozni valamennyivel.
És pontosan erről van itt szó! A tárgysorszámot indexként (vagy keresendő adatként) alkalmazva listák és táblázatok valóságos dáridóját hozhatjuk létre, melyek a tárgyak különböző tulajdonságainak, előre megadott helyzetekben megfelelően történő viselkedésének leírását szolgálják. Jelen esetben ezek közül csak egyet említünk: a legfontosabbat, mely az objektumok térképen való elhelyezkedésének záloga. Általában ez egy olyan táblázat, amelyben a tárgysorszámot közvetlenül indexként használjuk (akárcsak a bejárási táblázatnál a helysorszámot), és valamennyi tárgyhoz tartozik benne pontosan egy-egy adat - annak a helyiségnek a sorszáma, ahol a tárgy éppen megtalálható. Egy-egy tetszőleges tárgyunk elhelyezkedése ebből szempillantás alatt kiolvasható. Ha a korábbi példáinkban felbukkant bronzkulcs teszem azt a hálószoba padlóján hever, akkor ez azt jelenti, hogy eme táblázat 28. eleme a 2-es értékre van beállítva. Ha valahol a 0-ás értékkel találkozunk, az szokás szerint azt jelenti: a hozzá tartozó tárgy "eltűnt" - semerre sem látható.
Egyes díszítőelemek (pl. fal vagy padló) olyan rengeteg helyen előfordulnak egyszerre, hogy nem érdemes ezeket annyiszor külön fölvenni tárgyként, hanem csupáncsak egyszer, s elérésük speciális módon történik: mindegyiknek saját listája van a hozzá tartozó helyekről, vagy éppen a fal esetében erre egyáltalán nincs is szükség; elvégre a bejárási táblázatban előzetesen már bevezettünk egy sajátos ál-sorszámot arra az esetre, ha valamelyik irányban fal zárná le az utunkat, így most is csak elegendő megvizsgálni, előfordul-e vajon ez az érték a pillanatnyi helyiségben valahol (s ha igen, akkor létezik itt a FAL nevű tárgy). Szintén sajátos kisebbséget alkotnak az ajtók, kapuk és más hasonló akadályok: ezek mindegyike két helyiségben található egyidejűleg, s ezekért a pozíciókért mindössze az akadálylistába kell visszanyúlni egyszer (ha ügyesek voltunk, itt is a tárgysorszámmal indexelhetünk). Nem tartozik érték ebben a táblában a gyűjtőnevekhez - azokat úgyis egy másik, konkrét tárgyra fogjuk beváltani, ha pedig nem sikerülne ez, akkor maga a gyűjtőnév-tárgy sem elérhető. Az élőlényekhez ellenben tartozik még egy másik, szintúgy roppantmód fontos táblázat, amelyben ugyancsak a tárgysorszámmal indexelhetünk (többek között ezért is volt érdemes a lista elejére tenni őket): az ajtókhoz hasonlóan őnekik is állapotuk van! Célzatosan a nulla érték mutassa azt, hogy valaki él, virul, egészséges és éber - az ennél magasabb számok pedig különféle rendkívüli állapotokat jelölnek (pl. alszik, elájult, részeg, megőrült vagy meghalt).
Mindebből már megválaszolásra került az, az előző fejezetben nyitva hagyott kérdés: miként mozdulunk el egyik helyiségből a másikba.
Értelemszerűen a kalandor játszotta szereplőnkhöz is tartozik a táblázatnak egy olyan eleme, amelyik megmondja, hogy hol van - pusztán csak ezt kell megváltoztatni a megfelelő új értékre (amelyet a bejárási táblázatból olvastunk ki, az iránynak megfelelő oszlopban).
3.1.8. Hogyan találjunk meg valamit?
De mielőtt még hozzászoknánk a gondolathoz, hogy milyen egyszerű az életünk, szembesítsük magunkat egy megdöbbentő kérdéssel, mely az egész rendszernek hirtelen egy nagyságrenddel nagyobb mélységet és bonyolultságot ad! Mi történjék akkor, ha bármelyik tárgyunk egyben helyiség is lehet? Talán első hallásra nem egészen világos a dolog, ezért megmagyarázom: egy reális világban gyakorlatilag tetszőleges tárgy hozzákapcsolódhat egy másikhoz, különféle módokon - például rajta áll egy asztalon, bent csücsül egy szekrényben, vagy éppenséggel a mi kezünkben van. Ilyenkor annak a tárgynak a gazdája tulajdonképpen egy helyiség, ahol a tárgy tartózkodik. De ugyanakkor a gazda-tárgy is egy másik, tágabb helyiségben létezik, ahonnan - mintegy kívülről - nézve mind a két tárgyunk látható. Ha a hordozót, mint helyiséget tekintjük, onnan nézve kifelé nemigen látunk sok mindent, viszont befelé, "mélyebbre" korlátlan bepillantást nyerhetünk. Eszerint föl kell készítenünk a programot rá, hogy mindegyik objektum hordozhassa a másikat - e nélkül még csak azt sem tudnánk megoldani, hogy egyáltalán kézbe vegyünk egy kavicsot. Ezeket a tárgy-helyiségeket természetesen meg kell különböztetnünk a valódiaktól.
Ha alaposabban megvizsgáljuk a kérdést, rájöhetünk, hogy bár ennek a kapcsolódásnak a valóságban töméntelen módozata elképzelhető, mégis három olyan alapvető kategóriára tudjuk leszűkíteni őket, amelyek egy kalandjáték szempontjából is nélkülözhetetlennek látszanak: vagy nála van valakinél, vagy rajta van valamin, vagy pedig benne van valamiben az illető holmi. Ha ezeket 1-től 3-ig sorszámmal látjuk el, azután 0-ás sorszámmal hozzávesszük az alapesetet, amikor közvetlenül egy helyiségben leledzik, az pontosan négyféle lehetőség. A helyiségek sorszámait leggazdaságosabb 2-byte-os egész számként nyilvántartani, ami így legfeljebb 65536-féle értéket vehet fel; minthogy sem tárgyból, sem helyiségből soha nincsen 16384 darab (rendszerint párszáz szokott lenni.), a 16 bit legfelső 2 bitjét nyugodtan fenntarthatjuk ennek az információnak a tárolására. A dolog ekkor úgy áll, hogy 0-tól 16383-ig számozódnak a valóságos helyiségek, efölött pedig a fiktív, tárgy-jellegű pozíciók helyezkednek el. Ha egy tárgysorszámhoz 16384-et hozzáadunk, megkapjuk azt a helyet, ahol a nála lévő valamiket keresgélni lehet (ennek csak lényeknél van értelme); 32768-at adva hozzá, a külső felülete bukkan elő; 49152-vel növelve meg, pedig a belsejébe mutatunk. Pl. ha egy zseblámpa sorszáma a 45-ös, a beléje csavart izzóé pedig 73, akkor az azt jelenti, hogy a 73. tárgy a 45 + 49152 = 49197. helyiségben tartózkodik. Ezek az elvont helyiségek így szervesen és zavartalanul simulhatnak bele a korábban kialakított rendszerbe, egyetlen dolgot kivéve: ha valahol egy ilyen értékre bukkanunk, akkor nem elégedhetünk meg vele, mint normális helyszínnel, hanem tovább kell kutatnunk azt is, hogy az a tárgy, amihez kötődik, merrefelé található. Ennek a szervezésnek a révén számos tárgyat eldughatunk a kíváncsi játékosok orra elől, akik - mint holmi húsvéti tojásra - így csak hosszas vizsgálódás után lelnek végre rá. (Amikor megvizsgálunk valamit, a program kiírja vele együtt a hozzá kapcsolódó tárgyakat.)
Csakhogy ez így még mindig túlságosan egyszerű volna, úgyhogy azért még bonyolítunk rajta egy keveset. Utóvégre is, egyetlen ember sem egy Sámson vagy egy Herkules, és mindennek van valahol határa! Az olyannyira áhított valósághűség érdekében a tárgyak befogadóképességét korlátozni kell - egy szatyorba talán mégse lehessen belezsúfolni többet, mint amennyi belefér vagy amit a fülei elbírnak. Ha valamit oda szeretnénk tenni, ahol már nincs számára hely, vagy többet próbálunk fölemelni a karjaink erejénél, figyelmeztetést kell kapnunk a játéktól, hogy nem tehetjük meg (pl. "Nem bírsz már el annyi súlyt."). De ennek a luxusnak komoly ára van: minden egyes tárgyunkhoz további három tulajdonságértéket kell bevezetnünk hozzá; ezek: a saját súlya, a teherbírása és a pillanatnyi terheltsége. Az első kettő ugyebár egy állandó érték (nem muszáj, hogy valóságos mértékegység legyen, tetszőleges viszonyszámként alkalmazható); a harmadik meg folyton változik, de nem nőhet magasabbra a másodikénál. Egy tárgy terheltségét úgy kaphatjuk meg, hogy saját súlyához az összes hozzá csatlakozó tárgy terheltségét hozzáadjuk - azért a terheltségét, és nem pedig a súlyát, mert így az az érték már összegezve tartalmazza a kapcsolódó tárgy további kapcsolódásait.
Következik ebből, hogy mikor egy tárgy "üres", azaz terheletlen, akkor a terheltsége nem nulla, hanem pontosan a tulajdon súlyával egyezik meg (a teherbírást is ennek figyelembevételével szükséges megállapítani, és lényegében csak emiatt van szükség magára a súlyra).
Többnyire egy kalandjáték leggyakoribb eljárásainak egyike egy bizonyos tárgy elérhetőségének a meghatározása: mi megadjuk neki a helyiséget, amelyen belül vizsgálni óhajtjuk, és a keresett tárgy sorszámát - ő visszaadja azt, hogy a helyszín "felségterületén" hány darabot talált belőle. (Egynél több is lehet, hogyha gyűjtőnevet adtunk meg, vagy több ugyanolyan tárgy is szerepel a játékban.) Ha létezik ilyen tárgy, akkor azt mondjuk, hogy azon a helyszínen jelen van, vagy arról a helyről elérhető stb. Rendesen egy jelenlévő tárgyhoz kapcsolódó további tárgyak is elérhetőek szoktak lenni.
Természetesen egy szereplő kizárólag jelenlévő holmikkal cselekedhet bármit is (néhány kivételtől eltekintve, pl. amikor kérdezünk valakit egy témáról), ezért mielőtt még bármilyen parancsot is kiadni merészelne, legelső teendőnk az lesz, hogy a benne lévő összes főnév elérhetőségét ellenőrizzük. Ha pl. azt mondja nekünk, hogy HAJTSD FEL A SZŐNYEGET egy szőnyeg nélküli szobában, akkor mi keményen visszavágunk neki azzal, hogy "Nincs itt semmiféle szőnyeg." - az utasítás végrehajtásáig (vagy egyáltalán: az ige elővételéig - lehet, hogy nincs is benne ige!) még csak el sem jut a program, hanem mindenfajta cselekvés nélkül, hatástalanul továbbugrik a következő parancsra. (Következésképpen nyugodt szívvel írhatja akár azt is, hogy EDD MEG A SZŐNYEGET, vagy csak egyszerűen SZŐNYEG - ugyanazt a feleletet kapja rá úgyis.) Ezzel csírájában elfojtunk mindenféle illegális tárgyra való hivatkozást, s mire a végrehajtáshoz érünk, addigra garantáltan megvan az összes főnév - tehát ezzel később már nem kell törődnünk a programban. Fontos még, hogy az is mindig jelen van, ami az általunk irányított hőshöz, mint "tárgyhoz" kapcsolódik - vagyis a nálunk lévő cuccok, rajtunk viselt ruhadarabok. Ugyanide tartozik az is, hogy a többi szereplők mind-mind féltékenyen őrzik előlünk a náluk lévő dolgokat, ergo ha egy ördögnél lévő bármilyen tárggyal próbálnánk meg babrálni valamit - kivéve, ha csupáncsak megszemléljük azt -, akkor: "Az ördög nem engedi." (De ha az ördög elaludt vagy meghalt, akkor zavartalanul elvehetünk tőle bármit!)
Látjuk viszont, hogy a szőnyeg most már nemcsak a padlón, hanem akár egy asztal tetején is heverhet - mi több, még annak a tetején is állhat egy láda, s a ládában egy törpe, a kezében egy táskával, ami egy erszényt rejteget, és elképzelhető, hogy mi éppen az erszényben csöndben meglapuló aranypénzt szeretnénk kiemelni onnan. Hogy a helyzet még bonyolultabb legyen, a törpe dühösen becsaphatja az orrunk előtt a táskát, és akkor a benne lévő erszény, a pénzdarabbal együtt, eltűnik a szemünk elől; ha erre mi bosszúból rácsukjuk a törpére a láda fedelét, akkor már az egészből semmit sem látunk, csupán egy asztali szőnyeg tetején fekvő, lecsukott ládát. (De ha a ládában benne lennénk mi is, akkor megintcsak látnánk a törpét, eltekintve attól, hogy odabent sötét van.) Magyarul, a tárgyak tetszőleges mélységig egymásba ágyazódhatnak, s hogyha benne van egy tárgyban valami, akkor még azt is figyelnünk kell közben, hogy nyitva van-e a hordozó vagy csukva. Ahhoz, hogy a pénzérme elérhetőségét megtudjuk, először is az erszény elérhetőségét kellene ismernünk, ami viszont a táskáétól függ, és így tovább - ezt a keresést tehát egyedül egy rekurzív eljárással tudjuk megoldani, olyannal, mely minden egymásba ágyazódás esetén újra és újra önmagát hívja meg. Ha eközben bármelyik szinten negatív válasszal tér vissza, akkor az végigvonul a teljes láncon, és az eredményünk elutasító lesz; ha nagy nehezen mégiscsak elvergődünk a gyökérelemig, azaz egy valóságos helyiségig (és az megegyezik a keresett helyiséggel!), akkor megvan a tárgy, és elérhető.
Az igazsághoz hozzátartozik, hogy ennek az egész tárgy-kezelésnek van egy elég komoly korlátja. (Nem a rekurzív keresésre gondolok, hanem az előző fejezetben kifejtett táblázatos nyilvántartásra!) Csak akkor alkalmazható hatékonyan, ha mindegyik tárgyból egy vagy több - de konkrétan előre meghatározott számú darab létezik. Pl. egy fáról leszedünk egy almát - az egy darab. Leszedünk egy másikat - most már kettő van a kezünkben. De ha leszedünk százat, akkor száznak kéne lennie - ami viszont ebben a rendszerben kizárólag úgy oldható meg, ha már eleve, a játék indításakor is létezik valahol mind a száz alma, pontos, külön sorszámokkal ellátva. Ha azt szeretnénk, hogy bármelyik tárgyból lehessen hasonlóan száz darab, akkor már eleve mindegyikből legalább ennyit kellene a játékba beleterveznünk. Párszáz tárgy helyett így lenne több tízezer - iszonyatos pazarlás a tárral és az idővel! Egyszóval, ez a kezelési rendszer, bár egyszerű, de túlságosan merev. Az esetek túlnyomó többségében ugyan tökéletesen beválik, de ha valamivel igényesebbek vagyunk, akkor meg kell próbálnunk ugyanezt valahogy dinamikusabban megvalósítani. Erre megoldás lehet, hogyha egyetlen, statikus táblázat helyett egy amolyan változó hosszúságú puffer-táblázatot készítünk. Ennek minden eleméhez jóval több adat tartozna, mint eddig: lenne egy, mely megadja, hogy milyen tárgyról van szó (tehát az eddig használt tárgysorszám), s egy másik, mely azt jelölné, hány darab van belőle. A harmadik volna a helyszín, amelyen megtalálható - ez annyiban módosulna, hogy a fiktív tárgy-helyiségek alapját most már nem a tárgysorszám jelentené, hanem egy, a pufferon belüli másik elemre mutatna tovább. (Negyedikként pedig hozzájönne még az aktuális terheltsége - a súly és a teherbírás elég, ha továbbra is a tárgysorszámhoz kapcsolódóan van meg, ugyanis azok állandó értékek. Ellenben ne felejtsük, hogy az összeadandókat itt még a darabszámmal is szorozni kell!) Ha új tárgy bukkanna elő valahonnét, először mindig helyet kéne neki foglalni a pufferben, s hogyha betelne az egész terület, akkor lehetne sorjában eldobálni a régebbieket. A száz alma így mindössze egyetlen bejegyzést foglalna el, amiben 100 volna a darabszám (amikor további almákat gyűjtünk a már meglévők mellé, azokat egyszerűen hozzá kellene adni ehhez). Ha kettesével szétpakolnánk őket ötven különböző helyiségbe, akkor már ötven bejegyzésünk lenne, 2-es darabszámokkal. Amikor keresünk egy tárgyat, a közvetlen indexelés helyett végig kellene olvasnunk a puffer teljes méretét, vizsgálva, hogy melyik elemben egyezik a tárgysorszám a kívánttal; amikor egy tárgyat törlünk, az az összes őhozzá kapcsolódót is magával rántaná. Vigyázni kéne, hogy a fontosabb tárgyak ne tűnjenek el.
3.1.9. "Sokasodjatok és növekedjetek!"
Az eddigiek folyamán egy meglehetősen kihalt és sivár valóságot építettünk föl - egyelőre úgy fest az egész, mint az őstengerek, a bennük úszkáló egysejtűek nélkül. Hiányzik belőle valami, ami elevenné teszi azt: a játék szereplői még nincsenek bekapcsolva az események vérkeringésébe. Az élőlényeket nemcsak az különbözteti meg a többi tárgytól, hogy a sorszámozás legelején foglalnak helyet, hanem hogy sokkal változatosabb módokon lehetséges érintkezésbe kerülni velük, illetve a mi közreműködésünk nélkül is mindenféle "akciókra" ragadtatják magukat. Szélsőséges esetben ezek akár valóságos személyek is lehetnek - ld. a második fejezetben megemlített hálózatos kalandjátékokat -, máskülönben nekünk kell a program segítségével emulálnunk őket. Az egyes élőlényeket leginkább az különbözteti meg egymástól, hogy különféle közeledési kísérleteinkre eltérő módon reagálnak. Vannak bizonyos alapvető magatartás-formák, amelyeket egy jó kalandjátéknak föl szükséges ismernie, és általános jelleggel lekezelnie őket: agresszív cselekedetek (megütni vagy megtámadni valakit), a beszélgetés különböző formái (köszönni, beszédbe vegyülni általában, vagy pontosan meghatározott dolgokat mondani, esetleg faggatózni jól körülírt témákról) és a tárgy-csere jellegű dolgok (megmutatni, odaadni vagy elkérni egy tárgyat, netalántán pénzt). Ezeket valamennyi szereplőre nézve külön-külön ki kell dolgozni, úgy, hogy látszólag egyéni módon reagáljanak.
Sajnos, a legtöbb kalandjáték úgy készül, hogy már eleve egy szilárdan lebetonozott nézőpontból mutatja a benne zajló eseményeket. Ez azt jelenti, hogy létezik egy e célra kiválasztott főhős, és mi mindent egyedül az ő szemein keresztül látunk. Kétségtelenül ez a legkényelmesebb megoldás, ám sokkal izgalmasabb a játék, hogyha kívülről is megfigyeljük benne önmagunkat közben. Programozástechnikailag legjobb, ha - a manapság divatos objektumorientált programozáshoz hasonlóan - a játék szereplőinek mindegyike egy önálló, zárt egységet alkot, s valamennyiükhöz tartozik egy-egy, a magatartásukat generáló program vagy programrész, amiről a vezérlő főprogram gyakorlatilag semmit nem tud, csupáncsak az általuk jelzett cselekvési szándékaikat látja. Ebben a felállásban - a főprogram szempontjából legalábbis - maga a játékos, "a" főhős is csak "egy a sok közül", a többiekkel egyenrangú lény, aki hasonló korlátokkal és lehetőségekkel rendelkezik, akárcsak balsorsában osztozó társai; más kérdés, hogy - valódi léténél fogva - ezekkel a lehetőségekkel hasonlíthatatlanul sokoldalúbban képes élni és cselekedni, mint ők. Ez egyúttal azt is jelenti, hogy bármilyen lépésre képesek vagyunk, azt akárki más is megtehetné helyettünk ugyanebben a helyzetben - elméletileg -, más szóval a többieket is aktívan bevonhatjuk a játék feladványainak teljesítésébe; ahelyett, hogy magunk tennénk meg valamit, megkérünk rá valaki mást. (Pl. NYISD KI AZ AJTÓT helyett így: KÉRD MEG AZ ŐRT, HOGY NYISSA KI AZ AJTÓT.) Ettől egyrészt mindjárt változatosabb lehetőségeink nyílnak, hiszen ha többször próbálkozunk valamivel, nem kell mindig ugyanazon a módon megfogalmaznunk, amit szeretnénk; másrészt pedig meglehet, vagy a program netán el is várja tőlünk, hogy másokat is megmozgassunk a végső siker érdekében: lehetnek benne olyan epizódok, amelyek feloldása kizárólag csapatmunka árán lehetséges. Például áll valahol egy őrszem, aki egy bizonyos ponton nem enged átlépni senkit - de ha egy szereplőnkkel ügyesen eltereljük a figyelmét a feladatáról, akkor másvalaki észrevétlenül elsurranhat a háta mögött közben. Egy csapásra érdekesebbé válnak ily módon a játékunk feladványai! Arra is lehetőséget nyújt ez a rendszer, hogy akár egyszerre több szereplő bőrébe is belebújjunk, állandóan váltogatva azt, hogy melyiküket alakítjuk éppen. Egy játék résztvevőinek viselkedése az alábbi forrásokból származhat:
1.) Közvetlenül a billentyűzetről begépelt utasítások határozzák meg számára a következő lépést. Tipikusan a főszereplő magatartása ilyen. Egy főhős személyének kiválasztása nem is olyan bonyolult, mint hinnénk: adott a szereplők listája, amelyek közül választani lehet, s mindössze egy változóban folyton nyilván kell tartani annak sorszámát, akik jelen pillanatban éppen vagyunk. Amikor a játékos azt mondja, hogy ÉN, MAGAMAT, ENGEM. stb. ezeket a személyes névmásokat kicseréljük az itt tárolt sorszámra, üzenetek kiíratása közben pedig annak neve helyett a "te" (Ön), "magad" (maga). stb. alakokat kell - persze helyesen felragozott formában - használni. Na ez utóbbival szokott inkább gond lenni - szeretjük az üzeneteket kész szövegként, rögzítetten tárolni, és nemigen fűlik a fogunk hozzá, hogy mindenféle képlékeny kifejezésekkel bonyolítsuk őket. Elvégre ez nemcsak egyetlen szónak a cseréjét jelenti, de a teljes szövegkörnyezetet is hozzá kell igazítani ehhez. (Pl. "Valaki kinyitja az ajtót." helyett "Kinyitod az ajtót." - az alany mellett az állítmány is megváltozik stb.) Ha azt akarjuk elérni, hogy egyes tevékenységekre csak bizonyos "kiválasztottak" legyenek képesek, nem kell mást tenni, mint előtte ellenőrizni, hogy éppen ők vagyunk-e mi.
2.) Ösztönös sugallatait egy külön e célra készített, irányító programrésztől kapja. Ez kétféle módon történhet: vagy adott helyzetben egy előre lerögzített cselekménysort hajt végre (pl. van valahol egy éjjeliőr, aki bizonyos időközönként egy határozott útvonalat végigjár, és ellenőrzi, minden rendben van-e arra - napközben meg lefekszik aludni, és ki lehet figyelni az őrségváltás idejét stb.), avagy pedig részben véletlenszerűen állítja elő ezeket a program (egyes alakok a játékban szeszélyesen kóborolnak ide-oda, miközben időnként az "eszükbe jut" valami - mondjuk becsukni egy ajtót vagy eldobni egy tárgyat stb.). Esetenként ez az előbbi ponttal kombinálódhat, olyképpen, hogy a saját figuránkon keresztül megkérünk rá valaki mást, hogy tegyen meg számunkra valamit (az említett KÉRD MEG AZ ŐRT. kezdetű példa!), s ha jó kedvében találjuk a fickót, akkor lehet, hogy még engedelmeskedik is. Nem könnyű - de igen hálás! - feladat minden egyes szereplőnkhöz különböző programokat írni, és bizony komoly előzetes tervezést igényel összhangba hozni számos olyan eseményt, amelyek egy időben, de a játéktér különböző pontjain mennek majd végbe.
3.) Valahonnan "kívülről", a számítógép számára ismeretlen külvilágból érkeznek a parancsai - rendszerint már előértelmezett, azaz a legrövidebb, legtömörebb alakra faragott formában. Ez az eset akkor állhat elő, amikor egy olyan programot írunk, amivel egyszerre több felhasználó is üzekedhet - az egymással összeköttetésben álló felek a hálózaton keresztül kommunikálnak egymással. Vegyük észre, hogy ez alig különbözik az első ponttól, szinte csak annyiban, hogy itt egyszerre több kalandorhoz kell hozzárendelt sorszámokat nyilvántartani.
Ezen kívül gondoskodni kell még arról, hogyha egy szereplő valamilyen módon "önkívületi" állapotba került (meghalt vagy elájult), akkor az eredeti irányítás ne érvényesüljön nála, és ne is kommunikálhasson a környezetével többet (de bizonyos idő elteltével azért újra magához térjen - kivéve, ha meghalt). Az eddigiek konkrét megvalósítása nehéz, de nem túlságosan bonyolult programozói feladatot jelent (meg lehet írni egy általános szervező programot, ami minden lehetséges bemenetet lekezel), sokkal keményebb mogyoró azonban ennek a fordítottja, vagyis az egyes résztvevők tájékoztatása a különféle történések hatásairól. A gyakorlatban ez annyit tesz, hogy a központi résznek a játék világában végbemenő minden egyes eseményt figyelnie kell, és erről az összes szereplő felé valamilyen üzenetet továbbítania - mégpedig minden egyes szereplő felé más-más tartalmú üzenetet! Ráadásul az egyes események is - mintegy következmény gyanánt - további eseményeket vonhatnak maguk után. Egy nagyon egyszerű példával illusztrálva a dolgot: ha valahol egy Tompika nevű szereplő pl. kinyit egy ajtót (hogy továbbra is ennél az oly sűrűn fölbukkanó motívumnál maradjunk), akkor nem elég az ajtó állapotát nyitottra változtatni, hanem az illetőt értesíteni is kell róla: "Kinyitod az ajtót." (Az egyszereplős kalandjátékok meg is elégednek ennyivel!) A vele azonos helyszínen tartózkodókat ugyanakkor már arról kell tájékoztatni, hogy "Tompika kinyitja az ajtót." - míg végül a távol maradóknak abszolúte semmit nem szabad megszimatolniuk erről az egész cselekményről. Sőt, még egy negyedik csoport is van: az ajtó túloldalán állók nem tudhatják, ki cselekszik, így mindössze annyit észlelnek belőle, hogy "Valaki kinyitja az ajtót." Ezenkívül a helyzetet még tovább bonyolíthatja, ha teszem azt a kétféle helyiség közül valamelyikben sötét van: ekkor tudniillik az ott-tartózkodók nem láthatják, amidőn Tompika kinyitja az ajtót, tehát akkor ezeket nem is szabad értesíteni róla. Viszont megeshet, hogy a másik szobából, az immáron nyitott ajtón keresztül beárad a fény, aminek következtében ezek a bácsik nemcsak hogy az ajtó kinyitásáról szereznek tudomást, de ráadásul még megpillantják azokat a dolgokat is, amiket eddig a teremben honoló sötétség eltakart a szemük elől.
(Tehát mindjárt a helyszínleírást is ki kell nekik írni, és az egész szoba kezelése megváltozik.) És akkor akár ez még folytatódhat azzal, hogy mondjuk a hirtelen világosságban valaki fölismeri az ellenségét, és azonnal rátámad.
Vagy nála van egy tekercs film, ami fényt kap és tönkremegy stb. Egy ilyen egyszerű döntés is, mint amilyen egy ajtónak a kinyitása, alkalmasint a történések egész láncolatával (vagy inkább: hálójával) járhat együtt - amiről pedig szintén mindig tudósítanunk kell az érintett felek mindegyikét. Egy dinamikusan szerveződő kalandjátékban lépten-nyomon előfordulhatnak hasonló jellegű problémák, ahol rengeteg, egymástól látszólag független külső körülmény együttes hatását kell figyelembe venni.
3.1.10. Az idő kerekéhez kötve
Egyáltalában nem mindegy, hogy egy kalandjátékban miféle ütemhez igazítva telik-múlik az idő. A legegyszerűbb megoldás, különösen az egyszereplős kalandjátékokra leginkább jellemző, hogy mindig egy-egy sikeres parancs végrehajtása lépteti tovább az egész rendszert egyetlen időegységgel, mintha valamiféle, változékony hosszúságú órajelet adna neki ezzel. Ameddig gépelünk, a következő mondatunkat szerkesztjük, addig a játékban áll az idő - mihelyst azonban leütjük az ENTER-t (és be is írtunk neki valamit), egy csapásra mindenki öregebbé válik, mondjuk egy negyed órával. Tulajdonképpen nem is időhöz, hanem lépésszámhoz vannak szinkronizálva egy ilyen játék történései - pl. olyan időzítéseket alkalmaznak bennük, hogy - mondjuk egy kopogtatást követően - öt lépés múlva kinyitja nekünk az ajtót valaki.
Tetszőleges ideig lehet töprengeni a pillanatnyi helyzet megoldása fölött, és hiába ugrik a nyakunkba egy vérszomjas démon, nyugodtan elmehetünk megvacsorázni, mielőtt végképp az arcunkra fagyna az az utolsó vigyor. A program belső számlálóit, amelyek az eljövendő események titkos előhírnökei, a végrehajtott utasítások csökkentik rendszeresen eggyel. És ez nagyon helyesen van így! Egy elsősorban képzeletre és gondolkodásra épülő játéknál ez egy ideális helyzet - tökéletesen megengedhető és elfogadható, hogy ki-ki a saját belső ritmusa szerint haladjon előre a feladatok megoldásában. (Hogy is nézne ki, ha egy gyakorlott gyors- és gépíró illetéktelen előnyre tenne szert a lassúkezűvel szemben.)
Csakhogy egy többszereplős kalandjátékban már egyszerűen tarthatatlanná válik ez az állapot. Ha a program mondjuk hat különböző játékos parancsait fogadja párhuzamosan, akik mind eltérő ritmus szerint gépelnek, akkor mégis melyikükhöz alkalmazkodjon a többi? Amikor az egyik semmit nem csinál, hanem csak karba tett kézzel és összeráncolt homlokkal bámulja a képernyőt, akkor is kötelessége a programnak, hogy pontosan a történések idejében haladéktalanul értesítse őt a másik lépéseiről, ha az éppen akkor halad el mellette, vagy ugyanazon a helyszínen tevékenykedik. Az efféle programokban eszerint nem tehetünk mást: valós idejű időzítéseket vagyunk kénytelenek alkalmazni bennük. Ez viszont maga után vonja, hogy a bevitel és kiírás funkcióját az eddigieknél sokkal élesebben el kell határolnunk egymástól - mert mi történjék, hogyha véletlenül éppen akkor érkezik valakihez egy fontos kiírandó üzenet, amikor ő saját mondata szerkesztésének a kellős közepénél tart; esetleg föl sem pillantva a képernyőre, keresi a megfelelő billentyűt? Nem lehet csak úgy otrombán kettévágni a félig begépelt mondatot, és a közepébe belenyomtatni a szöveget! (De lehet: a TELNET-es játékok sajnos pontosan ezt teszik.) Okvetlenül kétfelé kell bontanunk a képernyőt, úgy, hogy külön legyen egy felület a kiírás és szintén külön a bevitel számára (utóbbinak két-három sor is elég lesz). Így azok már nem zavarják egymást - vagy mégis?! Mit tehetünk akkor, ha a megjelenítés mezejében egy különösen hosszú leírás kezd el szépen, megfontoltan kibontakozni az ismeretlenség homályából, mialatt mi szorgosan a parancsunkat gépeljük? Bevett gyakorlat, hogyha egy szöveg hosszabb annál, mint amennyi a képernyőre egy adagban kifér, akkor oldalanként meg-megszakítva, minden oldal végén egy billentyű-lenyomásra várakozva fokozatosan léptetjük azt tovább (vagy magyarul funkció). De még ha ez az eset nem is forog fenn, akkor is az ablak görgetése több másodpercig is eltarthat, és rendkívül illúzióromboló lenne, ha erre az időre hirtelen megakadna az alsó sorokban a bevitel. Másik probléma: mi van, ha a kiírás-ablakban egy félig megjelenített szöveg éppen ENTER-rel való továbbléptetésre vár, de mi nem törődünk vele, és zavartalanul csak a mondatunkra figyelünk - hol várakozzon addig a szöveg hátralevő része, és ha kiírás közben újabb üzenetek érkeznek, azokat miképpen várakoztassuk? Meg kell oldanunk tehát azt is, hogy a kétféle funkció ne csak térben, de időben is egymástól teljesen független és párhuzamos legyen: mialatt gépelünk, tényleg aközben folyjon odaát a kiírás! A még kiíratlan, de a küldőtől már átvett "szűz" szöveget pedig addig is egy átmeneti pufferban kell tárolnunk, ahol egy bizonyos határig gyűlhetnek és halmozódhatnak a sorok és a mondatok, de ha a puffer betelt, akkor haladéktalanul ki kell görgetnünk őket a képernyőre - akár tetszik a felhasználónak, akár nem. Különösen mókás tud lenni, amikor a szereplőt a játékban egy súlyos baleset érte, de ő még valahol tíz oldallal följebb tart a szövegek olvasásában, miközben a többiek már réges-régen értesültek róla, hogy ájultan hever a földön, és apránként kipakolják a hátizsákjából az értékesebb cuccokat.
Egyetlen megoldás létezik a legsimább párhuzamosság elérésére, az, ha a program központi, vezérlő része sohasem "ragad le" valamilyen szubrutinnál, hanem egy örökös végtelen ciklusban megállás nélkül kering három alapvető tevékenység: a beviteli mező szerkesztése, az események végrehajtása (beleértve természetesen a saját és a többiek által kiadott utasítások végrehajtásait is) és a szövegkiírás alapvető fázisai közt. Ehhez az szükséges, hogy valamennyi funkciót apró, szétválasztható és önállóan végrehajtható kis lépésekre tagoltan valósítsuk meg. A szövegkiírás esetében ilyen építőkocka lehet pl. az átmeneti puffer egyetlen sorának kiléptetése a képernyőablakba, vagy a beviteli rutin esetében egyetlen lenyomott billentyű beolvasása a billentyűzet-pufferből (ha van olyan), és annak megfelelően a beviteli mező módosítása. A program tehát úgy fog működni, hogy folyton figyeli, történnie kell-e valamilyen eseménynek, s ha igen, akkor végrehajtja azt, és a neki megfelelő szöveget a puffer alsó végéhez hozzácsapja (ez egyetlen szemvillanás alatt megvan); majd rögtön továbbadja a vezérlést a kiíró rutinnak, amelyik a szövegpuffer legfelső sorát kigörgeti a képre (hacsak nem üres a puffer éppen akkor); ezt követően a beviteli szubrutin lép színre, mely pedig egyetlen karaktert beolvas, ha képes; végezetül pedig vissza az elejére, és ez így megy tovább megállás nélkül. Nem kis feladat elérni, hogy ez az egész így egyben kellőképp összehangoltan fusson - különösen, hogyha grafikus képernyőt használunk a megjelenítéshez, ami már eleve alaposan lelassítja a kiírásokat. (Ajánlott az ASSEMBLY nyelv használata például.)
Többek között emiatt is számít, hogy mind az értelmező szubrutin, mind pedig a program más egyéb végrehajtó eljárásai igen-igen serényen végezzék a dolgukat - mert miért ne fordulhatna elő, hogy húsz különböző játékos egyszerre adja ki, egyenként hatszáz betűből és harminc parancsból álló mondatait? Amiből mindjárt egy másik szempont is következik, nevezetesen hogy az egyes játékosok teendőit is hasonló pufferokban kell előzetesen nyilvántartani - elvégre mindnyájan kiadhatnak több parancsból álló mondatokat is, amiből egyelőre még csak az első vagy a második hajtódik végre, amelyeket addig is tárolni kell valahol, de ő gonosz mosollyal az ajkán tüstént begépeli máris a következő adagot, és lehet, hogy ezt egyszerre akár többen is megteszik.
És ne gondoljuk azt sem, hogy mindezek a szörnyűségek kizárólag hálózatos kalandjátékokban fordulhatnak elő! Ha egy olyan kalandot készítünk, amiben ugyanazt az egyetlen számítógépet használó játékos több szereplőt is irányíthat egymással párhuzamosan, mondjuk ESC-pel vagy TAB-bal kapcsolgatva az egyik vagy a másik között (esetleg osztott képernyőn megjelenítve egymás mellett egyidejűleg akár többet is), miközben valós idejű megjelenítést alkalmaztunk benne, az pontosan ugyanakkora galibákat teremthet, mintha ezren küldözgetnék az utasításaikat a komputernek egyszerre! De megéri a belefektetett munkát a dolog, mert rendkívül látványos lesz a végeredmény.
Ezáltal tehát elértük, hogy - elméletileg - akárhány játékos ténykedését le tudjuk kezelni egyidejűleg, miközben sem a végrehajtás, sem a folyamatosan a háttérben zajló szövegkiírás nem zavarja egymást, és főképpen pedig a bevitel mindeközben zökkenőmentes marad. De nyitva maradt még egy probléma: a különböző játékosok különböző sebessége. Ha valaki gépír, mint a villám, annak a parancsai is fokozott ütemben hajtódnak végre, amire még ráfoghatjuk, hogy megérdemli ezt a kis előnyt, még ha a többiek nemhogy reagálni rá, de még csak figyelemmel követni se nagyon bírják közben; de ha egy több parancsból álló mondatot írt be valaki - erre ugyebár egy lassúbb illető is képes -, akkor már igazán tisztességtelenül manőverező vágtázásba kezdenek az utasításai - ennek egymást követő lépéseit a program mindenfajta késleltetés nélkül, teljesen egybefolyva, mondhatni szinte egyszerre vágja a többiek képébe. Fokozott mértékben áll ez a számítógép által irányított szereplőkre (ún. NPC-k: ez a "Non Player Character" - "nem játékos szereplő" - angol nyelvű kifejezés rövidítése): őnáluk tudniillik abszolúte semmiféle gépírásról nincsen szó - az illető fickó cselekvési szándékai a másodperc törtrésze alatt alakulnak ki egy külön e célra berendezett "műhelyben". Ennek eredményeképpen aztán ezek olyan követhetetlen ámokfutásba kezdenek, hogy szinte látni se nagyon fogják őket a többiek, amint nagyritkán föltünedeznek egy-két tizedmásodpercre itt-ott. A megoldás kézenfekvő: minden egyes élőlénynek - függetlenül attól, valódi-e vagy NPC - osszunk ki valamilyen maximális sebességértéket, amivel haladhat. Ez pl. úgy néz ki, hogy mindenkihez tartozik egy-egy számláló, melyeket bizonyos időközönként csökkentünk, s ha nullára csökkent, akkor következik lépésre az az illető.
Ezeket egytől néhány másodpercig terjedő tartamokra célszerű beállítani, miáltal mindenkinek személyre szabott sebessége lehet - bizonyos játékosokat vagy NPC-ket tetszőlegesen fölgyorsíthatunk vagy lelassíthatunk, amivel a helyzetek nehézségét is lehet némiképpen állítani. Az említett értékeket akár dinamikusan is változtathatjuk: pl. minél jobban meg van pakolva súlyos tárgyakkal valaki vagy minél fáradtabb és kimerültebb, annál jobban lelassul a mozgása stb.
3.1.11. Néhány jótanács és további lehetőségek
Az eddigiek során eléggé nagyvonalúan és magas szinten kezeltük a témát - ha ugyanezt részletekbe menően kéne kifejteni, egy egész könyvet sem volna nehéz megtölteni a kalandjáték készítéséről. (F. DaCosta megtette már ezt, de ő csak az egésznek az alapjaival foglalkozott.) Most befejezésül mindössze néhány hasznos jó tanácsot szeretnék felsorolni azok számára, akik komolyabban szeretnének foglalkozni ilyesmivel, illetve egy kicsit eltöprengeni rajta, hogy mire is lehetne még fölhasználni a leszűrt tapasztalatokat.
Először is, a kalandjátékok világában kezdettől fogva léteznek bizonyos kialakult szokások és elvárások, amiknek nem árt, ha az újdonsült jövevények is megpróbálnak eleget tenni. Nem elég egy helyiségekből álló térképrendszert fölépíteni, és megtölteni tárgyakkal és élőlényekkel - ahhoz, hogy ez igazán kézzelfoghatóan megjelenjen a játékosok számára, az is szükséges, hogy az információknak lehetőleg minél bőségesebb tömegével elhalmozzuk őket azok milyenségét illetően. Mint ahogy a való világban, itt is a szemét használja leggyakrabban, azaz mindent, ami csak elérhető, vizsgálni és tanulmányozni igyekszik: kétségtelenül a mozgási parancsok mellett a leggyakrabban alkalmazott funkciójuk a VIZSGÁLD ige. Úgy kell megoldanunk, hogy ezzel minél többmindent elérjen, és lehetőleg minden tárgyról, amelyet megvizsgál, hosszú és részletes leírásokat bocsássunk a rendelkezésére. Ha mondjuk egy helyszínnek a leírásában hangsúlyozottan szerepel, hogy "az erdőben, egy hatalmas fenyőfa tövénél állsz", akkor nem túlzottan szerencsés, ha egy NÉZD MEG A FENYŐFÁT próbálkozásra valami ilyesmi lesz a válasz: "Nem értem azt, hogy fenyőfát." - vagy: "Nincs itt semmiféle fenyőfa." Ilyesmi a legjobb körökben is előfordul néha, elvégre mindent belezsúfolni még a legbővebb memóriába sem lehetséges, de törekednünk kell rá, hogy minél ritkábban forduljon elő. Ha pedig már fölvettük a szótárba, és vizsgálni is engedi a program, akkor ne csak valami olyasmi kétszavas közhelyet vessünk oda neki, hogy "Szép nagy fa." - hanem aprólékosan írjuk le, ahogy a kérge pikkelyei repedésekkel tarkítva borítják a törzsét, amelyet egyébként tömény, bódító illat vesz körül, földből kiálló gyökerei körül arasznyi vastagon fedik a talajt a többéves, bomló fenyőtüskék, itt-ott kibuggyant belőle a ragacsos gyanta, és egészen elszédülünk, amikor a magasban eredő legalsó ágaira nézünk. Ennek nemcsak öncélú szórakoztató szerepe van a játékban, hanem így burkoltan utalunk esetleges további tárgyakra, melyeket a játékos észrevesz, ha egy kicsit is kísérletező hajlamú. Pl. az említett avart fölpiszkálva egy odahullott fenyőtobozt találhat, amire majd a játék valamelyik másik pontján lesz szüksége, vagy a törzsről lekapart gyantát ragasztóként alkalmazhatja máshol stb. A lényeg az, hogy nem szabad mindent direktben az orra elé tárni, hanem el kell rejteni az értékesebb dolgokat, és a játékosra bízni, hogy apránként elmélyedve fölfedezze őket. Láttuk, miképpen lehet a tárgyakat egymáshoz kapcsolni és egymásba ágyazni, így most már nem a szoba közepére helyezünk majd mindent egyetlen halomban, hanem szétosztva mindenféle asztalokkal, polcokkal és szekrényekkel töltjük meg a falakat, melyek mindegyike akár egy egész külön kis világot is tartalmazhat elrejtve magában. Ez a helyiségek elrendezésére is vonatkozik, azaz ne egyetlen kijelölt útvonalon lehessen végighaladni rajtuk, sőt, még csak egyáltalán ilyen "útvonalak" se létezzenek a játékban, hanem olyan legyen az egész, mint egy nagy, kerek, zegzugos arborétum, váratlanul egymásba visszakanyarodó ösvényekkel, és egyedül a játékoson múljon, hogy merrefelé mozog rajtuk - ne akarjuk a szájába rágni semmilyen előzetes elképzelésünket. (Vagy ha igen, akkor azt úgy tegyük, hogy ő ezt ne vegye észre.) A játékban éppenhogy az elrejtett, nem látható dolgok jelentik a legfőbb vonzerőt - ha tudjuk, hogy ott vannak, és mégse találjuk meg őket.
Nagyon sokan elrontják a játékot azzal, hogy mindenáron valamilyen történetet akarnak elmesélni általa; holott egy kalandjáték egyáltalán nem erről szól! Az persze nem baj, ha van ilyen - sőt, egy jól kitalált kerettörténet sokat emel a játék színvonalán -, de vegyük tudomásul, hogy ez egy másodlagos dolog: kicsit szigorúan azt is mondhatnánk, hogy a bevezetőnél tovább nem szabad(na) menni ezzel. Miért? Ha mi elejétől a végéig kimódoljuk a cselekményt, majd a szereplőket arra kényszerítjük, hogy lépésről lépésre ezen az úton haladjanak végig, azzal elvesszük tőlük azt az illúziót, amiért voltaképpen leültek a számítógép elé: hogy a játék tőlük függ, hogy szabadon ők alakítják az eseményeket. Ha így teszünk, azzal nyíltan uralkodni akarunk a főhősön, amivel bizony könnyen elvehetjük a kedvét a játéktól - az ilyesmi csakis ellenérzéseket szülhet. Az efféle túlszerkesztést leggyakrabban attól való félelem motiválja, hogy a játékos esetleg átsiklik a kedvenc ötleteink fölött, egyszerűen nem veszi észre azt, amit mi a legnagyobb poénnak szántunk - s ennek elkerülése végett mindenáron megpróbáljuk bebiztosítani a dolgot, mintegy szájba rágni a következő lépést. És ezzel - akaratlanul is - agyoncsapjuk az egészet: kapkodva lerántjuk a leplet az összes titokról, míg végül szegény kalandor ott áll teljesen kiábrándultan. Egy kalandjáték tartalmát nem egy történetnek az elmesélése adja, hanem hogy tulajdon képzeletünkből merítve fölépítünk egy miniatűr világot, ami a megfelelő eszközökkel azt a látszatot kelti magáról, hogy él - s ennek a célnak kimondottan jót tesz, ha az őt alkotó részletek és epizódok lazán szétszórtan hevernek, és minél kevesebb összefüggést mutatnak egymással a felszínen.
(Hosszú ideig eltart, mire az ember megsejti a látszólagos káosz mögött mélyen meghúzódó rendet.) A jól sikerült játék nem egy vagy több, előre elrendelt útvonalat jelent, hanem úgyszólván egyszerre terjeszkedik valamennyi irányban.
Minden lehetséges eszközzel akadályozni kell, hogy világunkról pontos, részletes térkép készüljön! Álljon minél nagyobb számú helyiségből az egész, és azok is minél bonyolultabban kapcsolódjanak egymáshoz (pl. ne csak vízszintesen, hanem függőlegesen is keresztül-kasul, akár egy többszintes barlangrendszer esetében) - úgyhogy ha valami vakmerő nekiállna ábrázolni őket, hát minimum A1-es papírra legyen hozzá szüksége. Minél több változó körülmény legyen! (Pl.: sötét helyek, ahol világítani kell, de a lámpában egy idő múlva kimerül az elem; véletlen utakon bolyongó, csavargó szereplők; pénz, amivel vásárolni lehet, de igencsak szűkében mérjük számára; víz alatti zugok, melyekben csak rövid ideig tartózkodhatunk megfulladás nélkül; napszakok váltakozása - éjszakára bezárnak a boltok, becsukják a városkaput - stb.)
Szélsőséges esetben akár még az is elképzelhető, hogy napszakok szerint változik a helyszínek leírása, úgyhogy ha éjszaka járunk ugyanazon a helyen, akkor meglehet, egészen más dolgokat találunk ott, mint nappal. Csak részletesebb vizsgálódás árán fölfedezhető rejtekutak kellenek (festmény mögötti rejtekajtó, csapóajtó az ágy alatt, létra a kútban.), lelakatolt ajtók, egyirányú átjárók, helyüket változtató őrszemek. Sok-sok csukott ajtó legyen, és más hasonló akadályok, s még az sem kizárt, hogy némelyik ajtót netán sohasem lehet kinyitni, így a kalandor örökké csak találgathat, mi is lehet mögötte. Roppantul lényeges, hogy minél több olyan epizód szerepeljen benne, melynek nemcsak egyféle megoldása van! Ha mondjuk be szeretnénk jutni egy fallal körülkerített városba, akkor cselekedhetünk úgy is, hogy bizonyos összeget fizetünk a főkapu őrének, aki erre kinyitja nekünk a főkaput; esetleg ha elég erősek vagyunk, megölhetjük és elvehetjük tőle a kulcsokat; valahol, egy másik ponton átmászhatunk a kőfalon; vagy akár egy földalatti alagúton keresztül is behatolhatunk, hogy aztán az egyik lakóház pincéjében bukkanjunk elő. stb. stb. Sose felejtsük el, hogy minél nagyobb szabadságot kap tőlünk a játékos, annál jobban élvezi majd a játékot - igaz, másik fele a dolognak, hogy ez sajnos nagyságrendekkel megnehezíti számunkra a játékprogram megtervezését és elkészítését.
Említettük: a kalandjáték bizonyos szempontból a valóságos világ szimulációjára törekszik. Rendkívül sokat árt ennek a szándéknak, hogy bizonyos konkrét célok elérésére irányuló vonalakba rendeződik a cselekmény - azt a hamis illúziót keltve, mintha az egész világnak egy bizonyos célja és értelme lenne. Ha a játékos elérte a végső célját, akkor egyszer csak mintha elvágták volna: nincs tovább, leállt, filmszakadás, dráma. Attól kezdve már nem is érdekelheti tovább az egész. Segíthet ezen valamennyire a sokféleség, az, hogy mindennek többféle megoldása van; így legalább van értelme mindig újrakezdeni, és az újabb és újabb változatokat próbálni, fölfedezni az elrejtett, mellékes kis részleteket is. De a legjobb (és persze legnehezebben elképzelhető) megoldás az volna, ha egyáltalán nem lenne sem eleje, sem pedig vége az eseményeknek. Ez esetben ténylegesen is föl lehetne használni a valóság jelenségeinek ábrázolására. Lehetne például egy programot írni, ami - valóságos tényekre és tapasztalatokra építve - megjelenítené egy erdő mindennapos életét. Az alapszíntér sok ezer, egymáshoz nagyon hasonló helyszínből állna, amely lassan és fokozatosan, de nem szűnő következetességgel folyton-folyvást változna: bizonyos ösvényeket lassanként benőne a csalán, míg előbb-utóbb teljesen eltűnnének, s eközben máshol új, friss csapások képződnének az állatok lábai nyomán - nem lehetne egy állandó térképet rajzolni a világunk fölépítéséről, mert mire elkészülnénk ezzel, addigra talán már teljesen megváltozna a helyiségek elrendezése; sőt, maguk a helyiségek is eltűnnének idővel, hogy azután hasonlóak, de nem pontosan ugyanolyanok bukkanjanak fel valahol egy másik pozícióján. Éppígy cserélődnének a bennünket megtöltő tárgyak és élőlények is: természetesen ehhez min. hetekig vagy hónapokig kellene futtatni a programot, de ennyi idő alatt az oszlopos fák is szépen kiöregednének és kidőlnének (ha szerencsés a főhős, akkor éppen olyankor tartózkodik egy ilyen érdekes esemény helyszínén, amikor az megtörténik, s így néha-néha közvetlenül figyelemmel kísérheti azt), hogy aztán újabb hosszú ideig korhadjanak a földön, mialatt a friss nyiladékban fejlődik a következő nemzedék. A keletkezett tisztásokat benőnék a cserjék és a virágok, rajtuk madarak és rovarok csapataival, eső után előbújnának a csigák és szeptemberben bőgnének a szarvasok. Természetesen az idő múlása is figyelemmel kísérhető lenne - alaposan felgyorsítva, pl. egy másodperc alatt múlna el ott egy perc, egy perc alatt egy óra, következésképpen 24 perc alatt egy nap; a napszakok váltakozásai nyomán változnának a helyiségek leírásai és a bennük található élőlények összetétele; kb. fél nap leforgása alatt pedig már egy teljes hónap peregne le a szemeink előtt - hat nap alatt telne el egy év. Ezalatt mind a négy évszak megtenné a magáét: téli álomba vonulnának a medvék, leesne a hó és a fák lombjai, februárban malacokat ellene a vaddisznó, majd ezután a következő tavasszal újra kezdődne minden.
Ebben a játékban mászkálva nem azon mesterkedne a kalandor, hogy valamilyen célhoz kerüljön mindegyre közelebb, hanem elsősorban a nagyságával és a gazdagságával nyűgözné le őt: bármekkora kiránduló utakat tenne is benne, sohasem fedezhetné föl egészen, és képtelen volna egyszer s mindenkorra emlékezetben tartani annak a seregnyi állat- és növényfajnak a nevét, amelyek életciklusa mind-mind parányi részét nyújtaná a végleges képnek - köztük akár olyan ritkaságok is, amivel jó, ha egy életben egyszer találkozik az ember, vagy a teljes év folyamán mindössze néhány óráig vagy napig található szabadon. Sohasem lehetne megunni, elvégre örökké más-más lenne benne minden, és a kissé részletesebb megismeréshez is rendkívül hosszú ideig kéne foglalkozni vele. Bár őszintén megvallva, a valóságos természetjárás azért valamivel izgalmasabb időtöltés ennél. Nem is ez volna benne az igazi kihívás - hanem egy ilyen programot elkészíteni!
Ez volna az egyik út, amelyen tovább lehetne lépni innen; a másik pedig a játékok szöveges voltát használná ki, és magának a Nyelvnek a szimulációjára törne. Történtek is már ez irányban különféle kisebb-nagyobb próbálkozások; de az elfuserált fordító- és beszélgető programok - minden beléjük fektetett szorgalmas és kemény munka ellenére is - igen szánalmas látványt nyújtanak. Nem csoda, ugyanis ez még az előbbinél is jóval hatalmasabb feladat volna, és nem tudom, hogy egyáltalán megvalósítható-e.
Roppant érdekes adalékok ehhez a témához Noam Chomskynak, az amerikai nyelvésznek és filozófusnak magyarul csak nemrég megjelent Mondattani szerkezetek valamint Nyelv és elme című írásai - előbbiben az emberi beszédnek egy pontos matematikai modelljét igyekszik fölállítani, összetevőkkel és ún. nyelvi transzformációk segítségével; utóbbiban azt foglalja össze, milyen hatással volt és lehet a nyelvészet az emberi elme kutatására. Számtan és nyelvtan összekapcsolására mások is tettek már kísérletet, pl. a magyar Kiss Dénes is - de az övé jóval kevésbé módszeres és alapos, mint a Chomskyé, inkább amolyan ösztönösen ide-oda csapongó.
4. IRODALOM
Chomsky, Noam. (1995). Mondattani szerkezetek - Nyelv és elme. Osiris-Századvég, Budapest.
DaCosta, F. (1986). A kalandprogram írásának rejtelmei. Műszaki Könyvkiadó, Budapest.
Kiss, László és Schmidt, Endre. (1988). 1001/2 játék. LSI Alkalmazástechnikai Tanácsadó Szolgálat, Budapest.
Tolkien, J. R. R. (1992). A babó. Ciceró.
Közreadta: a játékgyáros, aki már megszenvedte a poklokat, a Bölcsek Könyvével és Robot a Marsról szöveges, rajzos kalandjátékaival.
JÁTÉKTERV ÚTMUTATÓ
HOGYAN IS ÍRJUNK KALANDJÁTÉKOT???
A fiókomból előkerült valami, ami csak régi iromány, - szöveges kalandjáték lett volna - annak idején meg is próbálkoztam vele, de aztán abbamaradt, elfogyott a lelkesedésem, az időm és a türelmem.
Igen, ma már csak emlék, 1986-ból "A JÁTÉK" (egy játékterv, melyből soha nem készült kalandjáték)
Bevezetés:
Az A JÁTÉK egy szöveges kalandjáték. Akinek a '82-90-es években volt 8 bites számítógépe (ZX-Spectrum, C64, TRS-80, HT-1080Z, és TVC), az bizonyára emlékszik az ilyen stílusú játékokra. Én emlékszem - mi emlékszünk! Rengeteg kalandot éltünk át úgy, hogy a helyszíneket csupán leírásokból, képek nélkül, a fantáziánkra hagyatkozva képzeltük el, ami különös hangulatot kölcsönzött az ilyen játékoknak. Ezt a hangulatot szeretném ismét felidézni, hogy a fiatal számítógépesek megismerhessék ezt, a régi motorosok pedig nosztalgiázhassanak, és újra nekivághassanak az igazi kalandoknak!
Játékszabály:
A játékszabály elég egyszerű. Lépj be egy világba, teljesítsd a küldetést és próbálj meg nem meghalni!)
Persze ennél azért többre lesz szükséged a kalandokhoz. A játék szöveges kalandjáték, tehát a helyszíneket annak leírásából ismerheted meg. A helyszínek között mozogni a következő parancsok kiadásával lehet: /észak, /északkelet, /kelet, /délkelet, /dél, /délnyugat, /nyugat, /északnyugat, /fel, /le, /ugrik, /mászik. Ezen kívül a program még ismeri a /felvesz, /letesz, /vizsgál, /használ, /nyom, /húz, /aktívfegyver, /támad, /kő, /papír, /olló parancsokat. Ezek részletes leírása később. Tehát a világokban ezeket a parancsokat kiadva kalandozhatsz, a kiadott parancsokra jött választ pedig a képernyőről, szöveges formában, leolvashatod. A helyszíneken akadályok nehezítik majd a továbbjutásodat, amiket különböző tárgyak segítségével győzhetsz le. Az is lehet, hogy egy másik (agresszív) kalandozó megtámad. Erre az esetre jó, ha van nálad fegyver! Utad során tehát négyféle dologgal találhatod szembe magadat: -akadály -tárgy -fegyver -egy másik kalandozó Az akadályok elég különbözőek lehetnek, kezdve a mocsártól, a sötétségen át, egészen egy őrig, bármi. Viselkedésük is sokféle lehet. Például a sötétség lámpa nélkül azonnal megöl, mert mondjuk elesel, és kitöröd a nyakad. A földön lévő sav nem öl meg azonnal, de saválló cipő nélkül folyamatosan szívja le az energiádat. Egy bezárt ajtó nem "bánt", de ha nincs kulcsod, akkor nem tudsz továbbmenni. Az akadályok működése elég egyszerű: ha nincs nálad egy bizonyos tárgy, akkor meggátol a továbbjutásban. Tehát mindenképpen tárgyakra lesz szükséged, amiket el kell cipelned az akadályig, hogy átjuthass rajta. Minden tárgynak van súlya. A tárgyakat a hátizsákodba rakhatod, ami persze csak bizonyos súlyt képes elviselni, így néha nem árt a már feleslegessé vált tárgyakat eldobni. Ha a megfelelő tárgy nálad van, az akadály nem lesz akadály többé számodra. Például, ha a kulcs nálad van, az ajtó tovább enged. (nincs szükség semmilyen parancs kiadására) Találhatsz olyan tárgyakat is, amelyek semmilyen akadályhoz nem szükségesek, viszont van energiájuk, amik a te energiádat növelhetik. Például a gyógyszer, étel, ital. Ezeket felvéve, ha megsérültél növekszik az energiád. Érdemes tehát ilyen tárgyak után is kutatni!
Ezek a tárgyak különösen harc után tehetnek jó szolgálatot. Ha harcolsz, akkor fegyverre is szükséged lesz! Különböző fegyvereknek, különböző ereje lehet, így célszerű minél jobb fegyvert beszerezni, és azt aktiválni. Sose felejtsd el aktiválni a felvett legjobb fegyveredet! Hogyan tudsz felvenni, letenni tárgyakat, megtámadni valakit, harcolni, és fegyvert aktívvá tenni? Természetesen parancsokkal, ezért hát nézzük meg a parancsokat most már részletesen!
Parancskészlet:
Parancsok kétféleképpen adhatók ki. Az egyik lehetőség, hogy beírod őket. Ekkor a parancsokat mindig / jellel kell kezdeni, és minden hozzájuk írt egyéb információt (tárgy neve, személy neve, akadály neve) szintén / jellel kell a parancsszó után írni. A másik lehetőség a képernyőn látható gombokat megnyomva kiadni az utasítást. A játékban a következő parancsokat adhatod ki:
1.) Mozgás parancsok (/észak, /északkelet, /kelet, /délkelet, /dél, /délnyugat, /nyugat, /északnyugat, /fel, /le, /ugrik, /mászik) Ezekkel a parancsokkal tudsz mozogni az egyes helyszínek között. Ezek az égtájak nevei, kiegészítve a fel, le, ugrik, mászik irányokkal. Hogy milyen irányba mozoghatsz, az kiderül a helyszín leírásából. A parancsokat egyszerűen beírva és ENTER-t ütve, vagy a megfelelő ikonra rákattintva a parancs végrehajtódik. A vezérlőpulton található nyilak az egyes égtájakat jelölik, tehát:
Észak
Északkelet
Kelet
Délkelet
Dél
Délnyugat
Nyugat
Északnyugat
A nyilak mellett látható ikonsor első négy ikonja balról jobbra a következők:
Fel
Le
Ugrik
Mászik
2.) Felvesz és letesz parancs (/felvesz, /letesz) Működése: /felvesz/ [a tárgy neve, amit fel akarsz venni] /letesz/ [a tárgy neve, amit fel akarsz venni] Például: /felvesz/ alma vagy /letesz/ alma Vagy a Felvesz Letesz ikonra, majd egy tárgy vagy fegyver nevére kattintva. Felvesz esetében a szobában található tárgyak listájából, letesz esetén a hátizsákban lévő tárgyak listájából kell választani. E két parancs segítségével fel tudsz venni és le tudsz tenni egy tárgyat. A felvett tárgy a hátizsákodba kerül. A felvett tárgy súlya hozzáadódik a hátizsákban lévő tárgyak súlyához. Ha a felvenni kívánt tárgy súlyával együtt a hátizsák nehezebb lenne, mint az előre meghatározott maximális hátizsáksúly (ami alap esetben 100), akkor a tárgyat nem fogod tudni felvenni.
3.) Vizsgál parancs (/vizsgál) Működése: /vizsgál/ [a tárgy neve, amit meg akarsz vizsgálni]
Például: /vizsgál/ ajtó Vagy a Vizsgál ikonra, majd egy objektum nevére kattintva a szoba objektumainak listájában. Ezzel a paranccsal bővebb információ kérhető a szobában lévő objektumokról.
(Tárgy, fegyver, akadály)
4.) Használ parancs (/használ) Működése: /használ/ [mit] / [mivel] Például:
/használ/ üres zseblámpa/elem Vagy a Használ ikonra, majd egy objektum nevére kattintva a szoba objektumainak listájában vagy a hátizsákban lévő tárgyak listájában, majd egy másik objektum nevére kattintva a szoba objektumainak listájában vagy a hátizsákban lévő tárgyak listájában. A parancs hatására két tárgy használatával egy új tárgy fog keletkezni (pl.: üres zseblámpa + elem = működő zseblámpa vagy kólaautomata + pénz = kóla).
5.) Nyom és húz parancs (/nyom, /húz) Működése: /nyom/ [a tárgy neve, amit meg akarsz nyomni] /húz/ [a tárgy neve, amit meg akarsz húzni] Például: /nyom/gomb vagy /húz/ kar Vagy a Nyom Húz ikonra, majd egy objektum nevére kattintva a szoba objektumainak listájában vagy a hátizsákban lévő tárgyak listájában. Hatására a helyszín fog megváltozni. Új akadály keletkezik, vagy éppen eltűnik. Esetleg valamilyen tárgy jelenik meg.
6.) Aktívfegyver parancs (/aktívfegyver) Működése: /aktívfegyver/ [a fegyver neve, amit aktiválni akarsz] Például: /aktívfegyver/puska Vagy az Aktívfegyver ikonra, majd egy fegyver nevére kattintva a hátizsákban lévő tárgyak listájában.
Fontos, hogy a kiválasztott fegyvernek a hátizsákban kell lennie! Ha egy fegyvert aktívvá teszed, akkor amikor harcba keveredsz, és nyersz, az ellenfeleden olyan mértékű sérülést tudsz okozni, mint amilyen az aktív fegyvered ereje. A fegyver erejét a hátiszák listában lévő, a fegyver megnevezés után látható második szám jelzi. Az első szám a tárgy energiáját jelenti. Erre akkor van szükség, ha téged sebesítenek meg. Ekkor a tárgyaink energiája hozzáadódik az energiádhoz, ezáltal a sérülés kisebb lesz, esetleg meg se fogsz sérülni. (Például: puska (0 - 30) azt jelenti, hogy a puska, egy sikeres forduló után 30 pontot fog levonni az ellenfeled energiájából; gyógyszer (40 - 0) azt jelenti, hogy a gyógyszer 40 ponttal tudja növelni az energiádat egy esetleges sérülés után)
7.) Harci parancsok (/támad, /kő, /papír, /olló) Működése: /támad/ [kit] A kő, papír, olló önmagában működik, semmiféle plusz paramétert nem várnak. Például: /támad/ János. Vagy a Támad Kő Papír Olló ikonra kattintva. Támad esetén még ki kell választani egy nevet a helyszínen lévő játékosok közül, és rákattintani. Ha megtámadtál valakit, akkor az ismert kő, papír, olló játékot játszva dönthetitek el, hogy az adott fordulót ki nyerte. Ha valaki nem ismerné a szabályait: a kő kicsorbítja az ollót (tehát, ha az első játékos a követ választja, a második az ollót, akkor az első játékos nyer), az olló elvágja a papírt (tehát, ha az első játékos az ollót választja, a második a papírt, akkor az első játékos nyer), a papír becsomagolja a követ (tehát, ha az első játékos a papírt választja, a második a követ, akkor az első játékos nyer). A vesztes játékos energiájából, a nyertes játékos aktív fegyverének ereje levonódik. A csata addig folytatódik, amíg valamelyik játékos meg nem hal, vagy el nem menekül. A menekülésnek viszont ára van! Ha valaki elmenekül, akkor az adott fordulót elvesztette, tehát az ellenfele fegyverének az ereje le lesz vonva az energiájából.
Most már ismerjük a játék parancsait, lássuk, hogy néz ki a játék:
A képernyő alján legyen a vezérlőpult. A vezérlőpulton belül, a felső részben, vörös háttérben látható egy szövegbeviteli mező. Ide lehet a parancsokat beírni, és ennek segítségével tudsz beszélgetni az adott helyszínen lévő többi játékossal. Baloldalon és alul, zöld háttérben láthatóak a vezérlőikonok, a már említett sorrendben. Jobb oldalon, kék háttérben láthatod az energiádat, a hátizsákod jelenlegi súlyát, és az éppen kiválasztott, aktív fegyveredet. A vezérlőpult fölött öt doboz van. A jobb oldali dobozban jelennek meg azoknak a játékosoknak a nevei, akik veled egy helyszínen tartózkodnak, tehát akikkel beszélgetni, vagy éppen harcolni tudsz. A középen, felül lévő dobozban jelenik meg a helyszín leírása, és a különböző rendszerüzenetek. Például, ha megvizsgálsz egy tárgyat, akkor a tárgy leírása itt fog megjelenni. Középen, alul van a chat doboz. Itt a beszélgetések olvashatóak, a te és a helyszínen tartózkodó többi játékos üzenetei. Jobb oldalon fölül jelennek meg a szobában található tárgyak, fegyverek, akadályok. Ha például fel szeretnél venni egy tárgyat, kattints a felvesz ikonra, majd utána ebben a dobozban az adott tárgy nevére. Alatta, jobb oldalt van a hátizsákodban található tárgyak listája. A tárgyak vagy fegyverek neve mellett zárójelben láthatsz két számot. Az első azt mutatja, hogy az adott tárgy (vagy fegyver) mennyi energiát tartalmaz, a második szám pedig azt, (fegyver esetén) hogy mekkora a fegyver ereje. Például az "alma (5-0)" azt jelenti, hogy az alma 5 pontot tud az energiádhoz adni, a "kard (0-15)" pedig azt, hogy ha a kard az aktív fegyvered, akkor harc közben 15 pontot fog levonni az ellenfél energiájából egy nyertes forduló esetén. Ha például el szeretnél dobni egy tárgyat, akkor kattints a letesz ikonra, majd ebben a dobozban annak az adott tárgy nevére.
Általánosan ennyi a játék. A világok leírásáról, a küldetésről, esetleg a speciális tudnivalókról minden világ első helyszínén olvashatsz.
Bevezetés:
Írj te is egy világot!
Hogyan kell (lehet) kalandjátékot írni??
1.) Háttér kitalálása. Mielőtt belefognánk egy új világ megírásába, lássuk, hogy általánosan hogyan is kell felépíteni egy kalandjátékot. Első lépésként találj ki egy hátteret. Egy helyet, amibe belehelyezed a történetet. Ez a hely bármi lehet, például egy sötét barlangrendszer, ahol szörnyekkel találkozik majd a kalandozó, vagy egy katonai bázis, ahonnét titkos iratokat kell kicsempészni, vagy egy ismeretlen bolygó, ahonnét az űrhajójával lezuhant játékosnak vissza kell térnie. Tehát bármi lehet, a lényeg, hogy megfelelően tágas legyen, vagyis legyen elegendő hely a mozgásra. Az A JÁTÉK esetében a sok helyszín különösen fontos, hiszen nem szabad elfelejteni, hogy a világhálóról egyszerre sok ember léphet be a világba, és nem jó, ha ez a világ a kevés helyszín miatt "túlzsúfolt".
2.) Küldetés kitalálása. Ha már megtaláltad a legjobb helyet, akkor kell egy küldetés a játékosnak. Például a barlangrendszer közepén meg kell találnia a világ legnagyobb gyémántját, a katonai bázisból el kell hozni a titkos iratokat, az idegen bolygón kell találni egy használható űrhajót, és azzal visszatérni a földre.
3.) Összefüggések kitalálása. A játék lényege azonban az akadályok legyőzése, amikkel a játékos a kalandozása során találkozik. Az akadályok sokfélék lehetnek. Például szörnyek, amiket meg kell ölni, ajtók, amiket különböző kulcsokkal ki kell nyitni, de akadály egy folyó, amin csónak nélkül a játékos nem tud átkelni, vagy akadály a sötétség, amin a játékos lámpa nélkül nem tud átjutni. Akkor lesz izgalmas a játék, ha ezek az akadályok összekapcsolódnak, és egyiken, csak a másik legyőzésével tud a játékos átmenni. Például legyen a feladatunk (küldetés), hogy be kell jutnunk egy házba, aminek az ajtaja zárva van. Tehát valószínűleg kell egy kulcs. A pályán a következő helyszínek vannak: a ház bejárata, egy kert, magas fűvel és gazzal, egy fészer, egy kút, és a kert vége, ahol szárítókötélen ruhák száradnak. Hol lehet a kulcs? Először elmegyünk a kertbe. Megvizsgáljuk a kertet, amire azt a választ kapjuk, hogy nagyon magas a fű, le kéne már vágni. Továbbmegyünk a fészerhez. Ezt is megvizsgáljuk, és látjuk, hogy egy rozsdás lakattal van bezárva, ami olyan rozsdás, hogy ezt kulcs már nem nyitja. Továbbmegyünk a kúthoz, amit szintén megvizsgálunk. Mély kút, elég romos állapotban. Amikor le akarunk mászni, kiderül, hogy nem tudunk, mert már a kötél sincs a kúton, amin leereszkedhetnénk. Menjünk tovább a kert végébe. Itt ruhák száradnak, szárítókötélen. Megvizsgáljuk a szárítókötelet, ami jó erős. Hát felvesszük, és már rohanunk is vissza a kúthoz. A kötél segítségével leereszkedünk a kút aljára, ahol találunk egy kalapácsot. A kalapáccsal visszamegyünk a fészerhez, leütjük a lakatot az ajtóról, és bent találunk egy kaszát. Átmegyünk a kertbe, lekaszáljuk a füvet, és a fű között megtaláljuk a ház kulcsát. Visszamegyünk az ajtóhoz, és bemegyünk a házba. Ez egy nagyon rövid kaland volt, viszont jó példa arra, hogyan ágyazódnak egymásba az egyes akadályok. Nem lehet továbbjutni, csak lépésről lépésre. Ennek a kalandnak az összefüggései a következők voltak: szárítókötél => kút => kalapács => fészer => kasza => fű -> kulcs => ajtó. Ilyen összefüggésekből lehet felépíteni a játékot.
A kaland akkor izgalmas, ha mondjuk, az ajtó mögött újabb összefüggéseket kell majd megfejtenünk úgy, hogy annak egy-egy láncszemét már itt a kertben megtaláljuk. Tehát az összefüggések a végtelenségig bonyolíthatóak. Minél bonyolultabbak, annál több fejtörést fog okozni a játékosoknak, és annál izgalmasabb lesz a kaland.
A program sajátosságai:
Lássuk hát, hogyan is működik az A JÁTÉK, és hogyan lehet vele új világot alkotni. A program legyen átlagos kalandjáték, legyen itt egy időben több játékos is, ugyanabban a világban, sőt, ugyanazon a helyszínen. Így több furcsasága is lehet a játéknak. Ezért például az, hogy ebben a játékban a hátizsákból kidobott tárgy nem jelenik meg az adott helyszínen, hanem eltűnik.
Ez egy kicsit furcsa lehet, de azért volt rá szükség, mert ha az eldobott tárgyak megjelennének azon a helyszínen, ahol letettük őket, akkor hamarosan (mivel többen is játszhatnak ugyanabban a világban) az egész pálya tele lenne tárgyakkal. A másik ilyen furcsaság, hogy a felvett tárgy, miután felvettük, a földön marad. Bekerül a hátizsákba, de nem tűnik el a pályáról. Ezt is a többjátékos üzemmód miatt kell megengedni, azért, hogy mindenkinek legyen esélye végigvinni a küldetést.
Hiszen gondoljuk végig, ha a földön fekvő kulcs, miután felvettük eltűnne a földről, akkor már senki más nem tudna továbbmenni, hiszen senki más nem jutna hozzá a kulcshoz. A harmadik dolog, ami furcsa lehet a játékban az, az akadályok működése. Az ajtós példánál maradva, ha a kulcs nálunk van, ki tudjuk nyitni a bezárt ajtót, és át tudunk menni az akadályon. Azonban, ha a kulcsot valahol letesszük, és ismét visszakerülünk az iménti ajtó elé, az ismételten nem fog minket átengedi, hiába nyitottuk már egyszer ki. Egyszerűen tehát minden akadály csak addig van "nyitva", míg a leküzdéséhez szükséges tárgy a hátizsákodban van. Könnyen belátható ennek is az oka. Ha minden akadály eltűnne, miután valaki legyőzte, akkor a sokadik játékos, aki belép a játékba, már nem találna leküzdendő akadályt, és minden gondolkodás nélkül átsétálhatna a már teljesen semlegesített pályán. Ezekre a dolgokra tehát oda kell figyelni.
Egy világ megtervezése:
Mielőtt leülnénk a gép elé, papíron tervezzük meg a játékot. Kitaláltuk már a hátteret, azt, hogy hol fog játszódni a kaland, tudjuk a küldetést, azt, hogy mi a játék célja, mit kell megszerezni, hova kell eljutni, és végül az összefüggéseket is kitaláltuk, azt, hogy hogyan és milyen tárgyak megszerzésével, milyen akadályok legyőzésével lehet teljesíteni a küldetést. Elsőként tehát össze kell írni az összefüggések alapján az objektumokat (tárgy, fegyver, akadály). Írjuk föl egy lapra az objektumaink nevét, és mindegyiknek adjunk egy számot. A pályaszerkesztés során az objektumainkra majd ez a szám alapján tudunk hivatkozni. A második feladat a tárgyak, akadályok és fegyverek elhelyezése a pálya helyszínein. Ehhez három lapra lesz szükség. Az első lap sarkába rajzoljunk be egy iránytűt. Felfele legyen észak, lefele dél, jobbra kelet, balra nyugat. Ez lesz maga a térkép. A térképen majd minden helyszínt be fogunk számozni. A második lapra fogjuk írni a helyszínek leírását, a számozás alapján azonosítva, hogy a térkép melyik helyszínéhez, melyik leírás tartozik. A harmadik lapon egy táblázat lesz. Ebben a táblázatban fogjuk feltüntetni, hogy melyik szobában milyen objektumok (tárgy, akadály, fegyver) vannak, melyikből hány darab van, és mozdíthatóak-e, vagy nem. Ha ezekkel is megvagyunk jön majd a különböző cselekvések feljegyzése. A cselekvések, a használ, nyom-húz, vizsgál parancsok. Olyan táblázatokat kell majd csinálnunk, ahol feljegyezzük, hogy hányas számú tárgyra kiadva az adott parancsot, mi fog történni. A szerkesztés könnyebb megértése érdekében a folyamatot egy egyszerű pár helyszínes világon keresztül fogom bemutatni. Egy üzemképes játékhoz persze ennél majd jóval több helyszínes és bonyolultabb világot kell írnotok, de példának, és a könnyű érthetőség miatt lesz a világ ilyen kicsi. Kezdjük is el!
Cím: Rossz nap.
Háttér: Jelen kor, egy kertes ház, és környéke.
Küldetés: Hazatérve, az ajtód előtt veszed észre, hogy elvesztetted a kulcsodat. Kulcs nélkül nem jutsz be a házba, hiszen épp tegnapelőtt szereltettél fel betörésbiztos ajtót valami céggel, akik nagyon reklámozták magukat, és a bemutatójuk, hogy még dinamittal sem lehet berobbantani az ajtót, nagyon meggyőzött. Valahol van egy pótkulcs, de már nem emlékszel rá hol. Meg kell találni, hogy bejuthass a lakásodba.
Összefüggések: ajtó <= kulcs <= (húz) <= fiók <= fészer (az ajtó nem nyílik, de "fent magasan van egy ablak") <= létra <= (/használ/festő/sör) <= festő (Hű de meleg van! Bármit odaadnék egy üveg sörért!) <= sör <= (/használ/automata/pénz) <= automata <= pénz <= szarkafészek <= fa (a kert közepén egy magas fa áll)
Túl vagyok hát az első három legfontosabb feladaton. Kitaláltam egy hátteret, egy küldetést, és az összefüggéseket is felírtam, ami alapján majd végig lehet vinni a küldetést. Ahogy látható hátulról kezdtem építeni az összefüggéseket. Azzal a tárggyal kezdtem a sort, amit majd legutoljára talál meg a játékos.
Zárójelbe tettem pár emlékeztetőt. Például a fiók és kulcs közé a húz szót, ami azt jelenti, hogy amikor a játékos belép a fészerbe, ott talál egy szekrényt, vagy asztalt, aminek lesz egy fiókja. Ha itt kiadja a /húz/fiók parancsot, akkor megjelenik a kulcs. Addig természetesen nem fogja látni a kulcsot a fészerben.
Az összefüggések listájában jól megfigyelhető a használ parancs "furcsasága". Az, hogy /használ/automata/pénz mindenki számára érthető. Használni akarom a pénzt az automatával, azaz bedobom a pénzt az automatába. De ugyanezt a parancsot kell akkor is használni, amikor a festőtől akarom megszerezni a létráját, és ezért odaadom neki a sört. Ezt is a /használ/festő/sör paranccsal oldom meg. Itt nyelvi szempontból értelmesebb lenne egy /ad/festő/sör parancs, de logikailag az ad és a használ is ugyanúgy működik, és a használ parancsot kiadva is mindenki érti, hogy miről van szó. A sört akarom használni. Úgy használom, hogy odaadom a festőnek. Az összefüggések kitalálásakor vigyázzunk arra, hogy a használ, nyom, húz parancsok, új tárgyakat tudnak létrehozni.
Esetünkben a fiókot kihúzva kulcs fog "keletkezni", a pénzt használva az automatával pedig egy üveg sör fog megjelenni. Mindhárom parancs tud új tárgyat létrehozni. Az új tárgyat vagy az adott helyszínre tesszük, vagy a játékos hátizsákjába. Figyelni kell arra, hogy a továbbjutáshoz elengedhetetlenül szükséges tárgyak ne a helyszínen jelenjenek meg, hiszen így bárki felveheti. Ne feledjük, több játékos is lehet egy időben, ugyanazon a helyszínen! És elég bosszantó, ha én rájövök valamilyen rejtélyre, megoldom, és végül az ennek eredményeként megjelenő tárgyat nem tudom felvenni, mert valaki, aki szintén velem egy helyszínen tartózkodik, és gyorsabban beírja a parancsot (vagy gyorsabb Internet-kapcsolata van), felveszi előlem azt, amiért én dolgoztam meg.
Térkép (helyszínek vagy szobák)
Most már tudom, hol játszódik a játékom, és milyen tárgyak lesznek elhelyezve rajta. A következő feladat a helyszínek megtervezése. Fogok egy lapot, ahogy már az előbb leírtam, felrajzolok egy iránytűt az egyik sarkába. A helyszíneket körökkel jelölöm, amiket majd vonalakkal kötök össze. A vonalak jelölik, hogy milyen irányba lehet menni. Lerajzolva ez rögtön érthető lesz. Minden kört, azaz helyszínt megszámozok. Az egyes sorszámúnak mindig a kezdő helyszínnek kell lennie, mivel minden új belépő játékos, az egyes sorszámú szobából indul. Ez azt jelenti, hogy a kerettörténetet (hátteret, küldetést) az egyes sorszámú helyszín szövegének tartalmaznia kell. A legjobb megoldás talán az, ha az egyes helyszín egy olyan speciális helyszín, ami csak a kerettörténetet tartalmazza, és az összes irány (észak, dél, kelet, stb.) a kettes sorszámú helyszínre mutat, ahonnét viszont már nem lehet visszamenni az egyes sorszámú helyszínre. Tehát az egyes sorszámú helyszín szövegéből a játékos megtudja mi a feladata, utána kilép innét, és a tényleges játék a kettes sorszámú helyszínről indul. Ugyanilyen speciális az utolsó helyszín is. Ennek a szövegébe kell kerülni a befejezésnek. Ide jön a gratuláció, hogy a játékos sikeresen teljesítette a küldetését. Viszont jó, ha innét már nincs visszaút. A kalandjátékok egy kedvelt fogása az útvesztő. Az útvesztők kitágítják a világot.
Működése nagyon egyszerű. Általában három-négy helyszínből óriási útvesztőt lehet csinálni. Lényegük, hogy egy, esetleg két kijáratuk van, viszont mindegyik helyszínből, minden irányba lehet menni, és mindegyiknek ugyanaz a leírása. Például: egy sötét erdőben bolyongsz, vagy egy végeláthatatlan búzamezőn sétálsz. Viszont nem logikusak az égtájak szerinti mozgások. Például van három helyszínem, a 10-es, 11-es és 12-es. A kijárat-bejárat legyen a 10-es helyszín keleti iránya. Északkelti irányba mozogva a 11-es helyszínre jut a játékos. De a 11-esből délnyugati irányba mozogva, nem jut vissza a 10-esbe, hanem mondjuk ez az irány visszamutat a 11-es helyszínre. A 11-esből nyugatra mozogva a 12-esbe jutunk, de a 12-esből keletre, a 10-esbe. A 10-esből nyugatra mozogva visszajutunk a 10-es helyszínre. És így tovább. Mivel mindhárom helyszín szövege ugyanaz, a játékos nem fogja tudni, hogy hol is van tulajdonképpen.
A térképpel együtt két táblázatot is készítek. Egyikbe írom a helyszínek leírását, másikba, hogy melyik helyszínen milyen objektumok vannak.
Helyszínek:
1.) Hazatérve, az ajtód előtt veszed észre, hogy elvesztetted a kulcsodat. Kulcs nélkül nem jutsz be a házba, hiszen épp tegnapelőtt szereltettél fel betörésbiztos ajtót valami céggel, akik nagyon reklámozták magukat, és a bemutatójuk, hogy még dinamittal sem lehet berobbantani az ajtót, nagyon meggyőzött. Valahol van egy pótkulcs, de már nem emlékszel rá hol. Meg kell találni, hogy bejuthass a lakásodba.
2.) A lakásod bejárata előtt állsz. Délre tőled az ajtó, északra az utca van. Kelet-nyugati irányba egy kövekből kirakott járda halad a házad előtt.
Délnyugatra egy kis ösvény fut.
3.) 4.) 5.) Az utcákon kóborolsz.
6.) A kerted közepén állsz egy magas fa mellett. Egy fészer van délnyugatra, a kert végében. Délre egy kis ösvény vezet a virágoskertedbe, keletre egy kövezett járda visz a lakásod bejáratához.
7.) A fa tetején vagy. Az ágak között egy szarka fészkére bukkantál.
8.) A házad keleti végében vagy. A fal félig átfestve.
9.) Az utcákon kóborolsz.
10.) A kert végében vagy, egy fészer mellett. Az ajtó beszorult, nem nyílik. Ösvények vezetnek északkeleti, keleti és déli irányba.
11.) A fészerben vagy.
12.) A virágoskertedben vagy. Nyugatra, északra és északkeletre vezetnek ösvények.
13.) A kert déli végében vagy. Északra egy ösvény vezet a fészerhez.
14.) Végre sikerült kinyitni az ajtót. Fáradtan beleroskadsz a kedvenc karosszékedbe, bekapcsolod a tévét, és lassan elalszol. Gratulálok! Sikeresen teljesítetted a küldetésedet! Jó pihenést!:)
Objektumok és elhelyezkedésük:
1.) pénz - 7
2.) automata - 9
3.) sör - 0
4.) festő - 8
5.) létra - 0
6.) ablak - 10
7.) fiók - 11
8.) kulcs - 0
9.) húsevő növény - 12
10.) magas szárú csizma - 13
És néhány fegyver, ha a játékosok harcolni akarnak.
11.) kés - 2
12.) fejsze - 6
Még egy olyan tárgy, amivel harc után az energiánkat növelhetjük meg.
13.) orvosság - 10
És egy olyan tárgy, ami csak azért van, hogy magyarázza egy másik tárgy jelenlétét:
14.) íróasztal (fiókkal!!!) - 11
Azok a tárgyak, amik azért kellenek, mert a helyszín leírása utal a létezésükre:
15.) fa - 6
16.) fészer - 10
17.) fészek - 7
És végül a kijáratot lezáró akadály:
18.) ajtó - 2
Az objektumok megnevezése után kötőjellel elválasztva annak a helyszínnek a számát kell beírni, ahol az adott objektum található. A 0 azt jelenti, hogy ez az objektum egyenlőre sehol sincs. Például a sör majd csak akkor fog megjelenni, ha a játékos bedobja a pénzt az automatába.
Már csak az egyes objektumokhoz tartozó vizsgálatok vannak hátra:
1.) pénz - Ez bizony pénz.
2.) automata - Pénzért cserébe sört ad!
3.) sör - Ez egy üveg sör
4.) festő - Hú, de meleg van! Le kellett jönnöm a létráról, úgy megszédültem. Bármit odaadnék egy kis italért!
5.) létra - Jó magas létra
6.) ablak - Nagyon magasan van
7.) fiók - Az egy fiók.
8.) kulcs - A bejárati ajtó kulcsa
9.) húsevő növény - A kert tele van húsevő növényekkel. Megpróbálnak a bokádba marni!
10.) magas szárú csizma - Védi az ember egész lábszárát
11.) kés - Ez egy jó éles kés
12.) fejsze - Ez aztán a fegyver!
13.) orvosság - Segít, ha megsérülsz
14.) íróasztal - Van egy fiókja!
15.) fa - Ez egy jól megmászható fa!
16.) fészer - Ennek az ajtaja soha nem fog kinyílni. Az ajtó fölött, magasan egy nyitott ablak van.
17.) fészek - Vajon mi van egy szarka fészkében?
18.) ajtó - Az ajtó be van zárva.
Ha a játékos beírja a "vizsgál" parancsot akkor ezek az üzenet fognak megjelenni. A "vizsgál" parancs segíthet rávezetni a játékost a megoldásra.
Térkép elkészítése:
A térkép táblázatban minden egyes sor egy új helyszín. Az első oszlop mutatja a helyszín sorszámát, ami automatikusan növekszik egyesével. Figyeljünk oda rá, hogy a papíron megtervezett világ helyszíneinek sorszámait követve vigyük fel a helyszíneket. A második oszlopba a helyszín leírása kerül. Most tehát előveszem azt a lapot, amire felírtam a helyszínek leírását, és kitöltöm az egyes helyszín szövegét. Ez a következő volt: "Hazatérve, az ajtód előtt veszed észre, hogy elvesztetted a kulcsodat. Kulcs nélkül nem jutsz be a házba, hiszen épp tegnapelőtt szereltettél fel betörésbiztos ajtót valami céggel, akik nagyon reklámozták magukat, és a bemutatójuk, hogy még dinamittal sem lehet berobbantani az ajtót, nagyon meggyőzött. Valahol van egy pótkulcs, de már nem emlékszel rá hol. Meg kell találni, hogy bejuthass a lakásodba. ". Ezzel meg vagyok. A további oszlopok az Észak, Északkelet, kelet, stb. irányokba lévő helyszínek sorszámai kerülnek. Ha az adott irányba nincs szoba, akkor oda 0-át kell írni. Hogy ezt megfelelően ki tudjam tölteni, elő kell vennem azt a lapot, amire a térképet rajzoltam. Az első szoba minden irányához azt írtam, hogy a 2-es szobába vezet, tehát az összes mezőt 2-essel fogom föltölteni. Amikor elkészültem megnyomom a sor végén látható "Rendben" feliratú gombot, és a sor fel is lesz véve a táblázatba. Most jön a kettes helyszín. A 2-es helyszín leírása: "A lakásod bejárata előtt állsz. Délre tőled az ajtó, északra az utca van. Kelet-nyugati irányba egy kövekből kirakott járda halad a házad előtt.
Délnyugatra egy kis ösvény fut. ". A további oszlopok tartalma (ezek észak, északkelet, kelet, délkelet, dél, délnyugat, nyugat, északnyugat, fel, le, ugrik, mászik): 3, 0, 8, 0, 14, 12, 6, 0, 0, 0, 0, 0. Vagyis, ha a térképre nézünk, láthatjuk, hogy a 2-es helyszínről északi irányba haladva a 3-asra jutunk, északkeleti irányba nem lehet menni. Keletre a 8-as helyszín van, délkeletre nem lehet menni, délre a 14-esbe jutunk, délnyugat felé a 12-es van, nyugatra a 6-os, északnyugatra pedig nem lehet menni. A fel, le, ugrik, mászik irányok mindegyike 0, vagyis a 2-es helyszínről nem lehet ezekbe az irányokba haladni. Az oszlopok is ennek megfelelően vannak kitöltve. Érdekes lehet még megnézni a 3-as helyszín kitöltését is. Emlékezzünk vissza, ez az útvesztő egyik helyszíne! Itt vannak olyan irányok, amik visszavezetnek a 3-as helyszínre, hogy a játékost megzavarják. Tehát, sorszám: 3, leírás: "Az utcákon kóborolsz. ". Az irányok pedig: 4, 5, 4, 3, 2, 3, 9, 3, 0, 0, 0, 0. A fel, le, ugrik, mászik irányokba itt sem lehet haladni, de minden egyéb irányba igen. Ha megfigyeljük, a délkeleti irányhoz a 3-as lett rendelve, azaz a 3-as helyszínről délkeletre haladva ismét a 3-as helyszínen találja magát a játékos. A többi helyszínt is hasonlóképpen kell kitölteni.
Szavak összeírása (parancsok, objektumok)
Következő lépés a világ "szótárának" összeállítása. Össze kell írni az összes parancs és az összes objektumom nevét, hogy összeálljon a játékom szókincse.
A táblázatban öt oszlop legyen. Az első egy sorszám. A második a "Megnevezés" oszlop. Ide kerül a parancs, vagy a tárgy, fegyver, akadály neve. A következő a "Parancs" oszlop. Ide vagy 1-es vagy 0-s szám kerülhet. Az 1-es azt jelenti, hogy az adott sor egy parancs, a 0-s azt, hogy objektum. Mivel a parancsok fel vannak töltve, nekem a továbbiakban csak a 0-s beállításra lesz szükségem. A következő a "Jelentés" oszlop. Ide egy számot kell beírni. Ez a szám parancs esetén a parancshoz tartozó kezelő kódja (erről később), objektum esetén ez lesz a tárgy, fegyver vagy akadály azonosító kódja. Nagyon fontos, hogy objektum esetén mind a megnevezésnek, mind a jelentés kódnak egyedinek kell lennie! Nem lehet két azonos megnevezés, vagy két azonos jelentés kód. (Parancs esetén más a helyzet, hiszen ekkor a jelentés valamelyik előre definiált kezelőt azonosítja. A megnevezésnek azonban parancs esetén is egyedinek kell lennie.) Ezzel a kóddal kell majd hivatkoznom az objektumaimra a további táblázatokban. A következő a "Parancskód". Ennek csak parancs esetén van jelentősége (később). Objektum esetén mindig 0 legyen! Most előveszem azt a lapot, amire felírtam az objektumaimat. Emlékezzünk vissza, ez az "Objektumok és elhelyezkedésük" lista. Elkezdem tehát felvinni az első objektumomat Az oszlopok tartalma tehát: Sorszám - 29, Megnevezés- Pénz, Parancs - 0, Jelentés - 1, Parancskód - 0. A következő: Sorszám - 30, Megnevezés - Automata, Parancs - 0, Jelentés -2, Parancskód - 0. A következő: Sorszám - 31, Megnevezés - Sör, Parancs - 0, Jelentés -3, Parancskód - 0. A következő: Sorszám - 32, Megnevezés - Festő, Parancs - 0, Jelentés -4, Parancskód - 0. És így tovább. Néhány szó még a parancsokról. A parancsokat kezelők értelmezik. Ezek a következők: 1-mozgás, 2-felvesz, 3-letesz, 4-vizsgál, 5-használ, 6-nyom/húz, 7-aktív fegyver, 8-támad, 9-harc, 10-leltár, 11-ismét, 12-energia, 13-aktív, 14-világból. Ha például kedvezni szeretnék azoknak, akik kizárólag csak gépelik a parancsokat, akkor felvehetek rövidítéseket. Például az irányokat kibővítem, és felveszek é, ék, k, dk, d, dny, ny, ény, f, l, u, m parancsokat is. Ennek menete: Megnevezés - é, Parancs - 1, Jelentés - 1, Parancskód - 1, Megnevezés - ék, Parancs - 1, Jelentés - 1, Parancskód - 2, Megnevezés - k, Parancs - 1, Jelentés - 1, Parancskód - 3. Megnevezés - u, Parancs - 1, Jelentés - 1, Parancskód - 11, Megnevezés - m, Parancs - 1, Jelentés - 1, Parancskód - 12. Így kibővítve a szavak táblázatot, a játékban a mozgáshoz elég lesz beírni a /é, vagy /m parancsokat a /észak és /mászik helyett.
Objektumok összeírása:
Következő lépés az objektumok tulajdonságainak a meghatározása. E táblázatban 3 oszlop legyen. Az első az "Objektumszám". Ide kerül a beállítani kívánt objektum száma. Második a "Típus". Ez 0, 1 illetve 2 lehet. A 0 azt jelenti, hogy az objektum tárgy. Az objektumok legnagyobb része tárgy lesz.
Tárgy minden, ami nem fegyver és nem akadály. A tárgy lehet felvehető vagy mozdíthatatlan. Semlegesíthet egy akadályt, vagy egy másik tárgyal használva, új tárggyá alakulhat, vagy új tárgyat hozhat létre. Az 1 azt jelenti, hogy az objektum fegyver. A fegyver csak mozdítható lehet! A 2 azt jelenti, hogy az objektum akadály. Az akadály nem lehet felvehető, minden esetben mozdíthatatlannak kell lennie! Az akadályok fogják nehezíteni a játékos útját.
Az utolsó a "Mozdítható" oszlop. Ha 0, akkor az adott objektum nem mozdítható, ha 1, akkor mozdítható. Az Objektumszám mezőbe, a Szavak táblázat Jelentés mezőjébe írt kód kerül. Tehát: Objektumszám - 1, Típus - 0, Mozdítható - 1. Ezzel meghatároztam, hogy az 1-es jelentéskódú szavam, ami a "pénz", tárgy típusú, felvehető objektum. A következő: Objektumszám - 2, Típus - 0, Mozdítható - 0. Ezzel meghatároztam, hogy a 2-es jelentéskódú szavam, ami az "automata", tárgy típusú, nem felvehető objektum. Most egy akadály: Objektumszám - 6, Típus - 2, Mozdítható - 0. Ezzel meghatároztam, hogy a 6-os jelentéskódú szavam, ami az "ablak", akadály típusú, nem felvehető objektum. Végül egy fegyver: Objektumszám - 11, Típus - 3, Mozdítható - 1. Ezzel meghatároztam, hogy a 11-es jelentéskódú szavam, ami a "kés", fegyver típusú, felvehető objektum. Meghatároztam tehát, hogy melyik objektum milyen típusú. Most típus szerint meg kell adnom a speciális jellemzőket.
Menjünk sorban.
Első az objektumszám. Annak az objektumnak (ebben az esetben már csak tárgy típusú lehet) a száma, aminek a speciális tulajdonságait be akarom állítani.
Második a súly. Ez a tárgy súlya. Bármilyen szám lehet, de azért ne essünk túlzásba. A világ létrehozásánál kehet beállítani, hogy mi legyen az a maximális súly, amit egy játékos a hátizsákjában elbír. Most ezt ennek az arányában kell meghatározni. Az én világomnak 100 volt a maximális hátizsákban vihető súly értéke, tehát nem fogok 120-as értéket megadni egy tárgynak, mert akkor azt nem lehet felvenni. Arra is figyelni kell, hogy például a pénz ne legyen nehezebb, mint mondjuk a létra. Az utolsó oszlop a tárgyenergia. Ennek azoknál a tárgyaknál van jelentősége, amik gyógyító erejűek. Ha a játékos megsérül, és felvesz egy olyan tárgyat, aminek van tárgyenergiája, akkor ez az energia hozzáadódik az energiájához. A maximális 100-as energiánál azonban soha nem lesz több a játékos energiája. Tehát, ha a játékos felvesz egy 10-es tárgy-energiájú tárgyat, mondjuk kenyeret, és az energiája 70, akkor a kenyér tárgy-energiája 0 lesz, a játékos energiája viszont 80. De ha a játékos energiája 95, és felveszi a 10-es tárgy-energiájú kenyeret, akkor a kenyér energiája 5 lesz, a játékosé 100. Olyan tárgyakhoz, mint például a létra, nem érdemes tárgy-energiát rendelni. Ez esetben ez az érték 0 legyen. Nézzünk két példát: Objektumszám - 1, Súly - 1, Tárgyenergia -0. (Tehát a pénz súlya 5, energiája nincs.) Objektumszám - 13, Súly - 5, Tárgyenergia -25. (Tehát az orvosság súlya 10, energiája 25.) A tárgyak után jöhet a "Fegyverek szerkesztése és módosítása". Ez nagyon hasonlít a tárgyak speciális tulajdonságainak beállításaira, azzal a különbséggel, hogy itt tárgyenergia helyett erő van. Ez a szám jelenti az adott fegyver erejét. A példának felhozott világomban összesen csak két fegyver van, a 11-es számú kés és a 12-es számú fejsze. Objektumszám - 11, Súly - 10, Erő - 5. Objektumszám - 12, Súly - 25, Erő - 12. Az akadályok speciális tulajdonságainak beállítása a legbonyolultabb:
Itt 11 oszlopot készítünk. Az első itt is az "Objektumszám". Annak az akadály típusú objektumnak a száma, amihez be akarjuk állítani a speciális tulajdonságait. Második a "Leírás" oszlop. Ide egy 255 karakter hosszú szöveg kerülhet. Ez közvetlenül a szoba leírása után fog megjelenni. A "Lezárt irányok" az akadály egyik legfontosabb mezője. Ide egy 12 karakter hosszú számsor kerül, aminek mindegyik karaktere vagy 0, vagy 1. A 12 karakter a 12 irányt jelzi.
Észak, északkelet, kelet, délkelet, dél délnyugat, nyugat, északnyugat, fel, le, ugrik, mászik. A 0 azt jelenti, hogy ez az irány le van zárva, az 1 azt, hogy ez az irány szabad. Tehát egy 001010001010 sor azt jelenti, hogy az akadály a keleti, déli, fel, ugrik irányokat lezárja, a többit szabadon hagyja.
A következő oszlop a "Figyelmeztetés". Ide egy tetszőleges szöveget lehet beírni. Ez a szöveg fog megjelenni akkor, amikor a játékos egy olyan irányba próbál menni, amelyet az akadály lezár.
A következő a "Feltétel".
Ide annak a tárgynak a kódja kerül, amelyik megléte szükséges az akadály legyőzéséhez. A következő 4 mező is abban az esetben hajtódik végre, ha a játékosnál nincs a feltételben meghatározott tárgy. Ezek: parancsonkénti mínusz energia - ennyi energia vonódik le a játékostól, minden kiadott parancs után, x mp.-kénti min. energia - x másodpercenként ennyi energia vonódjon le a játékostól, x mp. értéke - az előző levonás másodpercértékének beállítása, azaz ennyi másodpercenként fog levonódni. az előző mezőben megadott érték, max. parancsok száma - ennyi parancsot adhat ki maximálisan a játékos az akadály mellett, utána meghal. Mikor a játékos belép az adott helyszínre, az már 1 parancsnak számít. Tehát, ha a "max. parancsok száma" mező értéke 1, akkor a belépő játékos (hacsak nincs nála az a tárgy, amivel semlegesíteni tudja az akadályt) azonnal meghal. Ha ennek a mezőnek az értéke 2, akkor a belépő játékos még egy parancsot kiadhat. Például elmenekülhet. Ha nem ezt teszi, meghal. Ha a mező értéke 3, akkor a játékos 2 parancs kiadása után hal meg, és így tovább. A következő oszlop az "Engedély". Ennek értéke vagy 0 vagy 1 lehet. Ha 0, akkor, ha a játékosnál van a feltételben meghatározott tárgy, akkor az akadály megjelenik (kiíródik) de a játékost hagyja szabadon mozogni, illetve nem von le az energiájából. Ha 1, akkor a játékos számára el is tűnik az akadály. Nem lesz kiírva neki. Az utolsó oszlop a "Halálüzenet". Ez az üzenet jelenik meg a játékosnak, ha az akadály megölte őt. A példa világomban 3 akadály van. Az egyik az ablak (kódja a 6-os), a másik a húsevő növény (kódja a 9-es), és a harmadik az ajtó (kódja a 18-as). Az ablakot az 5-ös kódú létra, a húsevő növényt a 10-es számú magas szárú csizma, az ajtót az 1-es számú kulcs semlegesíti. Ablak: Objektumszám - 6, Leírás - Magasan, az ajtó fölött egy nyitott ablak van. Lezárt irányok - 000000001000, Figyelmeztetés - Nagyon magasan van az ablak. Nem éred el. Feltétel - 5, Parancsonkénti min. energia - 0, X mp.-kénti min. energia - 0, X mp. értéke - 0, Max. parancsok száma - 0, Engedély - 0, Halálüzenet -. Húsevő növény: Objektumszám - 9, Leírás - A földön mindenfelé húsevő növények vannak és megpróbálnak a bokádba harapni, Lezárt irányok - 000000000000, Figyelmeztetés -, Feltétel - 10, Parancsonkénti min. energia - 0, X mp. -kénti min. energia - 5, X mp. értéke - 2, Max. parancsok száma - 0, Engedély - 0, Halálüzenet - Megettek a növények! Ajtó: Objektumszám - 18, Leírás - A bejárati ajtó zárva van. Lezárt irányok - 000010000000, Figyelmeztetés - Zárva van, kulcs nélkül nem jutsz be. Feltétel - 1, Parancsonkénti min. energia - 0, X mp. -kénti min. energia - 0, X mp. értéke - 0, Max. parancsok száma - 0, Engedély - 1, Halálüzenet -.
Objektumok elhelyezése a pályán:
Miután minden objektum tulajdonsága be lett állítva, el kell őket helyezni a pályán. Ennek a táblázatnak három oszlopa lesz. Első a "Szobaszám". Ide annak a szobának a száma kerül, ahová az objektumot helyezni akarjuk. A következő az "Objektumszám". Ide annak az objektumnak a száma kerül, amit el akarunk helyezni. Végül pedig a "Darab" jön. Ez a mező mutatja, hogy a beállított szobában, a beállított objektumból hány darab van. Ez akadály esetén 1. Tárgyak fegyverek esetén -1-re érdemes beállítani. Ez azt jelenti, hogy az adott tárgyból vagy fegyverből végtelen számú van a pályán. Tehát lerakom a pályára az objektumaimat: Szobaszám - 7, Objektumszám - 1, Darab - -1, Szobaszám - 9, Objektumszám - 2, Darab - 1, Szobaszám - 8, Objektumszám - 4, Darab - 1. Szobaszám - 2, Objektumszám - 11, Darab - -1. Szobaszám - 10, Objektumszám - 13, Darab - -1. és így tovább.
Vizsgál parancsok leírása:
A táblázatban összesen 2 oszlop van. Az első az "Objektumszám". Ide annak az objektumnak a számát kell írni, amelyikhez szöveget szeretnénk rendelni. A "Szöveg" mezőbe pedig a vizsgálateredményeként megjelenő szöveget kell beírni. Tehát: Objektumszám - 1, Szöveg - Ez bizony pénz. Objektumszám - 2, Szöveg - Pénzért cserébe sört ad!, Objektumszám - 3, Szöveg - Ez egy üveg sör. És így tovább.
Nyom-húz kapcsolatok kitalálása:
Ez már egy kicsit bonyolultabb.
Azokat a tárgyakat kell ide felvenni, amelyikek megnyomása vagy húzása esetén, valamilyen új objektumot hoznak létre vagy tüntetnek el. Nálam ilyen a fiók, amit meghúzva egy kulcsot talál a játékos. Ebben a táblázatban 7 oszlop legyen. Az első az "Objektumszám". Ez annak az objektumnak a száma, amelyikhez a nyom vagy húz parancs tulajdonságait akarjuk rendelni. A következő a "Szöveg". Ez akkor jelenik meg, ha a játékos az adott objektumra a játékos kiadta a nyom vagy húz parancsot. A következő a "Parancs" oszlop. Ide annak a szónak a parancskód mezője kerül, amelyik az objektumra kiadható. Például, ha a nyom, akkor 1, ha a húz akkor 2. Ha új szavakat vettünk fel, akkor azok parancskód mezője. (pl.: lök, teker, stb.) Az "Eltűnik" oszlopba 1 kerül, ha az objektum a kiadott parancs után eltűnik, 0 ha megmarad. Ez csak a hátizsákban lévő objektumra érvényes, a pályán lévőre nem. Például ilyen lehet egy fémcső gombbal, amit ha megnyom a játékos az lézerkarddá alakul. Ebben az esetben a fémcső objektum eltűnik a hátizsákból és egy új objektum, a lézerkard fog megjelenni. Ha egy másik objektumot akarunk eltüntetni (nem azt, amire a kiadott parancs vonatkozik), akkor a következő, a "Törölt objektum" mezőt kell használni. Ide annak az objektumnak a száma kerül, amit el akarunk tüntetni. Például egy kart meghúzva eltűnik egy rács, és így a játékos tovább tud menni. Ebben az esetben nem kell az objektumnak a hátizsákban lennie, mint előbb. A következő két mezőnek akkor van jelentősége, ha a parancs kiadása után, egy új objektum jelenik meg. Például a rács felemelkedésével kiszabadul egy oroszlán. Az első amit meg kell adni, hogy milyen objektum jelenjen meg. Az új objektum számát az "Új objektum" mezőbe kell írni. Az "Új objektum helye" mezőbe 0 vagy 1 kerülhet. Ha 0, akkor a hátizsákba kerül az új objektum, ha 1 akkor a pályára (az aktuális helyszínre). A pályára csak nem mozdítható objektum hozhat létre objektumot. Tehát felvehető objektum csak a hátizsákba hozhat létre új objektumot, azaz felvehető objektum esetén ennek a mezőnek az értéke biztos, hogy 0 kell, hogy legyen. Nekem tehát a fiók az egyetlen olyan objektumom, amelyet a nyom/húz táblázatba be kell jegyezni. Objektumszám - 7, Szöveg - A fiók kicsit akad, de azért kinyílik, és találsz benne egy kulcsot, amit rögtön magadhoz is veszel.
Parancs - 2, Eltűnik - 0, Törölt objektum - 0, Új objektum - 8, Új objektum helye - 0. Tehát a 7-es kódú, azaz a fiók objektumra (Objektumszám - 7) kiadva a nyom/húz parancs 2-es parancskódú változatát, azaz a "húz" parancsot (Parancs - 2), a játékos hátizsákjában (Új objektum helye- 0) megjelenik a 8-as kódú objektum, azaz a kulcs (Új objektum - 8), és kiíródik neki a "Szöveg" mezőben olvasható mondat.
Használt kapcsolatok leírása:
Ez az egyik legfontosabb táblázat.
Ez tartalmazza, hogy melyik objektum, melyik objektummal használva, mit hoz létre. Ennek 6 oszlopa van. Az első kettő (Objektumszám1, Objektumszám2) azt mutatja, hogy melyik két objektum használatáról van szó. Az "Objektumszám1"mezőben lévő objektumot használva az "Objektumszám2" mezőben lévő objektummal a következő 4 mezőben meghatározott dolgok történhetnek. Ha az "Első objektum eltűnik" értéke 0, akkor az "Objektumszám1" mezőben megadott objektum eltűnik, ha 1, akkor megmarad. Ha a "Második objektum eltűnik" értéke 0, akkor az "Objektumszám2" mezőben megadott objektum eltűnik, ha 1, akkor megmarad. Az "Új objektum kódja" mezőbe annak az objektumnak a kódja kerül, amelyik az első két mezőben meghatározott objektumok használatával létrejön. (Ha 0, akkor nincs ilyen.) Az "Új objektum helye" pedig azt mutatja, hogy hol fog létrejönni az új objektum. Ha ennek értéke 0, akkor a hátizsákba kerül, ha 1, akkor a pályára (az aktuális helyszínre). Ilyen nálam a pénz (1-es kódú) + automata (2-es kódú) =sör (3-as kódú) és a sör + festő (4-es kódú) = létra (5-ös kódú) kapcsolat. Objektumszám1 - 1, Objektumszám2 - 2, Első objektum eltűnik - 0, Második objektum eltűnik - 1, Új objektum kódja - 3, Új objektum helye - 1. Objektumszám1 - 3, Objektumszám2 - 4, Első objektum eltűnik - 0, Második objektum eltűnik - 1, Új objektum kódja - 5, Új objektum helye - 0. Tehát a pénzt használva az automatával, sör fog megjelenni a pályán, és a pénz eltűnik. A második esetben, a sört használva a festővel, létra fog megjelenni a hátizsákban, és a sör eltűnik.
Még néhány gondolat:
A példa világban csak két fegyvert helyeztem el. De mivel a világ kicsi, ezért a többjátékos funkcióra teljesen alkalmatlan. Ha nekiállunk egy nagy világ megtervezésének, ne felejtsünk el különböző fegyvereket szétszórni a pályán, különben a kalandozók nem tudnak majd megküzdeni egymással. Ne felejtkezzünk el olyan tárgyak elhelyezéséről se, amik a játékosok energiáját növelhetik sebesülés esetén. Érdekesebbé tehetjük a játékot, ha olyan tárgyakat is elhelyezünk a világunkba, amik semmire sem jók, vagyis a küldetés szempontjából teljesen érdektelenek. Ezzel megzavarhatjuk a kalandozót. Ugyanilyen lehet, ha olyan akadályokat helyezünk el, amiket nem lehet legyőzni. Például beállítunk egy őrt egy épület ajtaja elé. Persze a játékos soha nem fog bejutni az épületbe, de nem is kell neki bejutni. Sőt, igazából nem is csináltunk épületet az őr mögé, az akadály csupán egy nem létező utat zár le. De ezzel elérhetjük, hogy a kalandozó törje a fejét a nem létező megoldáson. Figyelni kell arra is, hogy semmilyen irányt nem szabad eltitkolni. Hiszen a játékos csak a mi leírásunkból ismeri meg a világot, amelyben járkál. De nem is kell feltétlenül mindig egyértelműen rámutatni a lehetséges irányokra. Ilyen például a fa az előbb megírt világban. Az van a szövegben, hogy "Egy magas fa áll a kert közepén. ". Nem írtam, hogy felfele is lehet menni, viszont az, hogy a fa "magas", eszébe juttatja a játékosnak, hogy akkor bizony meg kéne mászni azt a fát.
Talán mégsem olyan egyszerű (lett volna) ezt A JÁTÉKOT elkészíteni??? Gondolkozzatok el rajta.
Üdv. Játékgyáros

This work is licensed under a
Creative Commons License.