    1 PROGRAM "Labirintus"
  100 !
  110 DIM L(19,36),H(500)
  120 NUMERIC X,Y
  130 LET U,S,H(0)=0:RANDOMIZE 
  140 PRINT AT1,1:"TÜrelem!"
  150 CALL LETREHOZ
  160 CALL RAJZOL
  165 !TRACE ON
  170 IF Y=3THEN 350
  180 IF L(Y,X+1)<>-1THEN 240
  190 IF L(Y,X+1)=-1ANDL(Y-1,X)=-1THEN 320
  200 LET YE=Y:LET XE=X:LET Y=Y-1:CALL TANUL
  210 GOTO  170
  220 IF L(Y+1,X)<>-1THEN 290
  230 IF L(Y,X+1)=-1THEN 170
  240 LET YE=Y:LET XE=X:LET X=X+1:CALL TANUL
  250 GOTO  220
  260 IF Y=19THEN 480
  270 IF L(Y,X-1)<>-1THEN 330
  280 IF L(Y+1,X)=-1THEN 220
  290 LET YE=Y:LET XE=X:LET Y=Y+1:CALL TANUL
  300 GOTO  260
  310 IF L(Y-1,X)<>-1THEN 200
  320 IF L(Y,X-1)=-1THEN 260
  330 LET YE=Y:LET XE=X:LET X=X-1:CALL TANUL
  340 GOTO  310
  350 LET X=35:LET Y=19:LET R$="*":CALL UTVONAL
  360 PRINT AT22,5:"u=ujra  m=megegyszer ezt"
  370 LET A$=INKEY$
  380 IF A$="m"THEN 410
  390 IF A$=""THEN 370
  400 GOTO  130
  410 LET R$=" ":CALL UTVONAL
  420 LET R$="*":CALL UTVONAL
  430 GOTO  360
  440 DEF HELY
  450   IF INKEY$="u"THENRUN 
  460   LET U=U+1:LET H(U)=100*X+Y
  470 END DEF 
  480 PRINT AT22,4:"Sajnos nem lehet åtjutni"
  490 IF INKEY$=""THEN 490
  500 RUN 
  510 DEF TANUL
  520   PRINT ATYE,XE:"O"
  530   PRINT ATY,X:CHR$(154):CALL HELY
  540   IF L(Y,X)<>0THENLET U=L(Y,X)
  550   IF L(Y,X)=0THENLET L(Y,X)=U
  560 END DEF 
  570 DEF UTVONAL
  580   LET W=0
  590   FOR I=1TOU
  600     LET X=INT(H(I)/100):LET Y=MOD(H(I),100)
  610     PRINT ATY,X:R$
  620   NEXT 
  630 END DEF 
  640 DEF LETREHOZ
  650   FOR F=3TO19
  660     LET T=(F/2<>INT(F/2))
  670     FOR V=4TO36
  680       LET L(F,V)=T
  690     NEXT 
  700     LET L(F,4),L(F,36)=-1
  710     IF F=3ORF=19THEN 760
  720     LET A=2-T*4+RND(3)
  730     FOR I=1TOA
  740       LET L(F,7+RND(28))=NOT(T)
  750     NEXT 
  760   NEXT 
  770   LET X=35:LET Y=19:LET L(3,5),L(Y,X)=0
  780 END DEF 
  790 DEF RAJZOL
  800   CLEAR TEXT
  810   FOR F=3TO19
  820     FOR V=4TO36
  830       IF L(F,V)=-1THENPRINT ATF,V:CHR$(159)
  840     NEXT 
  850   NEXT 
  860 END DEF 

