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

Documentos relacionados