29.01.2014 Aufrufe

Script Java

Script Java

Script Java

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!