? *** OTHELLO NACH EINEM PROGRAMM VON RICHARD O. DUDA ***}*** ****** UMGESCHRIEBEN FUER MICROSOFT BASIC-80 ***(*** VERSION FUER HC-BASIC VON L-SOFT ***72********************************************************=<fFES WERDEN ZWEI STRATEGIEN GESPIELT:P1. DIE MEISTEN STEINE ZU BEKOMMENZ2. SONDERPUNKTE FUER RANDPOSITIONENdSPIELFELD IST DIE TABELLE A, UMGEBEN VON 0'S (BLANKS) nA=0 FUER LEERES FELD8xA=B FUER SCHWARZES FELD --X (INTERN -1)eA=W FUER WEISSES FELD --O (INTERN +1)kqA(9,9),I4(8),J4(8),C$(8),D$(2):7,1:3250"KENNEN SIE DIE SPIELREGELN ? (N):";X$ X$"N"490*** SPIELREGELN ***3290<"OTHELLO WIRD AUF EINEM SCHACHBRETT MIT"k "8*8 FELDERN GESPIELT. DIE ZEILEN WERDEN""MIT 1-8 UND DIE SPALTEN MIT A-H BEZEICH-";"NET. ZU SPIELBEGINN SIND ALLE FELDER ""LEER, AUSSER 4 FELDER IN DER MITTE, DIE""FOLGENDES MUSTER BILDEN:""8'" O X"R," X O"X16"VERSUCHEN SIE NUN, IHREN STEIN SO ZU";"SETZEN, DASS ER AN MEINEN ANSCHLIESST"@"UND EINE WAAGERECHTE, SENKRECHTE ODER" E"DIAGONALE REIHE ERGIBT, MIT JEWEILS MIN-";; J"DESTENS EINEM IHRER STEINE AN JEDEM "h O"ENDE. DADURCH WERDEN MEINE STEINE IN " T"IHRE FARBE 'UMGEWANDELT'." Y"SIE MUESSEN VERSUCHEN, MINDESTENS EINEN" ^"STEIN ZU BEKOMMEN; FALLS DAS NICHT MOEG-"; c"LICH IST, KOENNEN SIE IHREN ZUG DURCH"C h"EINGABE VON 0,0 FUER REIHE+SPALTE AB-"Q m"GEBEN."W r w"ES KANN LOSGEHEN ... > ENTER <"; " ";X$ *** INITIALISIEREN *** 3290 F20 &"SOLL ICH MEINE BESTE STRATEGIE SPIELEN ?(J/N):"; 0S20 :"";X$ DX$"N"610* NX$"J"5503 XS22< bB1E lW1U vD$(B1)"X"e D$(01)"."u D$(W1)"O" K18 I4(K) K 0,-1,-1,-1,0,1,1,1 K18 J4(K)  1,1,0,-1,-1,-1,0,1 K18 C$(K)  A,B,C,D,E,F,G,H( *** NEUES SPIEL ***3 I09> J09K *A(I,J)0Q 4W >d HA(4,4)Wq RA(5,5)W~ \A(4,5)B fA(5,4)B pC12 zH12 N14 Z0 *** AUSWAHL DER SPIELSYMBOLE *** "WOLLEN SIE ODER ? (X/O):"; CW HB& "";X$7 X$"X"1010H X$"O"930P CBX HW "WOLLEN SIE ANFANGEN ? (J/N):"; "";X$ 3290 X$"N"1110 X$"J"1010 *** AUSGABE DES SPIELFELDES *** $3290:3120 .3330:1780+8*** COMPUTERS'S ZUEGE ***1BAV3330:B11O`I30:J30XjT1CatT2H~*** SUCHE NACH EINEM FREIEN FELD ***I18J18A(I,J)01470*** FREIES FELD GEFUNDEN ****** IST EIN GEGNER NACHBAR? ***2700F1014705*** GEGNER ALS NACHBAR ***d*** WIEVIEL STEINE KANN MAN GEWINNEN? ****** (ABER JETZT NOCH NICHT) ***U12840*** SONDERPUNKTE FUER RANDPOSITIONEN *** S101470(I1)(I8)01320S1S1S2((J1)(J8)01350%2S1S1S2V<*** IST DIESE LOESUNG DIE BISHER BESTE? ***fFS1B11470vPS1B11430Z*** UNENTSCHIEDEN, ZUFALLSENTSCHEIDUNG ***dnxR(1)R.51470*** JA ***B1S1I3IJ3J*** ENDE SUCHEN ***JI=*** SONST NOCH ETWAS ***LB101570^*** NEIN ***"ICH KANN IM MOMENT NICHT ZIEHEN"Z12290Z11780*** ZUG DURCHFUEHREN ***"Z0,"ICH GEHE NACH ";6(I3);@",";JC$(J3) TII3^JJ3hU1(r28407|C1C1S11DH1H1S1PN1N11m"DADURCH BEKOMME ICH ";y(S1);" IHRER STEINE"*** SPIELFELD DRUCKEN ***3120*** TEST OB SPIELENDE ***H102290N1642290*** EIGENER SPIELZUG ***T1H%T2CH"IHR ZUG -- (REIHE,SPALTE) ";RI,X$`I01800n&I81800}0I01910:"GEBEN SIE DIESEN ZUG AB (J/N) ";D"";X$NX$"J"1800XZ12290bZ1l1090vJ18C$(J)X$1960J1800-*** PRUEFEN OB LEER ***@A(I,J)02010]"DAS FELD IST BESETZT."x"BITTE NEU EINGEBEN!"1810*** TEST OB GUELTIGER NACHBAR ***2700F112070"SIE SIND NICHT NEBEN EINER MEINER STEINE";"BITTE NEU EINGEBEN!"1810; *** TEST OB GUELTIGER ZUG ***DU1N 2840]*S1021304"ZUG IST UNGUELTIG BITTE NEU EINGEBEN!">1810H*** ALLES GUELTIG, ZUG DURCHFUEHREN ***RZ0\"DAS BRINGT IHNEN ";f(S1);p" MEINER STEINE."$zU1.2840=H1H1S11JC1C1S1VN1N11u*** SPIELFELD DRUCKEN ***3120*** TEST OB SPIELENDE ***C102290N16422901090*** AUSGABE SPIELERGEBNISSE ***"SIE HABEN "; (H1);/ " STEINE UND ICH HABE ";; (C1);O$ " STEINE -- ";_. H1C12390o8 H1C12410B "ICH HABE GEWONNEN."L 2420V "UNENTSCHIEDEN !!!"` 2600j "SIE HABEN GEWONNEN !"t C1C1H1~ C102450 C1C1  C1(64C1)N1 "DAS WAR ";, C1112590< C1252570L C1392550\ C1532530x "EIN PERFEKTES SPIEL." 2600 "EIN GLATTER DURCHGANG." 2600 "EIN HARTER KAMPF." 2600 "EIN HEISSES MATCH." 2600 "EIN KAMPF BIS AUFS MESSER."W( Q2 "WOLLEN SIE NOCH EINMAL SPIELEN? (J/N):";\< "";X$lF X$"J"790~P X$"N"2610Z "VIELEN DANK FUERS MITSPIELEN."d n x *** SUBROUTINE TEST NACHBARFELD ***  I111 J111 A(II1,JJ1)T22790 J1" I1@ *** KEIN T2 GEFUNDEN ***I F10O e *** GEFUNDEN ***n F11t z  *** SUBROUTINE ZAEHLEN UND UPDATE ***  S10" K18, I5I4(K)6 J5J4(K)@ I6II5J J6JJ5T S30^ A(I6,J6)T23090#h *** LOOP ***/r S3S31<| I6I6I5I J6J6J5_ A(I6,J6)T12990t A(I6,J6)03090~ 2930 S1S1S3 U13090 *** UPDATE SPIELFELD *** I6I J6J K10S3 A(I6,J6)T1 I6I6I5 J6J6J5  K1 K @& *** SUBROUTINE SPIELFELD DRUCKEN ***V0 2,21,9,29:0,7:s: :" A B C D E F G H"~D I18N :" ";(I);X J18b " ";l D$(A(I,J)1);v J  I :3330   *** SUBROUTINE PROGRAMM-MELDUNG *** :7,1:K "************ O T H E L L O ***********":Q } *** SUBROUTINE BILDSCHIRM LOESCHEN *** 3,31,0,39:7,1:  27,29,1,38:7,1: O ***********":Q } *** SUBROUTINE BILDSCHIRM LOES