Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß) 0 A1$="HEIMCOMPUTER robotron Z9001" 2 A2$="SPIEL":A9=2 4 A3$="R+OTHELO" 6 A4$="BRETTSPIEL OTHELLO" 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 100 PRINT AT(2,2);A1$:PRINT AT(4,2);"",STRING$(34,""),"" 102 PRINT AT(5,2);"":PRINT AT(5,37);"" 104 PRINT AT(6,2);"",STRING$(34,""),"" 106 PRINT AT(5,3);A2$:PRINT INK 3;AT(5,29);A3$ 108 INK A9:PRINT AT(8,2);STRING$(36,"") 110 FOR I=9 TO 13:PRINT AT(I,2);"":PRINT AT(I,37);"":NEXT I 112 PRINT AT(14,2);STRING$(36,"") 114 INK 8:PRINT AT(11,36-LEN(A4$));A4$ 116 INK 3:PRINT AT(18,2);"VEB ROBOTRON-MESSELEKTRONIK" 118 PRINT AT(19,8);">OTTO SCHOEN< DRESDEN":INK 8: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