Logo Onlinespiele-Sammlung
Let…the…game…play
  • Pacman
  • Mastermind
  • Othello
  • Sokoban
  • Memory
  • Tetris
  • Ladybug
  • Minesweeper
  • Frogger
 

Othelly

 

Das Spiel

"Othelly" habe ich das schöne, nach Othello-Art funktionierende Spiel von Kelly Yancey nun getauft, nachdem ich es ein wenig umgebaut und erweitert habe; es hat zwar noch keine höhere Intelligenz als das Original (mein Plan sieht vor, ihm diese dereinst noch zu geben), aber es besitzt nun eine ganze Reihe weiterer (Einstell-)Möglichkeiten, die es berechtigen, eine eigene Seite in Anspruch zu nehmen und es ein wenig als "mein" Spiel erscheinen zu lassen.

Hier kannst Du das Programm in der von Kelly ursprünglich beabsichtigten Form zum Spielen gegen den Computer benutzen. Nach meiner Erweiterungsarbeit kannst Du mit ihm nun auch gegen einen anderen Menschen (am selben Computer) spielen; außerdem kannst Du Züge zurücknehmen, indem Du auf den linken Pfeil unter dem Spiel klickst; das Spiel speichert sämtliche Züge und gibt sie zum Schluss im Eingabefeld unter dem Spiel aus.
Falls Du nicht weißt, wie das Spiel Othello bzw. Reversi funktioniert, solltest Du erst die Othellolitis studieren; dort findest Du die Grundlagen des Spiels, aber auch Informationen über ausgefeiltere Strategien.

........
........
........
...O#...
...#O...
........
........
........
 
Original: (c) 2000, 2001 Kelly Yancey

nach oben

 
 

Darstellung von Spielstellungen

Im Zwei-Spieler-Modus kann das Spiel nun auch dazu dienen, Spielstellungen in Tutorials und Strategieführern darzustellen; dazu müssen die Spielstellungen in einem bestimmten Format in den HTML-Quellcode der Seite eingebaut sein.
Hier als Beispiel die Ausgangsposition eines Spiels mit zwei weißen Steinen, dargestellt durch einen Buchstaben (großes O), zwei schwarzen Steinen, durch die Raute (#) dargestellt, und ansonsten leeren Feldern, die durch den Punkt (.) symbolisiert werden:

	<div class="othello-game">
		<pre class="othello-board-code">
			........
			........
			........
			...O#...
			...#O...
			........
			........
			........
		</pre>
		<input type="text" class="gameplay" value="" />
	</div>
	

Das Programm liest diesen Code beim Aufruf der Seite automatisch aus und baut an seiner Stelle ein vollständiges Spiel auf, mit dem ganz normal im Zwei-Spieler-Modus gespielt werden kann.
Man kann jedoch auch jede beliebige Spielstellung kodieren und erhält ein Spiel, das diese Stellung sichtbar macht.
Im folgenden siehst Du eine Spielsituation vom Internationalen Turnier von Cambridge 1987 zwischen Pete Bhagat (Schwarz) und Joel Feinstein (Weiß), wie letzterer sie in seiner Strategie-Lektion "Die Kunst vier Ecken zu opfern" zur Veranschaulichung verwendet, zuerst in Code-Form und darunter das, was das Programm daraus macht.

..OOOO..
#.O#OO..
##OOOOOO
#O###OOO
.OO#OOOO
OOOOOOOO
..#OOO..
.###.O..
..OOOO..
#.O#OO..
##OOOOOO
#O###OOO
.OO#OOOO
OOOOOOOO
..#OOO..
.###.O..

Ich will aber an dieser Stelle nicht verschweigen, dass es zu diesem Zweck auch noch andere Möglichkeiten in Javascript gibt: jOthello von Ken-Soft und KOBRO von Uladzimir Khlebnikau.
Das jOthello zugrunde liegende Programm kann auch Spielstellungen einiger anderer Spiele, wie Schach, Dame und Go darstellen und sogar animieren; die angezeigten Spiele können aber nicht wie ein normales Spiel fortgesetzt werden.
KOBRO dagegen liest das Transskript einer kompletten Partie Othello/Reversi ein, zeigt eine festzulegende Spielstellung an und kann weitergespielt werden. Der Ansatz, dem Programm eine vollständige Partie mitzugeben, die an jeder beliebigen Stelle "angehalten" werden kann, finde ich noch besser als meine Vorgehensweise.
Der Vorteil meines Spiels ist, dass verschiedene Partien zur Laufzeit in das Programm eingespeist werden können (siehe nächster Abschnitt).

 
 

Replay von Spielen

Das Programm besitzt aber noch eine weitere Eigenschaft: man kann ihm eine Abfolge von Zügen im Format "b1 a1 A5 B2 F5G3H8" usw. mitgeben und die Züge dann durch Klicks auf die beiden Buttons links und rechts neben der Eingabe vor- und zurückspielen. Man kann so auch vollständige Partien nachvollziehen.

Dem folgenden Spiel ist das Endspiel der Weltmeisterschaft 2010 zwischen Yusuke TAKANASHI (Schwarz) - Michele BORASSI (Weiß) implantiert; Klicks auf den rechten Pfeil führen durch die Partie.

........
........
........
...O#...
...#O...
........
........
........

Endspiel um die Weltmeisterschaft 2010: Yusuke TAKANASHI (Schwarz) - Michele BORASSI (Weiß)

Nun muss man sich nicht mit dieser einen "voreingestellten" Partie begnügen; man kann auch andere Spiele nachspielen, indem man ihr Transkript in der unten gezeigten Form in das Eingabefeld unter dem Spiel eingibt.
Hier ist das Transkript des Weltmeisterschaftsendspiels der Frauen von 2010 zwischen Veronica STENBERG (Schwarz) und Jiska HELMES (Weiß): F5 D6 C3 D3 C4 F4 C5 B3 C2 F6 G5 E3 G4 B5 B4 C6 D7 E7 E2 E6 D2 C1 C7 D8 A6 A4 B6 G6 A2 D1 E1 F1 F2 H5 F8 E8 C8 A3 A5 F7 H4 H3 H6 H7 G3 G1 G2 F3 B7 G7 H8 G8 H2 A7 A8 B8 B2 H1 A1 B1. Du kannst es kopieren und in das Eingabefeld einfügen; danach musst Du allerdings "RESET" drücken, damit es eingelesen wird.
Hier noch eine Partie des Semifinales von 2011 zwischen Matthias Berg (Weiß) und Piyanat Aunchulee (Schwarz), die mit 38 zu 26 an Matthias Berg ging: F5 D6 C3 D3 C4 F4 F6 G5 E6 D7 E3 C5 F3 E7 H5 E2 C6 D2 C2 G3 F1 E1 D1 G4 F7 H4 H3 C1 B1 B6 H6 B5 E8 D8 C8 G6 B4 A3 C7 F8 G8 F2 A6 G7 A5 A4 A2 B3 H8 H7 G1 G2 B2 A1 H1 B8 A8 H2 B7 A7

Alle Züge können auch zurückgenommen werden, indem man den linken Pfeil klickt.

Ein anderes Programm, mit dem man sich Replays von Spielen ansehen kann, hat Emmett Nicholas erstellt; ich weiß aber nicht, ob es zur allgemeinen Verwendung freigegeben ist.

Wer lieber auf ein JAVA-Applet zurückgreifen möchte, um Othello-Partien nachvollziehen zu können, dem steht auf LiveOthello ein feines Programm von Bruno Causse, Emmanuel Lazard and Stéphane Nicolet zur freien Verfügung.
Ein weiteres Applet für diesen Zweck hat vor langer Zeit schon Leonid Shifman entwickelt; auch das ist immer noch brauchbar.
Ein ausgezeichnetes Applet ist auch die japanische Entwicklung RIA, die noch zahlreiche andere Konfigurationsmöglichkeiten bietet.
Als vierte Möglichkeit habe ich noch das schöne Applet von Yukinobu Goto (後藤幸信氏) zu erwähnen, das bei Hasera.net eingesetzt wird, um den Erfolg verschiedener Eröffnungen zu zeigen. Hier ist allerdings die Kodierung der Spiele etwas anders und aufwändiger.


		<PARAM name="Line1" value="47 46 17 23 26 24 27 49">
		<PARAM name="Line2" value="57 58 09 14 22 29 48 50">
		<PARAM name="Line3" value="42 08 03 04 15 19 35 36">
		<PARAM name="Line4" value="41 12 05 () ## 06 34 51">
		<PARAM name="Line5" value="44 13 07 ## () 01 37 40">
		<PARAM name="Line6" value="16 18 11 02 10 20 28 39">
		<PARAM name="Line7" value="45 38 32 30 25 21 59 54">
		<PARAM name="Line8" value="43 56 33 31 52 53 60 55">
		

Die ersten drei JAVA-Programme bieten eine einfache Möglichkeit, das Spiel in einem bestimmten Zustand (nach einem bestimmten Zug) anzuzeigen.

 
 

Nutzung / Download

Zu meiner eigenen Erbauung habe ich den Code in Form einer Klasse angelegt; dies bietet außerdem den Vorteil, dass man mehrere Spiele auf die vorgestellte Art in eine Seite einbinden kann.
Kelly Yancey hat sein Spiel zur Nutzung und Bearbeitung (unter ein paar Auflagen) frei gegeben; deshalb halte ich es ebenso und stelle das Programm jedermann zur Verfügung, der es benutzen oder bearbeiten will.
Hier kannst Du es Dir ansehen: reversi-board-class.js; mit ein paar Anpassungen der globalen Variablen und der Stylesheets lässt es sich leicht auch in andere Umgebungen integrieren. Download von Javascript, Grafiken und CSS (zip, 16 KB)

nach oben