Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
5.1 ActionEvent und ActionListener<br />
Zusicherung (engl. assertion): die Aussage ist an dieser Stelle im Programm immer gültig<br />
und widerspiegelt die Spielstrategie.<br />
Überlegen wir uns nun anhand verschiedener Fälle, wie diese Strategie aussehen muss.<br />
Wenn 2, 3 oder 4 Elemente im TextField vorhanden sind, gewinnt derjenige, welcher den<br />
nächsten Zug macht. Falls nun aber 5 tokens vorrätig sind, hat derjenige, der an der Reihe<br />
ist, garantiert verloren, denn mit jedem möglichen Zug tritt der Fall ein, dass entweder 2,<br />
3 oder 4 Elemente übrigbleiben, was für den Mitspieler bedeutet, dass dieser gewinnt<br />
(vorausgesetzt, er macht keinen Fehler). Sind nun aber 6 Elemente vorhanden, kann man<br />
den „Spiess umdrehen“: man nimmt nun nur 1 token weg, damit für den Gegenspieler die<br />
„unglückseligen“ 5 Elemente übrigbleiben, und man ist siegessicher. Dies gilt auch noch<br />
für 7 und 8 Elemente. Bei 9 Elementen aber trifft der selbe Fall ein wie vorher bei 5:<br />
derjenige, der Ziehen muss, hat verloren, denn mit jedem Zug, den er macht, bleiben für<br />
den Gegenspieler die siegessicheren 8, 7 oder 6 Elemente übrig. Das Ganze wiederholt<br />
sich immer wieder mit einer Periodizität von vier 1 . Die untenstehende Tabelle soll dies<br />
veranschaulichen. Hierbei gibt Chance die Gewinnwahrscheinlichkeit für denjenigen,<br />
welcher den nächsten Zug macht, an.<br />
Vorrat 1 2 3 4 5 6 7 8 9 10 11 12 13 14<br />
Zug ? 1 2 3 ? 1 2 3 ? 1 2 3 ? 1<br />
Chance ☺ ☺ ☺ ☺ ☺ ☺ ☺ ☺ ☺ ☺<br />
Wie aus obiger Tabelle hervorgeht, muss der Computer also versuchen, seinen Zug so zu<br />
wählen, dass 1, 5, 9, 13, etc. Elemente übrig bleiben. Er muss also versuchen, so viele<br />
Elemente wegzunehmen, dass er „ein Vielfaches von vier plus eins“ 2 tokens dem Benutzer<br />
hinterlässt.<br />
Die Antwort auf obige Frage, wieviel Elemente man wegnehmen muss, bildet im Prinzip<br />
die Differenz auf „ein Vielfaches von vier plus eins“:<br />
int i = (numberOfTokens()-1)%4;<br />
Falls nun aber der Fall eintrifft, dass, wenn der Computer ziehen will, bereits „ein<br />
Vielfaches von vier plus eins“ vorliegt, dann erhält man nach obiger Formel für i den<br />
Wert 0. In einer solchen Situation ist der Benutzer derjenige, der gewinnt. Vorausgesetzt<br />
1 Die Periodizität hängt von der maximalen Anzahl der Elemente, die man ziehen darf, ab. Dürfte man auch<br />
vier tokens wegnehmen, wäre die Periodizität fünf.<br />
2 Die Zahl vier ergibt sich aus der Periodizität von vier. Dass man eins addieren muss, hat seinen Grund<br />
darin, dass man ein Element übriglassen muss, um zu gewinnen.<br />
133