All posts by Andreas Koch

Programming Methodologies, SS11

Im unteren Bild ist eine Spielsituation während Runde 2 zu sehen. Auf Attribute, die nicht der Verständlichkeit dienen, wurde verzichtet bspw. name bei den Player-Objekten.newline
Startet man beim zentralen WizardGame-Objekt, erkennt man die textit{turns}-Links zu den Turn-Objekten; textit{currentTurn} markiert zusätzlich die aktuelle Runde. Betrachtet man textbf{turn1}, also das Turn-Objekt der Spielrunde 1, erkennt man neben der Trumpffarbe textbf{trump1} die Vorhersagen der 3 Spieler aus der ersten Runde (textbf{forecastAlice1}, textbf{forecastBob1} und textbf{forecastCharlie1}). Diese zeigen neben ihrer Vorhersage (textit{trickcount}) den Punktestand in dieser Runde (textit{points}). Desweiteren gibt es noch textbf{trick1}, also den (einzigen) Stich der ersten Runde, welcher von Bob gewonnen wurde (zu erkennen durch den textit{tricks}-Link zwischen Player und Trick). Schließlich zeigen textbf{g8}, textbf{r13} und textbf{r10} die drei Karten dieses Stichs, wobei mit dem Link textit{highestCard} die höchste Karte des Stiches markiert wurde. Die next-Verknüpfungen zwischen den textit{cards}-Links stehen für die Reihenfolge, d.h zuerst wurde textbf{g8} ausgespielt, dann textbf{r13} und am Ende textbf{r10}.newline
Für die zweite Runde starten wir mit textbf{turn2}. Die Struktur ähnelt der in Runde 1, d.h es gibt eine Trumpfkarte (textbf{trumpCard}) und die Vorhersagen der Spieler (textbf{forecastAlice},textbf{forecastBob} und textbf{forecastCharlie}). Zusätzlich gibt es die 3 Spieler-Objekte (textbf{alice}, textbf{bob} und textbf{charlie}), sowie ihre Handkarten, verbunden über den textit{cards}-Link.newline
Im unteren Teil der Abbildung sind noch die zwei Ablagestapel zu sehen (textbf{closedStack} und textbf{openStack}). textbf{closedStack} würde in Runde 2 natürlich noch deutlich mehr Karten (alle nicht ausgeteilten) enthalten als textbf{trumpCard} – diese wurden der Übersichtlichkeit halber weggelassen. textbf{openStack} enthält immer die gerade abgelegten Karten. In dieser Situation handelt es sich hierbei und 2 Karten; textbf{f1} von Bob und textbf{m1} von Charlie, d.h. Alice wäre jetzt am Zug eine Karte abzulegen. Dies ist mit Hilfe des textit{currentPlayer}-Links modelliert.