Watten
Transcrição
Watten
Bachelorarbeit Watten Mutschlechner Margit (0617306) [email protected] 21. September 2009 Betreuer: MSc Winkler Sarah Zusammenfassung (Englisch) The aim of this bachelor project was to implement the popular card game Watten as a computer game. The obtained implementation provides human players with virtual opponents in three levels of difficulty. It allows also to play different variants of the game, as for example the so-called Blind-Watten. This report is the written elaboration of the bachelor project. First it outlines the card game itself. The game and its rules get explained from scratch and the various strategies of a player during a game are discussed. But the essential part of the work is the outline of the computer game. It gives a insight into the implementation by explaining the design and structure of the program and by discussing the computer players and their strategy. Also the usage of the program gets explained, what a human player can expect and how the graphical user interface looks like. In addition to that the work evaluates and interprets the test series that were executed by different people. Inhaltsverzeichnis 1. Einleitung 1 2. Watten – das Kartenspiel 2.1. Grundwissen . . . . . . . . . 2.1.1. Karten . . . . . . . . . 2.1.2. Kurzer Spielüberblick 2.1.3. Begriffsklärung . . . . 2.1.4. Spielablauf . . . . . . 2.1.5. Blind-Watten . . . . . 2.2. Tipps & Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Implementierung 3.1. Programmstruktur . . . . . . . . . . . 3.2. Spielablauf . . . . . . . . . . . . . . . 3.3. GUI . . . . . . . . . . . . . . . . . . . 3.3.1. Hauptfenster . . . . . . . . . . 3.3.2. Fenster für Spiel-Einstellungen 3.4. Spielstrategie der Computer-Spieler . . 3.4.1. Werfen . . . . . . . . . . . . . . 3.4.2. Bieten . . . . . . . . . . . . . . 3.4.3. Ansagen . . . . . . . . . . . . . 3.4.4. Blind-Watten . . . . . . . . . . 4. Programmtests 4.1. Testumgebung . . . . 4.2. Testergebnisse . . . . . 4.2.1. Offenes Watten 4.2.2. Offenes Watten 4.2.3. Blind-Watten . . . . . . . . . . . zu zweit zu viert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 3 3 6 7 8 . . . . . . . . . . 10 10 13 14 14 17 18 19 20 22 22 . . . . . 27 27 28 28 29 30 5. Zusammenfassung 31 5.1. Mögliche Erweiterungen und Verbesserungen . . . . . . . . . . . 31 5.2. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Literaturverzeichnis 33 A. Testergebnisse 34 B. Weitere Diagramme zu den Testergebnissen 37 iv 1. Einleitung Das Spiel Watten ist ein in Nord- und Südtirol sowie Bayern und Teilen der Schweiz sehr populäres Kartenspiel. Es ist zwar nicht so weit verbreitet wie beispielsweise Pokern, doch dort, wo es bekannt ist, wird es vom Großteil der Bevölkerung gespielt. Über die Frage, wann und wie Watten entstanden ist, gibt es viele Mutmaßungen. Zum einen wird angenommen, dass das Spiel während der napoleonischen Kriege in Südtirol entstanden ist und sein Name vom französischen va tout (letzter Trumpf) abgeleitet wurde [5]. Eine zweite Annahme besagt, das Spiel hätte seinen Namen vom italienischen battere (schlagen, klopfen) [6]. Teilweise gibt es große regionale Unterschiede in der Spielweise und den Regeln. Diese Arbeit beschränkt sich daher auf das Watten, so wie es im Großteil von Südtirol gespielt wird, damit das Thema nicht zu komplex wird. Die Motivation für diese Arbeit war die Tatsache, dass es kaum bzw. nur schlecht funktionierende Implementierungen als Computerspiel des Kartenspiels Watten gibt. Das Ziel dieser Arbeit ist nun eben diese Implementierung, sodass der Ablauf des Kartenspiels vom Computer simuliert wird und Computer-Spieler statt menschlicher Spieler zur Verfügung gestellt werden. Das Programm hilft einerseits Anfängern beim Erlernen des Spiels, indem es eben den Ablauf simuliert und dem Spieler seine durchzuführenden Aktionen mitteilt. So muss er selbst die Regeln nicht im Detail wissen. Andererseits können mit Hilfe der Implementierung verschiedene Spielstrategien, die von einem menschlichen Spieler beim Watten eingesetzt werden, analysiert und auf ihre Effizienz hin verglichen werden. Die Arbeit ist folgendermaßen gegliedert: Der erste Teil (Kapitel 2) beschäftigt sich mit dem Kartenspiel selbst. Hier wird zuerst Grundwissen über das Watten vermittelt, sodass auch ein Anfänger die folgenden Kapitel nachvollziehen kann. Anschließend wird kurz auf ein paar Spielstrategien eingegangen, die auch bei der Realisierung des Computer-Spiels berücksichtigt wurden. Das nächste Kapitel (Kapitel 3) erläutert eben diese Implementierung. Dabei wird zuerst auf den Aufbau des Programms sowie auf die graphische Benutzeroberfläche eingegangen. Der dritte Teil dieses Kapitels (Abschnitt 3.4) gibt einen Einblick in die Spielstrategie der Computer-Spieler. Das Spiel wurde von mehreren Testern auf den Spielerfolg der Computer-Spieler hin getestet. Die Auswertung dieser Tests wird im dritten Kapitel angeführt und besprochen, weiters wurden die Ergebnisse der Testspiele im Anhang angefügt. 1 2. Watten – das Kartenspiel In diesem Kapitel wird das Kartenspiel Watten von Grund auf erklärt. Einerseits wird Basiswissen vermittelt, mit welchen Karten gespielt wird und wie der Spielablauf aufgebaut ist; andererseits werden auch einige Strategien erläutert, die bei der Implementierung der Computerspieler herangezogen wurden. Für dieses Kapitel wurden die Quellen [4, 5] herangezogen. 2.1. Grundwissen 2.1.1. Karten Gespielt wird Watten mit einem Blatt aus 33 Karten, die den französischen Rummy-Karten bzw. den Poker-Karten ähneln. Bei beiden gibt es vier verschiedene Farben, jedoch haben diese bei den Watt-Karten teilweise andere Namen: Herz Laub Eichel Schell Auch gibt es nur acht Kartenwerte, nicht 13 wie bei den Rummy-Karten. Es gibt in allen vier Farben die Kartenwerte Sieben bis Zehn, Unter, Ober, König und Ass. Es fehlen also die Kartenwerte Zwei bis Sechs. Nur die Sechs in Farbe Schell gibt es trotzdem, diese Karte heißt Weli. Anzahl Farben Schläge Besondere Karten Watt-Karten 33 Herz Laub Eichel Schell Ass, König, Ober, Unter, Zehn, Neun, Acht, Sieben Weli (Schell Sechs) Poker-Karten 52 Herz Pik Karo Kreuz Ass, König, Ober, Unter, Zehn, Neun, Acht, Sieben Sechs, Fünf, Vier, Drei, Zwei vier Joker Tabelle 2.1.: Watt-Karten im Vergleich zu den Poker-Karten. 2 2.1 Grundwissen 2.1.2. Kurzer Spielüberblick Zum besseren Verständnis der nachfolgenden Abschnitte wird nun ein kurzer Spielüberblick gegeben. Das Spiel kann zu zweit oder zu viert gespielt werden, wobei jeweils die zwei sich gegenüber sitzenden Spieler im Team zusammenspielen. Gespielt wird in Runden. In jeder Runde wird um eine bestimmte Anzahl von Punkten gespielt. Erreicht ein Team die zu Beginn des Spieles bestimmte, zum Sieg notwendige Gesamtpunktezahl p, so gewinnt dieses Team und das Spiel ist beendet. Zu Beginn einer Runde erhält jeder Spieler fünf Karten, dann wird angesagt (siehe Abschnitt 2.1.3). Das Spiel ist ein Stichspiel. Reihum legt jeder Spieler nacheinander eine seiner Karten auf den Tisch. Liegen alle zwei bzw. vier Karten auf dem Tisch, so erhält jener Spieler, der die beste Karte gespielt hat, diese Karten. Man sagt dazu auch den Stich machen. Nachdem jeder Spieler so alle seine fünf Karten gespielt hat, bekommt das Team mit den meisten Stichen (mindestens drei) die momentan gebotenen Punkte. 2.1.3. Begriffsklärung Ansagen: Zu Beginn jeder Runde muss sich der Spieler, der die Karten ausgeteilt hat, für eine der vier Farbe entscheiden, der Spieler links von ihm für einen der neun Kartenwerte. Man nennt dies auch Trumpf und Schlag ansagen. Anhand dieser Ansage erhalten die Karten eine bestimmte Rangordnung. Auf diese wird später noch eingegangen. Schönere: Vor dem Ansagen können die beiden Spieler, die Trumpf und Schlag bestimmen müssen, um ein erneutes Austeilen der Karten fragen. Sind beide Spieler einverstanden, so bekommen sie von den noch nicht ausgeteilten Karten jeweils fünf neue Karten. Rechter: Der Rechte ist jene Karte, deren Kartenwert und Farbe dem angesagten Schlag und Trumpf entspricht. Wurde Weli angesagt, so wird der Weli als Rechter bezeichnet, egal welche Farbe als Trumpf angesagt wurde. Guter: Jene Karte, deren Farbe dem angesagten Trumpf entspricht, und deren Kartenwert um eins höher ist als der angesagte Schlag, wird als Guter bezeichnet. Wurde Ass angesagt, ist die Sieben mit dem angesagten Trumpf der Gute. Wurde Weli angesagt gibt es keinen Guten. Trümpfe: So werden alle Karten bezeichnet, deren Farbe mit der durch das Ansagen bestimmten Farbe übereinstimmt. Nicht als Trumpf gelten dabei Rechter und Guter. 3 2 Watten – das Kartenspiel Schläge: Eine Karte wird als Schlag bezeichnet, falls ihr Kartenwert mit dem durch das Ansagen bestimmten Schlag, jedoch nicht mit dem Trumpf übereinstimmt. Somit gibt es drei Schläge, außer es wurde Weli angesagt, dann gibt es keine Schläge. Beispiel 2.1. Ist Herz Zehn angesagt, so spielen diese Karten eine besondere Rolle: Trümpfe Schläge Rechter Guter Herz Sieben Herz Acht Herz Neun Herz Ober Herz König Herz Ass Eichel Zehn Laub Zehn Schell Zehn Herz Zehn Herz Unter Stich: Hat jeder Spieler nacheinander eine seiner Karten gespielt, so wird die beste Karte ermittelt. Der Spieler, der diese geworfen hat, sticht bzw. macht den Stich. Ein Stich ist in Beispiel 2.2, oder auch in Beispiel 2.3, zu sehen. Farbstich: Von einem Farbstich spricht man, wenn die Stechkarte weder den angesagten Trumpf noch Schlag hat, sondern die Farbe der als erstes ausgeworfenen Karte und einen höheren Kartenwert als diese hat. Ein Farbstich wird in Beispiel 2.3 dargestellt. Beispiel 2.2. In dieser Runde wurde Eichel Ass angesagt. Eichel Zehn, Herz Acht, Laub Ass und der Weli wurden ausgespielt. Die dritte Karte sticht, da diese ein Schlag und somit die beste Karte im Stich. Beispiel 2.3. Es wurde wiederum Eichel Ass angesagt. Herz Neun, Laub Sieben, Herz Ober und Schell Unter wurden ausgespielt. Die dritte Karte sticht, da sie dieselbe Farbe wie die ausgespielte Karte hat und keine Karte den angesagten Schlag oder Trumpf hat. 4 2.1 Grundwissen Zugeben: Beim Watten besteht sogenannter Farbzwang, falls Trumpf ausgespielt wurde. Hat die erste geworfene Karte den angesagten Trumpf, so muss jeder Spieler Farbe zugeben oder stechen. Als Karten, die zugegeben werden müssen, gelten all jene, die den angesagten Trumpf haben und weder Rechter noch Guter sind (also alle Trümpfe). Hat ein Spieler mindestens eine dieser Karten, so muss er diese werfen, oder aber er wirft eine Karte, die alle Karten auf dem Spielfeld sticht. Hat er keinen einzigen Trumpf, also nur Rechten, Guten oder nur Karten einer anderen Farbe, so darf er eine beliebige Karte werfen. Wurde Weli als Schlag angesagt muss auch Trumpf zugegeben werden, wenn die erste ausgespielte Karte der Weli ist. Bieten: Hat ein Team gute Karten in der Hand, so kann es die Punktezahl, um die in dieser Runde gespielt wird, um eins erhöhen. Der Gegner hat dann zwei Möglichkeiten: • gehen: Die Runde wird abgebrochen und das Team, das geboten hat, erhält die bisher gebotenen Punkte. • halten: Die Punktezahl, um die in dieser Runde gespielt wird, wird um einen Punkt erhöht und die Runde wird fortgesetzt. Wird mit vier Spielern gespielt, so müssen sich die zwei Partner einig werden, ob sie bei einem Gebot des Gegners halten oder gehen wollen. Bieten können sie auch ohne das Einverständnis des Partners. Geboten werden kann beliebig oft, aber immer nur abwechselnd von beiden Teams. Gestrichen: Hat ein Team eine gewisse Punktezahl erreicht, so ist dieses gestrichen. Diese Punktezahl beträgt zwei weniger als die für einen Sieg zu erreichenden Punkte. Spielt man beispielsweise bis 18 bzw. 15 Punkte, so ist ein Team ab 16 bzw. 13 Punkten gestrichen. Ist ein Team gestrichen, so darf nicht mehr geboten werden und es gilt eine fixe Punktezahl, um die in dieser Runde gespielt wird. Dabei gibt es im wesentlichen zwei Spielmodi (p bezeichnet die für einen Sieg notwendigfertigee Punktezahl): • Hat ein Team p-2 Punkte, so sind drei Punkte geboten; hat ein Team p-1 Punkte, so sind vier Punkte geboten. • Ist ein Team gestrichen und beträgt die Differenz aus den Punkten beider Teams mindestens vier, so sind vier Punkte geboten, ansonsten nur zwei Punkte. 5 2 Watten – das Kartenspiel Das Team, das gestrichen ist, muss nach dem Ansagen entscheiden, ob es halten will oder nicht. Falls das Team halten will wird in dieser Runde je nach Spielmodus um die oben erwähnten Punkte gespielt. Entscheidet es sich, nicht zu halten, so bekommt der Gegner zwei Punkte und die Runde wird abgebrochen. Schneider: Erreicht ein Team die nötige Punktezahl zum Sieg und der Gegner hat noch keine Punkte erlangt, so ist der Gegner geschneidert worden. 2.1.4. Spielablauf Einer der zwei bzw. vier Spieler mischt die 33 Karten und teilt jedem Spieler fünf Karten verdeckt aus, sodass nur der jeweilige Spieler seine Karten sieht. Die oberste und unterste Karte im übrig gebliebenen Stapel sind für jeden sichtbar aufgedeckt. Dann wird angesagt (siehe Abschnitt 2.1.3), das heißt ein Kartenwert und eine Farbe bestimmt. Zuerst sagt der Spieler, der die Karten ausgeteilt hat, Trumpf an, anschließend der Spieler links von ihm Schlag. Als erster spielt derjenige eine Karte aus, der Schlag angesagt hat, das heißt er legt eine seiner fünf Karten auf den Tisch. Dann spielen die anderen Spieler reihum im Uhrzeigersinn ebenfalls eine Karte. Normalerweise dürfen die Spieler die Karten in ihrer Hand beliebig spielen, außer die erste geworfene Karte hat den angesagten Trumpf, dann muss jeder Spieler zugeben (Abschnitt 2.1.3) und darf gegebenenfalls nur bestimmte Karten spielen. Liegen alle zwei bzw. vier Karten auf dem Spielfeld, so wird ermittelt, wer die beste Karte geworfen hat. Dabei gilt folgende grobe Rangordnung: Guter > Rechter > Schläge > Trümpfe > übrige Karten Beispiel 2.4. Rangordnung mit der Annahme, dass Herz Zehn angesagt wurde. z.B. > > z.B. > z.B. > Die beste Karte ist der Gute, dann folgt der Rechte, dieser wiederum sticht alle Schläge. Liegen zwei Schläge in einem Stich, so sticht der zuerst geworfene. Die Schläge stechen alle Trümpfe, von denen jeder jeweils die anderen Trümpfe mit niedrigerem Kartenwert sticht. Trümpfe stechen auch alle Karten, die weder den angesagten Trumpf noch Schlag haben. Von diesen Karten sticht eine Karte eine andere, wenn sie beide dieselbe Farbe haben und die erste einen höheren Kartenwert hat. So kann eine Eichel Neun eine Eichel Acht stechen, 6 2.1 Grundwissen nicht jedoch eine Schell Acht. Sticht keine Karte die als erste ausgespielte, so sticht diese zuerst gespielte Karte. Wurde von jedem Spieler eine Karte gespielt, so erhält der Spieler mit der besten Karte den Stich und die Karten werden verdeckt beiseite gelegt. Dieser Spieler wirft dann die nächste Karte, wiederum werfen die anderen Spieler im Uhrzeigersinn ihre Karte. Sobald so alle fünf Stiche gespielt wurden oder ein Team bereits drei Stiche erreicht hat, bekommt jenes Team mit den meisten Stichen die gebotenen Punkte. Der Spieler, der vorhin Schlag angesagt hat, mischt nun alle Karten und der Spielablauf beginnt von neuem. Das wird so lange wiederholt, bis ein Team die für einen Sieg zu erreichende Punktezahl erreicht hat. 2.1.5. Blind-Watten Diese Form des Wattens wird nur zu viert gespielt. Hierbei gibt es jeweils zwei wissende und zwei unwissende Spieler. Als Wissende werden jene Spieler bezeichnet, die Trumpf und Schlag angesagt haben. Nur sie wissen, was sie angesagt haben, den Unwissenden darf dies nicht mitgeteilt werden. Deshalb sagen sie die ausgewählte Farbe bzw. den ausgewählten Kartenwert nicht laut ihrem Gegner, sondern zeigen sich beim Ansagen gegenseitig eine ihrer fünf Karten, die den entsprechenden Trumpf bzw. Schlag hat. Auch die oberste und unterste Karte des restlichen Kartenstapels sind nicht für alle sichtbar, diese darf nur jener Spieler sehen, der Trumpf ansagt. Da es beim Blind-Watten zwei Unwissende braucht, kann es nur zu viert gespielt werden. Zu zweit würde das Blind-Watten gleich verlaufen wie das offene Watten, da ja beide Spieler ansagen und somit Wissende sind. Für die Wissenden gelten dieselben Spielregeln wie beim offenen Watten. Die Unwissenden hingegen haben den Vorteil, dass sie nicht mehr zugeben (Abschnitt 2.1.3) müssen. Die Unwissenden müssen durch Kombinieren der Stiche und Stechkarten im laufenden Spiel herausfinden, was angesagt wurde. Ein guter Watt-Spieler weiß meistens bereits nach dem zweiten Stich, was angesagt wurde, aber es kann auch bis zum Schluss nicht ganz klar sein. Um das Erraten von Schlag und Trumpf etwas zu erleichtern, wird der erste Stich während der gesamten Runde offen, das heißt für jeden sichtbar, beiseite gelegt. Beim Herausfinden des angesagten Schlags und Trumpfs wird am Besten nach dem Ausschlussprinzip vorgegangen. In jeder Runde werden jene Ansagen, die durch diesen Stich nicht mehr möglich sind, ausgeschlossen. Diese Methode wird in Beispiel 2.5 verdeutlicht. Beispiel 2.5. In der ersten Runde hat der Spieler, der Schlag angesagt hat, Eichel König ausgespielt, die zwei Unwissenden haben Herz Neun und Laub Zehn gespielt und der Spieler, der Trumpf angesagt hat, hat Laub Ober geworfen 7 2 Watten – das Kartenspiel und sticht auch mit dieser Karte (Abbildung 2.1). Mit Sicherheit kann Neun und Zehn als möglicher angesagter Schlag ausgeschlossen werden, sonst hätte die zweite bzw. dritte geworfene Karte gestochen. Es muss Ober und/oder Laub angesagt worden sein, sonst hätte die vierte Karte nicht gestochen. Abbildung 2.1.: Erster Stich. In der zweiten Runde spielt der Spieler, der Trumpf angesagt hat, die erste Karte aus, nämlich Herz Sieben. Dann werden reihum Herz Ass, Laub Neun und Schell Acht geworfen. Die letzte Karte sticht (Abbildung 2.2). Wegen dem ersten Stich kann nur Laub und/oder Ober angesagt worden sein, aber Ober kann nun als Schlag ausgeschlossen werden, da sonst die dritte Karte gestochen hätte. Somit wurde sicher Laub als Trumpf angesagt. Außerdem kann die vierte Karte nur stechen, falls Schell oder Acht angesagt wurde. Daraus kann man schließen, dass Laub Acht angesagt wurde. Abbildung 2.2.: Zweiter Stich. 2.2. Tipps & Tricks Um beim Watten eine Chance auf den Sieg zu haben, muss man nicht nur die Grundregeln, wie sie im vorangegangenen Abschnitt erläutert wurden, kennen. Die Karten einfach per Zufall zu spielen, würde selten zu einem Sieg führen. Deshalb gibt es verschiedene Strategien, nach denen gespielt wird. Diese werden auch bei der Implementierung der Spieltaktik der Computer-Spieler verwendet und im Folgenden erläutert: Allgemein: • Um zu bieten, muss man nicht zwingend gute Karten in seinem Blatt haben, man kann auch bluffen. Somit ist der Spieler nicht so leicht ein- 8 2.2 Tipps & Tricks zuschätzen. Hat man gute Karten, so sollte man auch nicht immer sofort bieten, sondern einen günstigen Moment abwarten, sodass der Gegner eher hält. Speziell für vier Spieler: • Wurde die beste Karte in einem Stich vom Partner gespielt, so versucht man nicht zu stechen, sondern wirft von den erlaubten Karten in seinem Blatt (siehe Abschnitt 2.1.3) jene Karte mit dem niedrigsten Wert. • Ist die beste gespielte Karte hingegen die Karte eines Gegners und der Partner hat bereits seine Karte geworfen, dann sollte man – falls möglich – stechen. Hat man mehrere stechende Karten zur Auswahl, so kann man entweder jene mit dem kleinsten Wert spielen, oder aber auch eine mit einem hohen Wert, damit es dem Gegner nicht möglich ist, eine noch bessere Karte zu werfen. • Gehört die beste gespielte Karte dem Gegner, aber der Partner hat noch nicht geworfen, muss man nicht stechen, man kann den Stich auch dem Partner überlassen. Speziell für das Blind-Watten: • Falls man den angesagten Schlag nicht kennt, so sollte möglichst keine Karte geworfen werden, die denselben Kartenwert hat wie eine Karte, die bereits auf dem Spielfeld liegt. Dadurch wird verhindert, dass man einen Schlag spielt, obwohl bereits einer zuvor gespielt wurde und somit der zuerst geworfene sticht. • Falls der angesagte Schlag noch nicht bekannt ist und der Partner hat in dieser Runde bereits eine Karte gespielt, so sollte möglichst keine Karte geworfen werden, deren Kartenwert um eins höher ist als jener der Karte des Partners. Somit wird verhindert, dass man dem Partner einen Schlag oder den Rechten mit dem Guten absticht. • Im ersten Stich in einer Runde sollte der Spieler eine Karte werfen, deren Farbe noch eine weitere Karte in seiner Hand hat. Falls diese Farbe dem angesagten Trumpf entspricht, wird damit dem Partner angezeigt, dass der Spieler noch einen Trumpf in seinem Blatt hält. 9 3. Implementierung Im Computer-Spiel wurde das Kartenspiel mit den im Kapitel 2 erläuterten Regeln implementiert. Der Anwender kann einige Spieloptionen selbst zu Beginn wählen und dann wie bei einem Spiel mit realen Mitspielern spielen. Es kann nach den Regeln des offenen Wattens gespielt werden, aber auch das BlindWatten ist implementiert. Gespielt werden kann zu viert oder zu zweit, wobei ein bzw. drei Spieler fiktive Computer-Spieler sind. Diese werden in drei verschiedene Schwierigkeitsstufen bereitgestellt. Implementiert wurde das Spiel in der Programmiersprache Java [1]. Für die Realisierung der graphische Benutzeroberfläche wurde Swing [3] benutzt. Bei der Entwicklung des Programms wurde strikt das Model-View-ControllerPrinzip [7] eingehalten. Zur Verwendung des Programms braucht es lediglich das Java Runtime Environment 6 [2]. Es läuft sowohl unter Linux als auch unter Windows. In Windows reicht ein Doppelklick auf Watten.jar, unter Linux wird es per Kommandozeile mit $ java -jar Watten.jar ausgeführt (nachdem man in den Ordner gewechselt hat, in dem das Programm liegt). Im Folgenden wird ein Einblick gegeben, wie das Programm aufgebaut ist, zum einen aus Sicht des Programmierers (siehe Abschnitt 3.1), zum anderen aus Sicht des Anwenders (siehe Abschnitt 3.3). Dann werden die Besonderheiten beim Spielablauf im Gegensatz zum Kartenspiel mit realen Mitspielern erläutert (Abschnitt 3.2) und schließlich wird die Kernfunktion des Programms, nämlich die Spielstrategie der Computer-Spieler, erklärt (siehe Abschnitt 3.4). 3.1. Programmstruktur In diesem Abschnitt wird auf den Aufbau der Klassen und Pakete eingegangen. Zuerst wird ein grober Einblick in die Struktur des Programms aus Sicht des Programmierers gegeben. Zur Realisierung der Model-View-Controller Architektur wurden die Klassen in vier Pakete eingeteilt: 10 3.1 Programmstruktur • Paket gui: (View) Die Klassen dieses Pakets modellieren die graphische Benutzeroberfläche. Sie bilden die Schnittstelle zwischen dem Spieler und dem Spiel. • Paket controller: (Controller) Der Controller steuert die graphische Benutzeroberfläche, und bildet damit die Schnittstelle zwischen View und Model. • Paket model: (Model) In diesem Paket werden all jene Klassen zusammengefasst, die die Spiellogik betreffen, Daten modellieren und den Spielablauf steuern. • Paket ki: Die Klassen in diesem Paket realisieren die Spielstrategie der ComputerSpieler. Das wäre eigentlich ein Teil des Models, aber nachdem diese Klassen eine klar abgegrenzte Funktionalität haben, wurden sie in ein eigenes Paket ausgelagert. Das Programm besteht aus insgesamt 4316 Programmzeilen1 , wobei circa die Hälfte auf die graphische Oberfläche ausfällt und ein Drittel auf die Klassen im Paket model (siehe Abbildung 3.1). Das Programm besteht aus 15 Klassen, wovon die meisten zur Realisierung der Spiellogik dienen. Abbildung 3.1.: Verteilung der Programmzeilen auf die Pakete. Die Aufteilung der Klassen auf die einzelnen Pakete, die Funktionalitäten und Aufgaben der einzelnen Klassen sowie ihre Beziehungen untereinander werden mit Hilfe eines Klassendiagramms in Abbildung 3.2 und im folgenden Abschnitt verdeutlicht. 1 Programmzeilen sind alle Zeilen des Codes, aber ohne leere Zeilen und Kommentarzeilen. 11 3 Implementierung Abbildung 3.2.: Klassendiagramm. gui: Dieses Paket besteht aus drei Klassen, von denen zwei im nachfolgenden Abschnitt über die Benutzeroberfläche näher erläutert werden, und zwar die Klasse GuiMain und GuiNeu. Die dritte Klasse GuiHilfe erzeugt ein HilfeFenster, welches zum einen die Spielregeln sowie Tipps und Tricks anzeigt, zum anderen einen kurzen geschichtlichen Abriss zum Kartenspiel gibt. controller: Das Paket controller enthält eine gleichnamige Klasse, die die Schnittstelle zwischen gui und model darstellt. Eingaben vom Benutzer werden über diese Klasse an die jeweils zuständigen Klassen im Paket model weitergeleitet sowie Berechnungen der Klassen jenes Pakets, falls nötig, an die Benutzeroberfläche übergeben. model: Weitaus am umfangreichsten ist das Paket model. Dieses Paket fasst die Klassen zur Modellierung der Daten und jene für die Spiellogik und den Spielablauf zusammen. • Zum einen müssen die Spieler modelliert und verwaltet werden. Dazu dient die Klasse SpielerVW. Ein Objekt dieser Klasse enthält, unter anderem, zwei Objekte der Klasse Team, die die zwei gegnerischen Teams realisieren. Ein Objekt der Klasse Team enthält wiederum ein bzw. zwei Objekten der Klasse Spieler. • Als nächstes müssen die Karten modelliert werden. Verwaltet werden diese von der Klasse KartenVW, welche die 33 Karten als ein Array aus Objekten der statischen Klasse Karte enthält. • Für den Spielablauf ist die Klasse Game zuständig. Dieser Thread simuliert das ganze Spiel und überwacht den Ablauf. Dafür ruft er Methoden aus den anderen Klassen des Pakets model auf und verändert mit Hilfe des Controllers die Benutzeroberfläche. Er erteilt jeweils einem Spieler reihum die Erlaubnis, eine Karte zu werfen, und gegebenenfalls zuvor noch 12 3.2 Spielablauf zu bieten. Weiters überprüft er, ob ein Team bereits die für eine gewonnene Runde benötigten drei Stiche bzw. die für einen Sieg notwendige Punktezahl erreicht hat. • Im Paket model befindet sich auch die Main-Klasse, von der aus das Spiel überhaupt erst gestartet werden kann. Sie initialisiert das gesamte Spiel, das heißt sie startet den Spiel-Thread. Während einem laufenden Spiel hat sie nur mehr die Aufgabe, gewisse Funktionsaufrufe weiterzuleiten. ki: Die drei Klassen im Paket ki enthalten Methoden, die die Spielstrategie der Computer-Spieler realisieren. Dies sind die Klassen KiWerfen, KiBieten und KiAnsage. Auf ihre Funktionsweise wird im Abschnitt 3.4 näher eingegangen. 3.2. Spielablauf Der Ablauf des Computer-Spieles ist derselbe wie jener des Kartenspiels mit richtigen Karten (siehe Abschnitt 2.1.4). Dadurch, dass der gesamte Ablauf und drei bzw. ein Mitspieler durch den Computer simuliert und kontrolliert werden müssen, gibt es aber ein paar kleine Unterschiede. Die Kommunikation zwischen den Spielern während des Spiels findet beim Kartenspiel mündlich statt, im Computer-Spiel wird dies mit Hilfe von schriftlichen Mitteilungen realisiert. In Abbildung 3.3 sieht man beispielsweise, wie das Bieten des Computer-Spielers durch einen entsprechenden Text in einem neuen Fenster dem menschlichen Spieler mitgeteilt wird. Dabei wird auch gleich mitgeteilt, ob der Partner halten möchte oder nicht. Abbildung 3.3.: Dem Spieler wird mitgeteilt, dass der Gegner geboten hat. Wird zu viert gespielt, so kann sich der Spieler beim Computerspiel nicht, wie sonst mit menschlichen Mitspielern üblich, mit dem Partner mündlich absprechen, ob er bieten oder gegebenenfalls halten will. Will der menschliche Spieler im Computer-Spiel bieten, so kann er dies unabhängig von seinem Partner tun, so wie auch sein Partner selbstständig bieten kann. Bietet der menschliche Spieler, aber sein Partner ist sehr schlecht, so wird ihm das mitgeteilt und er kann sich gegebenenfalls umentscheiden, oder aber auch trotzdem bieten. 13 3 Implementierung Muss das Team des menschlichen Spielers entscheiden, ob es ein Gebot des Gegners hält, so wird ihm mitgeteilt, ob sein Partner halten will. Dieser kann daraufhin jedoch allein die endgültige Entscheidung treffen. 3.3. GUI Im Folgenden werden nun die beiden wichtigsten Fenster der graphischen Benutzeroberflächen und ihre Funktionalitäten beschrieben. 3.3.1. Hauptfenster Zuerst wird auf den Aufbau des Hauptfensters eingegangen. Dieses wird mit den Default-Einstellungen geladen, wenn man das Spiel startet. Die Abbildung 3.4 zeigt dieses Hauptfenster (die Zahlen in der Abbildung erscheinen im Programm nicht, sie wurden lediglich zum besseren Verständnis eingefügt). Abbildung 3.4.: Hauptfenster beim Starten des Programms. Spieler-Bereich (1): Für jeden der zwei bzw. vier Spieler gibt es im Hauptfenster einen Bereich für seine Karten, wo auch sein Name und seine in der aktuellen Runde erzielten Stiche angezeigt werden (für jeden Stich erscheint ein kleines Symbol). Links und rechts befinden sich die Bereiche der Gegner, oben jener des Partners und unten jener des menschlichen Spielers. Wird ein Spiel mit zwei Spielern gestartet, befindet sich der Bereich für den Gegner oben und jener für den Spieler bleibt unten, die Bereiche links und rechts fallen weg. Die leere Fläche in der Mitte des Spielfeldes (8) dient zur Anzeige der gespielten Karten der Spieler. 14 3.3 GUI Punkteanzeige (2): Links oben wird der aktuelle Punktestand beider Teams angezeigt. In der Titelzeile der Box wird außerdem die zu einem Sieg benötigte Gesamtzahl an Punkten angezeigt. Ansage (3): Neben der Punkteanzeige wird jene Karte angezeigt, die den angesagten Schlag und den angesagten Trumpf besitzt. Sagt der menschliche Spieler Trumpf an und wird offen gespielt, wird hier auch vor dem Ansagen angezeigt, welchen Schlag der Gegner ausgewählt hat. Anzeige von speziellen Karten (4): Rechts oben werden die oberste und unterste Karte des restlichen Stapels angezeigt, falls der Spieler sie sehen darf (beim offenen Watten bzw. beim Blind-Watten, wenn der Spieler Farbe ansagt). Wird blind gewattet, so werden daneben noch die Karten des ersten Stiches angezeigt, und zwar während der ganzen Runde. Bieten, Aufgeben, Schönere (5): Rechts unten befinden sich die Buttons für das Bieten bzw. freiwillige Aufgeben und Fragen um schönere Karten (siehe Abschnitt 2.1.3). Um schönere Karten kann man nur vor dem Ansagen fragen, danach ist der Button inaktiv. Gibt man freiwillig auf, so wird die Runde abgebrochen und der Gegner bekommt die aktuelle Punktezahl gutgeschrieben. Der Bieten-Button ist nur aktiv, wenn der Spieler bieten darf. Neben den Buttons befindet sich eine kleine Info-Box, hier wird die aktuelle Punktezahl, um die in dieser Runde gespielt wird, angezeigt. Weiters wird die Information angezeigt, wer wie viel geboten hat. Info (6): Links unten befindet sich eine weitere Info-Box. Hier wird beispielsweise angezeigt, dass der Spieler Trumpf bzw. Schlag ansagen muss oder auch welchen Schlag der Gegner angesagt hat. Menü-Leiste (7): Schließlich gibt es noch die Menü-Leiste am oberen Rand des Fensters. Sie dient dazu, ein neues Spiel zu starten, das laufende abzubrechen, das ganze Programm zu beenden und die Hilfe aufzurufen. Wurde ein Spiel gestartet, so wird das Hauptfenster an die ausgewählten Optionen angepasst. Die Benutzeroberfläche verändert sich während eines Spiels dauernd, da andere Karten bzw. Informationen angezeigt werden müssen. Beispiel 3.1 zeigt das Hauptfenster während eines laufenden Spiels. 15 3 Implementierung Beispiel 3.1. Abbildung 3.5.: Hauptfenster während eines laufenden Spiels. Das Spiel wurde mit folgenden Einstellungen gestartet: • Es wird Blind-Watten zu viert gespielt gespielt. Das kann man aus Abbildung 3.5 schließen, da der erste Stich (7) sichtbar ist und es vier Spieler Bereiche gibt (1). • Die Namen wurden verändert: Susi und Ben spielen gegen Daniel und Alice (1). • Die Computer-Spieler verwenden die mittlere Schwierigkeitsstufe. • Die für einen Sieg notwendige Punktezahl beträgt 18 Punkte (2). • Ist ein Team gestrichen, so gilt der erste Modus (bei 16 bzw. 17 Punkten sind drei bzw. vier Punkte geboten, siehe Abschnitt 2.1.3). Es wird gerade die erste Runde gespielt: • Daniel hat Schlag und Susi Trumpf angesagt, und zwar Schell und Ass (3). Diese Karte wird während der ganzen Runde angezeigt, da der menschliche Spieler Susi Trumpf angesagt hat. Ansonsten würde sie erst am Ende der Runde angezeigt werden. • Es steht noch null zu null (2). • Oben rechts werden Schell Ober und Eichel Unter als oberste und unterste Karte des Stapels angezeigt (4). 16 3.3 GUI • Ben hat bereits einen Stich gemacht, deshalb ist neben seinem Namen ein Symbol. Dieser erste Stich ist neben oberster und unterster Karte oben rechts sichtbar (7). • Alle Spieler haben bereits ihre zweite Karte geworfen. Susi hat die zweite und vierte Karte aus ihrem Blatt geworfen, weshalb sie grau unterlegt sind. • In dieser Runde wird um drei Punkte gespielt, Ben hat geboten und das gegnerische Team hat gehalten (5). Deshalb dürfen Susi und Ben im Moment nicht mehr bieten, zuerst müsste der Gegner bieten. • Der Spieler muss nun auf den X-Button in der Mitte klicken, damit der Stich gezählt wird und das Spiel weitergeht (6). 3.3.2. Fenster für Spiel-Einstellungen Wird in der Menü-Leiste auf Spiel → Neu geklickt, öffnet sich eine Benutzeroberfläche, in der die Einstellungen für das nächste Spiel festgelegt werden. • Der Spieler kann Namen für sich selbst, seinen Partner und seine Gegner auswählen. Standardmäßig lauten sie einfach Spieler“, Partner“, Geg” ” ” ner 1“ und Gegner 2“. Der Name muss mindestens ein Zeichen enthalten ” und darf höchstens 15 Zeichen lang sein. 17 3 Implementierung • Als nächstes kann die Schwierigkeitsstufe gewählt werden, wobei drei Stufen zur Auswahl stehen: Leicht, Mittel und Schwer (auf diese wird in Abschnitt 3.4 noch näher eingegangen). • Es kann entweder fix gewählt werden, ob zu zweit oder zu viert gespielt wird, oder die Spieleranzahl wird durch Auswählen von Mir egal per Zufall vom Computer entschieden. Wählt man 2er Watten, so werden die Namensfelder für Partner und Gegner 2 sowie die Option Blind inaktiv. • Neben der Spieleranzahl kann zwischen offenem und Blind-Watten wählen. Wählt man Blind aus, wird der Button 2er Watten und Mir egal inaktiv. • Für die für einen Sieg zu erreichende Punktezahl gibt es zwei Vorschläge, mit denen üblicherweise gespielt wird: 15 oder 18 Punkte. Man kann aber jede beliebige ganze Zahl zwischen acht und 100 Punkten wählen. • Weiters kann man zwischen zwei verschiedenen Modi wählen, wie gespielt werden soll sobald ein Team gestrichen ist. Diese werden in Abschnitt 2.1.3 näher erläutert. • Klickt man auf den Button Ok, los geht’s!, so wird das Hauptfenster mit den gesetzten Optionen gestartet. Beim Klick auf den Button Nein, doch nicht spielen erscheint wiederum das Hauptfenster im Vordergrund, jedoch ohne jegliche Veränderung. 3.4. Spielstrategie der Computer-Spieler Dieser Abschnitt befasst sich mit der Implementierung der “künstlichen Intelligenz” der Computer-Spieler. Diese Intelligenz bezieht sich natürlich nur auf die im Spiel notwendigen Überlegungen. Der Funktionsumfang der Spielstrategie kann grob in drei Bereiche unterteilt werden. Die in einem Funktionsbereich nötigen Methoden werden jeweils in einer Klasse zusammengefasst. • In der Klasse KiWerfen befinden sich die Methoden, die das Ausspielen einer Karte simulieren. • Bietet ein Computer-Spieler oder muss er halten bzw. gehen, so wird die Entscheidung in der Klasse KiBieten getroffen. • Sagt ein Computer-Spieler Schlag oder Trumpf an, so bestimmen Methoden der Klasse KiAnsage den jeweiligen Kartenwert oder Farbe. Die ersten beiden Klassen sind sowohl für das offene wie auch für das BlindWatten wichtig. Die Methoden der Klasse KiAnsage hingegen stellen vor allem Funktionalitäten für die Spielstrategie der Computer-Spieler beim BlindWatten bereit. Bei der Ausführung der Funktionen dieser Klassen wird zuerst jeweils unterschieden, ob der Spieler weiß, was angesagt wurde, oder sich noch nicht sicher sein kann. Prinzipiell baut die Intelligenz für die unwissenden Computer-Spieler 18 3.4 Spielstrategie der Computer-Spieler immer auf jener der wissenden auf. Im Folgenden werden die Funktionalitäten der einzelnen Klassen näher erläutert, zuerst in den Abschnitten 3.4.1, 3.4.2 und 3.4.3 für das offene Watten, und im letzten Abschnitt 3.4.4 für das Blind-Watten. 3.4.1. Werfen Die Strategie für das Werfen einer Karte ist in der Klasse KiWerfen implementiert. Genauer gesagt hat diese Klasse folgende zwei Funktionen: • Für den menschlichen Spieler wird bestimmt, ob er die ausgewählte Karte werfen darf oder eine andere zugeben muss (siehe Abschnitt 2.1.3). • Für den Computer-Spieler wird eine seiner Karten ausgewählt, die dann geworfen wird. Werfen beim menschlichen Spieler: Hat der menschliche Spieler eine Karte ausgewählt, so wird überprüft, ob er diese überhaupt werfen darf. Darf der Spieler sie nicht werfen, da er eine andere Karte zugeben müsste, wird das dem Spieler durch einer Nachricht mitgeteilt und er muss eine andere auswählen. Ansonsten wird die ausgewählte Karte geworfen. Werfen beim Computer-Spieler: Die Strategie für die Wahl der Karte, die als nächstes geworfen wird, hängt von der Schwierigkeitsstufe ab. Bei allen drei Schwierigkeitsstufen wird zuerst kontrolliert, welche Karten überhaupt geworfen werden dürfen, das heißt die Menge der erlaubten Karten bestimmt. Liegt noch keine Karte auf dem Spielfeld, so sind alle Karten erlaubt und es wird bei allen Schwierigkeitsstufen eine zufällige ausgewählt. Liegt bereits mindestens eine Karte auf dem Spielfeld, so werden je nach Schwierigkeitsstufe mehr oder weniger Überlegungen in die Auswahl einer der erlaubten Karten mit einbezogen: Leicht: Bei der niedrigsten Schwierigkeitsstufe wird von den erlaubten Karten immer zufällig eine ausgewählt. Dies führt nur selten zu einem Sieg, ist aber für einen Spiel-Anfänger interessant, da er so auch mit wenig Erfahrung und Wissen eine Chance hat zu gewinnen. Mittel: Diese Stufe erlaubt dem Computer-Spieler einige weitere Überlegungen. Hier wird zwischen Stechkarten und nicht stechenden Karten unterschieden. Ist die beste Karte aller im Stich liegenden Karten jene des Partners, so wirft der Computer-Spieler die schlechteste seiner nicht stechenden Karten, sofern er eine in seinem Blatt hat. 19 3 Implementierung Im Gegensatz dazu wird, falls die beste Karte auf dem Spielfeld dem Gegner gehört, in jedem Fall die schlechteste Stechkarte ausgewählt. Schwer: Am meisten Kriterien zur Auswahl der zu werfenden Karte werden in der höchsten Stufe verwendet. Die Stufe Schwer benutzt die Strategie der Stufe Mittel und baut zusätzlich einen Zufallsfaktor mit ein. So wird die Berechenbarkeit der Computer-Spieler herabgesetzt. Hat der Partner des Computer-Spieler seine Karte noch nicht geworfen, so wirft er nur mit 70% Wahrscheinlichkeit eine Stechkarte. Mit 30% Wahrscheinlichkeit wirft er, auch wenn er eine Stechkarte hätte, eine nicht stechende Karte, damit der Partner nach ihm stechen kann. Hat der Partner schon vor ihm seine Karte geworfen und der Stich gehört noch dem Gegner, so wirft er wie zuvor mit 100% Wahrscheinlichkeit eine Stechkarte, vorausgesetzt er hält eine seinem Blatt. So ist der Computer-Spieler schwieriger einzuschätzen, denn nur weil er keine Stechkarte geworfen hat, heißt das noch nicht, dass er keine mehr hat. Die Spielstrategie für das Werfen könnte noch weiter ausgebaut werden. Jedoch sind die Computer-Spieler mit der oben beschriebenen, bereits implementierten Strategie bei höchster Schwierigkeitsstufe durchaus ernst zu nehmende Gegner, die nicht immer zu besiegen sind. Einige Aspekte, die den möglichen Ausbau der Spielstrategie betreffen, werden in der Zusammenfassung in Kapitel 5 erwähnt. 3.4.2. Bieten Die Funktionen, mit denen entschieden wird, ob ein Computer-Spieler bieten bzw. nach einem Gebot des Gegners halten oder gehen soll, werden von der Klasse KiBieten bereitgestellt. Der menschliche Spieler kann zu jeder Zeit bieten, falls dies nach den Spielregeln (siehe Kapitel 2.1.3) erlaubt ist. Bei den Computer-Spielern wird immer vor dem Werfen einer Karte überprüft, ob geboten werden soll oder nicht. Ob geboten bzw. gehalten oder gegangen wird ist abhängig von der Schwierigkeitsstufe. Leicht: Bei Stufe Leicht bieten die Computer-Spieler überhaupt nicht. Gehalten wird lediglich zufällig mit 50% Wahrscheinlichkeit. Mittel: Ebenfalls per Zufall mit 50% Wahrscheinlichkeit gehalten wird bei Stufe Mittel. Hier wird aber auch zufällig geboten, und zwar jedes Mal, bevor der Computer-Spieler eine Karte spielt, mit 5% Wahrscheinlichkeit. Schwer: Wurde die höchste Schwierigkeitsstufe ausgewählt, so wird für das Bieten und Halten eine Stärke-Abschätzung des Spielers durchgeführt. Dazu werden zum einen die Karten miteinbezogen, die der Spieler noch nicht geworfen hat, zum anderen die Anzahl der bereits gemachten Stiche. Ob ein Spieler 20 3.4 Spielstrategie der Computer-Spieler gute oder schlechte Karten hat, wird heuristisch durch einen ganzzahligen Wert ausgedrückt. Diese sogenannte Stärke eines Spielers ergibt sich durch folgende Formel: staerke = stiche ∗ 10 + x−1 X wert(k[i]) (3.1) i=0 Hier bezeichnet stiche die Anzahl der bereits gemachten Stiche des Teams und k[0], . . . , k[x − 1] die restlichen Karten im Blatt des Spielers. Der einzelne Wert einer Karte wird durch einen heuristischen Funktionswert bestimmt, welcher in Tabelle 3.1 beschrieben ist. Guter Rechter Schlag Trumpf Ass König Ober andere Karten Stiche Weli 50 (Weli) (2 bis 9) * 3 3 2 1 0 15 1 anderer Schlag 50 30 20 1 bis 9 1 0 0 0 0 15 Tabelle 3.1.: Heuristik zum Abschätzen des Werts einer Karte. Wird zu viert gespielt und besteht das Team aus zwei Computer-Spielern, so wird bei der Entscheidung, ob geboten bzw. gehalten oder gegangen wird, die Stärke beider Computer-Spieler miteinbezogen, und zwar nach folgender Formel: staerke = stiche ∗ 10 + x−1 X wert(k1[i]) + i=0 y−1 X wert(k2[i]) /2 (3.2) i=0 Hier bezeichnet stiche die Anzahl der bereits gemachten Stiche des Teams, k1[0], . . . , k1[x − 1] und k2[0], . . . , k2[y − 1] jeweils die restlichen Karten der beiden Computer-Spielers. Um zu entscheiden, ob ein Computer-Spieler bieten soll, wird zur staerke ein Zufallswert zwischen 0 und 40 hinzu gezählt. Ist das Resultat eine Zahl größer als 90, so bietet der Computer-Spieler. Ist der Wert von staerke ohne Zufallswert bereits eine Zahl größer als 90, so bietet er sicher. Das wäre beispielsweise der Fall, wenn er Guten, Rechten und einen Schlag hat, dann gewinnt er sicher und bietet daher auch sicher. Der Zufallswert wird benötigt, da der Spieler nicht immer sofort bieten soll, falls er eine gewisse Stärke hat. So ist er in Bezug auf das Bieten nicht ganz berechenbar. Durch diesen Zufallsfaktor bietet er manchmal auch, wenn er nur durchschnittlich gut ist. Das simuliert das sogenannte 1 Weli = 1, Sieben = 2, ... , König = 8, Ass = 9 21 3 Implementierung Bluffen eines menschlicher Spielers. Gehalten wird mit 100% Wahrscheinlichkeit, falls staerke ein Wert größer als 30 ist. Ist sie niedriger, so wird mit 10% Wahrscheinlichkeit trotzdem gehalten. Die einzelnen Werte der Tabelle 3.1 wurden durch Tests mit verschiedenen Werten bestimmt. Bei deren Auswertung stellte sich heraus, dass sich obige Werte am besten eignen, um zu bestimmen ob die Karten in der Hand eines Spielers gut sind oder nicht. 3.4.3. Ansagen Die zum Ansagen von Schlag bzw. Trumpf benötigten Methoden sind unabhängig von der Schwierigkeitsstufe. Dazu wertet eine Methode der Klasse KiAnsage aus, welcher Kartenwert bzw. welche Farbe am öftesten im Blatt des Spielers vorkommt. Ist dies für mehrere Kartenwerte bzw. Farben der Fall, so wird ein beliebiger bzw. eine beliebige gewählt. Muss ein Computer-Spieler Schlag ansagen und hat den Weli unter seinen fünf Karten, aber kein anderer Schlag kommt mehrmals in seinem Blatt vor, so sagt er Weli an. Eine weitere Funktionalität, die diese Klasse bereitstellt, ist das Fragen um Schönere, das heißt das Anfragen um neue Karten vor dem Ansagen (siehe Abschnitt 2.1.3). Der Computer-Spieler selbst fragt nie danach. Fragt der menschliche Spieler um neue Karten und der Computer-Spieler sagt Schlag an, so stimmt der Computer-Spieler mit 100% Wahrscheinlichkeit zu wenn er keinen Schlag doppelt hat, und mit 10% Wahrscheinlichkeit, wenn er keinen Schlag dreifach hat. Sagt der Computer-Spieler Farbe an, so stimmt er mit 15% Wahrscheinlichkeit zu, wenn er keine Farbe dreifach hat. Die restlichen Methoden dieser Klasse dienen, wie schon zuvor erwähnt, nur dem Blind-Watten. 3.4.4. Blind-Watten Die Spielstrategie für das Blind-Watten baut auf jener vom offenen Watten auf und erweitert diese. Zuerst wird das Erraten des angesagten Schlags und Trumpfs erläutert, diese Funktionalität brauchte es beim offenen Watten noch nicht. Danach wird auf die einzelnen Unterschiede zwischen dem Blind-Watten und dem offenen Watten eingegangen, die es beim Werfen und Bieten der Computer-Spieler gibt. Erraten der Ansage Der nahezu wichtigste Teil beim Blind-Watten ist das Erraten des angesagten Schlags und Trumpfs. Diese Funktionalität ist in der Klasse KiAnsage implementiert. 22 3.4 Spielstrategie der Computer-Spieler Hat der Computer-Spieler selbst angesagt, braucht es diese Funktionalität gar nicht, denn er weiß ja schon was angesagt wurde. Ansonsten muss er durch das Analysieren der Stiche und Stechkarten die Ansage ermitteln. Dafür wird nach jedem Stich eben dieser Stich ausgewertet. Dabei werden alle Ansagen, die man durch den Stich eindeutig ausschließen kann, aus einer Liste aller noch möglicher Ansagen gestrichen. (Sind die zu streichende Ansage bereits gelöscht, wird die Liste nicht verändert.) Zu Beginn jeder Runde gibt es 36 Möglichkeiten, im Idealfall ist es nach der zweiten Runde nur noch eine. Beim Ausschließen einer Ansage mit Hilfe eines Stichs wird abhängig von der Schwierigkeitsstufe vorgegangen: Leicht: Da beim Werfen nur der Zufall entscheidet, braucht der Spieler den angesagten Schlag und Trumpf nicht zu wissen. Beim Auswerten des Stichs wird die Liste aller möglichen Ansagen nicht verändert. Mittel: Falls der Stich sicher kein Farbstich ist (siehe Abschnitt 2.1.3), heißt das, dass entweder die Farbe der Stechkarte und/oder deren Schlag angesagt wurde. Somit können alle möglichen Ansagen, die weder diesen Schlag noch Trumpf haben, ausgeschlossen werden (siehe Verfahren 1 in Beispiel 3.2). Schwer: Diese Schwierigkeitsstufe baut auf das Ausschlussverfahren der Stufe Mittel auf. Zusätzlich werden hier noch vier weitere Verfahren verwendet, deren Ergebnisse sich teilweise überschneiden können: • Der Kartenwert einer nicht stechenden Karte k kann nicht der angesagte Schlag sein, außer die Stechkarte könnte der Rechte oder Gute von k sein. Falls dies nicht der Fall ist, werden alle möglichen Ansagen, die den Kartenwert von k haben, entfernt (siehe Verfahren 2 in Beispiel 3.2). • Falls eine Karte derselben Farbe f , aber eines höheren Kartenwerts als der Stechkarte s im Stich liegt, kann die Farbe von s nur Trumpf sein, falls s der Rechte oder Gute ist. Somit können alle Ansagen mit der Farbe f , aber anderem Kartenwert ausgeschlossen werden (siehe Verfahren 3 in Beispiel 3.2). • Eine Ansage, bei der der Gute im Stich liegt, jedoch nicht gestochen hat, kann ausgeschlossen werden (siehe Verfahren 4 in Beispiel 3.2). • Liegt eine Karte im Stich, die vor der Stechkarte geworfen wurde und denselben Kartenwert hat wie die Stechkarte, so können jene Ansagen ausgeschlossen werden, die denselben Schlag haben wie die Stechkarte, aber einen anderen Trumpf (siehe Verfahren 5 in Beispiel 3.2). 23 3 Implementierung Beispiel 3.2. In diesem Beispiel werden anhand des Stiches, der in Abbildung 3.6 dargestellt wird, alle fünf Verfahren zum Ausschließen der nicht möglichen Ansagen durchgegangen. Dies entspricht der Vorgehensweise der ComputerSpieler bei Schwierigkeitsstufe Schwer. Abbildung 3.6.: Die vier Karten wurden in der Reihenfolge von links nach rechts geworfen, die vierte Karte hat gestochen. Zu Beginn enthält die Liste aller möglichen Ansagen m noch alle 36 Elemente: m ={LaubSieben, . . . , LaubAss, HerzSieben, . . . , HerzAss, EichelSieben, . . . , EichelAss, SchellSieben, . . . , SchellAss, W eli} • Verfahren 1: Alle Ansagen, die weder Laub noch Ober beinhalten, werden gestrichen. Die übrigen möglichen Ansagen nach dieser Auswertung sind somit: m ={LaubSieben, . . . , LaubAss, HerzOber, EichelOber, SchellOber} • Verfahren 2: Alle Ansagen, die Neun oder König beinhalten, können von der Liste gelöscht werden. Wäre einer dieser Kartenwerte der angesagte Schlag, so hätte die zweite bzw. dritte Karte gestochen. m ={LaubSieben, LaubAcht, LaubZehn, LaubU nter, LaubOber, LaubAss, HerzOber, EichelOber, SchellOber} • Verfahren 3: Alle Ansagen, die nur Laub beinhalten, aber nicht Unter oder Ober, werden entfernt, ansonsten hätte Laub König gestochen. Laub Ober muss demnach Schlag, Rechter oder Guter sein. m ={LaubU nter, LaubOber, HerzOber, EichelOber, SchellOber} • Verfahren 4: Die Ansage Laub Ober kann entfernt werden. Wäre diese angesagt, so hätte Laub König gestochen. m ={LaubU nter, HerzOber, EichelOber, SchellOber} 24 3.4 Spielstrategie der Computer-Spieler • Verfahren 5: Alle Ansagen deren Schlag Ober ist und deren Trumpf nicht Laub ist, werden gestrichen. Wären Eichel Ober, Herz Ober oder Schell Ober angesagt, so hätte die erste Karte gestochen. m ={LaubU nter} Im obigen Beispiel 3.2 wird deutlich, wie gut das Verfahren des ComputerSpielers zum Ermitteln von Schlag und Trumpf funktioniert. Bei Schwierigkeitsstufe Schwer weiß der Computer-Spieler bereits nach der ersten Runde den angesagten Schlag und Trumpf. Bei Stufe Mittel hingegen bleiben noch elf verschiedene Möglichkeiten übrig, da nur Verfahren 1 herangezogen wird. Betrachtet man die Ausschlussverfahren einzeln, so ist jenes der Stufe Mittel am effizientesten, es schießt durch die Auswertung eines Stiches am meisten Ansagen aus. Die zusätzlichen Verfahren der Stufe Schwer sind nur zur Ergänzung, um einige weitere Möglichkeiten ausschließen zu können und den ComputerSpieler auf das Niveau eines menschlichen Spielers zu bringen. Insgesamt funktioniert das Erraten der Ansage bei höchster Schwierigkeitsstufe sehr gut, meist hätte ein menschlicher Spieler nicht schneller angesagten Schlag und Trumpf ermittelt. Dennoch wäre das Erraten der Ansage noch ausbaufähig, worauf in Kapitel 5 kurz eingegangen wird. Werfen Hat der Computer-Spieler nur mehr ein einzelnes Elemente in der Liste aller möglichen Ansagen, so wird für das Werfen dieselbe Spielstrategie verwendet wie beim offenen Watten. Das ist dann der Fall, wenn der Computer-Spieler selbst Schlag oder Trumpf angesagt hat bzw. wenn er durch Ausschließen aller anderen Möglichkeiten den angesagten Schlag und Trumpf bereits ermittelt hat. Ansonsten kann die bisherige Methode für das Werfen einer Karte nicht benutzt werden, denn dazu wird Trumpf und Schlag bekannt sein. Für den Fall, dass noch mindestens zwei Möglichkeiten für die Ansage offen sind, wird die Entscheidung, welche Karte geworfen wird, von der Schwierigkeitsstufe abhängig gemacht. Leicht: Bei der einfachsten Schwierigkeitsstufe entscheidet der Zufall, wie auch schon beim offenen Watten, welche Karte geworfen wird. Im Unterschied dazu sind nun für einen unwissenden Spieler aber alle Karten erlaubt. Mittel: Anhand gewisser Kriterien wird ausgewertet, welche Karte geworfen wird. Diese Kriterien hängen davon ab, ob man sich in der ersten Runde, oder in einer der Runden zwei bis fünf befindet: • Im ersten Stich wird eine Karte geworfen, deren Farbe mindestens eine weitere Karte im Blatt des Spielers hat. Von diesen Karten werden jene 25 3 Implementierung ausgeschlossen, die den gleichen Kartenwert haben wie eine in dieser Runde von den Mitspielern bereits geworfene Karte. Von den übrigen Karten wird per Zufall eine ausgewählt. • In den Stichen zwei bis fünf werden nur noch jene Karten ausgeschlossen, die den gleichen Kartenwert haben, wie eine in dieser Runde von den Mitspielern bereits geworfene Karte. Dann wird wieder per Zufall entschieden, welche geworfen wird. Schwer: Zusätzlich zur Spielstrategie der Schwierigkeitsstufe Mittel wird bei Schwer in den Runden zwei bis fünf noch bestimmt, welche von den Karten, die durch die oben erwähnten Kriterien ausgewählten wurden, bei den meisten der noch möglichen Ansagen stechen würde; diese wird dann geworfen. Im ersten Stich wird bei Stufe Schwer diesem Kriterium auch nicht angewandt. Zu diesem Zeitpunkt kann noch keine der 36 möglichen Ansagen ausgeschlossen werden, somit wäre dieses Verfahren nicht sehr effektiv. Bieten Die Computer-Spieler bieten bzw. halten und gehen wiederum mit Hilfe der beim offenen Watten genutzten Stärke-Einschätzung und den im Abschnitt 3.4.2 bereits erwähnten Wahrscheinlichkeiten. Die Stärke-Einschätzung muss lediglich ein wenig anders genutzt werden, falls für den unwissenden Spieler Schlag und Trumpf noch nicht klar sind. Dazu wird einfach für jede noch mögliche Ansage der Wert staerke des Spielers berechnet und dann das arithmetische Mittel aus diesen Werten ermittelt: x−1 P staerke = staerkeansage[i] i=0 x (3.3) Hier bezeichnen ansage[0], . . . , ansage[x−1] die noch möglichen Ansagen und staerkea wird nach der vorher erwähnten Formel 3.1 für die Stärke-Abschätzung bei Ansage a berechnet. 26 4. Programmtests Da das Watt-Programm von der Eingabe eines Benutzers abhängt konnte nicht einfach eine Reihe von Datensätzen als Input für die Testreihen verwendet werden. Stattdessen wurden mehrere Personen beauftragt, das Spiel testen. Das Programm konnte mit den Testreihen einerseits auf eventuelle Fehler hin getestet werden, und andererseits die Spielstrategie der Computer-Spieler mit jener der Tester verglichen werden. Solche Tests waren das einzige Mittel um die Spielfähigkeit und Effizienz der Spielstrategie der Computer-Spieler zu testen. In diesem Kapitel werden nun die Ergebnisse der durchgeführten Testreihen anhand einiger Diagramme anschaulich aufbereitet und die Ergebnisse erläutert. 4.1. Testumgebung Die Tester spielten alle mit denselben Einstellungen, um vergleichbare Resultate zu erhalten. Es gab dafür verschiedene Testreihen mit fixierten Einstellungen. Pro Testreihe durfte ein Tester höchstens fünf Spiele spielen, damit die Ergebnisse nicht von einer Person zu stark beeinflusst und somit verfälscht wurden. Insgesamt bestand jede Testreihe aus 25 Spielen. (Die Ergebnisse dieser Spiele befinden sich im Anhang A.) Folgende Einstellungen waren bei jeder Testreihe identisch: • Die für einen Sieg notwendige Punktezahl wurde auf 18 Punkte festgelegt. • War ein Team gestrichen und hatte 16 bzw. 17 Punkten, so waren drei bzw. vier Punkte geboten (siehe Abschnitt 2.1.3). Es wurden folgende Testreihen durchgeführt: • offenes Watten zu zweit in den Schwierigkeitsstufen Leicht, Mittel und Schwer • offenes Watten zu viert in den Schwierigkeitsstufen Leicht, Mittel und Schwer • Blind-Watten in den Schwierigkeitsstufen Leicht, Mittel und Schwer Dadurch ergaben sich neun verschiedene Testreihen. Auf die Ergebnisse wird nun im folgenden Abschnitt näher eingegangen. 27 4 Programmtests 4.2. Testergebnisse Untersucht werden sollte mit den Tests vor allem die Effizienz der Spielstrategie der Computer-Spieler. Dafür herangezogen wurde zum einen der Ausgang der 25 Testspiele, also ob menschlicher Spieler1 oder Computer-Spieler gesiegt haben. Zum anderen wurde aber auch der Punkte-Endstand zwischen Tester und seinem Computer-Gegner berücksichtigt, um zu sehen wie knapp der jeweilige Verlierer sich geschlagen geben musste. Anhand dieser Kriterien konnten die Spielstrategien der Computer-Spieler in den unterschiedlichen Schwierigkeitsstufen miteinander verglichen werden. 4.2.1. Offenes Watten zu zweit Um die Testergebnisse anschaulich aufzubereiten, wurden für jede Testreihe zwei Diagramme angefertigt. (Ein drittes Diagramm befindet sich in Anhang B.) Das Diagramm 4.1(a) zeigt das Verhältnis zwischen der Anzahl der Siege des menschlichen Spielers (roter Balken) und jener des Computer-Spieler (blauer Balken) in allen drei Schwierigkeitsstufen. Gespielt wurden, wie bereits erwähnt, jeweils 25 Spiele pro Testreihe. (a) Anzahl der Siege. (b) Differenz P unkteM ensch −P unkteComputer . Abbildung 4.1.: Auswertung der Testspiele beim offenen Watten zu zweit. Im Diagramm 4.1(b) hingegen wird das Verhältnis der Punkte, die die beiden Teams am Ende eines Spiels erlangt haben, dargestellt. Dazu wurde die Differenz gebildet aus den Punkten des menschlichen Spielers und jenen des Computer-Spielers. Dies ist relevant, da es für die Analyse der Spielstrategie einen wesentlichen Unterschied macht, ob der Verlierer keine Punkte erlangt hat oder nur knapp 1 Wird zu viert gewattet, so wird der menschliche Spieler von einem Computer-Spieler als Partner unterstützt. Hier wird der Lesbarkeit wegen das Team Mensch-Computer menschlicher Spieler, das Team Computer-Computer Computer-Spieler genannt. 28 4.2 Testergebnisse um wenige Punkte verloren hat. Der Sieger erhielt immer 18 Punkte, auch wenn er durch die letzte Runde auf mehr Punkte gekommen wäre. Da diese zusätzlichen Punkte aber nicht mehr relevant für den Sieg sind und beim Kartenspiel auch nicht notiert werden, wurden sie hier ignoriert. Beide Diagramme legen dieselbe Schlussfolgerung nahe: offensichtlich steigt bei steigender Schwierigkeitsstufe auch der Erfolg des Computer-Spielers. Das heißt, der Computer-Spieler erlangt bei steigender Schwierigkeit mehr Siege im Verhältnis zum menschlichen Spieler (siehe Diagramm 4.1(a)). Für das Diagramm 4.1(b) bedeutet das, dass die Differenz zwischen der Punkteanzahl des menschlichen Spielers und jener des Computer-Spielers geringer wird. 4.2.2. Offenes Watten zu viert Um die Testreihe mit den Einstellungen offenes Watten und vier Spieler darzustellen, wurden mit den Ergebnissen der Testspiele dieselben Diagramme erstellt wie bereits im vorigen Abschnitt. (a) Anzahl der Siege. (b) Differenz P unkteM ensch −P unkteComputer . Abbildung 4.2.: Auswertung der Testspiele beim offenen Watten zu viert. Beim offenen Watten zu viert sieht man wiederum, dass bei steigender Schwierigkeitsstufe der Erfolg des Computer-Spielers steigt. Jedoch sind die Ergebnisse der Testspiele zwischen den beiden Teams ausgeglichener als beim Watten zu zweit. Die Punktedifferenz ist in allen drei Schwierigkeitsstufen geringer, wie man beim Vergleich von den Diagrammen 4.1(b) und 4.2(b) sieht. Auch mit der Anzahl der Siege verhält es sich ähnlich (siehe Diagramme 4.1(a) und 4.2(a)). Der Grund dafür liegt beim Partner des menschlichen Spielers beim Watten zu viert. Da sowohl der Partner, wie auch die beiden Gegner, Computer-Spieler sind, verwenden sie alle genau dieselbe Spielstrategie. Somit werden die Ergebnisse ausgeglichener und der menschliche Spieler hat nicht so viel Einfluss auf 29 4 Programmtests den Spielausgang wie beim Watten zu zweit. 4.2.3. Blind-Watten Wie schon in den beiden vorangegangenen Abschnitten wurden auch für das Blind-Watten die zwei Diagramme zur Veranschaulichung der Ergebnisse der Testspiele erstellt. (a) Anzahl der Siege. (b) Differenz P unkteM ensch −P unkteComputer . Abbildung 4.3.: Auswertung der Testspiele beim Blind-Watten. Auch beim Blind-Watten wird deutlich, dass der Computer-Spieler wesentlich mehr Erfolg hat je höher die Schwierigkeitsstufe ist. Hier erlangt der Computer-Spieler im Verhältnis zum offenen Watten am meisten Siege (siehe Diagramm 4.3(a)), bei Schwierigkeitsstufe Schwer sogar mehr als das Team des menschlichen Spielers. Das gleiche Ergebnis zeigt auch die Auswertung der Punktedifferenz in Diagramm 4.3(b). Daraus lässt sich schließen, dass die Spielstrategie der Computer-Spieler im Verhältnis zur Spieltaktik eines menschlichen Spielers besser beim Blind-Watten, als beim offenen Watten ist. Das liegt vor allem an der Spielstrategie für das Ermitteln von angesagtem Schlag und Trumpf, denn jene für das Werfen einer Karte ist zum Großteil für das offene und für das Blind-Watten gleich implementiert. Der ComputerSpieler lässt sich, im Gegensatz zu einem menschlichen Spieler, beim Ermitteln der Ansage nicht beirren und kommt sicher nie auf einen falschen Schluss. 30 5. Zusammenfassung 5.1. Mögliche Erweiterungen und Verbesserungen Die Computer-Spieler haben eine relativ erfolgreiche Spielstrategie. Bei höchster Schwierigkeitsstufe entspricht das Niveau des Computer-Spielers nahezu einem durchschnittlichen menschlichen Spieler, dies zeigt die Auswertung der Testergebnisse. Beim Blind-Watten ist der Computer-Spieler bei Schwierigkeitsstufe Schwer sogar erfolgreicher als der menschliche. Dennoch könnte die Spielstrategie in einigen Punkten erweitert und verbessert werden. Will ein Computer-Spieler bieten bzw. nach einem Gebot des Gegner halten oder gehen, so berücksichtigt er zwar die Karten in seinem Blatt, jedoch nicht die bereits ausgespielten Karten. Dies wäre aber in manchen Fällen von Vorteil. Wenn beispielsweise beide Teams jeweils zwei Stiche haben und der menschliche Spieler den Rechten in seinem Blatt hält, dann gewinnt dieser die Runde sicher, falls der Gute bereits gespielt wurde, und dürfte bei einem Gebot des Gegners nicht gehen. Ist der Gute hingegen noch nicht gespielt worden kann er sich seines Sieges nicht so sicher sein. Bei der Spielstrategie für das Werfen könnten die bereits gespielten Karten ebenso miteinbezogen werden. Ein Beispiel, wo dies hilfreich wäre, ist folgendes: als erste Karte eines Stiches wird oft der Rechte gespielt, damit der Gegner, falls er einen Trumpf besitzt, diesen zugeben muss. Wurde der Gute aber noch nicht gespielt, so könnte der Gegner ihn in der Hand halten und damit stechen, anstatt eine Karte zuzugeben. Somit hätte der Spieler eine wertvolle Karte weniger in seinem Blatt, aber trotzdem keinen Stich erzielt. Wird Blind-Watten gespielt, so spielt der Computer-Spieler jene Karte, die bei den meisten noch möglichen Ansagen sticht. Dies ist zwar oft effektiv, bestimmt aber nicht immer die beste Karte zum Werfen. Es kann passieren, dass der Stich bereits dem Partner gehört, aber der Spieler eine noch bessere Karte wirft. Daher wäre es besser jene Karte zu werfen, die zwar nicht so sicher sticht, dafür aber den Partner nicht absticht. Das Ermitteln des angesagten Schlags und Trumpfs funktioniert bereits sehr gut, dennoch könnte die Spielstrategie durch Miteinbeziehen von Wahrscheinlichkeiten der möglichen Ansagen verbessert werden. Somit könnte eine Ansage nicht nur ausschließlich möglich oder nicht möglich sein, sondern mit einer Wahrscheinlichkeit p möglich sein. Dadurch würde die Spielstrategie verbessert werden, falls der Computer-Spieler noch viele Ansagen als möglich ansieht. Weiters wäre die Netzwerkfähigkeit des Programms auch ein interessanter 31 5 Zusammenfassung Aspekt, mehrere Computer-Spieler könnten durch menschliche Spieler ersetzt werden. 5.2. Zusammenfassung In dieser Arbeit wurde zum einen eine Einführung in das Kartenspiel Watten gegeben, um Anfängern einen Einstieg zu ermöglichen und Spielregeln klar festzulegen, da diese regional in manchen Punkten abweichen. Zum anderen wurde eine Implementierung des Kartenspiels im Programm Watten besprochen. Dabei wurde sowohl der Aufbau des Programms erläuert, als auch ein Einblick in die Spielstrategie der Computer-Spieler gegeben. Die Implementierung bietet eine große Auswahl an Spieloptionen: es kann zu zweit oder zu viert gespielt werden, zwischen offenem Watten und Blind-Watten gewählt werden und die Computer-Spieler stehen in drei Schwierigkeitsstufen zur Verfügung. Zusammenfassend kann man sagen, dass das Ziel, ein Programm zu erstellen, mit dem das Kartenspiel am Computer gespielt werden kann, erreicht wurde. Das Programm simuliert das Kartenspiel, bietet alle gängigen Spieleinstellungen an und stellt angemessene Computer-Gegner zur Verfügung. 32 Literaturverzeichnis [1] Java (Programmiersprache). http://java.sun.com/. [2] Java Runtime Environment 6. http://www.java.com/de/download/. [3] Java Swing. http://java.sun.com/javase/technologies/desktop/. [4] Wikipedia - Skat. http://de.wikipedia.org/wiki/Skat, 13. August 2009. [5] Wikipedia - Watten. http://de.wikipedia.org/wiki/Watten, 27. August 2009. [6] Hubert Auer. Watten, Bieten und Perlaggen. Perlen-Reihe, 1999. [7] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design patterns: Abstraction and reuse of object-oriented design, 1993. 33 A. Testergebnisse Im Folgenden werden die Ergebnisse aller Testspiele aufgelistet. Zuerst werden jene der Testreihe offenes Watten zu zweit genannt, dann jene der Testreihe offenes Watten zu viert und als drittes die Spiele der Testreihe Blind-Watten. Dabei wird der Punktestand am Ende eines jeden Spiels erwähnt, sowie die Summe der erreichten Punkte eines Spielers in einer Testreihe und die Anzahl der erlangten Siege. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 P Punkte Siege Leicht Spieler Computer 18 7 18 3 18 6 18 6 18 0 18 0 18 3 18 5 18 0 18 3 18 9 18 6 18 6 18 5 13 18 18 0 18 7 18 2 18 2 18 9 2 18 18 8 18 9 18 2 18 2 450 115 25 0 Mittel Spieler Computer 18 9 18 6 18 8 18 0 18 3 16 18 18 14 18 3 18 9 18 2 18 14 14 18 18 12 18 10 18 2 18 6 17 18 18 10 18 10 18 15 18 16 18 17 18 6 18 16 18 5 443 247 22 3 Schwer Spieler Computer 2 18 18 14 18 10 18 14 18 7 18 8 18 10 18 6 18 6 18 3 18 14 18 9 13 18 13 18 18 17 18 13 18 16 18 13 17 18 18 13 18 8 13 18 16 18 18 11 18 14 416 314 19 6 Tabelle A.1.: Ergebnisse der Testreihe offenes Watten zu zweit. 34 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 P Punkte Siege Leicht Spieler Computer 18 11 18 12 18 4 18 14 18 12 18 16 4 18 18 3 18 6 18 14 18 6 18 8 18 14 16 18 18 17 18 6 17 18 18 8 18 9 18 6 18 0 18 4 18 16 18 3 18 8 447 237 23 2 Mittel Spieler Computer 18 9 18 6 18 3 18 17 17 18 10 18 18 6 18 10 18 6 7 18 18 2 16 18 18 8 14 18 17 18 16 18 17 18 18 6 18 17 16 18 18 17 18 10 18 5 18 10 18 6 418 300 16 9 Schwer Spieler Computer 18 16 18 17 16 18 17 18 18 16 18 15 18 2 18 8 9 18 18 11 13 18 18 6 18 10 18 10 14 18 14 18 16 18 18 6 18 17 18 16 17 18 18 13 8 18 18 17 6 18 400 360 15 10 Tabelle A.2.: Ergebnisse der Testreihe offenes Watten zu viert. 35 A Testergebnisse 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 P Punkte Siege Leicht Spieler Computer 18 0 18 3 18 7 18 0 18 6 18 9 18 5 18 11 18 0 18 10 18 10 18 14 18 13 18 17 18 12 18 6 17 18 18 4 16 18 18 0 18 5 18 13 18 4 18 6 18 0 447 191 23 2 Mittel Spieler Computer 18 3 18 3 17 18 18 8 18 5 18 12 18 15 18 6 18 4 18 6 18 11 16 18 15 18 18 12 10 18 10 18 18 15 18 0 15 18 18 16 15 18 18 12 18 6 18 11 18 6 422 277 18 7 Schwer Spieler Computer 18 16 16 18 18 14 18 12 18 9 17 18 17 18 18 15 18 4 0 18 8 18 15 18 7 18 18 8 11 18 9 18 18 16 17 18 7 18 9 18 18 12 17 18 18 10 18 2 11 18 359 370 11 14 Tabelle A.3.: Ergebnisse der Testreihe Blind-Watten. 36 B. Weitere Diagramme zu den Testergebnissen Im Folgenden wird anhand eines Diagramms veranschaulicht, wie viele Punkte der Gegner am Ende eines Spiels erlangt hat. Dafür wurde für jede Testreihe dasselbe Diagramm erstellt. Ein Punkte im Diagramm entspricht der Punktezahl, die der Gegner in einem der 25 Spiele pro Testreihe erreicht hat. Durch verschiedene Farben zwischen den drei Schwierigkeitsstufen unterschieden. Die blauen Symbole sind jene Punkte, die der Gegner bei Schwierigkeitsstufe Leicht erzielt, die roten Symbole jene der Schwierigkeitsstufe Mittel und die gelben jene der Schwierigkeitsstufe Schwer. Weiters wurde eine Mittelwert-Linie eingefügt, wobei wiederum die zuvor genannten Farben für die jeweilige Schwierigkeitsstufe stehen. Abbildung B.1.: Punkte des Gegners am Ende der Spiele der Testreihe offenes Watten zu zweit. 37 B Weitere Diagramme zu den Testergebnissen Abbildung B.2.: Punkte des Gegners am Ende der Spiele der Testreihe offenes Watten zu viert. Abbildung B.3.: Punkte des Gegners am Ende der Spiele der Testreihe BlindWatten. 38