1 REM Ins{nd av Gunnar Larsson <4876> 1985-05-11 12.30.02 10 ! Program bokstavsregn 20 ! 1985-04-27 30 ! (c) Gunnar Larsson 40 ! <4876> 50 ! 60 ! Variabler 70 ! Bokstav$ slumpboksatav 80 ! Varv snurra 90 ! Get$ tangentbord 100 ! Po{ng antal po{ng 110 ! Antal antal f|rs|k 120 ! Fel antal feltryck 130 ! Tut$ maskinkod 140 ! I snurra 150 ! Max max antal fel 160 ! Hastighet F|rdr|jning 170 ! Hast step 180 ! Z slaskvariabel 190 ! 200 INTEGER : EXTEND 210 ! 220 DEF FNSlump% 230 RANDOMIZE 240 RETURN INT(RND*31%)+64% 250 FNEND 260 ! 270 DEF FNTut%(Frek%) 280 Tut$=CHR$(66%,22%,0%,219%,5%,197%,16%,254%,193%,27%,122%,179%,32%,245%,201%) 290 RETURN CALL(VARPTR(Tut$),Frek%*256%+55%) 300 FNEND 310 ! 320 DEF FNV{nta%(Tid%) 330 FOR Varv%=0% TO Tid% 340 NEXT Varv% 350 RETURN 0% 360 FNEND 370 ! 380 DEF FNRensa% 390 ; CHR$(12%) 400 RETURN 0% 410 FNEND 420 ! 430 DEF FNInstruktioner% 440 Z%=FNRensa% 450 ; GRN 'Programmet har till syfte att l{ra sig' 460 ; GRN ' hitta bokst{verna p} tangentbordet.' 470 ; GRN 'Datorn skriver ut en bokstav som' 480 ; GRN ' "rinner" ned}t och det g{ller att' 490 ; GRN ' trycka p} r{tt tangent innan den n}r' 500 ; GRN ' botten.' 510 ; GRN 'Om man trycker p} fel tangent eller' 520 ; GRN ' den n}r botten f}r man minuspo{ng.' 530 ; GRN 'Sv}righetsgraden |kar hela tiden.' 540 ; GRN 'Spelet {r slut n{r antalet fel' 550 ; GRN ' |verstiger 12, eller man trycker' 560 ; GRN ' p} PF1.' 570 ; : ; 580 ; YEL 'Tryck p} H' 590 POKE 65507%,0% 600 WHILE PEEK(65507%)<>72% AND PEEK(65507%)<>104% 610 WEND 620 RETURN 0% 630 FNEND 640 ! 650 DEF FNR{tt% LOCAL Z$=1 660 IF Get$>'@' THEN Z$=CHR$(ASCII(Get$) AND 95%) ELSE Z$=Get$ 670 IF Z$=Bokstav$ THEN RETURN -1% 680 RETURN 0% 690 FNEND 700 ! 710 ! Huvudloop 720 ! 730 Z%=FNInstruktioner% 740 Hastighet%=400% : Hast%=1% 750 Po{ng%=1% 760 Fel%=0% 770 Antal%=0% 780 Max%=12% 790 WHILE ASCII(Get$)<>192% AND Fel%=23% THEN Z%=FNTut%(78%) : Fel%=Fel%+1% : Po{ng%=Po{ng%-20% : ; RED 'F|rs|k en g}ng till'; : GET S$ : Z%=FNRensa% : GOTO 850 940 GET Get$ 950 IF FNR{tt% THEN ; GRN 'Grattis' : ; YEL 'Po{ng ' Po{ng% ELSE Z%=FNTut%(23%) : Po{ng%=Po{ng%-I% : Fel%=Fel%+1% : GOTO 860 960 Po{ng%=Po{ng%+Hastighet%/200%+Hast%*(23%-I%) 970 Z%=FNTut%(123%) : Z%=FNV{nta%(1200%) 980 WEND 990 ! 1000 Z%=FNRensa% 1010 ; : ; : ; : ; 1020 ; YEL 'P}' Antal%+Fel% 'f|rs|k gjorde du' Fel% 'fel' 1022 ; YEL ' och fick'; 1030 ; YEL Po{ng% 'po{ng' 1040 ; : ; 1050 ; GRN 'Nytt f|rs|k J/N '; 1060 WHILE S$<>'J' AND S$<>'N' 1070 GET S$ 1080 S$=CHR$(ASCII(S$) AND 95%) 1090 WEND 1100 IF S$='J' THEN GOTO 740 1110 END