chuck-a-luck
Gruppe: mk, 7.4.03
Aufgabenstellung
Es ist ein Programm zum chuck-a-luck-Spiel zu erstellen.
zitiert aus"casinocasinos.hypermart.net/german/chuck.htm"
Links zum Spiel (Achtung, keine Software laden!):
1 ,
2
Zwei Bildschirm-Hardcopies aus der Spielsoftware aus Link 2:
Bild1,
Bild2
Pflichtenheft
/1/ |
Es ist auf dem Bildschirm eine vereinfachte Version des Spielfeldes darzustellen. |
/2/ |
Zunächst soll nur "Numbers Bet" dargestellt werden. |
/3/ |
Es sollen drei Würfel geworfen werden. |
/4/ |
Es soll zunächst nur ein Spieler spielen. |
/5/ |
Es soll ein Konto für den Spieler verwaltet werden. |
Prototyp
Objektorientierte Analyse
Use-Case-Diagramm
erstellt mit
Dia
"Ein Geschäftsprozess (use case) - auch Arbeitsablauf genannt - besteht aus
mehreren zusammenhängenden Aufgaben, die von einem Akteur durchgeführt werden, um
ein Ziel zu erreichen bzw. ein gewünschtes Ergebnis zu erstellen.
Ein Akteur (actor) ist eine Rolle, die ein Benutzer des Systems spielt. Jeder Akteur hat einen gewissen Einfluss auf das System. Ein Akteur ist häufig eine Person. Es kann sich aber ebenso um eine Organisationseinheit oder ein externes System handeln, das mit dem zu modellierenden System kommuniziert. Akteure befinden sich stets außerhalb des Systems."
[
SWT1, S.126]
Klassendiagramm für die Fachkonzeptklassen
Die Idee ist, dass die Kontroll-Klasse TSpiel das Fachkonzept nach außen vertritt. Die innere Struktur, insbesondere welche Tochterobjekte TSpiel nutzt, bleibt verborgen.
Wenn sich in TSpiel etwas "GUI-relevantes" ändert, soll das Ereignis Onchange angestoßen werden.
erstellt mit
UmlEd
Klassendiagramm für die GUI-Klassen
erstellt mit
ESSModel
Objektorientiertes Design
Einsatz setzen
updateGUI erfragt Zustände der Würfel, des Kontos und des Spielfeldes und aktualisiert die Labels. Außerdem aktiviert bzw. deaktiviert updateGUI Buttons je nach Zustand. updateGUI gehört offensichtlich zu GUI.
Zustandsautomat
Die Oberfläche soll durch verschiedene Zustände ein "vernünftiges" Navigieren unterstützen.
erstellt mit
Violet
Zustand |
gesperrt |
frei |
1. Setzen |
bWerteAus bRaeumeAb |
bInc1-bDec6 bWuerfele |
2. Auswerten |
bInc1-bDec6 bWuerfele bRaeumeAb |
bWerteAus |
3. Abraeumen |
bInc1-bDec6 bWuerfele bWerteAus |
bRaeumeAb |
Da im Wesentlichen nur Buttons in der GUI
enabled oder
disabled gesetzt werden, wird die Zustandssteuerung zunächst nur in der GUI realisiert. Dazu werden einfach die Ereignisbehandlungsroutinen zu den auslösenden Ereignissen erweitert.
to do:
Im Moment ist ein Würfeln ohne vorangegangenes Setzen möglich. Wie ließe sich dieser Mangel beseitigen? Wo liegen neue Probleme?
Implementierung
------------
chuckaluck.zip---------------
Test
----------------