  100 PROGRAM "HAMIKA.BAS"
  110 SET CHARACTERORD("£"),255,255,255,255,255,255,255,255,255
  120 STRING A$
  130 NUMERIC X,Y,VX,VY,KUKACX(0TO79),KUKACY(0TO79),MT,KAPUX,KAPUY,AKADSZ,HOSSZ,IDO,PLUSIDO
  190 SET KEYCLICKOFF
  210 DEF KERET
  220   SET STATUSOFF
  230   SET BORDERYELLOW
  240   SET #102:COLOR0,GREEN
  250   SET #102:COLOR1,WHITE
  260   CLEAR SCREEN
  270   SET #102:PAPER0
  280   PRINT #102,AT2,1:"£££££££££££££££££££££££££££££££££££££££":PRINT #102,AT24,1:"£££££££££££££££££££££££££££££££££££££££"
  300   FOR I=2TO24
  310     PRINT #102,ATI,1:"£";:PRINT #102,ATI,40:"£";
  330   NEXT I
  340 END DEF 
  360 DEF PALYA
  370   NUMERIC AKADX,AKADY
  380   RANDOMIZE 
  390   FOR I=1TOINT(RND(3)+3)
  400     LET AKADX=INT(RND(21))+3
  410     LET AKADY=INT(RND(38))+2
  420     PRINT #102,ATAKADX,AKADY:;
  430     GET #102:A$
  440     IF A$=" "THEN
  450       PRINT #102:"*";
  460       LET AKADSZ=AKADSZ+1
  470     ELSE I=I-1
  480     END IF 
  490   NEXT I
  500 END DEF 
  520 DEF START
  530   LET AKADSZ=0
  540   LET HOSSZ=5
  550   RANDOMIZE 
  560   IF RND<.5THEN
  570     LET Y=INT(RND(38))+2
  580     LET VY=0
  590     IF RND<.05THEN
  600       LET X=3
  610       LET VX=1
  620     ELSE 
  630       LET X=23
  640       LET VX=-1
  650     END IF 
  660   ELSE 
  670     LET X=INT(RND(21))+3
  680     LET VX=0
  690     IF RND<.5THEN
  700       LET Y=2
  710       LET VY=1
  720     ELSE 
  730       LET Y=39
  740       LET VY=-1
  750     END IF 
  760   END IF 
  770   FOR I=1TOHOSSZ
  780     LET KUKACX(I)=1
  790     LET KUKACY(I)=1
  800   NEXT I
  810   LET MT=0
  820   LET KUKACX(0)=X
  830   LET KUKACY(0)=Y
  840   CALL VIZS
  850   PRINT #102,ATX,Y:"O";
  860 END DEF 
  880 DEF IRANY
  890   IF VX=0THEN
  900     SELECT CASEJOY(1)ORJOY(0)
  910     CASE 1
  920       LET VX=0
  930       LET VY=1
  940     CASE 2
  950       LET VX=0
  960       LET VY=-1
  970     CASE 4,5,6
  980       LET VX=1
  990       LET VY=0
 1000     CASE 8,9,10
 1010       LET VX=-1
 1020       LET VY=0
 1030     CASE ELSE
 1040     END SELECT 
 1050   ELSE 
 1060     SELECT CASEJOY(1)ORJOY(0)
 1070     CASE 1,5,9
 1080       LET VX=0
 1090       LET VY=1
 1100     CASE 2,6,10
 1110       LET VX=0
 1120       LET VY=-1
 1130     CASE 4
 1140       LET VX=1
 1150       LET VY=0
 1160     CASE 8
 1170       LET VX=-1
 1180       LET VY=0
 1190     CASE ELSE
 1200     END SELECT 
 1210   END IF 
 1220 END DEF 
 1240 DEF LEPES
 1250   NUMERIC S1,S2,UMT
 1260   LET UMT=MOD(MT+1,HOSSZ)
 1270   LET S1=KUKACX(UMT)
 1280   LET S2=KUKACY(UMT)
 1290   PRINT #102,ATS1,S2:" ";
 1300   LET X=KUKACX(MT)+VX
 1310   LET Y=KUKACY(MT)+VY
 1320   LET MT=UMT
 1330   LET KUKACX(MT)=X
 1340   LET KUKACY(MT)=Y
 1350   CALL VIZS
 1360   PRINT #102,ATX,Y:"o";
 1370   SOUND PITCH25,DURATION1
 1380   PRINT #102,AT1,19:IDO;
 1390   PRINT #102,AT1,1:HOSSZ;
 1395   PRINT #102,AT1,38:SZINT;
 1400 END DEF 
 1420 DEF NOV
 1430   IF HOSSZ<79THEN
 1440     LET KUKACX(HOSSZ+1)=KUKACX(HOSSZ)
 1450     LET KUKACY(HOSSZ+1)=KUKACY(HOSSZ)
 1460     LET HOSSZ=HOSSZ+1
 1470   END IF 
 1480 END DEF 
 1500 DEF KAPUKI
 1510   SET BORDERRED
 1520   IF RND<.5THEN
 1530     LET KAPUY=INT(RND(38))+2
 1540     IF RND<.5THEN
 1550       LET KAPUX=2
 1560     ELSE 
 1570       LET KAPUX=24
 1580     END IF 
 1590   ELSE 
 1600     LET KAPUX=INT(RND(21))+3
 1610     IF RND<.5THEN
 1620       LET KAPUY=1
 1630     ELSE 
 1640       LET KAPUY=40
 1650     END IF 
 1660   END IF 
 1670   PRINT #102,ATKAPUX,KAPUY:"-";
 1680 END DEF 
 1700 DEF KAPUBE
 1710   SET BORDERYELLOW
 1720   PRINT #102,ATKAPUX,KAPUY:"£";
 1730 END DEF 
 1750 DEF VIZS
 1760   PRINT #102,ATX,Y:;
 1770   GET #102:A$
 1780   SELECT CASEA$
 1790   CASE " "
 1800   CASE "*"
 1810     POKE 47368+X*16+1,RED
 1820     SOUND PITCH70,DURATION2
 1830     CALL NOV
 1840     LET AKADSZ=AKADSZ-1
 1850     POKE 47368+X*16+1,WHITE
 1860     IF AKADSZ=0THENCALL KAPUKI
 1870   CASE ELSE
 1880     LET VEGE=1
 1890   END SELECT 
 1900 END DEF 
 1920 DEF FALAK
 1930   SELECT CASESZINT
 1940   CASE 1
 1950     LET PLUSIDO=30
 1960   CASE 2
 1970     LET PLUSIDO=50
 1980     PRINT #102,AT13,9:"££££££££££££££££££££££££";
 1990   CASE 3
 2000     LET PLUSIDO=80
 2010     FOR I=8TO18
 2020       PRINT #102,ATI,8:"£";
 2030       PRINT #102,ATI,32:"£";
 2040     NEXT I
 2050   CASE 4
 2060     LET PLUSIDO=100
 2070     PRINT #102,AT9,9:"££££££££££££££££££££££££";
 2080     PRINT #102,AT17,9:"££££££££££££££££££££££££";
 2090   CASE 5
 2100     LET PLUSIDO=50
 2110     PRINT #102,AT13,4:"£££££££££££££££   £££££££££££££££";
 2120     FOR I=5TO11
 2130       PRINT #102,ATI,20:"£";
 2140     NEXT I
 2150     FOR I=15TO21
 2160       PRINT #102,ATI,20:"£";
 2170     NEXT I
 2180   CASE 6
 2190     LET PLUSIDO=50
 2200     PRINT #102,AT5,18:"£££££";
 2210     PRINT #102,AT6,2:"    £££££           £       £££££";
 2220     PRINT #102,AT7,2:"    £               £           £";
 2230     PRINT #102,AT8,2:"    £           £   £           £";
 2240     PRINT #102,AT9,2:"  £££   ££££    £   £    ££££   £££";
 2250     PRINT #102,AT10,2:"  £     £  £    £   £    £  £     £";
 2260     PRINT #102,AT11,2:"  £   £££  £££  £   £  £££  £££   £";
 2270     PRINT #102,AT12,2:"  £   £         £   £         £   £";
 2280     PRINT #102,AT13,2:"  £   £         £   £         £   £";
 2290     PRINT #102,AT14,2:"  £   £         £   £         £   £";
 2300     PRINT #102,AT15,2:"  £   £££  £££  £   £  £££  £££   £";
 2310     PRINT #102,AT16,2:"  £     £  £    £   £    £  £     £";
 2320     PRINT #102,AT17,2:"  £££   ££££    £   £    ££££   £££";
 2330     PRINT #102,AT18,2:"    £           £   £           £";
 2340     PRINT #102,AT19,2:"    £           £               £";
 2350     PRINT #102,AT20,2:"    £££££       £           £££££";
 2360     PRINT #102,AT21,2:"                £££££";
 2370   END SELECT 
 2380   PRINT #102,AT1,11:"^^^^^^^    ^^^^^^^^";
 2390 END DEF 
 2410 DEF FOCIM
 2420   STRING BILL$
 2430   CLEAR SCREEN
 2440   PRINT AT5,19:"HAMIKA"
 2450   PRINT AT10,10:"Ha kezdhetjük a jåtékot,"
 2460   PRINT AT12,10:"Nyomj le egy billentyüt!"
 2470   DO 
 2480     GET BILL$
 2490   LOOP UNTILBILL$<>""
 2500 END DEF 
 2520 DEF SIR
 2550   PRINT #102,AT10,10:"Sajnålom, nem sikerült";
 2560   SET BORDERCYAN
 2570   SOUND PITCH49,DURATION10
 2580   SOUND PITCH44,DURATION10
 2590   SOUND PITCH41,DURATION10
 2600   SOUND PITCH37,DURATION20
 2610   WAIT 4
 2620   IF SZINT>1THENLET SZINT=SZINT-1
 2630 END DEF 
 2650 DEF NEVET
 2660   !
 2670   !
 2680   PRINT #102,AT12,13:"HURRÅ! SIKERÜLT!!";
 2690   SET BORDERMAGENTA
 2700   SOUND PITCH37,DURATION20
 2710   SOUND PITCH41,DURATION20
 2720   SOUND PITCH44,DURATION20
 2730   SOUND PITCH49,DURATION40
 2740   WAIT 4
 2750 END DEF 
 2770 CALL FOCIM
 2780 FOR SZINT=1TO6
 2790   DO 
 2800     CALL KERET
 2810     CALL FALAK
 2820     CALL START
 2830     DO 
 2840       CALL PALYA
 2850       LET VEGE=0
 2860       FOR IDO=150+PLUSIDOTO0STEP-1
 2870         CALL LEPES
 2880         CALL IRANY
 2890         IF VEGETHENEXIT FOR
 2900       NEXT IDO
 2910       IF VEGETHEN
 2920         EXIT DO
 2930       ELSE 
 2940         IF AKADSZ=0THENCALL KAPUBE
 2950       END IF 
 2960     LOOP 
 2970     IF A$<>"-"THEN
 2980       CALL SIR
 2990     ELSE 
 3000       CALL NEVET
 3010       EXIT DO
 3020     END IF 
 3030   LOOP 
 3040 NEXT SZINT
 3060 CLEAR SCREEN
 3070 PRINT #102,AT10,1:;
 3080 PRINT #102:"      £££  £££   ££  £  £  ££  ££"
 3090 PRINT #102:"      £  £ £  £ £  £ £  £ £  £ ££"
 3100 PRINT #102:"      £££  £££  £  £ £  £ £  £ ££"
 3110 PRINT #102:"      £  £ £  £ ££££ £  £ £  £ ££"
 3120 PRINT #102:"      £  £ £  £ £  £  ££  £  £ "
 3130 PRINT #102:"      £££  £  £ £  £  ££   ££  ££"
 3140 SET BORDERBLUE
 3150 FOR J=1TO5
 3160   RESTORE 
 3170   FOR I=1TO8
 3180     READ HANG,HOSSZ
 3190     SOUND PITCHHANG,DURATIONHOSSZ
 3200   NEXT I
 3210 NEXT J
 3220 DATA 37,10,41,10,44,10,49,10,37,10,42,10,46,10,49,10
 3230 SOUND PITCH1,DURATION2
 3240 SOUND PITCH49,DURATION20
 3250 SOUND PITCH1,DURATION2
 3260 SOUND PITCH44,DURATION20
 3270 SOUND PITCH1,DURATION2
 3280 SOUND PITCH41,DURATION20
 3290 SOUND PITCH1,DURATION2
 3300 SOUND PITCH37,DURATION20
 3310 SOUND PITCH1,DURATION2
 3320 SOUND PITCH37,DURATION80
 3330 WAIT 4
 3340 FOR I=1TO24
 3350   PRINT ATI,1:""
 3360 NEXT I
 3370 GOTO  210
 3380 END 

