Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
2 A9=2
8 A5$=""
10 REM VERFASSER: ENGER / RED
12 REM KITTELMANN/SCHROETER/MKD
14 REM VERSION 1
16 REM
18 BORDER A9:INK 8:PAPER 1:WINDOW:CLS
30 DIM BE(64):AN=-4916
98! UP TITELBILD
118 GOSUB 120:GOTO 4000
119 REM UP >ENTER<
120!
122 WINDOW 22,23,24,39:CLS:PRINT INK 1;AT(22,24);" ":
123 PRINT INK 4;AT(22,31);">ENTER<"
124 IF INKEY$=""THEN 124
126 RETURN
149 REM UP J/N ABFRAGE
150 PRINT INK 4;AT(22,(34-LEN(KY$)));KY$," ? J"
152 T$=INKEY$:IF T$=""THEN 152
153 PRINT INK 2;AT(22,37);T$
154 IF ASC(T$)=74 OR ASC(T$)=13 THEN T=1:PRINT AT(20,27);STRING$(11," "):RETURN
156 IF ASC(T$)=78 THEN T=2:PRINT AT(20,27);STRING$(11," "):RETURN
158 GOSUB 130:PAUSE 10:GOTO 150
159 REM LOESCHSTRING
160 PRINT AT(20,27);STRING$(11," "):RETURN
1000 REM UP DREHVARIANTE SUCHEN
1010 D=AN:U=0:W=0
1020 FF=1
1030 FOR Y=0 TO 560 STEP 80
1040 FOR X=D TO D+14 STEP 2
1050 B=X+Y:V=PEEK(B):U=U+1
1060 IF V<>46 GOTO 1090
1070 C=BE(U)*10:SU=1
1080 GOSUB 1380
1090 NEXT X
1100 WINDOW 5,10,26,36
1110 FF=FF+1:FG=FF+1:IF FG>8 THEN FF=0:GOTO 1110<<TOKEN:1d>><<TOKEN:1d>>
1120 INK FF:PAPER 5:IF FF=5 THEN INK 3
1130 CLS
1140 PRINT:PRINT:PRINT " ICH":PRINT " DENKE":PRINT
1150 INK 4:PAPER 5
1160 NEXT Y
1170 WINDOW 1,23,23,39:CLS
1180 Q=0:IF W=0 THEN Q=1:RETURN
1190 X=N-(AN-1)
1200 Y=M/80+2
1210 RETURN
1220 REM AUSWERTUNG
1230 WINDOW 14,21,24,39:PRINT "AUSWERTUNG":PRINT
1240 M=0:N=0
1250 FOR I=0 TO 14 STEP 2
1260 FOR J=0 TO 560 STEP 80
1270 IF PEEK(J+I+AN)=42 THEN M=M+1
1280 IF PEEK(J+I+AN)=48 THEN N=N+1
1290 NEXT J
1300 NEXT I
1310 PRINT "* =";M
1320 PRINT "0 =";N:PRINT
1322 IF M<N THEN PRINT "GRATULIERE !"
1324 IF M=N THEN PRINT "REMIS !"
1326 IF M>N THEN PRINT "ICH HABE":PRINT "GEWONNEN !"
1330 GOSUB 120:WINDOW 14,23,24,39
1340 CLS:JN$="J":PRINT "NEUES":INPUT "SPIEL: (J)/N ";JN$
1350 IF JN$<>"N"THEN 4000
1360 WINDOW:CLS:PRINT PAPER 2;AT(8,8);"AUF WIEDERSEHEN":PAUSE 40
1370 CLS:END
1380 REM UP ZEICHEN VERDREHEN
1390 F=0:G=42:A1=A
1400 IF A=1 THEN G=48
1410 FOR K=1 TO 8
1420 R=0
1430 FOR I=1 TO 8
1440 Z=B+FE(K)*I
1450 IF Z<AN GOTO 1540
1460 IF Z>AN+656 GOTO 1540
1470 V=PEEK(Z)
1480 IF V=46 GOTO 1540
1490 IF V=G THEN R=1
1500 IF V=48-A*6 THEN R=(R+1)*R
1510 IF R=2 GOTO 1580
1520 IF R=0 GOTO 1540
1530 NEXT I
1540 NEXT K
1550 IF SU=1 THEN RETURN
1560 Q=0:IF F=0 THEN Q=1
1570 RETURN
1580 REM DREHEN
1590 F=1
1600 IF SU=1 GOTO 1670
1610 IF A1=0 THEN A1=2:GOSUB 1730
1620 FOR L=1 TO 8
1630 C1=B+FE(K)*L
1640 IF PEEK(C1)<>G GOTO 1540
1650 POKE C1,48-6*A
1660 NEXT L
1670 REM BEWERTUNG
1680 C=C+I
1690 IF C<W THEN GOTO 1540
1700 REM VARIANTE ANZEIGEN
1710 N=X:M=Y:W=C:C=0
1720 GOTO 1540
1730 FOR I=1 TO 10:PAUSE 1:POKE B,46:PAUSE 1:POKE B,48:NEXT I:RETURN
3999 REM OTHELLO-HAUPTPROGRAMM =======
4000 DATA 80,-80,2,-2,82,-82,-78,78
4010 RESTORE 4000:FOR I=1 TO 8:READ FE(I):NEXT I
4020 DATA 9,1,8,4,4,8,1,9
4030 DATA 1,1,2,2,2,2,1,1
4040 DATA 8,2,7,6,6,7,2,8
4050 DATA 4,2,6,0,0,6,2,4
4060 DATA 4,2,6,0,0,6,2,4
4070 DATA 8,2,7,6,6,7,2,8
4080 DATA 1,1,2,2,2,2,1,1
4090 DATA 9,1,8,4,4,8,1,9
4100 RESTORE 4020:FOR I=1 TO 64:READ BE(I):NEXT I
4110 BORDER 1:PAPER 1:PRINT SPC(40):WINDOW 1,23,1,39:PAPER 5:CLS:PAPER 2
4120 PRINT " O T H E L L O "
4130 PAPER 5:PRINT
4140 INK 4:PAPER 1
4150 WINDOW 3,21,2,20
4160 CLS
4170 PRINT " 1 2 3 4 5 6 7 8 "
4180 PRINT "1 . . . . . . . . 1"
4190 PRINT "2 . . . . . . . . 2"
4200 PRINT "3 . . . . . . . . 3"
4210 PRINT "4 . . . * * . . . 4"
4220 PRINT "5 . . . 0 0 . . . 5"
4230 PRINT "6 . . . . . . . . 6"
4240 PRINT "7 . . . . . . . . 7"
4250 PRINT "8 . . . . . . . . 8"
4260 PRINT " 1 2 3 4 5 6 7 8";
4270 WINDOW 23,23,1,23
4280 INK 4:PAPER 2
4290 PRINT " Sie spielen mit 0 ";
4300 WINDOW 1,23,22,22
4310 CLS
4320 PRINT " * * * * * * * * * * *";
4330 FOR QQ=2 TO 23 STEP 2:PRINT AT(QQ,0);"*":PRINT AT(QQ-1,0);" ":NEXT
4331 PRINT AT(23,0);" "
4340 INK 8:PAPER 5:WINDOW 14,18,24,39:CLS:PRINT
4350 PRINT "SCHWIERIGKEITS-":INPUT "STUFE: (1)/2 ";JN
4360 IF JN=2 THEN JN$="J":ELSE JN$="N"
4370 IF JN$="N"THEN FOR I=1 TO 64:BE(I)=1:NEXT I
4380 CLS:PRINT "MOECHTEN SIE"
4390 JN$="J":INPUT "BEGINNEN: (J)/N";JN$
4410 IF JN$="J"GOTO 4540
4420 REM DER RECHNER ZIEHT ------------
4430 WINDOW 1,23,23,39
4440 PAPER 4
4450 CLS
4460 A=1:GOSUB 1000:IF Q=1 THEN 1230
4470 B=N+M
4480 FOR I=1 TO 10:PAUSE 1:POKE B,46:PAUSE 1:POKE B,42:NEXT I
4490 SU=0:GOSUB 1380
4500 REM DER SPIELER ZIEHT ------------
4510 WINDOW 1,23,23,39
4520 PAPER 5:INK 8
4530 CLS
4540 A=0:SU=0
4550 WINDOW 14,20,24,39
4560 CLS
4570 PRINT "KOENNEN SIE"
4580 PRINT "SETZEN: (J)/N "
4590 JN$=INKEY$:IF JN$=""THEN 4590
4600 CLS
4610 IF JN$="N"THEN 1230
4620 PRINT "IHR ZUG BITTE":PRINT
4630 PRINT "ZEILE : ";
4640 Y$=INKEY$:IF Y$<" "THEN 4640
4650 Y=ASC(Y$)-48
4660 IF Y<1 OR Y>8 THEN 4640
4670 PRINT Y$:PRINT "SPALTE: ";
4680 X$=INKEY$:IF X$<" "THEN 4680
4690 X=ASC(X$)-48
4700 IF X<1 OR X>8 THEN 4680
4710 PRINT X$:B=2*X+80*(Y-1)+AN-2
4720 C=PEEK(B)
4730 IF C<>46 THEN PRINT INK 2;AT(20,24);"BESETZT":PAUSE 50:GOTO 4510
4740 POKE B,48-6*A
4750 GOSUB 1380
4760 IF Q=1 THEN PRINT INK 2;AT(20,24);"FEHLER":GOSUB 1730:GOSUB 1730:POKE B,46:GOTO 4510
4770 GOTO 4420