Nyitrai László

TVC Biblia
Videoton TV-Computer parancsok bemutatása,
és alkalmazásuk gyakorlati példákon keresztül

2004

A mű elektronikus változatára a Creative Commons - Attribution-NonCommercial (Jelöld meg!-Ne add el!) licenc feltételei érvényesek: a művet a felhasználó másolhatja, többszörözheti, átdolgozhatja, amennyiben feltünteti a szerzõ nevét és a mű címét, de kereskedelmi célra nem használhatja fel.
A műre vonatkozó felhasználási feltételek részletes szövege az alábbi címen tekinthető meg: http://creativecommons.org/licenses/by-nc/2.5/hu/

TARTALOM

Basic tematika
PRINT parancs
Szöveg íratása PRINT paranccsal
Értékadás LET paranccsal
Értékadás szöveges változónak
Szám szöveges változóban
Műveletek változókkal
A változók azonosítói
Tárolt utasítások
A LIST parancs
PRINT utasítás ":PRINT"      a , és a ; hatása
A GRAPHICS és CLS
A TAB utasítás
PRINT AT
A PLOT utasítás
Szakasz rajzolása
PAINT utasítás
TVC színkezelés 1
TVC színkezelés 2
Számláló ciklus
Egész osztás maradékát keressük
Adott óraszámot váltsuk át napra és órára
Bináris átváltás
Paraméteres ciklus
Szaggatott vonal
Mozgó pont
Spirál belülről, spirál kívűlről
Előltesztelő ciklus
Négyzettáblázat
FOR-TO-NEXT
RND és RANDOMIZE
Törött vonal
FOR, TO, STEP-NEXT
Nyomtassunk csillagokat
Paraméteres FOR-NEXT ciklus
Ciklusok egymásba ágyazása
Indexes változók
Vektor
Csillagverseny
Több index (mátrix)
Szövegtömbök
Sorsolás
Lottoszámok FOR-ciklussal
Minimum, maximum	GOSUB, RETURN
Adatbevitel és ellenőrzés szubrutin
Ciklusok egymásba ágyazása
Szöveg úsztatása 1
Szöveg úsztatása 2
Osztópárok
Primszámok keresése 1
PRIMSZÁMOK KERESÉSE 2
Számolás fejben
indexes változók
Sorsolási statisztika
Szöveg úsztatása
Menü
DATA és READ utasítások 1
DATA és READ utasítások 2
DATA READ és RESTORE utasítások
Beolvasás idegen típusba
Dobókocka
DATA végjellel
Címletező
Címletező összesítéssel
Logikai érték 1
Logikai érték 2
Logikai változó IF utasításban
A logikai érték tárolása
Logikai 'vagy' művelet
Logikai 'és' művelet
Logikai 'not' művelet
Sorsolás
Lottó sorsolás
Azonos maradék
Pont a képernyőre
Szövegfüggvények: LEN
Szövegfüggvények: szeletelés 1
Szövegfüggvények: szeletelés 2
Szövegfüggvények: szeletelés 3
Szövegfüggvények: szeletelés 4

Függelék
Szoliter játékprogram lista
Maya játékprogram lista
Othelló játékprogram lista
Mastermind játékprogram lista	

BASIC tematika
  10 GRAPHICS4
  20 A$="---------------------"
  30 PRINTAT7,7:"-";A$;"-"
  40 PRINTAT8,7:"‹                  ‹"
  50 PRINTAT9,7:"‹  BASIC TEMATIKA  ‹"
  60 PRINTAT10,7:"‹                  ‹"
  70 PRINTAT11,7:"-";A$;"-"
  90 GOSUB400
 100 GRAPHICS4
 110 PRINT"      KEDVES FELHASZNÁLÓ":PRINTAT5,0
 120 PRINT"   Ez a programcsomag kezdők    számára készült azzal a céllal, hogy a TVC BASIC alapjait ismertesse."
 130 PRINT"   A programok módszertani céllal készültek, ezért a lényeges részek futás közben listázódnak."
 140 PRINT"   Futás közben a képernyő minden fontos tudnivalót tartalmaz, ami a használathoz szükséges."
 150 GOSUB400
 200 GRAPHICS4
 210 PRINTAT5,0
 220 PRINT"   Hiba esetén, próbáljuk ismét elindítani a programot!"
 230 PRINT"   Egyébként a programcsomag    használata különösebb előismereteket nem igényel."
 240 PRINTAT14,0:"":PRINT"           SOK SIKERT,"
 250 PRINT"     A TANULÁSHOZ Jó MUNKÁT"
 260 PRINT"            KÍVÁNUNK!"
 270 PRINT:END
 400 PRINTAT22,5:"Nyomj meg egy billentyűt!";:GET:RETURN
PRINT parancs
  10 GRAPHICS4
  20 PRINT"        A PRINT PARANCS"
  30 PRINT"print 3+5              <RETURN>":PRINT3+5:PRINT"ok":PRINT
  40 PRINT"print 3-5              <RETURN>":PRINT3-5:PRINT"ok":PRINT
  50 PRINT"print 3+5*2            <RETURN>":PRINT3+5*2:PRINT"ok":PRINT
  60 PRINT"print (3+5)*2          <RETURN>":PRINT(3+5)*2:PRINT"ok":PRINT
  70 PRINT"print (3+5)*(3.5-1.2)/4<RETURN>
  80 PRINT(3+5)*(3.5-1.2)/4:PRINT"ok":PRINT
  90 PRINT"         Próbáld ki TE is!":END
Szöveg íratása PRINT paranccsal
  10 GRAPHICS4
  20 PRINT" SZÖVEG ÍRATÁSA PRINT PARANCCSAL":PRINT
  30 PRINT"print";CHR$(34);"szia";CHR$(34);"            <RETURN>"
  40 PRINT"szia":PRINT"ok":PRINT
  50 PRINT"print";CHR$(34);"s z i a";CHR$(34);"         <RETURN>"
  60 PRINT"s z i a":PRINT"ok":PRINT
  70 PRINT"   Az idézőjelbe tett szöveg    változtatás nélkül jelenik meg."
  80 PRINT"   Az utasítást ezúttal is      PARANCS üzemmódban használtuk."
  90 PRINT:PRINT"  
Értékadás LET paranccsal
  10 GRAPHICS4       
  20 PRINT"    ÉRTÉKADÁS LET PARANCCSAL":PRINT
  30 PRINT"LET a=3             <RETURN>":A=3:PRINT"ok":PRINT
  40 PRINT"   Ezzel létrehoztuk a szám tárolására alkalmas 'a' nevű változót, és abba értékként a 3-as számot tettük.":PRINT
  50 PRINT"print a             <RETURN>":PRINTA:PRINT"ok":PRINT
  60 PRINT"   Ezzel a paranccsal kiírathatjuk az 'a' nevű változó tartalmát."
  70 PRINT"print ";CHR$(34);"a";CHR$(34);"           <RETURN>":PRINT"a":PRINT"ok"
  80 PRINT"   Ezzel az 'a' karaktert kiírattuk”
   
Értékadás szöveges változónak
  10 GRAPHICS4
  20 PRINT" ÉRTÉKADÁS SZÖVEGES VÁLTOZÓNAK":PRINT:PRINT
  30 PRINT"let a$=";CHR$(34);"TV COMPUTER";CHR$(34);"   <RETURN>":A$="TV COMPUTER":PRINT"ok":PRINT
  40 PRINT"   A $ jelre végződő név szöveg tárolására alkalmas változót azonosít."
  50 PRINT"   A let szó mindig elhagyható.":PRINT
  60 PRINT"let b$=";CHR$(34);"TVC";CHR$(34);" és b$=";CHR$(34);"TVC";CHR$(34);" azonosak."
  70 PRINT:PRINT"print a$               <RETURN>":PRINTA$:PRINT"ok":PRINT
  80 PRINT"   Ezzel a paranccsal kinyomtattuk az a$ tartalmát.":PRINT  
   
Szám szöveges változóban
  10 GRAPHICS4       
  20 PRINT"    SZÁM SZÖVEGES VÁLTOZÓBAN"
  30 PRINT:PRINT"   Szöveges változóba számjegyek is elhelyezhetők."
  40 PRINT"   Ez esetben számjegyekből állószövegnek kell tekintenünk."
  50 A$="1234":B$="5678"
  60 PRINT:PRINT"a$=";CHR$(34);"1234";CHR$(34);":b$=";CHR$(34);"5678";CHR$(34):PRINT"ok"
  70 A=1234:B=5678
  80 PRINT"A=1234:B=5678":PRINT"ok"
  90 PRINT:PRINT"   Az A és A$, B és B$ mind különböző változók. Az A+B összeg kiszámítható, az A$+B$ azonban  nem."
 100 PRINT:PRINT"   A szövegváltozóval végezhető egyetlen művelet jele a '&'.":PRINT
 110 PRINT"print a+b,a$&b$":PRINTA+B,A$&B$
Műveletek változókkal
  10 GRAPHICS4
  20 PRINT"      MŰVELETEK VÁLTOZÓKKAL"
  30 PRINT:PRINT
  40 PRINT,"ÖSSZEADÁS","+"
  50 PRINT,"KIVONÁS  ","-"
  60 PRINT,"SZORZÁS  ","*"
  70 PRINT,"OSZTÁS   ","/"
  80 PRINT,"HATVÁNYOZÁS","^"
  90 PRINT:PRINT"a=2:b=3":PRINT"ok":A=2:B=3
 100 PRINT"print a+b,a-b"
 110 PRINTA+B,A-B:PRINT"ok"
 120 PRINT"print a*b,a/b"
 130 PRINTA*B,A/B:PRINT"ok"
 140 PRINT"print a^b":PRINTA^B:PRINT"ok"
 150 PRINT"  Próbáld ki más értékekkel is!"
A változók azonosítói
  10 GRAPHICS4
  20 PRINT"      A VÁLTOZÓK AZONOSÍTÓI":PRINT
  30 PRINT"   A változók neve vagy azonosítója az a betű karakter, amelyet az értékadó utasítás során megadunk."
  40 PRINT"   A TVC megenged több karakteres azonosítókat.":PRINT
  50 PRINT"szam=6":PRINT"ok":SZAM=6
  60 PRINT"print szam":PRINTSZAM:PRINT"ok"
  70 PRINT"   Az első karakter mindig betű, a többi lehet szám is."
  80 PRINT"   Az azonositó neveket kis és  nagybetűkkel egyaránt írhatjuk, de a szam és SZAM azonos változó."
  90 PRINT"print szam,SZAM":PRINTSZAM,SZAM
Tárolt utasítások
  10 GRAPHICS4
  20 PRINT"       TÁROLT UTASÍTÁSOK"
  30 PRINT
  40 PRINT"10 print 3+5           <RETURN>";CHR$(24)
  50 PRINT"   Ha számmal kezdjük a beírást a gép azt sorszámnak tekinti és az utasítást tárolja a memóriában." 
  60 PRINT"   A tárolt utasítás a RUN parancsra hajtódik végre.":PRINT
  70 PRINT"run                    <RETURN>":PRINT 3+5:PRINT"ok"
  72 PRINTAT22,5:"Nyomj meg egy billentyűt!":GET
  80 PRINTAT12,0:"Ugyanez másképp:                 "
  90 PRINT"10 a=3:b=5             <RETURN>"
 100 PRINT"20 print a+b           <RETURN>":A=3:B=5
 110 PRINT"run                    <RETURN>":PRINTA+B:PRINT"ok"
 120 PRINT"   A tárolt utasításokat programnak nevezzük. A végrehajtás  sorrendjét a sorszámok határozzák meg."
A LIST parancs
  10 GRAPHICS4
  20 PRINT"          A LIST PARANCS"
  30 PRINT:PRINT"   Ezt a parancsot használjuk a program szövegének képernyőre íratásához.":PRINT
  40 PRINT"LIST     teljes program listája"
  50 PRINT"LIST20    a 20-as sor listázása"
  60 PRINT"LIST20-   a 20-as sortól listáz"
  70 PRINT"LIST-50   az 50-es sorig listáz"
  80 PRINT"LIST20-50 a 20-astól az 50-es             sorig listáz":PRINT
  90 PRINT"   Hosszú programok esetén a    listázás <ctrl-esc>-pel megállítható."
 100 PRINT"   <ctrl-p> a listázást felfüggeszti, az bármely billentyű lenyomására folytatódik."
 110 PRINTAT22,10:"Próbáld ki!"
PRINT utasítás ":PRINT"      a , és a ; hatása
  10 GRAPHICS4
  20 PRINT"         PRINT UTASÍTÁS ":PRINT"      a , és a ; hatása (2)":PRINT:PRINT
  30 SETINK2:PRINT"0123456789012345678901234567890":SETINK1
 100 PRINT"a","b","c",   
 110 PRINT"d"
 120 LIST100-110:PRINT
 130 SETINK2:PRINT"0123456789012345678901234567890":SETINK1
 200 PRINT"a";"b","c";"d"
 210 LIST200:PRINT
 230 SETINK2:PRINT"0123456789012345678901234567890":SETINK1
 300 PRINT1,12;"a",123,"b";"c";-99               
 310 LIST300
A GRAPHICS és CLS
  10 GRAPHICS4
  20 PRINT"        A GRAPHICS ÉS CLS":PRINT
  30 PRINT"   A képernyő állapotának vezérlését a GRAPHICS utasítás végzi.Utána egy paraméter áll, amely  három értéket vehet föl:                 2  4 vagy 16.
  40 PRINT"   A fenti számok egyben a használható színek számát is jelentik."
  50 PRINT"   Az egyes GRAPHICS üzemmódok  más és más betűnagyságot jelentenek."
  60 PRINT"   A CLS csak a képernyőt törli, a GRAPHICS törléssel együtt üzemmódot is beállít."
  70 PRINT:LIST100-120:PRINT"    Nyomj meg egy billentyűt!":GET
 100 GRAPHICS2
 110 PRINT" A CLS képernyőtörlést jelent."
 120 PRINT"   Nyomj meg egy billentyűt!":GET
 130 GRAPHICS4
 140 PRINT:LIST200-220:PRINT"    Nyomj meg egy billentyűt!":GET
 200 GRAPHICS4
 210 PRINT" A CLS képernyőtörlést jelent."
 220 PRINT"   Nyomj meg egy billentyűt!":GET
 230 GRAPHICS4
 240 PRINT:LIST300-320:PRINT"    Nyomj meg egy billentyűt!":GET
 300 GRAPHICS16
 310 PRINT" A CLS képernyőtörlést jelent."
 320 PRINT"   Nyomj meg egy billentyűt!":GET
 330 GRAPHICS4
 340 PRINT"   A CLS utasítás csak törli a  képernyőt, nem vált formátumot."
 350 PRINT:LIST400-410
 360 PRINT:PRINT"   Nyomj meg egy billentyűt!":GET
 400 CLS
 410 PRINT:PRINT"   A formátum megmaradt, a képernyő törlődött."
A TAB utasítás
  10 GRAPHICS4 
  20 PRINT"          A TAB UTASÍTÁS":PRINT:PRINT"   Az adott sorban a nyomtatás  kezdetének helyét határozza meg."
  30 PRINT"   A képernyőn visszafele is működik (B<A), vagyis az adott    sorban abszolút poziciót jelent."
  40 PRINT"   A pozíció GRAPHICS 4 üzemmódban legfeljebb 32 lehet. 32 esetén soremelés is bekövetkezik."
  90 PRINT:LIST100-130:PRINT
 100 INPUTPROMPT"tab(a)?":A
 110 INPUTPROMPT"tab(b)?":B
 120 PRINT"ŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤ"
 130 PRINT TAB(A)"*";TAB(B)"*"
 140 PRINT"12345678901234567890123456789012"
 150 PRINT"   Nyomj meg egy billentyűt!":GET
 160 GRAPHICS2 
 170 PRINT"                       A TAB UTASÍTÁS"
 180 PRINT
 190 PRINT"   A pozíció GRAPHICS 2 üzemmódban legfeljebb 64 lehet. 64 esetén soremelés is bekövetkezik."
 200 PRINT:LIST300-330:PRINT
 300 INPUTPROMPT"tab(a)?":A
 310 INPUTPROMPT"tab(b)?":B
 320 PRINT"ŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤŤ"
 330 PRINT TAB(A)"*";TAB(B)"*"
 340 PRINT"1234567890123456789012345678901234567890123456789012345678901234"
 350 PRINT"                     Nyomj meg egy billentyűt!":GET
 360 GRAPHICS16
 370 PRINT"A TAB UTASÍTÁS"
 380 PRINT
 390 PRINT"   A pozíció    GRAPHICS 16 üzemmódban legfeljebb  16 lehet. 16 esetén  soremelés is bekövetkezik."
 400 PRINT"   Ennek bemutatása a kevés    hely miatt érdektelen."
 410 PRINT"Nyomj meg egy   billentyűt!":GET
 420 GRAPHICS4
PRINT AT
  10 GRAPHICS4
  20 PRINT"           PRINT AT ..":PRINT
  30 PRINT"   A PRINT AT utasítással a szöveget pozicionáljuk a képernyőn.
  40 PRINT"   A háromféle graphics üzemmódban különböző lehet a nyomtatás kezdőkoordinátája."
  80 PRINT:PRINT"   Nézzünk néhány példát:"
  90 PRINTAT20,5:"Nyomj meg egy billentyűt!";:GET
 100 GRAPHICS4
 110 PRINTAT20,5:"a"
 120 PRINTAT20,10:"b"
 130 PRINTAT15,10:"c"
 140 PRINTAT15,15:"d"
 150 PRINTAT20,32:"E"
 160 PRINTAT23,30:"F"
 170 PRINTAT1,1:"":LIST100-160
 180 SETINK2
 190 PRINTAT9,1:"*23456789012345678901234567890123"
 200 FORJ=0 TO 1
 210 FORI=0TO9:PRINTATJ*10+I,1:CHR$(48+I);:NEXT
 220 NEXT
 230 FORI=0TO4:PRINTAT20+I,1:CHR$(48+I);:NEXT
 240 PRINTAT9,1:"*"
 250 PRINTAT24,6:"Nyomj meg egy billentyűt!";
 260 SETINK1:GET
 300 GRAPHICS2
 310 PRINTAT20,5:"a"
 320 PRINTAT20,10:"b"
 330 PRINTAT15,10:"c"
 340 PRINTAT15,15:"d"
 350 PRINTAT20,64:"E"
 360 PRINTAT23,60:"F"
 370 PRINTAT1,1:"":LIST300-360
 390 PRINTAT9,1:"1234567890123456789012345678901234567890123456789012345678901234"
 400 FORJ=0 TO 1
 410 FORI=0TO9:PRINTATJ*10+I,1:CHR$(48+I);:NEXT
 420 NEXT
 430 FORI=0TO4:PRINTAT20+I,1:CHR$(48+I);:NEXT
 440 PRINTAT9,1:"*"
 450 PRINTAT24,22:"Nyomj meg egy billentyűt!";
 460 GET
 500 GRAPHICS16:PRINT
 510 PRINT"Az utasítás hatását graphics16 üzemmódban a betűnagyság miatt nem célszerű bemutatni."
 520 PRINT:PRINT"Nyomj meg egy   billentyűt!":GET
 530 GRAPHICS4
A PLOT utasítás
  10 GRAPHICS4
  20 PRINT"        A PLOT UTASÍTÁS"
  30 PRINT:PRINT"   A PLOT utasítás segítségével egy pontot jeleníthetünk meg a  képernyőn.
  40 PRINT:LIST100
 100 PLOT 500,500 :REM középen
 110 PRINT AT 19,0:"   A plot után írt első koordináta 0-1023, a második koordináta 0-959 értéket vehet fel."
 120 PRINT AT 23,5:"Nyomj meg egy billentyűt!":GET
 130 GRAPHICS4
 132 LIST130:LIST140-160:LIST170
 140 PRINT"   Próbáld ki a koordinátákat!"
 150 INPUT PROMPT "X=":X
 160 INPUT PROMPT "Y=":Y
 162 GOTO180
 170 PLOT X,Y
 180 GRAPHICS4
 190 IF X<0 OR X>1023 THEN 300
 200 IF Y<0 OR Y>959 THEN 300
 220 FORI=1TO10:SETINK1:PLOTX,Y:GOSUB1000:SETINK0:PLOTX,Y:GOSUB1000:NEXT:SETINK1:PLOTX,Y
 230 FORI=1TO200:NEXT
 240 PRINT AT 23,5:"Nyomj meg egy billentyűt!"
 250 PRINTAT22,0:"   Csak <ctrl-esc>-pel áll le!":GET
 260 GOTO130
 300 PRINTAT10,5:"A koordináták nem mutatnak a képernyőre!":GOTO240
1000 FORJ=0TO150:NEXT:RETURN
Szakasz rajzolása
  10 GRAPHICS4
  20 PRINT"       SZAKASZ RAJZOLÁSA"
  30 PRINT:PRINT"   Ha a plot utasítás után két  koordinátapárt ; (pontosvessző)-vel választunk el a két pontot  összeköti."
  40 PRINT:LIST100 
 100 PLOT 500,500;700,300
 110 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 120 PRINTAT2,0:"":FORI=1TO18:PRINT CHR$(25);:NEXT
 130 PRINT"   Általában a koordinátapárok  elé, mögé, vagy közé tett ; a   toll letételét a , annak felemelését jelenti."
 140 PRINT:LIST200
 200 PLOT 500,500;700,300,400,350
 210 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 220 PRINTAT2,0:"":FORI=1TO18:PRINT CHR$(25);:NEXT
 230 PRINT"   Még egy példa:"
 240 PRINT:LIST300-310
 300 PLOT 500,500;700,300,400,350
 310 PLOT100,100;,200,500;300,400
PAINT utasítás
  10 GRAPHICS4
  20 PRINT"           PAINT UTASÍTÁS":PRINT
  30 PRINT"   A megrajzolt zárt alakzatokat be is festhetjük."
  40 PRINT:LIST100-
 100 PLOT ;10,10;200,500;700,250;10,10
 110 PLOT 20,20,PAINT
TVC színkezelés 1
  10 GRAPHICS4
  20 PRINT"        TVC SZINKEZELÉS 1"
  30 PRINT:PRINT"   A színek megválasztása a     SET INK utasítással történik."
  40 PRINT"   A lehetséges 16 színből alapbeállításban 4-et használhatunk."
  50 PRINT:LIST100-:PRINTAT23,2:"Csak <ctrl-esc>-pel áll le!":PRINTAT17,0:"";
 100 INPUT PROMPT"Kérek egy számot 0-tól 3-ig! ":A
 110 SET INK 1 : PRINT,"    *";
 120 SET INK A : PRINT"szín";
 130 SET INK 1 : PRINT"*"
 140 PRINT AT 17,0:"";:GOTO100
TVC színkezelés 2
  10 GRAPHICS4
  20 PRINT"        TVC SZINKEZELÉS 2"
  30 PRINT:PRINT"   A szinek alapbeállításának   megváltoztatásához a SET PALETTEutasítást kell használni."
  40 PRINT"   Működését 4-színü üzemmódban mutatjuk meg. Ekkor 4 palettakódot adunk meg."
  50 PRINT"   A kódokat a gépkönyvből vettük."
  60 PRINT:LIST100-110:PRINT"run":PRINT"ok"
 100 SET PALETTE 0,84,65,85
 110 REM fekete,sárga,kék,fehér
 120 PRINT:PRINT"   Ezzel a színeket átállítottuk."
 130 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 140 PRINTAT2,0:"":FORI=1TO17:PRINTCHR$(25);:NEXT
 150 PRINT"   A 'papír' színbeállítását a  négy szín közül kiválasztjuk:":PRINT:PRINT :LIST100-110:LIST200-210:PRINT:PRINT
 160 PRINT"   A papír színének beállítésa  után cls utasítást kell kiadni, csak Így érvényes minden sorraa megjelölt papírszín."
 170 PRINT"   A program egy billentyű lenyomása után fut le!"
 180 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 200 SET PAPER 3 : REM a 3. megjelölt szín a '85 fehér'
 210 CLS
 215 SETINK0
 220 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 230 PRINTAT1,0:"   Ezután természetesen a       SET INK 3 jelenti radírozást, ésa 0,1,2 sorszámok a rajzolást,  vagy nyomtatást a megfelelő színekkel."
 240 PRINT:LIST300-320:PRINT:PRINT:PRINT
 300 SETINK0 : PRINT"0- fekete":PLOT500,350;,
 310 SETINK1 : PRINT"20- sárga":PLOT500,300;,
 320 SETINK2 : PRINT"65- kék       ":PLOT500,250;,
 350 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 360 CLS:PRINT:PRINT"   A palettakódok átírása a     használt színeket átértelmezi."
 370 PRINT:LIST400-420
 400 SET PALETTE 0,84,65,85
 410 SET INK 1
 420 PLOT,10,10;500,450;600,400;10,10,
 422 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET:PRINT AT 8,0
 425 SET INK 2 : LIST430
 430 SET INK 0 : PLOT500,400,PAINT
 432 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET:PRINT AT 10,0
 435 SET INK 2 : LIST440
 440 SET PALETTE 85,84,65,85
 450 SETINK2 : PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 460 GRAPHICS4
Számláló ciklus
  10 GRAPHICS4
  20 PRINT"        SZÁMLÁLÓ CIKLUS":PRINT:PRINT
  30 LIST 100-130:PRINT:PRINT
  40 PRINT"   A GOTO utasítással egy végtelen hurkot hoztunk létre."
  50 PRINT"   A program <ctrl-esc>-re megáll.":PRINT
  60 PRINT:PRINT"    NYOMJ MEG EGY BILLENTYŰT!"
  70 GET  
 100 K=1
 110 PRINT K
 120 K=K+1
 130 GOTO 110
Egész osztás maradékát keressük
  10 GRAPHICS4
  20 PRINT"EGÉSZ OSZTÁS MARADÉKÁT KERESSÜK!"
  30 PRINTAT2,6:"OLDJUK MEG KIVONÁSSAL!"     
  40 LIST100-:PRINT:PRINT"   A 130-as sor egy ciklus, ami akkor ér véget ha 'A' értéke 'B'értéke alá csökken, feltéve,    hogy 'B' értéke nem nulla, (vagynegatív).
  90 PRINT:PRINT"Két természetes számot kérek:" 
 100 INPUT PROMPT"Az osztandó:":A   
 110 INPUT PROMPT"Az osztó:":B   
 120 IFB=0THENPRINT"0-val osztani?":GOTO90
 130 IF A>=B THENA=A-B:GOTO130
 140 PRINT"   A maradék:";A
Adott óraszámot váltsuk át napra és órára
  10 GRAPHICS4
  20 PRINT"   ADOTT ÓRASZÁMOT VÁLTSUK ÁT         NAPRA ÉS ÓRÁRA!"
  30 PRINT:LIST100-120:PRINT
 100 INPUT PROMPT" óraszám:":T
 110 IF T>24 THEN T=T-24:N=N+1:GOTO110
 120 PRINTN;"nap",T;"óra"
 130 PRINT:PRINT"   Fejlesszük tovább úgy, hogy  a HETEKET is írja ki!"
 140 PRINT:LIST200-220:LIST230:PRINT"run200":RUN200
 200 INPUT PROMPT" óraszám:":T
 210 IF T>24 THEN T=T-24:N=N+1:GOTO210
 220 IF N>7 THEN N=N-7:H=H+1:GOTO220
 225 PRINTAT1,0:"":FORK=1TO7:PRINTCHR$(25);:NEXT:PRINTAT16,0:""
 230 PRINTH;"hét",N;"nap",T;"óra"
 240 PRINT:PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 242 PRINTAT1,0:"":FORK=1TO17:PRINTCHR$(25);:NEXT:PRINT
 250 PRINT"   Az eddigi programok nagy számok esetén lassan futnak."
 270 PRINT"   Nézzünk hatékonyabb megoldást."
 280 PRINT:LIST300-330:PRINT
 300 INPUT PROMPT" óraszám:":T
 310 N=INT(T/24):T=T-N*24
 320 H=INT(N/7):N=N-H*7
 330 PRINTH;"hét",N;"nap",T;"óra"
Bináris átváltás
  10 GRAPHICS4
  20 PRINT"       BINÁRIS ÁTVÁLTÁS":PRINT
  30 PRINT"   Egy 0 és 255 közötti számot  kinyomtatunk kettes számrendszerben.":PRINT
  60 PRINT:LIST100:LIST110-140:PRINT:PRINT
 100 INPUT PROMPT "Kérek egy egész számot! ":A:N=20
 102 IF A<0 THEN CLS:PRINTAT10,10:"TÚL KICSI!":GOSUB1000:RUN
 103 IF A>255 THEN CLS:PRINTAT10,10:"TÚL NAGY!":GOSUB1000:RUN
 110 IF INT(A)<>A THEN100
 120 B=INT(A/2) : PRINT AT 21,N:A-2*B; : A=B :N=N-2
 130 IF B<>0 THEN 120        
 140 PRINT:END
1000 FORI=1TO800:NEXT:RETURN
Paraméteres ciklus
  10 GRAPHICS4
  20 PRINT"        PARAMÉTERES CIKLUS"
  30 PRINTAT3,4:"A ciklus paramétereit (kezdőérték, végérték, lépésköz) változóval, vagy kifejezéssel is   megadhatjuk."
  50 PRINT:LIST100-140:PRINT"run"
 100 K=1 : V=25 : L=2
 110 PRINT K; : K=K+L
 120 IF K>V THEN 140  
 130 GOTO110
 140 PRINT : REM ciklus vége
 150 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 160 PRINTAT2,0:"":FORI=1TO20:PRINTCHR$(25);:NEXT:PRINT"   Az adatokat INPUT utasítássalis kérhetjük."
 170 PRINT"   Negatív vagy nulla lépésköz  végtelen ciklust eredményez! Ez csak <ctrl-esc>-pel áll le!"
 180 PRINT:LIST200-220:PRINT:LIST230-260:PRINT"run200"
 200 INPUTPROMPT"kezdőérték?":K
 210 INPUTPROMPT"végérték?..":V
 220 INPUTPROMPT"lépésköz?..":L
 230 PRINT K; : K=K+L
 240 IF K>V THEN 260  
 250 GOTO 230
 260 PRINT : REM ciklus vége
Szaggatott vonal
  10 GRAPHICS4
  20 PRINT"         SZAGGATOTT VONAL":PRINT
  30 PRINT:PRINT"   Vizszintesen húzunk egy szaggatott vonalat."
  40 PRINT"   A lépésköztől függ, hogy milyen távol kerülnek a vonal     pontjai."
  50 PRINT"   Ha a plot koordináták nem a  képernyőre mutatnak, hibajelzéstkapunk."
  60 PRINT"   K=1 V=1000 L=20 célszerű."
  70 PRINT:LIST100-140
 100 INPUT PROMPT"Kezdőpont:":K
 110 INPUT PROMPT"Végpont:  ":V
 120 INPUT PROMPT"Lépésköz: ":L
 130 PLOT K,100 : K=K+L
 140 IF K<V THEN 130
 150 PRINT
Mozgó pont
  10 GRAPHICS4
  20 PRINT"           MOZGÓ PONT":PRINT
  30 PRINT"   Vízszintesen mozgatunk egy   pontot."
  40 PRINT"   A lépésköztől függ, hogy milyen sebességgel fog mozogni és milyen irányban."
  50 PRINT"   Ha a plot koordináták nem a  képernyőre mutatnak, hibajelzéstkapunk."
  60 PRINT:LIST100-130:PRINT
  70 DIMA$*40
 100 REM adatbevitel
 110 INPUT PROMPT"Kezdőpont:":K
 120 INPUT PROMPT"Végpont:  ":V
 130 INPUT PROMPT"Lépésköz: ":L
 140 PRINT AT 11,0:"":FORI=1TO4:PRINTCHR$(25);:NEXT:LIST200-250
 150 A$="_______________________________"
 160 PRINT AT 20,0:A$ : PRINT AT 21,0:A$
 200 REM pont mozgatás
 210 FOR K=K TO V STEP L
 220 SETINK1:PLOT K,150
 230 FOR J=1TO50 : NEXT
 240 SETINK0:PLOT K,150
 250 NEXT : SET INK 1:PLOTK,150
Spirál belülről, spirál kívűlről
  10 GRAPHICS4
  20 PRINT"          SPIRÁL BELÜLRŐL"
  30 PRINT:PRINT"   Rajzolunk egy spirált, amely a képernyő közepéről indul."
  40 PRINT:LIST100-170:LIST180:PRINT
  50 PRINT"   A rajzolás egy billentyű lenyomásra megváltozik."
  60 PRINTAT23,5:"Nyomj meg egy billentyűt!";:GET
 100 REM spirál bentről ki
 110 GRAPHICS4
 120 X=500:Y=500:D=10:N=1
 130 PLOT X,Y;
 140 X=X+N*D:PLOTX,Y;
 150 Y=Y+N*D:PLOTX,Y;:N=1.1*N
 160 X=X-N*D:PLOTX,Y;
 170 Y=Y-N*D:PLOTX,Y;:N=1.1*N
 172 A$=INKEY$:IFA$<>""THEN200
 180 IFN<90THEN140:ELSE110
 200 GRAPHICS4
 210 PRINT"          SPIRÁL KÍVŰLRŐL"
 220 PRINT:LIST300-370:LIST380
 230 PRINT"   A rajzolás egy billentyű lenyomásra befejeződik."
 240 PRINTAT23,5:"Nyomj meg egy billentyűt!";:GET
 300 REM spirál kintről be
 310 GRAPHICS4
 320 X=0:Y=0:D=900:N=1
 330 PLOT X,Y;
 340 X=X+N*D:PLOTX,Y;
 350 Y=Y+N*D:PLOTX,Y;:N=0.9*N
 360 X=X-N*D:PLOTX,Y;
 370 Y=Y-N*D:PLOTX,Y;:N=0.9*N
 372 A$=INKEY$:IFA$<>""THEN500
 380 IFN>.009THEN340:ELSE310
 500 REM
Előltesztelő ciklus
  10 GRAPHICS4
  20 PRINT"      ELŐLTESZTELŐ CIKLUS":PRINT
  30 PRINT"   Ha a ciklusmag végrehajtása  előtt vizsgáljuk meg, hogy még egyszer végre kell-e hajtani, akkor elől tesztelő ciklust hoztunk létre."
  40 PRINT"   Az ilyen ciklus bizonyos esetekben egyszer sem hajtódik végre."
  50 PRINT:LIST100-130:PRINT:SETINK2
 100 K=100 : V=9 : L=1
 110 IF K>V THEN 130
 120 PRINT K; : K=K+L :GOTO110
 130 REM ciklus vége
 140 SETINK1:PRINT: PRINT"   Változtassuk meg:"
 150 PRINT:PRINT"100 K=0 : v=10 : L=1"
 160 PRINT:PRINT"   Futtassuk ujra!"
Négyzettáblázat
  10 GRAPHICS4
  20 PRINT"      NÉGYZETTÁBLÁZAT"
  50 PRINT:LIST100-150
 100 INPUT PROMPT"kezdőérték?":K
 110 INPUT PROMPT"végérték?..":V
 120 INPUT PROMPT"lépésköz?..":L
 130 PRINT,K,K*K : K=K+L
 140 IF K>V THEN END
 150 GOTO130
FOR-TO-NEXT
  10 GRAPHICS4
  20 PRINTAT0,12:"FOR-TO-NEXT"
  30 PRINT"   CIKLUS SZERVEZŐ UTASÍTÁSOK"
  40 LIST100-120:PRINT"run"
 100 FOR K=1 TO 3
 110 PRINT,K,K*K
 120 NEXT K
 130 PRINT:PRINT" A FOR beállítja a kezdőértéket."         
 140 PRINT" A TO kijelöli a végértéket.":PRINT
 150 PRINT" A NEXT megnöveli a  K értékét  1-el, majd megvizsgálja, hogy   nem lépte-e túl a végértéket."
 160 PRINT" Ha a ciklusváltozó (K) kisebb  a végértéknél, akkor ismét végrehajtja a ciklust. Egyébként a NEXT utáni utasítással folytatja a programot."
RND és RANDOMIZE
  10 GRAPHICS4
  20 PRINT"        RND ÉS RANDOMIZE"
  30 PRINT:PRINT"   Az RND függvény véletlenszámot állít elő."
  40 PRINT"   Olyan mintha a gép gondolna  egy számot."
  50 PRINT"   Az alábbi program tíz véletlenszámot nyomtat ki."
  60 PRINT:LIST100-120 :PRINT
 100 FOR K=1 TO 10 
 110 PRINT RND(10);
 120 NEXT : PRINT
 130 PRINT:PRINT"   Ha újra indítjuk a programot ismét ugyanezeket a számokat    fogjuk kapni."
 140 PRINT"   A RANDOMIZE biztosítja, hogy a következő RUN parancs után a  véletlenszámok véletlen kezdőértéket kapjanak."
 150 PRINT"   Nyomj meg egy billentyűt!":GET
 160 PRINT AT 8,0:"":FORI=1TO7:PRINTCHR$(25);:NEXT:PRINTAT15,0
 170 PRINT"                             ":LIST200-:PRINT
 200 RANDOMIZE
 210 FOR K=1 TO 10
 220 PRINT RND(10);
 230 NEXT : PRINT
Törött vonal
  10 GRAPHICS4
  20 PRINT"           TÖRÖTT VONAL"
  30 PRINT:LIST100-
 100 FOR K=1 TO 100
 110 X=RND(1000) : Y=RND(600)
 120 PLOT X,Y;
 130 NEXT
FOR, TO, STEP-NEXT
  10 GRAPHICS4
  20 PRINTAT0,9:"FOR, TO, STEP-NEXT"
  30 PRINT"   CIKLUS SZERVEZŐ UTASÍTÁSOK"
  40 PRINT:LIST100-120:PRINT"run"
 100 FOR K=0 TO 5 STEP 2
 110 PRINT,K,K*K
 120 NEXTK
 130 PRINT:PRINT"   A STEP kulcsszó után a lépésközt adjuk meg."
 140 PRINT:PRINT"   Cseréljük ki a 100-as sort   rendre az alábbiakra és futtassuk úgy is!":PRINT
 150 PRINT"100 FOR K=5 TO 1 STEP -2":PRINT
 160 PRINT"100 FOR K=1 TO 3 STEP .5":PRINT
Nyomtassunk csillagokat
  10 GRAPHICS4
  20 PRINT"     NYOMTASSUNK CSILLAGOKAT"
  30 LIST100-120
 100 FOR K=1 TO 17
 110 FOR J=1 TO K : PRINT"*";:NEXT:PRINT
 120 NEXT
 130 PRINT"    Nyomj meg egy billentyűt!";:GET
 140 PRINTAT1,0:"":FORI=1TO23:PRINTCHR$(25);:NEXT
 150 LIST200-220
 200 FOR K=17 TO 1 STEP -1
 210 FOR J=1 TO K : PRINT"*";:NEXT:PRINT
 220 NEXT
Paraméteres FOR-NEXT ciklus
  10 GRAPHICS4
  20 PRINT"PARAMÉTERES FOR-NEXT CIKLUS"
  30 PRINTAT3,4:"A ciklus paramétereit (kezdőérték, végérték, lépésköz) változóval, vagy kifejezéssel is   megadhatjuk."
  40 PRINT"   Nulla lépésköz  végtelen ciklust eredményez!"
  50 PRINT:LIST100-120
 100 INPUT PROMPT"kezdőérték?":K
 110 INPUT PROMPT"végérték?..":V
 120 INPUT PROMPT"lépésköz?..":L
 130 GRAPHICS4
 200 FOR J=K TO V STEP L
 210 PRINT,J,J*J
 220 NEXT
 230 PRINT:LIST200-220:PRINT:PRINT"   A ciklus egyszer mindenképpenlefut!"
 240 PRINT:PRINT"   A K<V esetén negatív lépésközt kell adni."
Ciklusok egymásba ágyazása
   3 
  10 GRAPHICS4
  20 PRINT"   CIKLUSOK EGYMÁSBA ÁGYAZÁSA"
  30 PRINT:LIST100-150:PRINT
  40 PRINT" K"," J":PRINT"--------------"
 100 FOR K=1 TO 2
 110 PRINT K;
 120 FOR J=1 TO 3
 130 PRINT,J
 140 NEXT J
 150 NEXT K
 160 PRINT"   A külső ciklus 100-150-ig, a belső 120-140-ig tart.
 170 PRINT"   A külső ciklus minden K értékére a belső teljesen végrehajtódik."
Indexes változók
  10 GRAPHICS4        
  20 PRINT"         INDEXES VÁLTOZÓK"
  22 PRINT:LIST100:PRINT:PRINT"   Ezzel az utasítással 11 db   A nevű változót hoztunk létre."
  30 PRINT"   Ezek:":PRINT"   A(0), A(1),........,A(10).":PRINT
  40 PRINT"   A ( ) között BASIC KIFEJEZÉS is lehet. Ennek értékétől függően 'A( )' bármelyik változó lehet."
  50 PRINT:LIST110-140:PRINT
 100 DIM A(10)
 110 FOR K=0 TO 5
 120 A(K)=0:A(5+K)=1
 130 NEXT 
 140 FOR J=0 TO 10 : PRINT A(J);: NEXT:PRINT
Vektor
  10 GRAPHICS4        
  20 PRINT"             VEKTOR"
  30 PRINT"   A DIM utasításban a felhasználó által megadott értékkel is dolgozhatunk."
  40 PRINT:LIST100-160:PRINT"run"
 100 INPUT PROMPT "Kérek egy számot!":N
 110 DIM A(2*N)
 120 FOR K=1 TO N:A(K)=K:NEXT
 130 FOR K=N+1 TO 2*N:A(K)=1:NEXT
 140 FOR K=1 TO 2*N
 150 PRINT A(K);:IF K=N THEN PRINT:PRINT
 160 NEXT:PRINT
Csillagverseny
  10 GRAPHICS4
  20 PRINT"         CSILLAGVERSENY"
 100 DIMA(4):RANDOMIZE
 110 FORI=1TO 4
 120 PRINT AT 23/5*I,A(I):"  ":A(I)=A(I)+RND:PRINT AT 23/5*I,A(I):"**"
 130 IFA(I)>25THEN150
 140 NEXT:GOTO110
 150 REM vége
 160 PRINTAT2,0:"":FORI=1TO22:PRINTCHR$(25);:NEXT:LIST100-150
Több index (mátrix)
  10 GRAPHICS4
  20 PRINT"           TÖBB INDEX"
  30 PRINT:LIST100:PRINT
  40 PRINT"   Ezzel egy 6*4-es méretű táblázatot hoztunk létre."
  50 PRINT"   Most egymásba ágyazott ciklusok alkalmazásával töltjük    fel.":PRINT:LIST110-150:PRINT"run"
 100 DIM A(5,3)
 110 FOR K=0 TO 5
 120 FOR J=0 TO 3
 130 A(K,J)=K*J:PRINT A(K,J);
 140 NEXT:PRINT
 150 NEXT
 160 PRINT"   Nyomj meg egy billentyűt!";:GET
 170 GRAPHICS4
 180 PRINT"   Ha a ciklusokat fordítva ágyazzuk egymásba, akkor a táblázat sorai és oszlopai felcserélődnek."
 190 LIST200-240
 200 FOR J=0 TO 3
 210 FOR K=0 TO 5
 220 PRINT A(K,J);
 230 NEXT:PRINT
 240 NEXT
Szövegtömbök
  10 GRAPHICS4
  20 PRINT"           SZÖVEGTÖMBÖK"
  30 PRINT:PRINT"   A DIM utasítást akkor is alkalmaznunk kell, amikor egy szöveg változóba 18 karakternél      hosszabb szöveget helyezünk."
  40 PRINT:LIST100-120:PRINT:PRINT"    FIGYELEM!"
  50 SETINK2:PRINT:PRINT"   Töröld a REM szót a 100-as   sorban!":SETINK1:PRINT
 100 REM       DIM A$*35
 110 A$="ÉJJELIŐRELLENŐRZŐÓRASZALAG"
 120 PRINT A$
 130 PRINTAT23,5:"Nyomj meg egy billentyűt!";:GET
 140 PRINTAT2,0:"":FORI=1TO17:PRINTCHR$(25);:NEXT
 150 PRINT"   Egy azonosítóval több szövegértéket is megjelölhetünk."
 180 PRINT:LIST200-240:PRINT:LIST250-280
 200 DIM B$(4)
 210 PRINT"     Adatbevitel:"
 220 FOR K=0 TO 4
 230 PRINT K; : INPUT PROMPT ". szöveg? " : B$(K)
 240 NEXT
 242 PRINTAT16,0:"":FORI=1TO6:PRINTCHR$(25);:NEXT
 250 PRINT"     Adat nyomtatás:
 260 FOR K=0 TO 4
 270 PRINT K;". szöveg ",B$(K)
 280 NEXT
Sorsolás
  10 GRAPHICS4
  20 PRINT"            SORSOLÁS"
  30 PRINT:PRINT"   Sorsoljuk ki az 1, 2, ....,5 számoknak egy sorrendjét!"
  40 PRINT"   Ezt az előzőekhez hasonlóan, de tömbváltozóval csináljuk. Ígyhasználhatjuk a FOR-NEXT ciklust."
  50 PRINT:LIST100-180:PRINT
 100 DIMA(5)
 110 RANDOMIZE : PRINT,;
 120 FOR K=1 TO 5
 130 A(K)=RND(5)+1 : Z=0 : IFK=1THEN 170
 140 FOR J=1 TO K-1
 150 IF A(K)=A(J) THEN Z=1
 160 NEXT : IF Z=1 THEN 130
 170 PRINTA(K);
 180 NEXT:PRINT
 190 PRINTAT23,5:"Nyomj meg egy billentyűt!";:GET
 200 GRAPHICS4
 210 PRINT"   A programban egy u.n. JELZŐT alkalmaztunk. Ez az Z változó.  Értékét 0-ra állítjuk. Ha adott feltétel bekövetkezik Z-t átírjuk."
 220 PRINT"   A jelzőt elhagyhatjuk az alábbi módszer esetén."
 250 PRINT:LIST300-380:PRINT:RUN300
 300 DIMA(5)
 310 RANDOMIZE : PRINT,;
 320 FOR K=1 TO 5
 330 A(K)=RND(5)+1:IFK=1THEN370
 340 FOR J=1 TO K-1
 350 IF A(K)=A(J) THEN 330
 360 NEXT J
 370 PRINTA(K);
 380 NEXT K :PRINT
 390 PRINTAT23,5:"Nyomj meg egy billentyűt!";:GET
 400 GRAPHICS4
 410 LIST300-380 : PRINT
 420 PRINT"   Figyeljük meg a 350 sort."
 430 PRINT"   A ciklusból kiugrás tiltott. Nem okoz azonban zavart, ha ugyanazzal a ciklusváltozóval    kezdünk uj ciklust."
 440 PRINT"   Ez esetben a NEXT után a ciklusváltozót ki kell tenni."
Lottoszámok FOR-ciklussal
  10 GRAPHICS4
  20 PRINT"    LOTTOSZÁMOK FOR-CIKLUSSAL"
  30 PRINT:PRINT"   Sorsoljunk öt különböző lottószámot!"
  40 PRINT"   A sorsolást tömbváltozók felhasználásával, és FOR ciklussal végezzük."
  50 PRINT:LIST100-180:PRINT
 100 DIM A(5)
 110 FOR K=1 TO 5
 120 A(K)=RND(90)+1
 130 IF K=1 THEN 170
 140 FOR J=1 TO K-1
 150 IF A(K)=A(J) THEN Z=1:J=K
 160 NEXT : IF Z=1 THEN 120
 170 PRINT A(K);"  ";
 180 NEXT
 190 PRINT
Minimum, maximum
  10 GRAPHICS4      
  20 PRINT"         MINIMUM MAXIMUM"
  30 PRINT:PRINT"   N elem közül válasszuk ki a  legnagyobbat és a legkisebbet!"
  40 PRINT"   Először létrehozzuk azt a    tömböt, amelyből a kiválasztást végezhetjük."
  90 PRINT:LIST100-140:PRINT
 100 INPUT PROMPT"Az elemek száma?   ":N
 110 DIM A(N) :REM töltsük fel!
 120 FOR K=1 TO N
 130 PRINT K;".";:INPUT A(K)
 140 NEXT
 150 PRINTAT3,0:"";:FORI=1TO15:PRINTCHR$(25);:NEXT:GRAPHICS4
 160 PRINT"         MINIMUM MAXIMUM"
 170 PRINT:PRINT"   A legnagyobb és legkisebb elem keresése."
 180 PRINT:LIST200-260:PRINT
 200 MIN=A(1):MAX=A(2)
 210 FOR K=2 TO N
 220 IF A(K)<MIN THEN MIN=A(K)
 230 IF A(K)>MAX THEN MAX=A(K)
 240 NEXT
 250 PRINT"min=";MIN
 260 PRINT"max=";MAX
GOSUB, RETURN
  10 GRAPHICS4
  20 PRINT"        GOSUB  RETURN"
  30 PRINT:PRINT"   A GOSUB a szubrutin hívás    kulcsszava."
  40 PRINT"   A RETURN szóval kell zárni a szubrutint."
  50 PRINT"   A GOSUB 'megjegyzi' a visszatérési pontot, a RETURN pedig   visszatér a megjegyzett pontra."
  60 PRINT:LIST100-150 :PRINT:LIST500-510
  70 PRINT AT 23,3:"Csak <ctrl-esc>-pel áll le!"
 100 PRINT AT 21,0:"egy ";
 110 GOSUB500
 120 PRINT"kettő"
 130 GOSUB500
 140 PRINT AT 21,0:"          "
 150 GOSUB500 : GOTO100
 500 FOR K=1 TO 800 : NEXT
 510 RETURN : REM késleltető
Adatbevitel és ellenőrzés szubrutin
  10 GRAPHICS4
  20 PRINT"    ADATBEVITEL ÉS ELLENŐRZÉS"
  30 PRINT"            SZUBRUTIN"
  40 PRINT:PRINT"   Egy N elemű tömb elemeit kellbetölteni billentyűzetről.      (Pl egy mérés adatait.)
  50 PRINT"   Fontos, hogy az adatok pontosak legyenek. Ezért ellenőrzést kell végeznünk."
  60 PRINT"   Az adatok bevitelét és a hibás adatok módosítását ugyanaz  a programrészlet végzi."
  70 PRINT:PRINT"   Az olyan programrészletet, amelyet a program különböző pontjairól hivhatunk és a végrehajtása után a program a hívási    ponttól folytatódik SZUBRUTIN-nak nevezzük."
  80 PRINT"   Ez a program az adatok feldolgozásával nem foglalkozik."
  90 GOSUB1000
 100 PRINTAT3,0:"":FOR I=1TO8:PRINTCHR$(25);:NEXT
 110 LIST200-270:LIST400:LIST500
 200 INPUT PROMPT"Az adatok száma?":N : DIM A(N)
 210 FOR K=1 TO N :GOSUB400: GOSUB 500 : NEXTK: REM adatbevitel
 220 FOR K=1 TO N
 240 GOSUB400:PRINT AT 21,0 : K;". adat:";A(K)
 250 PRINT"Kell javítani? (i vagy bármi.)";:GETA$:PRINT
 260 IF A$="i" THEN GOSUB 500 : GOTO 240 : ELSE NEXT
 270 PRINTAT22,0:"": REM vége
 280 GOSUB1000
 290 PRINTAT2,0:"":FOR I=1TO13:PRINTCHR$(25);:NEXT
 300 LIST200-270 :PRINT
 310 PRINT"   Ez az adatbevitel és ellenőrzés főprogramja."
 330 GOSUB1000:PRINTAT14,0:"":FOR I=1TO6:PRINTCHR$(25);:NEXT
 332 LIST 400 : PRINT"   Az előtörlés szubrutinja.":GOSUB1000:PRINTAT16,0
 340 LIST500
 350 PRINT"   Az 500-as sor az adatbevitel és ellenőrzés szubrutinja.":GOSUB1000
 360 PRINTAT21,0:"   A szubrutin RETURN kulcsszóval végződik!                 "
 370 GOSUB1000:GRAPHICS4:PRINTAT11,8:"Köszönöm a figyelmet.":END
 400 PRINT AT 21,0 : "                 ":RETURN ELŐTÖRLÉS
 500 PRINT AT 21,0: K;".";:INPUTPROMPT" adat: ": A(K) : RETURN
1000 PRINTAT23,4:"Nyomj meg egy billentyűt!":GET:RETURN
Ciklusok egymásba ágyazása
   3 
  10 GRAPHICS4
  20 PRINT"   CIKLUSOK EGYMÁSBA ÁGYAZÁSA"
  30 PRINT:LIST100-150:PRINT
  40 PRINT" K"," J":PRINT"--------------"
 100 FOR K=1 TO 2
 110 PRINT K;
 120 FOR J=1 TO 3
 130 PRINT,J
 140 NEXT J
 150 NEXT K
 160 PRINT"   A külső ciklus 100-150-ig, a belső 120-140-ig tart.
 170 PRINT"   A külső ciklus minden K értékére a belső teljesen végrehajtódik."
Szöveg úsztatása 1
  10 GRAPHICS4
  20 PRINT"        SZÖVEG ÚSZTATÁSA 1"
  30 PRINTAT9,0:"";:LIST100-140
  60 PRINTAT3,0:""
 100 A$=" csónak"
 110 FOR K=1 TO 26
 120 PRINTTAB(K);A$;
 130 FORJ=1TO 40 : NEXT
 140 NEXT
 150 PRINTAT16,0:""
Szöveg úsztatása 2
  10 GRAPHICS4
  20 PRINT"        SZÖVEG ÚSZTATÁSA 2"
  30 PRINTAT9,0:"";:LIST100-130
  60 PRINT:PRINT"   A csónakot a ctrl és a       '2  5  5  3' billentyűkkel hoztuk létre."
 100 A$=" ŐŤŤŤÜ"
 110 FOR K=1 TO 800 STEP 2
 120 PLOT K,800:PRINT#0,A$
 130 NEXT
 150 PRINTAT16,0:""
Osztópárok
  10 GRAPHICS4         
  20 PRINT,"   OSZTÓPÁROK"
  30 PRINT:PRINT"   Keressük meg az egynél nagyobb természetes számok osztóit!"
  40 PRINT:LIST100-120:SETINK2:PRINT"   Az SQR(..) négyzetgyököt jelent!":SETINK1:LIST130-160
 100 INPUT PROMPT "Mi legyen a szám?": T
 110 IF T<2 THEN 100 TÚL KICSI 
 120 IF T<>INT(T) THEN 100 NEM EGÉSZ
 130 FOR K=1 TO SQR(T)+1
 140 IF T/K=INT(T/K) THEN PRINT K;T/K, : S=S+1:REM osztópárok
 150 NEXT:PRINT
 160 IF S=1 THEN PRINT"PRÍMSZÁM"
Primszámok keresése 1
  10 GRAPHICS4
  20 PRINT"         PRIMSZÁMOK KERESÉSE"
  30 PRINT:PRINT"   Keressük a PRÍMSZÁMOKAT 1-n-ig."
  50 PRINT:LIST100-200
  70 PRINT"   Nyomj meg egy billentyűt!";:GET
  80 PRINTAT2,0:"";:FORI=1TO3:PRINTCHR$(25);:NEXT:PRINTAT19,0:"";
 100 INPUT PROMPT "   Mekkora legyen az n?     ":N
 110 IF N<2 THEN PRINT"   Így nincs mit keresni!":PRINT:GOTO100
 120 IF INT(N)<>N THENPRINT"   Csak egész szám lehet!":PRINT:GOTO100
 130 PRINT:PRINT2;:IF N>=3 THEN PRINT3;
 140 FOR T=3 TO N STEP 2
 150 Z=1
 160 FOR K=3 TO SQR(T)+2 STEP 2
 170 IF T/K=INT(T/K) THEN Z=0 : K=T
 180 NEXT K
 190 IF Z=1 THEN PRINT T;
 200 NEXT T
 210 PRINT : END
PRIMSZÁMOK KERESÉSE 2
  10 GRAPHICS4
  20 PRINT"        PRIMSZÁMOK KERESÉSE"
  30 PRINT:PRINT"   Keressük a PRÍMSZÁMOKAT 1-n-ig."
  40 PRINT"   Oldjuk meg a feladatot az előbbi program kibővítésével!"
  50 PRINT:LIST100-200
  70 PRINT"   Nyomj meg egy billentyűt!";:GET
  80 PRINTAT2,0:"";:FORI=1TO3:PRINTCHR$(25);:NEXT:PRINTAT19,0:"";
 100 INPUT PROMPT "   Mekkora legyen az n?     ":N : T=3
 110 IF N<2 THEN PRINT"   Így nincs mit keresni!":PRINT:GOTO100
 120 IF INT(N)<>N THENPRINT"   Csak egész szám lehet!":PRINT:GOTO100
 130 PRINT : PRINT 2;:IF N>3 THEN PRINT 3;
 140 S=0
 150 FOR K=1 TO SQR(T)+2 STEP 2
 160 IF T/K=INT(T/K) THEN S=S+1
 170 NEXT
 180 IF S=1 THEN PRINT T;
 190 T=T+2 : IF T<=N THEN 140
 200 PRINT : END
Számolás fejben
  10 GRAPHICS4
  20 PRINT,"SZÁMOLÁS FEJBEN"
  30 PRINT:PRINT"   Az összeadás gyakorlása 40-esszámkörben."
  40 PRINT"   A program három feladatot ad.":PRINT
  50 LIST100-140:LIST150-160
 100 R=20:T=3:RANDOMIZE
 110 A=RND(R)+1:B=RND(R)+1
 120 D=A+B
 130 PRINTA;"+";B;"=";:INPUTPROMPT"":C:T=T-1
 140 IF C=D THEN PRINT" HELYES.":Z=Z+1:ELSEPRINT" NEM JÓ. Az eredmény:  ";D
 142 IFT=2 THENPRINTAT1,0:"":FORI=1TO3:PRINTCHR$(25);:NEXT:PRINTAT16,0:"";
 150 IF T THEN110
 160 PRINTZ;"helyes válaszod volt." 
indexes változók
  10 GRAPHICS4        
  20 PRINT"         INDEXES VÁLTOZÓK"
  22 PRINT:LIST100:PRINT:PRINT"   Ezzel az utasítással 11 db   A nevű változót hoztunk létre."
  30 PRINT"   Ezek:":PRINT"   A(0), A(1),........,A(10).":PRINT
  40 PRINT"   A ( ) között BASIC KIFEJEZÉS is lehet. Ennek értékétől függően 'A( )' bármelyik változó lehet."
  50 PRINT:LIST110-140:PRINT
 100 DIM A(10)
 110 FOR K=0 TO 5
 120 A(K)=0:A(5+K)=1
 130 NEXT 
 140 FOR J=0 TO 10 : PRINT A(J);: NEXT:PRINT
Sorsolási statisztika
    10 GRAPHICS4
  20 PRINT"    SORSOLÁSI STATISZTIKA":PRINT
  30 PRINT"   Nézzük meg, hogy az egyes    számokat hányadik próbálkozásra sikerül kisorsolni!"
  40 PRINT:LIST100-
 100 DIM A(5):RANDOMIZE
 110 FOR K=1 TO 5
 120 H=0
 130 A(K)=RND(5)+1:H=H+1
 140 IF K=1 THEN 180
 150 FOR J=1 TO K-1
 160 IF A(K)=A(J) THEN 130
 170 NEXT J
 180 PRINT,A(K),H
 190 NEXT K
 200 END
Szöveg úsztatása
  10 GRAPHICS4
  20 PRINT"        SZÖVEG ÚSZTATÁSA"
  30 PRINTAT7,0:"";:LIST100-200
  40 PRINT:PRINT"   Két hasonló programrészlet   működik. Ezért a program egyszerűsíthető!"
  50 PRINTAT23,5:"Nyomj meg egy billentyűt!"
  60 PRINTAT3,0:""
 100 A$=" ÚSZÓ "
 110 FOR K=1 TO 26
 120 PRINTTAB(K);A$;
 130 FORJ=1TO 30 : NEXT
 140 NEXT
 150 FOR K=26 TO 1 STEP-1
 160 PRINTTAB(K);A$;
 170 FORJ=1TO 30 : NEXT
 180 NEXT        
 190 B$=INKEY$:IF B$=""THEN110
 200 REM úszó vége
 210 PRINTAT6,0:"":FORI=1TO18:PRINTCHR$(25);:NEXT
 230 PRINTAT7,0:"";:LIST300-370
 240 PRINT:PRINT"   Szellemes megoldás de nem alkalmazható általánosan."
 250 PRINTAT23,5:"Nyomj meg egy billentyűt!"
 260 PRINTAT3,0:""
 300 A$=" ÚSZÓ ":V=26:K=1:S=1
 310 FOR P=K TO V STEP S
 320 PRINTTAB(P);A$;
 330 FORJ=1TO 30 : NEXT
 340 NEXT
 350 A=V:V=K:K=A:S=-S
 360 B$=INKEY$:IF B$=""THEN310
 370 REM úszó vége
 380 PRINTAT6,0:"":FORI=1TO18:PRINTCHR$(25);:NEXT
 390 PRINTAT7,0:"";:LIST500-550:PRINT:LIST1000-1040
 400 PRINT:PRINT"   Erre a feladatra legjobb megoldás a SUBRUTIN alkalmazása."
 410 PRINTAT23,5:"Nyomj meg egy billentyűt!"
 490 PRINTAT3,0:""
 500 A$=" ÚSZÓ "
 510 V=26:K=1:S=1:GOSUB1000
 530 V=1:K=26:S=-1:GOSUB1000
 540 B$=INKEY$:IF B$=""THEN510
 550 PRINTAT22,0:"":END
1000 FOR P=K TO V STEP S
1010 PRINTTAB(P);A$;
1020 FORJ=1TO 30 : NEXT
1030 NEXT
1040 RETURN
Menü
  10 GRAPHICS4
  20 PRINT"              MENÜ":PRINT
  30 PRINT"   Az ON utasítással a program  több irányú elágazását szervezhetjük meg."
  40 PRINT"   Erre mutat példát a menü készítése."
  50 PRINT:PRINT"   Adok két számot és kérem az":PRINT
  60 PRINT,"1 összegét"
  70 PRINT,"2 szorzatát"
  80 PRINT,"3 különbségét"
  90 PRINT,"4 hányadosát"
  92 PRINT:PRINT" A megfelelő szám leütésével vá lassz!":PRINT:SET INK2:RANDOMIZE
  95 LIST100-110:SETINK1
 100 GETA$:A=VAL(A$):IF A<1 OR A>4 THEN RUN
 110 ON A GOTO 500,600,700,800
 500 REM összeg
 502 PRINT AT 2,0:"":FORI=1TO14:PRINTCHR$(25);:NEXT:LIST500:LIST510-540:PRINT:LIST900-930:PRINT:LIST1000-
 510 GOSUB1000 : REM a két szám
 520 PRINT"X=";X;"  Y=";Y
 530 INPUT PROMPT "   Kérem az összeget!":Z : E=X+Y
 540 GOTO 900
 600 REM szorzat
 602 PRINT AT 2,0:"":FORI=1TO14:PRINTCHR$(25);:NEXT:LIST600:LIST610-640:LIST900-920:PRINT:LIST1000-
 610 GOSUB1000 : REM a két szám
 620 PRINT"X=";X;"  Y=";Y
 630 INPUT PROMPT "   Kérem a szorzatát!":Z : E=X*Y
 640 GOTO 900
 700 REM különbség
 702 PRINT AT 2,0:"":FORI=1TO14:PRINTCHR$(25);:NEXT:LIST700:LIST710-740:LIST900-920:PRINT:LIST1000-
 710 GOSUB1000 : REM a két szám
 720 PRINT"X=";X;"  Y=";Y
 730 INPUT PROMPT "   Kérem a különbségét!":Z : E=X-Y
 740 GOTO 900
 800 REM hányados
 802 PRINT AT 2,0:"":FORI=1TO14:PRINTCHR$(25);:NEXT:LIST800:LIST810-840:PRINT:LIST900-930:PRINT:LIST1000-
 810 GOSUB1000 : REM a két szám
 820 PRINT"X=";X;"  Y=";Y
 830 INPUTPROMPT"   Kérem a hányadost!":Z : E=X/Y:E=INT(100*E)/100
 900 REM összehasonlítás
 910 IF Z=E THEN PRINT"   HELYES" :ELSE PRINT"   HIBÁS. Az eredmény:";E
 920 END
1000 REM véletlenszám
1010 X=RND(40):Y=RND(40):IF Y=0 THEN 1010
1020 RETURN
DATA és READ utasítások 1
  10 GRAPHICS4
  20 PRINT"     DATA- és READ UTASÍTÁSOK"
  30 PRINT:PRINT"   A READ utasítás az utána írt változóba olvassa a DATA kulcsszó után írt adatot. A gép számon tartja, hogy hol tart az olvasásban."
  50 PRINT"   Ha több adatot olvasunk ki,  mint amennyi van hibajelzést kapunk."
  60 PRINT:LIST100-130:SETINK2
  70 PRINTAT23,0:"DELETE 130:törli a 130-as sort!":PRINTAT21,0:"";:SETINK1:PRINT"DELETE 130":PRINTAT17,0:"";
 100 DATA 3,2
 110 READ A : READ B
 120 PRINT A,B
 130 READ C : PRINT C
DATA és READ utasítások 2
  10 GRAPHICS4
  20 PRINT"     DATA- és READ UTASÍTÁSOK":PRINT
  30 PRINT:PRINT"   A READ utasítás az utána írt változóba olvassa a DATA kulcsszó után írt adatot. A gép számon tartja, hogy hol tart az olvasásában."
  50 PRINT:PRINT"   Egy READ több változóba is   olvashat."
  60 PRINT:LIST100-130:PRINT
 100 DATA 3,2,4,7
 110 READ A,B,C,D   
 120 PRINT A,B,C,D
 130 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 140 PRINTAT12,0:"   Szövegtípusú változó is kaphat értéket READ utasítással    DATA sorból."
 150 FORI=1TO6:PRINTCHR$(25);:NEXT:PRINT : LIST200-220 : PRINT
 200 DATA anya,apa,fia,lánya
 210 READ A$,B$,C$,D$
 220 PRINTA$,B$,C$,D$
DATA READ és RESTORE utasítások
  10 GRAPHICS4
  20 PRINT"DATA- READ és RESTORE UTASÍTÁSOK":PRINT
  30 PRINT"   A gép egy belső mutatóval figyeli, hogy hol tart a  READ az olvasásban."
  40 PRINT"   Ez a mutató a RESTORE kulcsszóval az első adatra állitható."
  50 PRINT"   Így az adatok többször is kiolvashatók."
  60 PRINT:LIST100-150:PRINT
 100 READ A,B,C,D
 110 PRINT A,B,C,D
 120 RESTORE
 130 READ E,F,G,H
 140 PRINT E,F,G,H
 150 DATA 3,2,5,1
 160 PRINT"   A DATA bárhol elhelyezhető."
 170 PRINTAT23,5:"Nyomj meg egy billentyűt!";:GET
 180 PRINTAT6,0:"";:FORI=1TO14:PRINTCHR$(25);:NEXT
 190 PRINT"   A RESTORE után sorszám is    megadható. A mutató ekkor a jelzett sorszámú sorra áll."
 200 PRINT:LIST300-380:PRINT
 300 DATA 0,1,2,3,4
 310 DATA 5,6
 320 FOR K=1 TO 10
 330 READ A : PRINT A;
 340 NEXT : PRINT
 350 RESTORE 380
 360 READ A,B,C : PRINT A,B,C  
 370 DATA 7,8
 380 DATA -1,-2,-3   
Beolvasás idegen típusba
  10 GRAPHICS4
  20 PRINT"     BEOLVASÁS IDEGEN TÍPUSBA":PRINT:PRINT
  30 PRINT"   A READ utasítással szövegtípusú változóba számot beolvashatunk. Ennek a fordítottja tiltott."
  40 PRINT"   A szövegváltozóba beolvasott adat mindig szövegként viselkedik.":PRINT
  50 PRINT:LIST100-130:PRINT
 100 DATA 2,3
 110 READ A,B :PRINT,A+B
 120 RESTORE
 130 READ A$,B$ :PRINT,A$&B$
 140 PRINT"   Az adatokat először számként,azután szövegként kezeljük."
 150 PRINT AT23,5:"Nyomj meg egy billentyűt!":GET:PRINTAT2,0
 160 FORI=1TO15:PRINTCHR$(25);:NEXT:PRINT:PRINT
 170 PRINT"   Szöveget azonban nem olvashatunk valós változóba."
 180 PRINT:LIST200-:PRINT:SETINK2:PRINT"   A program hibajelzéssel áll  le.":SETINK1
 200 DATA "szöveg"
 210 READ A
Dobókocka
  10 GRAPHICS4
  20 PRINT"           DOBÓKOCKA"
  30 PRINT:PRINT"   Billentyű lenyomásra egy számot sorsolok egytől hatig. A    számot betűvel írom ki."
  40 PRINT"   A sorsolást 'v' lenyomására  hagyom abba."
  50 PRINT:LIST100-160
  60 PRINTAT21,1:"A SPACE is az adathoz tartozik.";
  70 PRINTAT22,10:"'v'-re vége!";
 100 DATA egy,kettő,három,négy,öt,hat,: RANDOMIZE
 110 GET A$:IF A$="v" THEN 160
 120 FOR K=1 TO RND(6)+1
 130 READ A$
 140 NEXT:PRINTAT19,14:A$;"  ";
 150 RESTORE : GOTO110
 160 PRINT::END:REM vége
DATA végjellel
  10 GRAPHICS4
  20 PRINT"          DATA VÉGJELLEL":PRINT
  30 PRINT"   Készítsünk szókérdező programot."
  60 PRINT"   Utolsó adatként helyezzünk elvégjelet."
  70 PRINT:LIST100-180:PRINT
  90 PRINTAT23,3:"Csak <CTRL-ESC>-pel áll le."
 100 DATA ablak,sFenster,ajtó,eTür,asztal,rTisch,ember,rMan
 110 DATA könyv,rBuch,***,***
 120 FOR K=1 TO RND(10)+1
 130 READ M$,N$ : IF M$="***" THEN RESTORE : GOTO 130
 140 NEXT
 150 PRINTAT20,0:N$;"    ";TAB(15);:INPUT PROMPT"magyarul:":M1$
 160 IF M$=M1$ THEN PRINT"    helyes":ELSE PRINT"nem helyes"
 170 GOTO120
Címletező
  10 GRAPHICS4
  20 PRINT"          CÍMLETEZŐ"
  30 LIST100-190
 100 DATA 1000,500,100,50,20,10,5,2,1
 120 DIMC(8):FORK=0TO8:READC(K):NEXT
 130 INPUT PROMPT "Fizetés?":F
 140 FOR K=0 TO 8
 150 A=INT(F/C(K))
 160 IF A=0 THEN 190
 170 F=F-C(K)*A
 180 PRINT A;"db",C(K);"Ft"
 190 NEXT
Címletező összesítéssel
  10 GRAPHICS4
  20 PRINT"     CÍMLETEZŐ ÖSSZESÍTÉSSEL"
  30 LIST100-190
 100 DATA 1000,500,100,50,20,10,5,2,1 : REM belső adatok
 120 DIMC(8),S(8):FORK=0TO8:READC(K):S(K)=0:NEXT:REM beolvasás
 130 PRINTAT14,0:"~0-ra vége~Fizetés";:INPUT F:IF F<=0 THEN 190
 140 FOR K=0 TO 8
 150 A=INT(F/C(K)):S(K)=S(K)+A
 160 F=F-C(K)*A
 170 PRINT A;"db",C(K);"Ft"
 180 NEXT:GOTO130
 190 REM fizetés vége
 200 PRINTAT1,0:"":FORI=1TO20:PRINTCHR$(25);:NEXT
 210 PRINT"      Ö S S Z E S Í T É S":PRINT
 220 PRINT:LIST300-320:PRINT
 300 FORK=0TO8
 310 PRINTS(K);"db",C(K);"Ft"
 320 NEXT
Logikai érték 1
  10 GRAPHICS4
  20 PRINT"         LOGIKAI ÉRTÉK 1"
  30 PRINT:LIST100-120:PRINT
 100 FOR K=-2 TO 2 STEP .5
 110 PRINT,K,:IF K THEN PRINT" IGAZ" :ELSE PRINT" HAMIS"
 120 NEXT
 130 PRINT:PRINT"   A K változó értékét az IF utasítás logikai értékként kezeli."
 140 PRINT"   A 0 a HAMIS érték, minden más IGAZ!"
Logikai érték 2
  10 GRAPHICS4
  20 PRINT"         LOGIKAI ÉRTÉK 2"
  30 PRINT:LIST100-120:PRINT
 100 FOR K=-2 TO 2 STEP .5
 110 PRINT,K,K>0
 120 NEXT
 130 PRINT:PRINT"  A K>0 reláció logikai értékét nyomtatjuk ki."
 140 PRINT"   A 0 a HAMIS érték, a -1 az   IGAZ!"
Logikai változó IF utasításban
  10 GRAPHICS4
  20 PRINT"  LOGIKAI VÁLTOZÓ IF UTASÍTÁSBAN"
  30 PRINT"   Az IF-THEN közötti feltételt helyettesíthetjük logikai konstansal, vagy változóval."
  40 PRINT"   Ez lehet egy szám, vagy valósváltozó.
  50 PRINT:LIST100-:PRINT
 100 IF 1 THEN PRINT,"[100]","IGAZ":ELSEPRINT,"{100}","HAMIS"
 110 IF 0 THEN PRINT,"[110]","IGAZ":ELSEPRINT,"{110}","HAMIS"
 120 INPUT PROMPT "Kérek egy számot!":A
 130 IF A THEN PRINT,"[130]","IGAZ":ELSEPRINT,"{130}","HAMIS"
A logikai érték tárolása
  10 GRAPHICS4
  20 PRINT"    A LOGIKAI ÉRTÉK TÁROLÁSA"
  30 PRINT:PRINT"   A logikai értékeket számokként nyomtattuk ki."
  40 PRINT"   Ugyanígy változókban tárolhatjuk is.
  50 PRINT:LIST100-120:PRINT
 100 A=2:B=3
 110 C=A=B:D=A<>B
 120 PRINT,C,D
 130 PRINT:PRINT"   A 110-es sorban két értékadó utasítást találunk."
 140 PRINT"   Az értékadó utasítást a gép  balról jobbra elemzi. Az egyenlőségjel után írt részt kifejezésnek tekinti."
 150 PRINT"   Az A=B reláció igazságértéke 'HAMIS', az A<>B 'IGAZ'.
Logikai 'vagy' művelet
  10 GRAPHICS4
  20 PRINT"      LOGIKAI 'VAGY' MŰVELET"
  30 PRINT:LIST100-120:SETINK2:PRINT" K     K>-1     K>1     OR":SETINK1
 100 FOR K=-2 TO 2 STEP .5
 110 PRINT K,K>-1,K>1,(K>-1 OR K>1)              
 120 NEXT
 130 PRINT:PRINT"   A két relációt a logikai     'VAGY' művelet kapcsolja össze. Az eredmény logikai érték."
 140 PRINT"   A 'VAGY' művelet jelentése:  IGAZ, ha legalább az egyik IGAZ.";
Logikai 'és' művelet
  10 GRAPHICS4
  20 PRINT"      LOGIKAI 'ÉS' MŰVELET"
  30 PRINT:LIST100-120:SETINK2:PRINT" K      K>-1    K<1     AND":SETINK1
 100 FOR K=-2 TO 2 STEP .5
 110 PRINT K,K>-1,K<1,(K>-1 AND K<1)              
 120 NEXT
 130 PRINT:PRINT"   A két relációt a logikai 'ÉS'művelet kapcsolja össze. Az eredmény logikai érték."
 140 PRINT"   Az 'ÉS' művelet jelentése:   IGAZ, ha mindkettő IGAZ."
Logikai 'not' művelet
  10 GRAPHICS4
  20 PRINT"      LOGIKAI NOT MŰVELET":PRINTAT3,0:""
  30 PRINT"   Ez egyváltozós művelet. A notszó jelentése nem."
  40 PRINT"   Az 'IGAZ' értéket 'HAMIS'-ra változtatja és fordítva.":PRINT
  50 PRINT:LIST100-120:PRINT
 100 A=2:B=3
 110 REM az A<B 'IGAZ' állítás
 120 PRINT,A<B,NOT(A<B)
 130 PRINT:LIST200-:PRINT
 200 A=2:B=3
 210 REM az A=B 'HAMIS' állítás
 220 PRINT,A=B,NOT(A=B)
Sorsolás
  10 GRAPHICS4
  20 PRINT"            SORSOLÁS"
  30 PRINT:PRINT"   Sorsoljuk ki az 1, 2, ....,5 számoknak egy sorrendjét!"
  40 PRINT"   Ezt úgy csináljuk, hogy mindig az addigiaktól különböző    számot választunk a véletlenszámok közűl."
  50 PRINT:LIST100-170
 100 RANDOMIZE : D=RND(5)+1
 110 E=RND(5)+1
 120 IF D=E THEN 110 CIKLUS
 130 F=RND(5)+1
 140 IF D=F OR E=F THEN 130
 150 G=RND(5)+1:IF D=G OR E=G OR F=G THEN 150
 160 H=RND(5)+1:IF D=H OR E=H OR F=H OR G=H THEN 160
 170 PRINT:PRINT,D;E;F;G;H
Lottó sorsolás
  10 GRAPHICS4
  20 PRINT"         LOTTÓ SORSOLÁS"
  30 PRINT:PRINT"   Sorsoljunk ki lottószámokat!"
  40 PRINT"   Ezt az előző módszerrel csináljuk. Mindig az addigiaktól   különböző számot választunk a   véletlenszámok közűl."
  50 PRINT:LIST100-170
 100 RANDOMIZE : D=RND(90)+1
 110 E=RND(90)+1
 120 IF D=E THEN 110
 130 F=RND(90)+1
 140 IF D=F OR E=F THEN 130
 150 G=RND(90)+1:IF D=G OR E=G OR F=G THEN 150
 160 H=RND(90)+1:IF D=H OR E=H OR F=H OR G=H THEN 160
 170 PRINT:PRINT,D;E;F;G;H
Azonos maradék
  10 GRAPHICS4
  20 PRINT"       AZONOS MARADÉK"
  30 PRINT:PRINT"   Nyomtassuk ki 100-ig azokat aszámokat, amelyek A-val és B-vel osztva C maradékot adnak!"
  40 PRINT:LIST100-:PRINT
 100 INPUT PROMPT "A=":A
 110 INPUT PROMPT "B=":B
 120 INPUT PROMPT "C=":C
 130 FOR K=1 TO 100
 140 M1=INT(K/A) : M1=K-M1*A
 150 M2=INT(K/B) : M2=K-M2*B
 160 IF M1=C AND M2=C THEN PRINT K;
 170 NEXT:PRINT
Pont a képernyőre
  10 GRAPHICS4
  20 PRINT"        PONT A KÉPERNYŐRE"
  30 PRINT"   Jelenítsünk meg egy pontot a képernyőn, miután megvizsgáltuk, hogy a koordinátái megfelelnek!"
  40 PRINT:LIST100-120 :PRINT
 100 INPUT PROMPT "X=":X
 110 INPUT PROMPT "Y=":Y
 120 IF X>=0 AND X<=1023 AND Y>=0 AND Y<=959 THEN CLS : PLOT X,Y :ELSE PRINT"   Nem mutat a képernyőre!"
 130 FORI=1TO500:NEXT
Szövegfüggvények: LEN
  10 GRAPHICS4
  20 PRINT"     SZÖVEGFÜGGVÉNYEK: LEN":PRINT
  30 PRINT"   A szöveg egyik legjellemzőbb adata a szöveg karaktereinek a  száma."
  40 PRINT"   Ezt a LEN függvény segítségével határozzuk meg."
  50 PRINT:PRINT"   18 karakter felett a szövegváltozót dimenzionálni kell!"
  60 PRINT:LIST100-130:PRINT
 100 INPUT PROMPT "A szöveg?":A$
 120 PRINT A$
 130 PRINT LEN(A$);"hosszúságú."
Szövegfüggvények: szeletelés 1
  10 GRAPHICS4
  20 PRINT"   SZÖVEGFÜGGVÉNYEK: SZELETELÉS":PRINT
  30 PRINT:PRINT"   Belső szelet:":PRINT
  40 PRINT"   Tetszőleges szövegkonstans,  vagy szövegváltozó belsejéből   kiválaszthatunk két adott pozíció közötti szeletet."
  50 PRINT:PRINT:LIST100-120:PRINT
 100 A$="TV COMPUTER"
 110 B$=A$(4:7)
 120 PRINTA$,B$
 130 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 140 PRINTAT9,0:"":FORI=1TO14:PRINTCHR$(25);:NEXT
 150 PRINT"   A pozíció változókkal is meghatározható."
 160 PRINT:LIST200-240:PRINT
 200 A$="TV COMPUTER":I$=" pozíció: "
 210 INPUTPROMPT"Kezdő"&I$:K   
 220 INPUTPROMPT"Végző"&I$:V   
 230 B$=A$(K:V)
 240 PRINTA$,B$
 250 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 260 PRINTAT8,0:"":FORI=1TO14:PRINTCHR$(25);:NEXT
 270 PRINT"   Nyomtathatunk adott hosszúságú szeletet is."
 280 PRINT:LIST300-340:PRINT
 300 A$="TV COMPUTER":I$=" pozíció: "
 310 INPUTPROMPT"Kezdő"&I$:K   
 320 INPUTPROMPT"hosszúság: ":H
 330 B$=A$(K:K+H-1)
 340 PRINTA$,B$
Szövegfüggvények: szeletelés 2
  10 GRAPHICS4
  20 PRINT"   SZÖVEGFÜGGVÉNYEK: SZELETELÉS":PRINT
  30 PRINT:PRINT"   Első szelet:":PRINT
  40 PRINT"   Tetszőleges szövegkonstans,  vagy szövegváltozó elejéről leválaszthatunk adott hosszúságú  szeletet."
  50 PRINT:PRINT:LIST100-120:PRINT
 100 A$="TV COMPUTER"
 110 B$=A$(:7)
 120 PRINTA$,B$
 130 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 140 PRINTAT9,0:"":FORI=1TO14:PRINTCHR$(25);:NEXT
 150 PRINT"   A hosszúság változókkal is   meghatározható."
 160 PRINT:LIST200-230:PRINT
 200 A$="TV COMPUTER"
 210 INPUTPROMPT"Hosszúság: ":H
 220 B$=A$(:H)
 230 PRINTA$,B$
Szövegfüggvények: szeletelés 3
  10 GRAPHICS4
  20 PRINT"   SZÖVEGFÜGGVÉNYEK: SZELETELÉS":PRINT
  30 PRINT:PRINT"   Hátsó szelet:":PRINT
  40 PRINT"   Tetszőleges szövegkonstans,  vagy szövegváltozó végéről levághatunk egy adott pozícióval  kezdődő szeletet."
  50 PRINT:PRINT:LIST100-120:PRINT
 100 A$="TV COMPUTER"
 110 B$=A$(4:)
 120 PRINTA$,B$
 130 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 140 PRINTAT9,0:"":FORI=1TO14:PRINTCHR$(25);:NEXT
 150 PRINT"   A pozíció változóval is meghatározható."
 160 PRINT:LIST200-230:PRINT
 200 A$="TV COMPUTER":I$=" pozíció: "
 210 INPUTPROMPT"Kezdő"&I$:K   
 220 B$=A$(K:)
 230 PRINTA$,B$
 250 PRINTAT23,5:"Nyomj meg egy billentyűt!":GET
 260 PRINTAT8,0:"":FORI=1TO14:PRINTCHR$(25);:NEXT
 270 PRINT"   Nyomtathatunk adott hosszúságú szeletet is."
 280 PRINT:LIST300-330:PRINT
 300 A$="TV COMPUTER"
 310 INPUTPROMPT"hosszúság: ":H
 320 B$=A$(LEN(A$)-H+1:)
 330 PRINTA$,B$
Szövegfüggvények: szeletelés 4
  10 GRAPHICS4
  20 PRINT"   SZÖVEGFÜGGVÉNYEK: SZELETELÉS":PRINT
  30 PRINT:PRINT"   Egy karakter mint szelet:":PRINT
  40 PRINT"   Tetszőleges szövegkonstans,  vagy szövegváltozó adott pozíción levő karakterét kijelölhetjük szeletként."
  50 PRINT:LIST100-120:PRINT
 100 A$="TV COMPUTER"
 110 B$=A$(5)
 120 PRINTA$,B$
  10 GRAPHICS4
  20 PRINT"   SZÖVEGFÜGGVÉNYEK: SZELETELÉS":PRINT
  30 PRINT:PRINT"   Egy karakter mint szelet:":PRINT
  40 PRINT"   Tetszőleges szövegkonstans,  vagy szövegváltozó adott pozíción levő karakterét kijelőlhetjükszeletként."
  50 PRINT:LIST100-120:PRINT
 100 A$="TV COMPUTER"
 110 B$=A$(5)
 120 PRINTA$,B$

Függelék
Szoliter játékprogram lista

   1 ! szoliter játék TVC-re             játékgyáros 2003
   5 CLS
  10 GRAPHICS 16
  11 FOR I=1 TO 22
  12 SZIN=RND(15)+1:IF SZIN=8 THEN 12
  14 SET INK SZIN:PRINT AT I,1:" S Z O L I T E R "
  16 SET INK SZIN
  18 PRINT AT RND(22)+1,1 :" S Z O L I T E R ":IF INKEY$="" THEN 12
  20 GRAPHICS 4
  30 SET CHARACTER 160,0,60,126,126,126,126,126,126,60,0
  40 SET CHARACTER 161,0,0,24,36,66,66,36,24,0,0
  50 SET CHARACTER 162,85,170,85,170,85,170,85,170,85,170
  55 FOR I=1 TO 10
  60 SOUND PITCH 3950,VOLUME 10*I,DURATION 2*I
  65 NEXT I
  70 GRAPHICS 2:SET PALETTE 65,68,84,85
  75 PRINT AT 2,25:" S Z O L I T E R "
  78 PRINT AT 7,10:"Szeretettel meghívom egy érdekes társasjátékra !"
  80 PRINT AT 9,15:"A játék szabályai a következőek:"
  81 PRINT AT 11,4:"A játék kezdésekor a táblán 44 bábú és egy üres hely van."
  82 PRINT AT 12,4:"A lépéseket a következő szerint kell tenni: mindig át kell egy"
  83 PRINT AT 13,4:"bábút ugorni úgy, hogy mindig az üres helyre érkezzen, és akkor"
  84 PRINT AT 14,4:"az átugort bábút a számítógép leveszi, csökkenti a bábúk"
  85 PRINT AT 15,4:"számát.Ezt addig kell folytatni, míg csak egy marad a tábla"
  86 PRINT AT 16,4:"közepén.Ha nem akarsz tovább játszani, akkor '11'-et beírva "
  87 PRINT AT 17,4:"a számítógép véget vet a játéknak, némi értékeléssel."
  88 PRINT AT 19,4:"A játékhoz sok sikert kíván a programozó: a JÁTÉKGYÁROS."
  89 IF INKEY$="" THEN 89
  90 SET INK 1
  91 DIM O$(79)
  95 GRAPHICS 4:SET PALETTE 65,68,84,85:SET  BORDER 21
 100 FOR C= 1 TO 79
 110 LET O$(C)=CHR$(162)
 120 IF C>12 AND C<16 OR C>22 AND C<26 OR C>30 AND C<58 OR C>62 AND C<66 OR C>72 AND C<76 THEN O$(C)=CHR$(160)
 130 IF C=44 THEN O$(C)=CHR$(161)
 140 IF C=40 OR C=50 OR C=38 OR C=48 THEN O$(C)=CHR$(162)
 150 FOR D=1 TO 7
 160 IF C=((D*10)+9) THEN O$(C)=" "
 170 NEXT D
 180 NEXT C
 190 N$=" 1234567 "
 200 X=32
 210 ! ha feladod a játékot
 220 SET INK 5:PRINT AT 21,0:" Ha feladod, nyomd az 'F'-et"
 230 CLS
 280 IF X=1 AND O$(44)=CHR$(160) THEN  PRINT AT 19,2:"Gratulálok, sikerült!"
 290 E=1
 300 F=6
 305 PRINT AT 1,12:"SZOLITER":PRINT AT 4,4:"TVC 2.18. BASIC-ban készült.":SET INK 2:PRINT AT 2,10:"memóriajáték"
 310 PRINT AT F,12:N$
 320 SOUND PITCH 3950,VOLUME 10,DURATION 2
 330 F=F+1
 335 SET INK 1
 340 PRINT AT F,10:"  ";
 350 FOR C=E TO E+8
 365 SET INK 6:PRINT O$(C);
 370 NEXT C
 380 PRINT AT 3,11:" "
 390 E=E+10
 400 PRINT
 410 IF E=80 THEN PRINT AT F+1,12:CHR$(162);CHR$(162);CHR$(162);CHR$(162);CHR$(162);CHR$(162);CHR$(162);CHR$(162);CHR$(162)
 420 IF E=80 THEN GOTO 450
 430 IF E=11 THEN E=10
 440 GOTO 330
 450 F=6
 460 FOR C= 1 TO 9
 470 F=F+1
 480 SET INK 6:PRINT AT F,11:N$(C)
 485 SET INK 6:PRINT AT F,21:N$(C)
 490 NEXT C
 500 D=2
 510 FOR C=1 TO 12
 520 D=D+1
 530 NEXT C
 540 IF X=1 AND O$(44)=CHR$(160) THEN GOTO 960
 550 !lépések a táblán
 551 PRINT AT 8,0:"Lépés:";32-X:PRINT AT 10,0:"Levét:";32-X:PRINT AT 12,0:"Táblán";X
 560 SOUND PITCH 3950,VOLUME 10,DURATION 2
 570 PRINT AT 18,10:"Ugrás: ?";"-ról":PRINT AT 19,10:"Ugrás: ?";"-ra"
 572 PRINT AT F+1,12:N$
 575 PRINT AT 8,26:"írta:":PRINT AT 10,26:"játék-":PRINT AT 11,26:"gyáros":PRINT AT 13,27:"2003"
 576 PRINT AT 21,1:" "
 577 INPUT PROMPT"Honnan, hova? ":A
 580 !a=VAL(X$)
 582 IF X$=" " THEN 576
 590 IF X$="F" OR X$="f" THEN 920
 610 IF A=11  THEN 920
 620 PRINT AT 18,15:A
 630 PRINT AT 21,1:" "
 640 INPUT PROMPT"Honnan, hova? ":B
 650 PRINT AT 19,15:B
 655 PRINT AT 14,0:"Utolsó";A
 657 PRINT AT 15,7:B
 670 IF ABS (A-B)=2 OR ABS (A-B)=20 THEN 690
 680 GOTO 740
 690 IF O$(A)=CHR$(162) OR O$(B)=CHR$(162) THEN GOTO 740
 700 IF O$(A)<>CHR$(160) OR O$(B)<>CHR$(161) THEN GOTO 740
 710 IF O$((A+B)/2)=CHR$(162) THEN GOTO 740
 720 IF O$((A+B)/2)=CHR$(161) THEN GOTO 740
 730 GOTO 830
 740 PRINT AT 18,10:"Szabálytalan!"
 750 SOUND PITCH 3950,VOLUME 10,DURATION 2
 770 PRINT AT 19,10:"Nyomd az Enter-t"
 780 INPUT X$
 790 PRINT AT 18,10:"                "
 800 PRINT AT 19,10:"                "
 810 GOTO 577
 820 ! lépés a bábukkal
 830 O$(A)=CHR$(161)
 840 O$((A+B)/2)=CHR$(161)
 850 O$(B)=CHR$(160)
 860 X=X-1
 870 GOTO 280
 880 FOR C=13 TO 75
 890 IF O$(C)=CHR$(160) AND O$(C+1)<>CHR$(160) OR O$(C+10)<>CHR$(160) THEN 920
 900 NEXT C
 910 GOTO 280
 920 PRINT AT 17,3:"még maradt  ";X;CHR$(160);" a táblán !"
 930 PRINT AT 18,0:"                      "
 935 PRINT AT 19,0:"                      "
 937 PRINT AT 20,0:"                      "
 940 IF X=6 OR X=7 OR X>8 THEN PRINT AT 20,3:"Ezt még lehet gyakorolni!"
 950 IF X=3 OR X=4 OR X=5 THEN PRINT AT 20,3:"Ez igen szép teljesítmény!"
 960 PRINT AT 21,0:"                      "
 970 STOP
9200 SAVE"szoliter"
Maya játékprogram lista

   5 REM ***********************       
  10 REM *     maya-játék     *
  15 REM ***********************
  20 DIM DI$(9)*40,BO$(9)*40,SU$(9)*40,VE$(3)*40,X$*40,G(13)
  25 DIM TL(13),IN(13,2)
  30 RANDOMIZE
  45 DI$(1)="   Gondolkodom !                        "
  50 DI$(2)="     Ez igen !                          "
  55 DI$(3)=" Tűrhető lépés ...                      "
  60 DI$(4)=" Igyekeznem kell !                      "
  65 DI$(5)="Magam sem léphettem   volna különbet !  "
  70 DI$(6)="    Ez nagyon jó        lépés volt !    "
  75 DI$(7)="   Úgy látom, ön    gyakorlott jatékos. "
  80 DI$(8)="  Gratulálok, ön      kiváló játékos !  "
  85 DI$(9)="  Öntől talán még    én is tanulhatok ! "
  90 BO$(1)="   Nincs valami      nagy formában ...  "
  95 BO$(2)="  Ez bizony elég      gyatra lépés ...  "
 100 BO$(3)="   Jobb lenne,         ha feladná ...   "
 105 BO$(4)="Hát, nincs sok érzéke ehhez a játékhoz.  "
 110 BO$(5)="   Nem túlzottan        erős lépés.     "
 115 BO$(6)="Fáradtnak látszik...                    "
 120 BO$(7)="     Egy kicsit     szedje össze magát !"
 125 BO$(8)="    Van még mit          tanulnia !     "
 130 BO$(9)="   Úgysem jár túl       az eszemen !    "
 135 SU$(1)="   Ne piszmogjon       már annyit ...   "
 140 SU$(2)="   Unatkozom ...                        "
 145 SU$(3)="   Ha nincs kedve    játszani, szóljon. "
 150 SU$(4)="     Ha fáradt,         hagyjuk abba.   "
 155 SU$(5)=" Jól gondolja meg !                     "
 160 SU$(6)="      Ön lép !                          "
 165 SU$(7)="   Itt van még ?                        "
 170 SU$(8)="Hiába húzza az időt, nincs sok esélye..."
 175 SU$(9)="    Igyekezzen          egy kicsit !    "     
 235 FOR I=0 TO 12  
 240 IF I=6 THEN 260    
 245 TL(I)=6
 250 IN(I,1)=2
 255 IN(I,2)=3
 260 NEXT I
 261 TL(6)=0:TL(13)=0
 265 IN(6,1)=1
 270 IN(6,2)=1
 275 IN(13,1)=1
 280 IN(13,2)=1
 282 IF UJ=1 THEN 284
 283 GOSUB 315  :REM jatekos koszontese
 284 GOSUB 940  :REM a tabla kirajzolasa
 285 GOSUB 1250 :REM a golyok kiosztasa
 286 GOSUB 1220 :REM sorszamozas
 287 X$="Öné az első lépés !                     ":GOSUB 1335
 288 GOSUB 600 :REM a jatekos lepese      
 289 IF E=0 THEN GOTO 294
 290 IF TL(13)<TL(6)+3 THEN GOSUB 1730:GOTO 292 :REM elismeres
 291 GOSUB 1765 :REM jatekos bosszantasa
 292 GOSUB 1785 :REM a gep lepese       
 293 IF E<>0 THEN GOTO 288
 294 GOSUB 790 :REM a jatszma vege
 295 IF UJ=1 THEN 235                      
 296 X$="Köszönöm a játékot !      Viszlát !     "
 297 GOSUB 1335
 298 FOR I=1 TO 1300:NEXT I
 299 GRAPHICS 4
 300 END
 312 REM ************************
 313 REM * a jatekos köszöntese *
 314 REM ***********************
 315 GRAPHICS 2
 316 PRINT AT 2,30:"A W A R I"
 317 PRINT AT 7,10:"Szeretettel meghívom egy érdekes társasjátékra !"
 318 PRINT AT 9,10:"Kívánja, hogy elmondjam a játék szabályait ? (i/n)"
 319 A$=INKEY$
 320 IF A$<>"i" AND A$<>"n" THEN 319
 321 IF A$="n" THEN 344
 322 CLS:PRINT "   A játékot  ketten játszhatják.  A két  egymással  szemközt"
 323 PRINT "ülő játékosnak 6-6 tálkája van, amelyek mindegyikében 6 golyó"
 324 PRINT "foglal helyet.  Mindkét játékosnak  van egy gyűjtőtálkája is,"
 325 PRINT "ezek a játék kezdetén üresek."
 326 PRINT "   A játékosok felváltva lépnek, a következő módon: a játékos"
 327 PRINT "kiválasztja  az egyik tálkáját,  kiveszi  a tartalmát,  és az"
 328 PRINT "óramutató járásával ellenkező irányban szétosztja a golyókat."
 329 PRINT "Ha a saját tálkáinak  a végére ért,  a műveletet  az ellenfél"
 330 PRINT "tálkáiban folytatja.
 331 PRINT "   Két fontos szabály :
 332 PRINT "     - ha a szétosztás  saját gyűjtőtálkában ért véget, akkor"
 333 PRINT "       a játékos újra léphet;"
 334 PRINT "     - ha az utolsó golyó  olyan tálkába  került,  amely üres"
 335 PRINT "       volt,  és a szemben levő  tálkában  van  golyó,  akkor"
 336 PRINT "       a játékos mindkét tálka tartalmát elnyeri,  és a saját"                                                                       
 337 PRINT "       gyűjtőtálkájába teszi."
 338 PRINT "   A játéknak  vége van,  ha az  egyik játékos  összegyűjtött"
 339 PRINT "legalább 37 golyót, vagy ha az egyik játékos térfele kiürült."
 340 PRINT "( A győztes  ebben  az esetben is az,  akinek  több golyó van"
 341 PRINT "a gyűjtőtálkájában ! )
 342 PRINT:PRINT "   Ha kezdhetjük, nyomjon le egy tetszőleges billentyűt !"
 343 IF INKEY$="" THEN 343
 344 RETURN
 597 REM ************************
 598 REM *   a jatekos lepese   *
 599 REM ************************
 600 S=0
 605 FOR I=1 TO 100:NEXT I
 610 PRINT AT 23,23:"?"
 615 FOR I=1 TO 100:NEXT I
 620 PRINT AT 23,23:" "
 625 S=S+1:IF S=35 THEN GOSUB 1680
 630 A$=INKEY$
 632 IF A$="" THEN 605 
 635 IF A$<"1" OR A$>"6" THEN GOSUB 1385:GOTO 600
 640 L=VAL(A$):LX=L  
 645 IF TL(L-1)=0 THEN GOSUB 1385:GOTO 600
 646 SET INK1:PRINT AT 23,9+L*2:A$:SET INK 3
 650 X$=STRING$(40," "):GOSUB 1335
 655 GOSUB 1415 :REM talkaurites
 675 L=L-1:IN(L,1)=1:IN(L,2)=1:H=6                 
 677 GOSUB 1465 :REM a lepes megtetele
 685 GOSUB 2015 :REM pontszamkiiras
 690 H=13:GOSUB 2015
 691 PRINT AT 23,9+LX*2:A$
 692 GOSUB 860 :REM vege ?
 695 IF E=0 THEN JELZO=0:RETURN
 700 JELZO=JELZO+1
 705 IF L<>6 OR JELZO<>1 THEN 725
 715 X$="  Újra léphet ...                       ":GOSUB 1335
 720 GOTO 600 :REM ujra lephet
 725 JELZO=0
 726 RETURN
 787 REM ***********************
 788 REM *   a jatszma vege    *
 789 REM ***********************
 790 IF TL(6)=TL(13) THEN X$="    Döntetlen !     Játszunk még ? (i/n)"
 795 IF TL(6)<TL(13) THEN X$="  Én győztem !   Még egy partit ? (i/n) "
 800 IF TL(6)>TL(13) THEN X$="  Ön győzött...  Egy visszavágó ? (i/n) "
 801 GOSUB 1335
 802 JELZO=0
 805 A$=INKEY$
 810 IF A$<>"i" AND A$<>"n" THEN 805
 815 IF A$="i" THEN UJ=1:ELSE UJ=0
 820 RETURN
 857 REM ***********************
 858 REM *       vege ?        *
 859 REM ***********************
 860 E=0
 865 IF TL(6)>36 OR TL(13)>36 THEN RETURN 
 870 I=0
 875 IF TL(I)<>0 THEN 890
 880 IF I=5 THEN 885:ELSE I=I+1:GOTO 875
 885 RETURN
 890 I=7
 895 IF TL(I)<>0 THEN E=1:GOTO 905
 900 IF I=12 THEN 905:ELSE I=I+1:GOTO 895   
 905 RETURN
 925 REM ***********************
 930 REM *  tabla kirajzolasa  *
 935 REM ***********************
 940 GRAPHICS 4:SET PALETTE 65,68,84,85 
 945 X=0:Y=0:V=1023:F=959:K=2:A=0:GOSUB 1085
 950 K=3:A=1
 955 V=143:F=560 
 960 X=16:Y=200:GOSUB 1085
 965 X=864:Y=200:GOSUB 1085
 970 V=98:F=280
 975 FOR I=0 TO 5
 980 X=182+I*112:Y=120:GOSUB 1085
 985 X=742-I*112:Y=560:GOSUB 1085
 990 NEXT I
1000 RETURN
1082 REM ***********************
1083 REM * keret (talka) rajz. *
1084 REM ***********************
1085 SET INK K
1090 PLOT X,Y;X+V,Y;X+V,Y+F;X,Y+F;X,Y
1095 SET INK A
1100 PLOT X+4,Y+4,PAINT
1105 RETURN
1217 REM ***********************
1218 REM *    sorszamozas      *
1219 REM ***********************
1220 SET INK 3
1225 PRINT AT 23,11:"1 2 3 4 5 6"
1230 PRINT AT 2,12:"6 5 4 3 2 1"
1235 PRINT AT 4,2:"P:0"
1240 PRINT AT 21,28:"P:0"
1245 RETURN
1247 REM ***********************
1248 REM * a golyok kiosztasa  *
1249 REM ***********************
1250 XX=188:Y=376:S=2
1260 FOR I=1 TO 2
1265 FOR K=0 TO 3
1270 FOR J=0 TO 5
1275 X=XX+J*112+K*24:GOSUB 2044     
1280 NEXT J
1285 NEXT K
1286 Y=Y-36
1290 FOR K=0 TO 1
1295 FOR J=0 TO 5
1300 X=XX+J*112+K*24:GOSUB 2044
1305 NEXT  
1310 NEXT  
1315 Y=816
1320 NEXT  
1325 RETURN
1332 REM ************************
1333 REM *     szovegkiiras     *
1334 REM ************************
1335 PRINT AT 12,7:X$(:20)    
1340 PRINT AT 13,7:X$(21:)      
1345 RETURN
1382 REM ***********************
1383 REM *    hibas lepes !    *
1384 REM ***********************
1385 X$="  Legyen egy kissé     figyelmesebb !  "      
1390 GOSUB 1335
1395 SOUND PITCH 4000,VOLUME 9 
1400 RETURN
1410 REM ***********************
1411 REM *    talkaurites      *
1412 REM ***********************
1415 IF L<7 THEN YY=376:XX=78+L*112:GOTO 1425
1420 YY=816:XX=78+(14-L)*112
1425 YJ=0:XJ=0
1430 FOR I=1 TO TL(L-1)
1435 IF XJ=4 THEN XJ=0:YJ=YJ+1
1440 X=XX+XJ*24:Y=YY-YJ*36:S=1:GOSUB 2044
1441 SOUND PITCH 2500,VOLUME 6,DURATION 2
1442 FOR J=1 TO 100:NEXT J
1445 XJ=XJ+1
1450 NEXT I
1455 RETURN
1462 REM ************************
1463 REM *  a lepes megtetele   *
1464 REM ************************
1465 P=TL(L):TL(L)=0
1470 FOR PP=P TO 1 STEP -1
1475 L=L+1
1480 IF L<=13 THEN 1490
1485 L=L-14
1490 TL(L)=TL(L)+1
1495 IF L<6 THEN L1=L:GOSUB 1620
1500 IF L>=7 AND L<>13 THEN L1=12-L:GOSUB 1620
1505 IF L=13 OR L=6 THEN GOSUB 1650
1515 NEXT PP               
1520 IF TL(L)<>1 THEN 1535
1525 IF (L-6)*(L-13)=0 THEN 1535    
1530 IF TL(12-L)<>0 THEN 1540
1535 RETURN
1540 TL(H)=TL(H)+TL(12-L)+1:R=TL(L)+TL(12-L)-1
1555 L=L+1:GOSUB 1415
1560 L=14-L:GOSUB 1415
1565 TL(L-1)=0:TL(13-L)=0
1580 IN(13-L,1)=1:IN(13-L,2)=1:IN(L-1,1)=1:IN(L-1,2)=1
1585 LL=L-1    
1590 L=H
1595 FOR I=0 TO R
1600 GOSUB 1650
1605 NEXT I
1608 L=LL
1615 RETURN
1617 REM *********************** 
1618 REM *    golyo talkaba    *
1619 REM ***********************
1620 S=2 
1621 X=164+L1*112+IN(L,2)*24
1622 IF L<6 THEN Y=412-IN(L,1)*36:GOTO 1624
1623 Y=852-IN(L,1)*36
1624 GOSUB 2044     
1625 SOUND PITCH 3958,VOLUME 7,DURATION 2
1626 FOR J=1 TO 200:NEXT J
1635 IF IN(L,2)<4 THEN IN(L,2)=IN(L,2)+1:GOTO 1645
1640 IN(L,1)=IN(L,1)+1:IN(L,2)=1
1645 RETURN
1647 REM ***********************
1648 REM *   golyo gyujtobe    *
1649 REM************************
1650 S=2
1651 Y=772-IN(L,1)*36
1652 IF L=6 THEN X=852+IN(L,2)*24:GOTO 1654
1653 X=4+IN(L,2)*24
1654 GOSUB 2044
1655 SOUND PITCH 3950,VOLUME 10,DURATION 2
1656 FOR J=1 TO 200:NEXT J
1665 IF IN(L,2)<5 THEN IN(L,2)=IN(L,2)+1:GOTO 1675
1670 IN(L,1)=IN(L,1)+1:IN(L,2)=1
1675 RETURN
1677 REM ***********************  
1678 REM *     surgetes        *
1679 REM ***********************
1680 J=RND(9)+1
1685 X$=SU$(J):GOSUB 1335
1690 S=0:RETURN
1727 REM ************************
1728 REM *      elismeres       *
1729 REM ************************
1730 J=RND(12)+1
1735 IF J>9 THEN 1745
1740 X$=DI$(J):GOSUB 1335
1745 RETURN
1762 REM ************************
1763 REM *     bosszantas       *
1764 REM ************************
1765 J=RND(12)+1
1770 IF J>9 THEN 1780
1775 X$=BO$(J):GOSUB 1335
1780 RETURN
1782 REM ************************
1783 REM *    a gep lepese      *
1784 REM ************************
1785 D=-99:H=13
1805 FOR I=0 TO 13:G(I)=TL(I):NEXT I
1810 FOR J=7 TO 12
1815 IF TL(J)=0 THEN 1930
1820 B1=TL(13)
1825 Q=0:M=J:GOSUB 1957      
1830 FOR I=0 TO 5
1835 IF TL(I)=0 THEN 1895
1840 L=TL(I)+I
1845 R=0
1850 IF L<=13 THEN 1870
1855 L=L-14
1860 R=1
1865 GOTO 1850
1870 IF TL(L)<>0 THEN 1885
1875 IF (L-6)*(L-13)=0 THEN 1885
1880 R=TL(12-L)+R
1885 IF R<=Q THEN 1895
1890 Q=R
1895 NEXT I
1900 Q=TL(13)-TL(6)-Q
1905 FOR I=0 TO 13
1910 TL(I)=G(I)
1915 NEXT I
1920 IF Q<D THEN 1930
1925 A=J:D=Q
1930 NEXT J
1935 IN(A,1)=1:IN(A,2)=1
1936 FOR J=1 TO 500:NEXT J
1937 X$=STRING$(40," "):GOSUB 1335
1940 SET INK 1:PRINT AT 2,38-(A+1)*2:STR$(A-6):SET INK 3
1945 L=A+1:GOSUB 1415 :REM talkaurites
1947 L=A:GOSUB 1465 :REM a lepes megtetele
1948 GOSUB 2015:H=6:GOSUB 2015:H=13 :REM pontszamkiiras
1949 PRINT AT 2,38-(A+1)*2:STR$(A-6)
1950 GOSUB 860 :REM vege ?
1951 IF E=0 THEN JELZO=0:RETURN
1952 JELZO=JELZO+1
1953 IF L<>13 OR JELZO<>1 THEN 1956
1954 X$="  Újra léphetek !                       ":GOSUB 1335
1955 GOSUB 1785 :REM ujra lep    
1956 JELZO=0:RETURN
1957 P=TL(M):TL(M)=0
1960 FOR PP=P TO 1 STEP -1
1965 M=M+1
1970 IF M<=13 THEN 1980
1975 M=M-14
1980 TL(M)=TL(M)+1
1985 NEXT PP
1990 IF TL(M)<>1 THEN 2005
1995 IF (M-6)*(M-13)=0 THEN 2005 
2000 IF TL(12-M)<>0 THEN 2010
2005 RETURN
2010 TL(H)=TL(H)+TL(12-M)+1:TL(M)=0:TL(12-M)=0
2011 RETURN
2012 REM ***********************
2013 REM *   pontszamkiiras    *
2014 REM ***********************
2015 IF H=6 THEN PRINT AT 21,30:STR$(TL(6)):RETURN
2020 PRINT AT 4,4:STR$(TL(13)):RETURN
2041 REM ***********************
2042 REM *  golyo rajz./torl.  *
2043 REM ***********************
2044 SET INK S
2045 PLOT X,Y;X+16,Y
2050 PLOT X,Y-4;X+16,Y-4
2055 PLOT X,Y+4;X+16,Y+4
2060 PLOT X,Y-8;X+16,Y-8
2065 PLOT X,Y+8;X+16,Y+8
2070 PLOT X+4,Y-12;X+12,Y-12
2075 PLOT X+4,Y+12;X+12,Y+12
2090 SET INK 3
2095 RETURN
Othelló játékprogram lista

 100 !program otello
 110 GRAPHICS16
 115 PRINT AT 12,2:"R E V E R S I"
 116 FOR VARJAL=0 TO 1000:NEXT:GRAPHICS4
 118 PRINT "Kíváncsi a szabályokra? [I/N]":GOSUB 190:IF  F$="I" OR F$="i" THEN GOSUB 3240
 119 CLS
 120 CLR$=CHR$(11)
 130 ETAB=1:UTAB=24
 140 T0=0:P=0:N=0
 150 DIM FIGURAK$(4)*12
 155 DIM N$*100,I$*100
 160 GOSUB 2780
 170 POKE 2918,1 !CAPS LOCK
 180 PRINT AT 23,1:CLR$;"Velem akar játszani? [I/N]":GOSUB 190:GOTO 210
 190 F$=INKEY$:IF F$<>"I" AND F$<>"i" AND F$<>"N" AND F$<>"n" THEN GOTO 190
 200 RETURN
 210 IF F$="n" OR F$="N" THEN F$="":GOTO 280
 220 PRINT AT 23,1:CLR$;CHR$(158);" legyek? [I/N]"
 230 GOSUB 190
 240 !
 250 !
 260 IF F$="I" OR F$="i" THEN F$="x":GOTO 280
 270 F$="o"
 280 PRINT AT 23,1:CLR$;
 281 IF F$="x" THEN SET CHARACTER 158,255,129,189,189,189,189,129,255,0
 282 IF F$="o" THEN SET CHARACTER 158,255,129,189,165,165,189,129,255,0
 283 IF F$="" THEN SET CHARACTER 158,255,255,255,255,255,255,255,255,255,255
 290 DIM FT(10,10)
 300 DIM T$(10,10)*2
 310 FOR I=0 TO N
 320 FOR J=0 TO N
 330 T$(I,J)="":FT(I,J)=0
 340 NEXT J
 350 NEXT I
 360 G$="x":I=N/2:J=N/2:GOSUB 2690
 370 I=N/2+1:J=N/2+1:GOSUB 2690
 380 G$="o":I=N/2:J=N/2+1:GOSUB 2690
 390 I=N/2+1:J=N/2:GOSUB 2690
 400 G$="x":S$="o":X=2:O=2
 410 IF X+O=N*N THEN 710
 420 IF X=0 OR O=0 THEN 710
 430 IF F$=G$ THEN 820
 440 PRINT AT 10,UTAB:FIGURAK$(3+(G$="o"));CLR$;" lép"
 450 !
 460 I$="":IT$=CLR$&"Lépése: "
 461 IF G$="x" THEN SET CHARACTER 158,255,129,189,189,189,189,129,255,0
 462 IF G$="o" THEN SET CHARACTER 158,255,129,189,165,165,189,129,255,0
 470 PRINT AT 23,1:CLR$;:INPUT PROMPT "Lépése: ": I$
 480 !
 490 IF I$(1:1)="0" THEN 510
 495 IF I$="*" THEN RUN
 500 GOTO 540
 510 IF P=0 THEN P=1:GOTO 640
 511 IF P=2 THEN STOP
 520 GOTO 710
 540 P=0
 541 IF LEN(I$)<>2 THEN 460
 560 J$=I$(2:2)
 570 J0=ORD(I$)-64:I0=N-VAL(J$)
 580 !
 590 IF I0<1 OR I0>N OR J0<1 OR J0>N THEN 680
 600 FL=1:GOSUB 2010
 610 IF K=0 THEN 680
 620 GS$=G$:G$=S$:S$=GS$
 630 GOTO 410
 640 T0=1:TP$=F$:F$=G$:PRINT AT 23,1:CLR$;"CONTROL!"
 650 GOSUB 820
 660 F$=TP$
 670 IF NO=1 THEN 620
 680 SOUND DURATION 30:PRINT AT 23,1:CLR$;"Illegális lépés! --> ";I$
 690 FOR VARJAL=0 TO 1000:NEXT VARJAL
 700 GOTO 440
 710 IF F$="x" AND X>O OR F$="o" AND O>X THEN PRINT AT 23,1:CLR$;"Talán majd legközelebb!"
 720 IF F$<>"" AND X=O THEN PRINT AT 23,1:CLR$;"Izgalmas játék volt!"
 730 IF F$="x" AND X<O OR F$="o" AND O<X THEN PRINT AT 23,1:CLR$;"Gratulálok a győzelméhez!"
 740 FOR VARJAL=0 TO 1000:NEXT VARJAL
 750 PRINT AT 23,1:CLR$;"Jöhet a következő játék? [I/N]"
 760 GOSUB 190
 770 IF F$="N" OR F$="n" THEN END
 780 !
 790 !
 800 !
 810 RUN
 820 FL=0
 830 PRINT AT 10,UTAB:FIGURAK$(3+(G$="o"));CLR$;" lép"
 840 IF T0=0 THEN PRINT AT 23,1:CLR$;"Türelmet kérek, gondolkozom!"
 850 KM=0:I=0:J=0
 860 FOR I0=1 TO N STEP N-1
 870 FOR J0=1 TO N STEP N-1
 880 GOSUB 2010
 890 IF K>KM THEN I=I0:J=J0:KM=K
 900 NEXT J0
 910 NEXT I0
 920 IF KM>0 THEN 1910
 930 FOR I0=2 TO N-1
 940 FOR J0=1 TO N STEP N-1
 950 FT(I0,J0)=1
 960 IF T$(I0,J0)<>"" THEN 1010
 970 IF T$(I0-1,J0)<>"" THEN KI=-1:KJ=0:GOSUB 1700
 980 IF T$(I0+1,J0)<>"" THEN KI=1:KJ=0:GOSUB 1700
 990 IF FT(I0,J0)>=0 THEN GOSUB 2010
1000 IF K>KM THEN I=I0:J=J0:KM=K
1010 NEXT J0
1020 NEXT I0
1030 FOR I0=1 TO N STEP N-1
1040 FOR J0=2 TO N-1
1050 FT(I0,J0)=1
1060 IF T$(I0,J0)<>"" THEN 1110
1070 IF T$(I0,J0-1)<>"" THEN KI=0:KJ=-1:GOSUB 1700
1080 IF T$(I0,J0+1)<>"" THEN KI=0:KJ=1:GOSUB 1700
1090 IF FT(I0,J0)>=0 THEN GOSUB 2010
1100 IF K>KM THEN I=I0:J=J0:KM=K
1110 NEXT J0
1120 NEXT I0
1130 IF KM>0 THEN 1910
1140 FOR I0=3 TO N-2
1150 FOR J0=3 TO N-2
1160 GOSUB 2010
1170 IF K>KM THEN I=I0:J=J0:KM=K
1180 NEXT J0
1190 NEXT I0
1200 IF KM>0 THEN 1910
1210 IF T$(1,1)<>"" THEN I0=2:J0=2:GOSUB 2010
1220 IF K>KM THEN I=I0:J=J0:KM=K
1230 IF T$(1,N)<>"" THEN I0=2:J0=N-1:GOSUB 2010
1240 IF K>KM THEN I=I0:J=J0:KM=K
1250 IF T$(N,1)<>"" THEN I0=N-1:J0=2:GOSUB 2010
1260 IF K>KM THEN I=I0:J=J0:KM=K
1270 IF T$(N,N)<>"" THEN I0=N-1:J0=N-1:GOSUB 2010
1280 IF K>KM THEN I=I0:J=J0:KM=K
1290 FOR I0=3 TO N-2
1300 FOR J0=2 TO N-1 STEP N-3
1310 GOSUB 2010
1320 IF K>KM THEN I=I0:J=J0:KM=K
1330 NEXT J0
1340 NEXT I0
1350 FOR I0=2 TO N-1 STEP N-3
1360 FOR J0=3 TO N-2
1370 GOSUB 2010
1380 IF K>KM THEN I=I0:J=J0:KM=K
1390 NEXT J0
1400 NEXT I0
1410 IF KM>0 THEN 1910
1420 FOR I0=2 TO N-1
1430 FOR J0=1 TO N STEP N-1
1440 IF FT(I0,J0)<0 THEN GOSUB 2010
1450 IF K>KM THEN I=I0:J=J0:KM=K
1460 NEXT J0
1470 NEXT I0
1480 FOR I0=1 TO N STEP N-1
1490 FOR J0=2 TO N-1
1500 IF FT(I0,J0)<0 THEN GOSUB 2010
1510 IF K>KM THEN I=I0:J=J0:KM=K
1520 NEXT J0
1530 NEXT I0
1540 IF KM>0 THEN 1910
1550 IF T$(1,1)<>"" THEN I0=2:J0=2:GOSUB 2010
1560 IF K>KM THEN I=I0:J=J0:KM=K
1570 IF T$(1,N)<>"" THEN I0=2:J0=N-1:GOSUB 2010
1580 IF K>KM THEN I=I0:J=J0:KM=K
1590 IF T$(N,1)<>"" THEN I0=N-1:J0=2:GOSUB 2010
1600 IF K>KM THEN I=I0:J=J0:KM=K
1610 IF T$(N,N)<>"" THEN I0=N-1:J0=N-1:GOSUB 2010
1620 IF K>KM THEN I=I0:J=J0:KM=K
1630 IF KM>0 THEN 1910
1640 IF T0=0 THEN PRINT AT 23,1:CLR$;"Pass."
1650 FOR VARJAL=0 TO 1000:NEXT VARJAL
1660 !
1670 IF T0<>0 THEN T0=0:NO=1:RETURN
1680 IF P=0 THEN P=1:GOTO 620
1690 GOTO 700
1700 K=0:I1=I0+KI:J1=J0+KJ
1710 IF T$(I1,J1)<>G$ THEN 1740
1720 I1=I1+KI:J1=J1+KJ
1730 IF I1<1 OR I1<N OR J1<1 OR J1>N THEN FT(I0,J0)=0:RETURN
1740 IF T$(I1,J1)="" THEN RETURN
1750 IF T$(I1,J1)<>S$ THEN 1790
1760 I1=I1+KI:J1=J1+KJ
1770 IF I1<1 OR I1>N OR J1<1 OR J1>N THEN FT(I0,J0)=-FT(I0,J0) :RETURN
1780 GOTO 1750
1790 IF T$(I1,J1)="" THEN FT(I0,J0)=-FT(I0,J0):RETURN
1800 IF T$(I1,J1)<>G$ THEN 1880
1810 I1=I1+KI:J1=J1+KJ
1820 IF I1<1 OR I1<N OR J1<1 OR J1>N THEN 1840
1830 GOTO 1880
1840 IF T$(I0+KI,J0+KJ)=S$ THEN 1860
1850 GOTO 1870
1860 FT(I0,J0)=0:RETURN
1870 FT(I0,J0)=-FT(I0,J0):RETURN
1880 IF T$(I1,J1)=S$ THEN FT(I0,J0)=-FT(I0,J0):RETURN
1890 IF T$(I0+KI,J0+KJ)=G$ THEN FT(I0,J0)=-FT(I0,J0)
1900 RETURN
1910 IF T0=1 THEN T0=0:NO=0:RETURN
1920 PRINT AT 23,1:CLR$;
1930 FOR L=1 TO 10
1940 PRINT AT I*2,(2*J):FIGURAK$(3+(G$="o"))
1950 PRINT AT I*2,(2*J):FIGURAK$(4)
1960 NEXT L
1970 I0=I:J0=J:FL=1:GOSUB 2010
1980 G$=S$:S$=F$
1990 P=0
2000 GOTO 410
2010 K=0
2020 IF T$(I0,J0)<>"" THEN RETURN
2030 IF I0>1 AND J0>1 THEN 2050
2040 GOTO 2080
2050 IF T$(I0-1,J0-1)<>S$ THEN 2080
2060 KI=-1:KJ=-1
2070 GOSUB 2490
2080 IF I0>1 THEN 2100
2090 GOTO 2130
2100 IF T$(I0-1,J0)<>S$ THEN 2130
2110 KI=-1:KJ=0
2120 GOSUB 2490
2130 IF I0>1 AND J0<N THEN 2150
2140 GOTO 2180
2150 IF T$(I0-1,J0+1)<>S$ THEN 2180
2160 KI=-1:KJ=1
2170 GOSUB 2490
2180 IF J0>1 THEN 2200
2190 GOTO 2230
2200 IF T$(I0,J0-1)<>S$ THEN 2230
2210 KI=0:KJ=-1
2220 GOSUB 2490
2230 IF J0<N THEN 2250
2240 GOTO 2280
2250 IF T$(I0,J0+1)<>S$ THEN 2280
2260 KI=0:KJ=1
2270 GOSUB 2490
2280 IF I0<N AND J0>1 THEN 2300
2290 GOTO 2330
2300 IF T$(I0+1,J0-1)<>S$ THEN 2330
2310 KI=1:KJ=-1
2320 GOSUB 2490
2330 IF I0<N THEN 2350
2340 GOTO 2380
2350 IF T$(I0+1,J0)<>S$ THEN 2380
2360 KI=1:KJ=0
2370 GOSUB 2490
2380 IF I0<N AND J0<N THEN 2400
2390 GOTO 2430
2400 IF T$(I0+1,J0+1)<>S$ THEN 2430
2410 KI=1:KJ=1
2420 GOSUB 2490
2430 IF K=0 OR FL=0 THEN RETURN
2440 IF G$="x" THEN X=X+K:O=O-K+1
2450 IF G$="o" THEN O=O+K:X=X-K+1
2460 PRINT AT 4,UTAB+4+(X>9):X
2470 PRINT AT 7,UTAB+4+(O>9):O
2480 RETURN
2490 I1=I0+2*KI:J1=J0+2*KJ
2500 IF I1<1 OR I1>N OR J1<1 OR J1>N THEN RETURN
2510 IF T$(I1,J1)=S$ THEN I1=I1+KI:J1=J1+KJ:GOTO 2500
2520 IF T$(I1,J1)="" THEN RETURN
2530 IF K>0 THEN K=K-1
2540 IF KI=0 THEN K=K+ABS(J1-J0):GOTO 2560
2550 K=K+ABS(I1-I0)
2560 IF FL=0 THEN RETURN
2570 IF KI<>0 THEN 2630
2580 I=I0
2590 FOR J=J0 TO J1-KJ STEP KJ
2600 GOSUB 2690
2610 NEXT J
2620 GOTO 2680
2630 J=J0
2640 FOR I=I0 TO I1-KI STEP KI
2650 GOSUB 2690
2660 J=J+KJ
2670 NEXT I
2680 RETURN
2690 !DEF FIGURATIR
2700 T$(I,J)=G$
2710 PRINT AT I*2,2*J:FIGURAK$(3+(G$="o"))
2720 !END DEF !FIGURATIR
2721 RETURN
2740 GET GET$
2750 IF GET$="" THEN 2740
2760 !
2770 RETURN
2780 !DEF KARGEN
2790 FIGURAK$(4)=CHR$(128)&CHR$(129)&CHR$(24)&CHR$(19)&CHR$(19)&CHR$(136)&CHR$(137)
2800 FIGURAK$(2)=CHR$(130)&CHR$(131)&CHR$(24)&CHR$(19)&CHR$(19)&CHR$(138)&CHR$(139)
2810 FIGURAK$(3)=CHR$(132)&CHR$(133)&CHR$(24)&CHR$(19)&CHR$(19)&CHR$(140)&CHR$(141)
2820 GOSUB 2840
2821 !END DEF !KARGEN
2830 RETURN
2840 !DEF KARINIC
2850 !
2860 SET CHARACTER 128,255,128,128,128,128,128,128,128,128,128!
2870 SET CHARACTER 129,255,1,1,1,1,1,1,1,1,1!
2880 SET CHARACTER 136,128,128,128,128,128,128,128,128,128,255!
2890 SET CHARACTER 137,1,1,1,1,1,1,1,1,1,255!
2900 SET CHARACTER 130,255,128,128,159,159,152,152,152,152,152!
2910 SET CHARACTER 131,255,1,1,249,249,25,25,25,25,25!
2920 SET CHARACTER 138,152,152,152,152,152,159,159,128,128,255!
2930 SET CHARACTER 139,25,25,25,25,25,249,249,1,1,255!
2940 SET CHARACTER 132,255,128,128,159,159,159,159,159,159,159!
2950 SET CHARACTER 133,255,1,1,249,249,249,249,249,249,249!
2960 SET CHARACTER 140,159,159,159,159,159,159,159,128,128,255!
2970 SET CHARACTER 141,249,249,249,249,249,249,249,1,1,255!
2980 SET CHARACTER 158,255,129,189,189,189,189,129,255,0
3000 !GRAPHICS 4
3010 PRINT AT 23,1:CLR$;"A négyzet mérete [4/6/8/10]";:INPUT N$
3020 N=VAL(N$)
3030 IF N/2<>INT(N/2) OR N<4 OR N>10 THEN 3010
3040 CLS
3050 !
3060 PLOT 50,959,
3070 FOR I=1 TO N
3080 PRINT #0:CHR$(64+I);" ";
3090 NEXT I
3100 !
3110 FOR I=1 TO N
3120 PRINT AT (I*2)+1,1:STR$(ABS(N-I));TAB((N*2)+2);STR$(ABS(N-I))
3130 FOR J=1 TO N
3140 PRINT AT I*2,J*2:FIGURAK$(4);
3150 NEXT J
3160 NEXT I
3170 PLOT 50,999-(I*2)*40,
3180 FOR I=1 TO N
3190 PRINT #0:CHR$(64+I);" ";
3200 NEXT I
3210 PRINT AT 3,UTAB:FIGURAK$(3);"  2"
3220 PRINT AT 6,UTAB:FIGURAK$(2);"  2"
3223 PRINT AT 10,UTAB:FIGURAK$(3);" Kezd!";
3230 !END DEF!KARINIC
3231 RETURN
3240 ! SZABÁLYOK
3245 CLS
3254 PRINT " Ezt a táblás játékot sokan for-";
3256 PRINT "ditgatós néven ismerik."
3258 PRINT " Két játékos játssza  4x4,  6x6,";
3260 PRINT "8x8 vagy 10x10-es táblán, külön-";
3262 PRINT "böző színü korongokkal."
3264 PRINT " Ha valamelyik játékos két figu-";
3266 PRINT "rája közrefogja az ellenfél né-"
3268 PRINT "hány figuráját (vizszintes, füg-";
3270 PRINT "gőleges vagy átlós irányban),"
3272 PRINT "akkor azokat saját színére változtatja át."
3274 PRINT " A játékosok felváltva tesznek"
3276 PRINT "korongokat a táblára."
3278 PRINT " Fontos megkötés, hogy minden"
3280 PRINT "lépésnél legalább egy ellenséges";
3282 PRINT "korongot át kell fordítani."
3284 PRINT " Ha a játékosnak nincs érvényes"
3286 PRINT "lépése, akkor, de csakis akkor,"
3288 PRINT "passzolhat. A játék akkor ér vé-";
3290 PRINT "get, ha a tábla betelt, vagy az"
3292 PRINT "egyik játékos figurái elfogytak,";
3294 PRINT "vagy ha egyik félnek sincs érvé-";
3296 PRINT "nyes lépése.";
3297 A$=INKEY$:IF A$=""THEN 3297
3298 CLS: PRINT "  Az nyer akinek több figurája"
3300 PRINT "van a táblán."
3302 PRINT:PRINT
3304 PRINT "  Ezzel a programmal a TVC ellen";
3306 PRINT "is játszhat.":PRINT
3308 PRINT "  Lépni, az oszlop és a sor megadásá";
3310 PRINT "val, (Pl.: C8),":PRINT
3311 PRINT "passzolni, a 0-val,":PRINT
3312 PRINT "a játékot feladni pedig a *-gal"
3313 PRINT "lehet."
3315 PRINT AT 23,1: "Bármely gomb indítja a játékot!"
3316 A$=INKEY$:IF A$=""THEN 3316
3318 RETURN
Mastermind játékprogram lista

1 REM Mastermind játék
  10 GRAPHICS 2
  20 PRINT"A gép 4 színt választ az alábbi 7 közül:"
  30 PRINT"fekete,kék,piros,lila"
  40 PRINT"zöld,cián,sárga"
  50 PRINT"Önnek ki kell találnia mit rejtett el a gép"
  60 PRINT"A színeket a nevük kezdőbetűjével adja meg"
  70 PRINT"Ha megnézte a szabályokat, nyomjon egy tetszőleges gombot!"
  80 A$=INKEY$:IF A$="" THEN 80
  90 SET CHARACTER 129,0,24,60,60,60,60,60,60,24,0
 100 GRAPHICS 16:SET BORDER 84
 110 SET PAPER 4:SET INK 10:CLS
 120 DIM T(7):RESTORE:RANDOMIZE
 130 S$="fkplzcs"
 140 FOR N=1 TO 7
 150 READ T(N)
 160 NEXT N
 170 C=1
 180 REM a 4 szín választása
 190 R$="":FOR N=1 TO 4
 200 A=INT(RND(8)):IF A=0 THEN 200:ELSE X$=S$(A)
 210 R$=R$&X$:NEXT N
 220 GOSUB 1500:REM fejléc nyomtatása
 230 PT=0:ST=0:SET INK 15
 240 PRINT USING"##":C;
 250 PRINT TAB(5)
 260 GOSUB 1000:REM válasz beolvasása
 265 REM pozíciótalálat vizsgálata
 270 FOR N=1 TO 4
 280 IF V$(N)<>R$(N) THEN 290
 282 PT=PT+1
 284 Y$=V$(N):FOR Q=1 TO 4
 286 IF V$(Q)=Y$ THEN V$(Q)="*"
 288 NEXT Q
 290 NEXT N
 295 REM színtalálat vizsgálata
 300 FOR N=1 TO 4
 310 FOR M=1 TO 4
 320 IF V$(M)<>R$(N) THEN 370
 330 ST=ST+1:Y$=V$(M)
 340 FOR Q=1 TO 4
 350 IF V$(Q)=Y$ THEN V$(Q)="*"
 360 NEXT Q
 370 NEXT M,N
 380 PRINT TAB(11)
 390 IF PT=4 THEN PRINT AT 23,0:"";:PRINT"Kitalálta":GOTO 490
 400 IF PT=0 THEN 430
 410 SET INK 0:FOR N= 1 TO PT
 420 PRINT CHR$(129);:NEXT N
 430 IF ST=0 THEN 460
 440 SET INK 15:FOR N=1 TO ST
 450 PRINT CHR$(129);:NEXT N
 460 PRINT"":C=C+1:SET INK 10
 470 IF C<15 THEN 230
 480 PRINT AT 23,0:"Nincs több lehetősége!"
 490 PRINT"Akar újabb játékot? (i/n)";
 500 INPUT X$:IF X$="i" THEN 100:ELSE END
 995 REM válasz beolvasása
1000 V$="":FOR N=1 TO 4
1010 X$=INKEY$:IF X$="" THEN 1010
1020 F=0:GOSUB 1100
1030 IF F=1 THEN 1010
1040 V$=V$&X$
1050 NEXT N:RETURN
1100 FOR M=1 TO 7
1110 IF X$=S$(M) THEN SET INK T(M):PRINT CHR$(129);:RETURN
1495 REM fejléc
1500 PRINT TAB(4);"válasz";
1510 PRINT TAB(11);"talál."
1520 RETURN
2000 DATA 0,9,10,11,12,13,14