HSG

Aktuelle Seite: HSG/Fächer/Informatik/JavaScript

Das Ziegenproblem

Problemstellung

www.ziegenproblem.de

Planung des Programms

GUI
Es muss eine Eingabemöglichkeit für die Türnummer geben und einen Button bWaehlen, der die Eingabe auslöst. Die Anzahl der Spiele und der gewonnenen Spiele sollen angezeigt werden.
Anwendungsfälle
  • Es gibt 5 globale Variablen:
    autoplatz wird anfänglich zufällig mit 1,2 oder 3 belegt und gibt die Tür an, hinter der sich das Auto befindet
    teil wird anfänglich mit 1 belegt und gibt an, in welchem Teil des Spiels man sich befindet. Die Ereignisbehandlung von bWaehlen hängt von teil ab.
    gewaehlt enthält die Nummer der gewählten Tür
    spiele wird zu Beginn auf 0 gesetzt und gibt die Anzahl der Spiele an
    gewonnen wird zu Beginn auf 0 gesetzt und gibt die Anzahl der gewonnenen Spiele an

  • bWaehlen löst im Fall "teil = 1" Folgendes aus:
    Die Nummer der gewählten Tür wird in der Variablen gewaehlt abgelegt.
    Der Moderator öffnet (zufällig) eine Tür (eventuell eine lokale Variable ztuer) vorsehen, hinter der sicher eine Ziege steht(≠autoplatz) und die nicht gewählt (≠gewaehlt) ist. Verfeinerung dazu
    Im Programm könnte das zunächst durch eine alert-Meldung geschehen.
    teil wird auf 2 gesetzt, um beim nächsten Drücken des Buttons bWaehlen eine andere Reaktion zeigen zu können

  • bWaehlen löst im Fall "teil = 2" Folgendes aus:
    Es wird eine Auswertung gemacht (autoplatz = gewaehlt?).
    Es wird zum Beispiel mit alert eine Meldung ausgegeben.
    Die Statistik wird geführt und auf dem Bildschirm ausgegeben.
    Ein neues Spiel wird vorbereitet (autoplatz zufällig belegen, teil wieder auf 1 stellen).

Erweiterungen
Das Programm könnte grafisch verschönert werden. Es könnte die prozentuale Häufigkeit der gewonnenen Spiele angezeigt werden. Man könnte viele Spiele nach einer bestimmten Strategie machen lassen.
Verfeinerung zur Wahl der "Ziegen-Tür"
Es gilt zwei Fälle zu unterscheiden: autoplatz ≠ gewaehlt und autoplatz = gewaehlt

Im Fall "autoplatz ≠ gewaehlt" gilt sicher autoplatz + gewaehlt + ztuer = 6. Daher läßt sich ztuer zu 6 - autoplatz - gewaehlt berechnen. Das ist ein bisschen trickreich, vermeidet aber viele Fallunterscheidungen.

Der Fall "autoplatz = gewaehlt" macht mehr Probleme, da ztuer unter zwei Möglichkeiten zufällig gewählt werden muss.
Lösungsmöglichkeit: Es werden die drei Fälle "autoplatz=1", "autoplatz=2" und "autoplatz=3" unterschieden:
if (autoplatz == 1 ) { if (Math.random()