Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
1 POKE 862,1:CLEAR 70:DIM R(15),Z(8),S(8),F(8,8):O$="**O T H E L L O**"
2 WINDOW:CLS:OUT 136,4:PRINT O$;" IST EIN STRATEGIESPIEL";STRING$(17,"");
3 PRINT " FUER 2 SPIELER.":PRINT:PRINT "JEDER SPIELER MUSS VERSUCHEN, DURCH
4 PRINT "SETZEN SEINER SPIELSTEINE MOEGLICHST":PRINT "VIELE GEGNERISCHE STEINE ";
5 PRINT "ZU GEWINNEN.":PRINT "DIES ERFOLGT DURCH BILDUNG WAAGERECHTER";
6 PRINT ",SENKRECHTER UND DIAGONALER KETTEN.":PRINT "EINE KETTE BEGINNT UND ENDET";
7 PRINT " STETS MIT":PRINT "EINEM EIGENEN STEIN. DIE ZWISCHEN DIESEN";
8 PRINT "BEIDEN EINGESCHLOSSENEN GEGNERISCHEN":PRINT "STEINE WERDEN IN EIGENE";
9 PRINT " UMGEWANDELT UND EINEN ZUG LANG MARKIERT.
10 PRINT:PRINT "DAS SPIEL IST BEENDET,WENN DAS SPIEL-
11 PRINT "FELD VOLL BELEGT IST ODER NUR NOCH":PRINT "STEINE EINES SPIELERS ";
12 PRINT "VORHANDEN SIND.":GOSUB 100:CLS:PRINT "DAS SETZEN EINES STEINES ERFOLGT";
13 PRINT " DURCH EINGABE VON ZEILENBUCHSTABEN UND":PRINT "SPALTENZIFFER.
14 PRINT "EINGABE VON 0 BEDEUTET ZUGVERZICHT.":PRINT "DIE EINGABEBEREITSCHAFT";
15 PRINT " WIRD DURCH":PRINT "BLINKEN DES SPIELSYMBOLS ANGEZEIGT.
16 A$="VARIANTE":L$="SPIELER ":K$="COMPUTER":PRINT:PRINT A$;" 1: ";L$;"GEGEN ";K$
17 PRINT A$;" 2: ";L$;"GEGEN ";L$:A=3:B=6:C=3:D=6
18 C$="SYMBOL FUER ":GOSUB 102:R=VAL(Z$):IF R<1 OR R>2 THEN 18
19 PRINT:PRINT:PRINT C$;:IF R=1 THEN PRINT K$;:ELSE PRINT L$;"1";
20 PRINT ": 0":PRINT C$;L$;:IF R=2 THEN PRINT "2";
21 PRINT ": X":PRINT:PRINT "BEGINN MIT 0 ODER X ?"
22 GOSUB 102:Y$=Z$:IF Y$<>"0"AND Y$<>"X"THEN 22
23 DATA 0,1,0,-1,1,1,1,0,1,-1,-1,1,-1,0,-1,-1:A$=" 1 2 3 4 5 6 7 8
24 FOR I=1 TO 8:READ Z(I):READ S(I):NEXT:Z$=STRING$(15,""):OUT 136,0
25 E=2:F=2:WINDOW:CLS:B$=" ":C$="
26 D$=" ":PRINT A$:PRINT B$:FOR I=1 TO 7:PRINT C$:PRINT D$:NEXT:PRINT C$:PRINT B$:PRINT A$
27 FOR I=1 TO 8:FOR J=0 TO 18 STEP 18:PRINT AT(I+I,J);CHR$(64+I):NEXT J,I
28 PRINT AT(8,8);"0X":PRINT AT(10,8);"X0":WINDOW 0,23,20,39:GOTO 39
29 PRINT O$:T$=V$:GOSUB 30:WINDOW 21,23,1,39:GOTO 45
30 PRINT ""+Z$+"":PRINT " ";T$;SPC(14-LEN(T$));"":PRINT ""+Z$+"
31 PRINT " ZUG : ":PRINT "";SPC(15);"":PRINT " GEWINN:
32 PRINT "";SPC(15);"":PRINT " GESAMT: ":PRINT ""+Z$+"":RETURN
33 Y$="X":H=11:IF S=1 THEN Y$="0":H=1
34 FOR L=2 TO 4 STEP 2:PRINT AT(H+L,29);" ":NEXT
35 PRINT AT(H,33);Y$:PAUSE 1:PRINT AT(H,33);" ":Z$=INKEY$:PAUSE 1:IF Z$=""THEN 35
36 PRINT AT(H+2,30);Z$:CLS:POKE-4279,32:PRINT AT(H,33);Y$:IF G=0 THEN RETURN
37 FOR K=1 TO G:II=INT(R(K)/10):JJ=R(K)-10*II:IF II=8 THEN U$="":ELSE U$=""
38 PRINT AT(2*II+1,2*JJ);U$:NEXT:RETURN
39 I=0:F(4,4)=1:F(5,5)=1:F(4,5)=-1:F(5,4)=-1:IF Y$="X"THEN I=1
40 V=R+I:IF R=2 THEN V=V+1
41 IF V<3 THEN T$=K$+" 0"
42 V$=L$:IF V>2 THEN T$=V$+"1":V$=V$+"2"
43 IF V=1 OR V=3 THEN S=1:ELSE S=2
44 GOSUB 30:GOTO 29
45 A$="":B$="":C$="":D$="":IF V<3 AND S=1 THEN H=1:GOTO 82
46 POKE-4239,32:GOSUB 33
47 IF Z$="0"THEN PRINT "ZUGVERZICHT!":BEEP:Y=Y+1:GOTO 80
48 IF ASC(Z$)<65 OR ASC(Z$)>72 THEN 53
49 S$=INKEY$:IF S$=""THEN 49
50 IF ASC(S$)<49 OR ASC(S$)>56 THEN 53
51 PRINT AT(H+2,32);S$:Z=ASC(Z$)-64:Q=ASC(S$)-48:IF F(Z,Q)=0 THEN 54:ELSE PRINT "BESETZT
52 BEEP:GOTO 46
53 PRINT "EINGABEFEHLER":GOTO 52
54 FOR I=Z-1 TO Z+1:FOR J=Q-1 TO Q+1:IF J=9 OR I=9 THEN 56
55 IF(J<>Q OR I<>Z)AND(S+F(I,J)=0 OR S+F(I,J)=3)THEN 59
56 NEXT J,I
57 IF X=1 THEN T=0:RETURN
58 PRINT "KEIN GEGNERKONTAKT":GOTO 52
59 IF S=1 THEN F(Z,Q)=1:ELSE F(Z,Q)=-1
60 L=1:G=0:T=1:FOR I=1 TO 8:U=Z+Z(I):W=Q+S(I):IF U=0 OR U=9 OR W=0 OR W=9 THEN 70
61 IF F(Z,Q)*F(U,W)<>-1 THEN 70
62 M=1:FOR J=1 TO 7:K=U+Z(I):Y1=W+S(I):IF K=0 OR K=9 OR Y1=0 OR Y1=9 THEN 70
63 PR=F(U,W)*F(K,Y1):IF PR=1 THEN M=M+1:GOTO 65
64 IF PR=-1 THEN G=G+M:GOTO 66:ELSE 70
65 U=U+Z(I):W=W+S(I):NEXT J
66 IF X=1 THEN 70
67 FOR K=1 TO J:W=Q+K*S(I):U=Z+K*Z(I):IF U=8 THEN U$="":ELSE U$=""
68 PRINT AT(U+U+1,W+W);U$:PRINT AT(U+U,W+W);Y$:BEEP:R(L)=10*U+W:L=L+1
69 F(U,W)=-F(U,W):NEXT K:Y=0
70 NEXT I
71 IF X=1 THEN RETURN
72 IF G=0 THEN F(Z,Q)=0:PRINT "KEINE KETTE":GOTO 52
73 PRINT AT(Z+Z,Q+Q);Y$:PRINT AT(H+4,29);G
74 IF A=Z THEN A=A-1:IF A=0 THEN A=1
75 IF B=Z THEN B=B+1:IF B=9 THEN B=8
76 IF C=Q THEN C=C-1:IF C=0 THEN C=1
77 IF D=Q THEN D=D+1:IF D=9 THEN D=8
78 IF S=1 THEN E=E+G+1:F=F-G:ELSE E=E-G:F=F+G+1
79 PRINT AT(7,29);E:PRINT AT(17,29);F:IF E=0 OR F=0 OR E+F=64 OR Y=2 THEN 93
80 IF S=1 THEN S=2:ELSE S=1
81 IF Y=2 THEN 79:ELSE 45
82 X=1:O=0:R=1:Y$="0":GE=G:PRINT AT(3,30);" ":PRINT AT(5,29);"
83 FOR N=A TO B:FOR P=C TO D:IF F(N,P)<>0 THEN 89
84 Z=N:Q=P:GOSUB 54:F(N,P)=0:IF G>0 AND(N=0 OR N=8)THEN G=G+1
85 IF G>0 AND(P=0 OR P=8)THEN G=G+1
86 IF T=0 OR G<O THEN 89
87 IF G>O THEN R=1:O=G
88 M(R)=10*N+P:R=R+1:IF R>10 THEN R=10
89 NEXT P,N:X=0
90 IF O=0 THEN Z$="0":G=GE:GOSUB 37:GOTO 47
91 K=INT(RND(1)*(R-1))+1:II=INT(M(K)/10):JJ=M(K)-10*II:Z$=CHR$(II+64)
92 S$=CHR$(JJ+48):G=GE:GOSUB 36:GOTO 50
93 CLS:B$="":IF E=F THEN A$="UNENTSCHIEDEN"
94 PRINT "SPIELENDE":IF E>F AND V<3 THEN A$="TUT MIR LEID!
95 IF(V>2 AND E<>F)OR F>E THEN A$="ICH GRATULIERE "
96 IF V>2 AND F>E THEN B$=L$+"2"
97 IF V>2 AND F<E THEN B$=L$+"1"
98 IF V<3 AND F>E THEN B$="IHNEN"
99 PRINT A$+B$:PAUSE 50:WINDOW:CLS:END
100 PRINT AT(19,30);">ENTER<"
101 Z$=INKEY$:IF Z$=""THEN 101:ELSE PRINT Z$;:RETURN
102 PRINT SPC(23);"BITTE WAEHLEN: ";:GOTO 101