BYTE ARRAY TLONB(42);MAX ILOSC ZNAKOW NA PLANSZY›;BYTE ARRAY TLRND(65);MAX LOSWYCH LITER›BYTE ARRAY TCONB(249);TABLICA KONWERSJI›BYTE ARRAY LCOUNT(9)=[26 52 62 88 114 124] ;;ILOSC ZNAKOW DO LOSOWNANIA›;A-Z,A-Za-z,A-Za-z0-9,A-Za-z0-9[A-Z],A-Za-z0-9[A-Z][a-z][0-9]›BYTE ARRAY TLBS(4)=[11 19 29 41] ;;ILOSC ZNAKOW PLANSZY›BYTE ARRAY TLBW(4)=[4 5 6 7] ;ROZMIAR POZIOMY›BYTE ARRAY TLBH(4)=[3 4 5 6] ;ROZMIAR PIONOWY›BYTE ARRAY OFSBR(4)=[0 3 7 12] ;OFSET W TABLICY TLBSPR WIERSZY›BYTE ARRAY TLBSPR(18)=[0 4 8 0 5 10 15 0 6 12 18 24 0 7 14 21 28 35] ;START WIERSZA NA PLANSZY›BYTE POINTER SCR ;WSKAZNIK OBSZARU DANYCH EKRANU›CARD SCORE›BYTE PX=[1],PY=[1],CH=764,STICK0=$0278,STRIG0=$0284,CRSINH=752››PROC KHIT()›WHILE CH=255 AND STRIG0#0 DO OD›CH=255›STRIG0=1›RETURN››PROC INITCTBL()›BYTE I,J,L›J=0›FOR I=0 TO 25 DO›TCONB(J)=65+I›J==+1›OD›FOR I=0 TO 25 DO›TCONB(J)=97+I›J==+1›OD›FOR I=0 TO 9 DO›TCONB(J)=48+I›J==+1›OD›FOR I=0 TO 25 DO›TCONB(J)=128+65+I›J==+1›OD›FOR I=0 TO 25 DO›TCONB(J)=128+97+I›J==+1›OD›FOR I=0 TO 9 DO›TCONB(J)=128+48+I›J==+1›OD›RETURN›››BYTE FUNC FATE(BYTE T)›BYTE X,RANDOM=$D20A›DO › X=RANDOM›UNTIL X<>0 AND X<=T OD›;PRINTB(X)›;PRINTE(":RND")›;KHIT()›RETURN(X)››PROC NEWBL(BYTE LTRC,SIZE)›BYTE I,LOB,CHKL,K,T,D›D=0›FOR I=0 TO SIZE DO›DO › LOB=FATE(LTRC)› UNTIL D#LOB OD› D=LOB› FOR K=0 TO SIZE DO› CHKL=TLONB(K)› IF CHKL=0 THEN › T=K› ELSEIF LOB=CHKL THEN › I==-1› LOB=0› EXIT› FI› OD› TLONB(T)=LOB› ;PRINTF("T:%U LOB:%U%E",T,LOB)›OD›RETURN ››BYTE FUNC INITLVL(BYTE LVL,BS)›BYTE LCC,J,I›LCC=LCOUNT(LVL)›J=TLBS(BS)›IF LCCW THEN PX=W ›ELSEIF PX<1 THEN PX=1 FI›IF PY>H THEN PY=H ›ELSEIF PY<1 THEN PY=1 FI›RETURN››BYTE FUNC CHCKTLB(BYTE TGTC,BSL)›BYTE J,M,L,H,BS›BS=BSL RSH 4›L=OFSBR(BS) ›J=TLBSPR(L+(PY-1))›H=(PX-1)+J›M=TGTC-H›TLONB(H)=0›J=LCOUNT(BSL & 15)›L=TLBS(BS)›NEWBL(J,L)›RETURN(M)››PROC TITLE()›CRSINH=1›PUT(125)›POSITION(12,2)› PRINTE("  ")› POSITION(12,3)› PRINTE(" X -BET")› POSITION(12,4)› PRINTE(" ")› POSITION(12,6)› PRINTE("BY ÓÔÃ")› POSITION(12,8)› PRINTE("FROM")› POSITION(9,10)› PRINTE("ÅÁÓÙ ÆÕÔÕÒÅ 2008 V 0.9B")› POSITION(12,12)› PRINTE("PRESS FIRE TO PLAY!")› KHIT()› PUT(125)› RETURN› ›PROC GAMEEND(BYTE L)›PUT(125)›POSITION(12,9)›IF L=0 THEN ›PRINTE("GAME OVER!!!")›ELSE›PRINTE("CONGRATULATIONS!!!")›FI›POSITION(12,10)›PRINTF("SCORE :%U ",SCORE)›POSITION(12,11)›PRINTF("PRESS FIRE",SCORE)›KHIT()›CRSINH=0›RETURN››PROC MAIN()›BYTE N,LVL,BSIZE,NL4LVL,TMP,REDRAW›BYTE JHIT,JMV,OPX,OPY,TIM=20,OTIM›BYTE JMRL,TOUT,TLRG,JHRL,LIFE,THIT,LTLRG,POZIOM›LIFE=3 LTLRG=0›BSIZE=0 SCORE=0›POZIOM=1›INITCTBL()›TITLE()›DO›LVL=0›DO›IF INITLVL(LVL,BSIZE)#0 THEN› NL4LVL=((BSIZE+1) LSH 2)+BSIZE+((LVL+1) LSH 2)+LVL+2 ;ILOSC LITER DO ZGADNIECIA› FOR N=1 TO NL4LVL › DO› DO› TLRG=FATE(TLBS(BSIZE)) ;WYLOSOWANA LITERA› UNTIL LTLRG#TLRG OD› LTLRG=TLRG› TMP=TLONB(TLRG)-1› TMP=TCONB(TMP)› TOUT=255-(LVL LSH 3)-NL4LVL-N› THIT=1› REDRAW=2› DO› IF TIM#OTIM THEN› OTIM=TIM› JMV=STICK0› OPX=(0-(((JMV & 4) RSH 2) XOR 1))+(((JMV & 8) RSH 3) XOR 1)› OPY=(((JMV & 2) RSH 1) XOR 1)+(0-((JMV & 1) XOR 1))› JHIT=STRIG0› JMRL==+1 JMRL==&3› JHRL==+1 JHRL==&3› IF JHRL=0 THEN› TOUT==-1› POSITION(10,10+2)› PRINT("T: ")› PRINTB(TOUT)› PRINT(" ")› FI› FI› IF JMRL=0 AND (OPX % OPY)#0 THEN › PX==+OPX› PY==+OPY› OPY=0 OPX=0› CHECKPLR(BSIZE)› REDRAW=1› FI› IF JHIT=0 AND JHRL=0 THEN› JHIT=1 REDRAW=2› THIT=CHCKTLB(TLRG,(BSIZE LSH 4)+LVL ) › IF THIT=0 THEN› TOUT=TOUT RSH 3› FOR JMV=0 TO BSIZE› DO› SCORE==+TOUT› OD› TOUT=0› ELSE›IF LIFE>0 THEN › LIFE==-1 ELSE EXIT FI› FI› FI› IF REDRAW>0 THEN› DRAWBOARD(BSIZE)› DRAWPLR(BSIZE)› REDRAW==-1› FI› IF REDRAW#0 THEN› POSITION(15,11)› PRINTF("->%C<-",TMP)› POSITION(19,12)› PRINTF("SCORE:%U ",SCORE)› POSITION(10,13)› PRINTF("LVL:%U LIFE:%U ",POZIOM,LIFE )› REDRAW=0› FI› UNTIL TOUT=0 OR LIFE=0 OD› IF THIT#0 AND TOUT=0 AND LIFE>0 THEN› TLONB(TLRG)=0› JHRL=LCOUNT(LVL)› JMRL=TLBS(BSIZE)› NEWBL(JHRL,JMRL)› IF LIFE>0 THEN LIFE==-1 ELSE EXIT FI› FI›OD›POSITION(9,15)›PRINTE("PRESS FIRE TO CONTINUE")›DO UNTIL STRIG0=0 OD›PUT(125)›FI›LVL==+1 POZIOM==+1›UNTIL LVL=6 OR LIFE=0 OD›BSIZE==+1 ›IF LIFE>0 THEN LIFE==+1 ELSE EXIT FI›UNTIL BSIZE=4 OR LIFE=0 OD›GAMEEND(LIFE)›RETURN››