Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß) 5 CLEAR 800 10 DIM ZT(38),TA(17),CS$(17) 15 PAPER 1:INK 4:BORDER 5 18 GOTO 100 20 ST=TA(V) 25 FOR J=0 TO 5 30 FOR I=0 TO 5 35 AD=(-1)*(ST-I-40*J) 40 IA=5081+AD:ID=INT((IA-1)/40) 45 ZE$=MID$(CS$(ID),(IA-40*ID),1) 50 IN=ASC(ZE$) 55 IF IN>127 THEN POKE AD,IN:POKE(AD-1024),112:GOTO 65 60 ZE=ZT(IN-65):GZ=INT(ZE/1000):FF=ZE-1000*GZ:POKE AD,GZ:POKE(AD-1024),FF 65 NEXT I,J 70 RETURN 100 DATA 5078,4838,4598,5072,4832,4592,5066,4826,4586,5060,4820,4580,5054,4814 105 DATA 4574,5048,4808,4568 110 FOR I=0 TO 17:READ TA(I):NEXT 115 DATA 143048,191048,142048,190048,143032,191032,142032,190032,191016,142016 120 DATA 180032,181032,181096,183064,182064,198039,046116,199016,197096,175064 125 DATA 173016,174016,171016,172016,139048,255102,0,0,032000,255051 130 DATA 254039,0,198064,255034,143100,190100 135 FOR I=0 TO 35:READ ZT(I):NEXT 140 CS$(0)="QQQQQQQdcQQQQQYYBYYYYCYYYYTTTTTTTT^AD^TT" 145 CS$(1)="QQQQQQdZZcQQQQYY]]]]]]YYYY^AD^TTTTBVUCTT" 150 CS$(2)="QQQQQdS]MZcQQQYY]L]]K]YYYYBVUCTHTTDWXATT" 155 CS$(3)="QQQQdZS]MZZcQQYY]]]]]]YYYYDWXATbTT^CB^TT" 160 CS$(4)="QQQdZZS]MZZZcQYYA]IJ]DYYYY^CB^TGT^AD^TTT" 165 CS$(5)="QQQQ]QQYYYA]]DYYYC]TTT^AD^BVUCTTT" 170 CS$(6)="QQQQ]aaYYYC]]BYYY]YHbGBVUCDWXATTT" 175 CS$(7)="QQOO]]]]YYC]]]]BYY]YTHTDWXA^CB^TTT" 180 CS$(8)="QQ]]]]NNYC]]]]]]BY]YTbT^CB^TTTTTTT" 185 CS$(9)="QQaaQQY]]]]]]]]Y]YTGT"+CHR$(191)+""+CHR$(142)+"TETTT" 190 CS$(10)="QQQQ]QQY]]]]]]]]Y]YTTTTTTbTTT" 195 CS$(11)="QQQQRR]QQY]]]]]]]]Y]YTTTTFTTT" 200 CS$(12)="QQQQRR]QQY]]A]]]]]Y]YTTTTTTTT" 205 CS$(13)="QQQQRR]QQY]]YA]]]]Y]YTTTTTTTT" 210 CS$(14)="QQQQRRQQY]]YY]]]]Y]YTTTTTTTT" 215 CS$(15)="QQQQQ______QQQY]]YY]]]]Y]YTTTTTTTT" 220 CS$(16)="QQQQQ______QQQY]]YY]]A]C]YTTT"+CHR$(191)+"TTTTT" 225 CS$(17)="QQPPPPPPPPPPPP]]]Y]]]YA]DYTTTTTTTTTT" 227 WI=0 230 NR=0:NF=0:WINDOW:CLS:WINDOW 20,20,2,39 235 PRINT INK 2;AT(6,13);"RECHENMOSAIK" 240 AN$="A":INPUT "RECHENART (+,-,*,:) ";AN$ 245 IF ASC(AN$)=43 THEN RA=1:GOTO 270 250 IF ASC(AN$)=45 THEN RA=2:GOTO 270 255 IF ASC(AN$)=42 THEN RA=3:GOTO 270 260 IF ASC(AN$)=58 THEN RA=4:GOTO 270 265 GOTO 240 270 CLS:RS=4:PRINT "Schwierigkeitsstufe ";:WINDOW 20,20,24,39 275 INPUT "";RS:IF(RS<1)OR(RS>3)THEN 275 280 XU=1:XO=20:IF RS=3 THEN 320 285 IF RA>=3 THEN 300 290 IF RS=2 THEN XO=100 295 GOTO 350 300 IF(RA=3)AND(RS=1)THEN XO=10 305 IF(RA=4)AND(RS=1)THEN XO=100 310 IF(RA=4)AND(RS=2)THEN XO=1000 315 GOTO 350 320 WINDOW 20,23,2,39:CLS:PRINT:INK 2:PRINT TAB(9);"Gib ein!" 325 INK 4:PRINT TAB(9);"untere Grenze :";:INPUT "";XU 330 PRINT TAB(9);"obere Grenze :";:INPUT "";XO 335 IF XO<XU THEN 320 340 IF XU>0 THEN XU=0 345 IF XO<0 THEN XO=0 350 WINDOW:CLS:PRINT AT(0,0);" ":IF WI=1 THEN 370 352 FOR V=0 TO 17:GOSUB 20 355 NEXT 360 INK 6:PRINT AT (23,30);"ENTER":INK 4 365 A=RND(1):IF LEN(INKEY$)=0 THEN 365 ELSE CLS 370 NM=18:WINDOW 20,23,2,39:CLS 375 PRINT "Rechne!":PRINT 380 ON RA GOTO 385,420,440,455 385 IF XU>=0 THEN F=.7*(XO-XU)+XU 390 IF XU<0 THEN F=XO-XU 395 GOSUB 560 400 IF A+B>XO THEN B=INT((XO-A)*RND(1)) 405 IF A+B<XU THEN B=INT((XU-A)*RND(1)) 410 XE=A+B:OP$="+":GOSUB 540 415 GOTO 470 420 F=XO-XU:GOSUB 560 425 IF(A>B)AND(XU>0)THEN H=B:B=A:A=H 430 OP$="-":GOSUB 540 435 XE=B-A:GOTO 470 440 F=XO-XU:GOSUB 560 445 XE=A*B:OP$="*":GOSUB 540 450 GOTO 470 455 F=SQR(XO-XU):GOSUB 560 460 IF A=0 THEN A=1 465 XE=B:B=A*XE:OP$=":":GOSUB 540 470 INPUT "";X$:E$="F" 475 X=VAL(X$) 490 IF X=XE THEN E$="R" 495 IF E$="F"THEN 510 500 V=NR:GOSUB 20 505 NR=NR+1:IF NR=NM THEN 515 ELSE 370 510 NF=NF+1:INK 7:PRINT "***Falsch***":INK 4:PAUSE 10:GOTO 370 515 CLS:PRINT " "NF;"Fehler":PRINT 520 INK 6:PRINT TAB(30);"ENTER";:INK 4:INPUT "";XX 525 WI=1:AN$="J":CLS:INPUT "Fortsetzung der Rechnung: (J)/N";AN$ 530 WINDOW:IF AN$="J"THEN 230 535 CLS:PRINT AT(0,0);" ":PRINT AT(11,11);"AUF WIEDERSEHEN!":PAUSE 20:CLS:END 540 IF B>=0 THEN PRINT B;:ELSE PRINT "(";B;")"; 545 PRINT OP$; 550 IF A>=0 THEN PRINT A;:ELSE PRINT "(";A;")"; 555 PRINT "=";:RETURN 560 A=INT(F*RND(1))+XU:IF A=0 THEN A=1 565 B=INT(F*RND(1))+XU:IF B=0 THEN B=1 570 RETURN