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