huaiyong's profile二楞子和二妮儿的快乐生活——嘿嘿!PhotosBlogLists Tools Help

Blog


    May 25

    Sopra Projekt 1

    几天的没睡觉,今天组里终于把程序跑了起来,虽然有些功能还没能完全实现,但是主要的功能能运行。这次干到最后这样时间紧,原因很简单,就是设计阶段耽误的时间太长了,导致最后没有时间进行代码实现和测试。马上就要下一个Projekt了,这次感觉没有第一个难,是给大学语言班编制一个报名管理的System,要求用java和Excel完成。本周五开始分工,下周一做客户调查。
    April 20

    Problembereichsmodell (Klassdiagramm)

    Metro

    Die Klasse Metro stellt den Controller dar. Von dort wird das Model verwaltet, also der Bezug zu einem Spiel, dem Highscore und der Grafik hergestellt.

    Highscore

    Die Klasse repraesentiert die 10 verschiedenen Highscorelisten, die ueber type beschrieben werden. So ist es moeglich Highscores zu Spielen mit verschiedenen Eigenschaften wie Anzahl der Spieler und groesse des Spielfelds zu verwalten.

    HighscoreEntry

    Diese Klasse repraesentiert einen Eintrag in der Highscoreliste. Dabei besteht eine Liste aus genau 10 Eintraegen. Ein Eintrag besteht aus dem Namen des Spielers und der erreichten Punktzahl.

    Session

    Die Session beschreibt eine Partie. Dabei soll es moeglich sein eine neue Partie starten, zu laden, zu speichern oder zu beenden. Eine Partie besteht aus genau einem Spielbrett, abhaengig von der groesse des Bretts aus entsprechend vielen Schienenplaettchen, aus 2 bis 6 Spielern und den zugehoerigen Bahnhoefen.

    Card

    Die Klasse Card repaesentiert ein Schienenplaettchen. Die Anzahl der Plaettchen haengt von der Groesse des Spielfelds ab. In dem Attribut image wird die Grafik gespeichert, die auf dem Plaettchen dargestellt wird. In der Variable routing wird gespeichert welcher Eingang zu welchem Ausgang fuehrt. Dabei hat jede Seite eines Plaettchens einen Eingang und einen Ausgang.

    Player

    Die Klasse repaesentiert den Spieler. Pro Partie kann es zwischen 2 bis 6 Spielern gegen. Jeder Spieler hat einen aktuellen Punktestand, einen Namen und einen typ, der beschreibt, ob es sich um einen menschlichen oder einen Computergegner handelt. Im zweiten Fall soll aus dem typ auch die Staerke des Gegner hervorgehen. Jeder Spieler hat mindestens 4 aeussere Bahnhoefe. Die Anzahl der Bahnhoefe die jeder Spieler erhaelt haengt von der groesse des Spielfelds ab.

    Board

    Die Klasse Board beschreibt das Spielfeld. Pro Partie gibt es ein Spielfeld und abhaengig von der Groesse des Spielfelds viele Schienenplaettchen. Die Groesse wird in dem Attribut size gespeichert. Ausserdem gibts es Bahnhoefe auf dem Spielfeld. Diese befinden sich entweder am Rand des Feldes (OuterStations) oder in der mitte (Stations). Das Feld besteht zudem aus Feldern. On sich in einem Feld ein Bahnhof oder ein Schienenplaettchen oder garnichts befindet, wird in der fields Matrix gespeichert.

    Station

    Durch diese Klasse wird ein Bahnhof beschrieben. Jeder Bahnhof hat einen Namen und befindet sich auf dem Spielfeld. Die Anzahl der Bahnhoefe haengt von der Groesse des Spielfelds ab.

    OuterStation

    Die Klasse OuterStation beschreibt einen aeusseren Bahnhof, dieser erbt alle Eigenschaften der Klasse Station, also eines Bahnhofs. OuterStation erweitert den Bahnhof in dem Sinne, dass er einem Spieler zugeordnet ist und dass er sich am Rand des Spielfelds befinden muss.

     

    Programm_beenden (Anwedungsfallbeschreibungen)

    Anwendungsfall

    Programm_beenden

    Kurzbeschreibung

    beendet das programm, sichert ggf. das Spiel und Konfigurationen

    Vorbedingung

    Das Programm laeuft

    Nachbedingung

    --

    Fehlersituation

    Das Programm wurde nicht beendet

    Nachzustand im Fehlerfall

    Startzustand

    Akteure

    1. Spieler

    Standardablauf

    1. Falls gerade ein Spiel laeuft gehe zu 2., sonst zu 5.
    2. Frage ob das aktuelle Spiel gesichert werden soll. Falls ja, gehe zu 3. falls nein zu 4. Falls beenden abgebrochen wurde. gehe zurueck in den Ausgangszustand
    3. Starte Anwendungsfall Spiel sichern
    4. Ueberschreibe die konfiguration zuletzt gespielt mit der konfiguration des aktuellen spiels
    5. beende das Programm

    Alternativablaeufe

    --

    Ausloeser

    Ein Spieler waehlt programm beenden aus

    Aktivitaetsdiagramm

    HighScore Anzeigen (Anwedungsfallbeschreibungen)

    Anwendungsfall

    HighScore Anzeigen

    Kurzbeschreibung

    der Spieler kann erfahren, wie die aktuelle HighScore aussieht.

    Vorbedingung

    der Spieler initiiert die HighScore Anwendungsfall.

    Nachbedingung

    die Information von HighScore wird angezeigt.

    Fehlersituation

    nicht vorhanden

    Nachzustand im Fehlerfall

    nicht vorhanden

    Akteure

    Spieler

    Standardablauf

    1. der Spieler klickt auf "HighScore"
    2. der Spieler waehlt gewuenscht HighScoreList aus

    Alternativablaeufe

    nicht vorhanden

    Ausloeser

    Spieler aktiviert "HighScore"


    Aktivitaetsdiagramm

     

    Stationsnamen_aendern (Anwendungsfallbeschreibungen)

    Anwendungsfall

    Stationsnamen_aendern

    Kurzbeschreibung

    Dieser Anwendungsfall charakterisiert den Ablauf der Aenderung eines Stationsnamens durch den Benutzer.

    Vorbedingung

    Der Benutzer befindet sich im Optionsmenue bzw. dieses ist geoeffnet.

    Nachbedingung

    Der Benutzer befindet sich im Optionsmenue bzw. dieses ist geoeffnet. Es sind ggf. Stationsnamen modifiziert.

    Fehlersituation

    Nicht definiert.

    Nachzustand im Fehlerfall

    Nicht definiert.

    AkteureDer Benutzer.

    Standardablauf

    Das System blendet ein Editierfenster ein, in welchem alle Stationen mit Namen angegeben sind.
    Der Benutzer editiert den oder die Namen.
    Der Benutzer klickt "Ok".
    Das System uebernimmt die neuen Daten und ueberschreibt die alten Namen.
    Das System schliesst das Editierfenster.

    Alternativablaeufe

    Das System blendet ein Editierfenster ein, in welchem alle Stationen mit Namen angegeben sind.
    Der Benutzer editiert den oder die Namen.
    Der Benutzer klickt auf den Abbruch-Button.
    Das System schliesst das Editierfenster ohne Aenderungen vorzunehmen.

    Ausloeser

    Der Benutzer klickt auf "Stationsnamen aendern".

    Aktivitaetsdiagramm

    Grundeinstellung_aendern (Anwendungsfallbeschreibungen)

    Anwendungsfall

    Grundeinstellung_aendern

    Kurzbeschreibung

    Der Spieler hat hier die Moeglichkeit sich mit dem Feldgroesse des Spiels, der Information des Spielers (Name und Art), Stationnamen des Spiels zu aendern.

    Vorbedingung

    Programm aktiv

    Nachbedingung

    Programm im Hauptmenue Aenderungen gesichert.

    Fehlersituation

    Nachzustand im Fehlerfall

    Akteure

    Spieler

    Standardablauf


    1. Spieler aktiviert "Grundeinstellung_aendern"
    2. Spieler muss waehlen,welche Inhalt er aendern will.(Feldgroesse_festlegen,Spielereinstellung oder Stationnamen_aendern)
    3. Feldgroesse_festlegen ist gewaehlt
    4. Gebe Feldgroesse ein.
    5. EingabeDaten wird gespeichert.
    6. Warte auf das Signal (erfolgreiche oder erfolglose Meldung)

    Alternativablaeufe


    1. Spieler aktiviert "Grundeinstellung_aendern"
    2. Spieler muss waehlen,welche Inhalt er aendern will.(Feldgroesse_festlegen,Spielereinstellung oder Stationnamen_aendern)
    3. Spielereinstellung ist gewaehlt
    4. Gebe den Name und Art von Spieler ein.
    5. EingabeDaten wird gespeichert.
    6. Warte auf das Signal (erfolgreiche oder erfolglose Meldung)

    1. Spieler aktiviert "Grundeinstellung_aendern"
    2. Spieler muss waehlen,welche Inhalt er aendern will.(Feldgroesse_festlegen,Spielereinstellung oder Stationnamen_aendern)
    3. Stationnamen_aendern ist gewaehlt
    4. Gebe den Stationnamen ein.
    5. EingabeDaten wird gespeichert.
    6. Warte auf das Signal (erfolgreiche oder erfolglose Meldung)

    Ausloeser

    Spieler ruft Grundeinstellung_aendern auf

    Aktivitaetsdiagramm

    Spielstand_laden (Anwendungsfallbeschreibungen)

    Anwendungsfall

    Spielstand_laden

    Kurzbeschreibung

    Ein zuvor unterbrochenes Spiel wird fortgesetzt.

    Vorbedingung

    Programm aktiv

    Nachbedingung

    Gespeicherter Spielstand wurde reaktiviert

    Fehlersituation

    Speicherstand beschaedigt

    Nachzustand im Fehlerfall


    Akteure

    Spieler

    Standardablauf

    1. Spieler aktiviert "Spielstand laden"
    2. Dateiauswahl-Dialog wird angezeigt
    3. Spieler waehlt zu ladenden Spielstand
    4. Spielstand wird eingelesen und eine Partie in diesen Zustand versetzt
    5. Signalisierung "Spielstand geladen"

    Alternativablaeufe

    4* Ungueltiges Dateiformat
    5* Signalisierung "Spielstand laden fehlgeschlagen"

    Ausloeser

    Spieler klickt auf "Spielstand laden"

    Spielstand_speichern (Anwendungsfallbeschreibungen)

    Anwendungsfall

    Spielstand_speichern

    Kurzbeschreibung

    Eine angefangene aber noch nicht beendete Partie wird gespeichert, um sie spaeter fortsetzen zu koennen.

    Vorbedingung

    Es wurde eine Partie begonnen und noch nicht beendet.

    Nachbedingung

    • Ein Speicherstand der aktuellen Partie wurde angelegt
    • Zustand der Partie wurde nicht veraendert

    Fehlersituation

    Erstellen des Speicherstands nicht moeglich (zb mangels Speicherplatz)

    Nachzustand im Fehlerfall

    • Signalisierung das Speichern fehlgeschlagen
    • Zustand der Partie unveraendert

    Akteure

    • Spieler

    Standardablauf

    1. Spieler klickt auf "Spielstand speichern"
    2. "Datei speichern"-Dialog oeffnet sich
    3. Spieler waehlt Speicherort und Dateinamen
    4. Speicherstand wird entsprechend angelegt
    5. Signalisierung "Speicherstand erfolgreich angelegt"

    Alternativablaeufe

    nicht vorhanden

    Ausloeser

    Spieler aktiviert "Speichern"


    Aktivitaetsdiagramm

    Tip_geben_lassen (Anwendungsfallbeschreibungen)

    Anwendungsfall

    Tip_geben_lassen

    Kurzbeschreibung

    Der Anwendungsfall charakterisiert den Ablauf der Ereignisse wenn der Benutzer vor seinem Spielzug wuenscht sich einen Tip fuer die naechste Kartenplatzierung geben zu lassen.

    Vorbedingung

    Der Benutzer, der den Tip anfordern moechte (im Nachfolgenden schlicht der Benutzer genannt), ist gerade mit seinem Zug an der Reihe und hat noch keine Karte gelegt. Der Anwendungsfall wird also vom Benutzer initiiert.

    Nachbedingung

    Der Benutzer hat eine Karte auf dem Spielfeld platziert und die Tipmarkierung wurde wieder entfernt.

    Fehlersituation

    Der Benutzer hat keine Karte verfuegbar (d.h. er hat keine auf der Hand und kann nicht ziehen) und waehlt den Tip-Button.

    Nachzustand im Fehlerfall

    Der Benutzer wird vom System darueber informiert, dass das Spiel fuer ihn bereits zu Ende ist. Abbruch der Tip-Aktionen.

    Akteure

    Initiiert vom Benutzer.

    Standardablauf

    Das System prueft, ob das Spiel nicht (fuer den Benutzer) ggf. bereits zu Ende ist, d.h. es sind keine Karten mehr verfuegbar fuer diesen Benutzer.
    Das System bestimmt eine Moeglichkeit fuer einen Tip zur Platzierung der naechsten Karte.
    Das System markiert die vorgeschlagene Position fuer die naechste Karte.
    Der Benutzer spielt seine Karte an beliebige, zulaessige Position.
    Das System loescht die Markierung wieder.

    Alternativablaeufe

    Das System prueft, ob das Spiel nicht (fuer den Benutzer) ggf. bereits zu Ende ist, d.h. es sind keine Karten mehr verfuegbar fuer diesen Benutzer.
    Das System bestimmt eine Moeglichkeit fuer einen Tip zur Platzierung der naechsten Karte.
    Ein aelterer Tip ist bereits aktiv und daher eine Markierung fuer ein vorgeschlagenes Feld gesetzt.
    Das System entfernt die alte Markierung.
    Das System markiert die vorgeschlagene Position fuer die naechste Karte.
    Der Benutzer spielt seine Karte an beliebige, zulaessige Position.
    Das System loescht die Markierung wieder.

    Ausloeser

    Der Benutzer ist am Zug und klickt auf den "Tip geben"-Button.

    Aktivitaetsdiagramm

     

    April 19

    Plaetchen legen (Anwendungsfallbeschreibungen)

    Anwendungsfall

    Plaetchen legen

    Kurzbeschreibung

    Das legen eines Plaetchens auf das Spielfeld

    Vorbedingung

    Der Spieler hat ein eindeutiges Plaetchen das er nun legen will

    Nachbedingung

    Das Plaetchen wurde gelegt

    Fehlersituation

    Das Spiel wird beendet

    Nachzustand im Fehlerfall

    Das Spiel ist beendet

    Akteure

    1. Spieler

    Standardablauf

    1. Der Spieler zieht sein Plaetchen auf das gewuenschte Feld (Drag & Drop?)
    2. Es wird ueberprueft, ob der Zug gueltig ist (min. Laenge der Strecken). Falls ok, gehe zu 3., sonst zu 2.
    3. lege das plaetchen

    Alternativablaeufe

    ---

    Ausloeser

    ---

    Aktivitaetsdiagramm

    Spielzug_taetigen (Anwendungsfallbeschreibungen)

    Anwendungsfall

    Spielzug_taetigen

     

    Kurzbedingung

    Der Spielzug läuft nach diesem Schema ab, dabei kann an zwei Stellen ein Tipp gegeben lassen werden. Die Punkte werden gegen Ende berechnet.

    Vorbedingung

    Programm aktiv, Session (Spiel) gestarten

     

    Nachbedigung

    Ein Plaettchen mehr auf dem Spielbrett oder Spiel beendet.

     

    Fehlersituation

    Tipp wird nicht gegeben.

     

    Akteure

    Spieler

     

    Standardablauf

    1. Spieler lässt sich Tipp geben (evtl.)
    2. Spieler spielt Karte
    3. Punkte werden verteilt
    4. Spieler zieht Karte
     

    Alternativabläufe

    1. Spieler zieht Plaettchen
    2. Spieler lässt sich Tipp geben (evtl.)
    3. Spieler spielt Karte
    4. Punkte werden verteilt
     

    Auslöser

    vorheriger Spieler ist fertig

     

    Aktivitätsdiagramm

    Neues Spiel_starten (Anwendungsfallbeschreibung)

    Anwendungsfall

    Neues Spiel starten

    Kurzbeschreibung

    Eine neue Partie des Spiels soll gestartet werden, die Einstellungen für das Spiel getätigt und das Spiel vorbereitet werden.

    Vorbedingung

    Das Spiel ist gestartet.

    Nachbedingung

    Das Spiel ist in der Ausgangssituation.

    Fehlersituation

    -

    Nachzustand im Fehlerfall

    -

    Akteure

    Spieler

    Standardablauf

    1. Spieler klickt auf "Neues Spiel starten"
    2. neue Konfiguration eingeben wird gewählt
    3. Spielfeldgröße wird ausgewählt
    4. Name und Spielerart wird ausgewählt (wiederhole 4 (max. 5 mal))
    5. Spieler klickt auf "Spiel starten"
    6. Karten werden gemischt, jeder Spieler erhält eine Karte
    7. Spielfeld wird erstellt und Bahnhöfe auf Spieler verteilt
    8. Punkte werden auf Null gesetzt

    Alternativablaeufe

    2.* Standardkonfiguration wird ausgewählt (durch diese Auswahl wird Spieleranzahl, -art, Spielfeldgröße aufgrund einer vorher bestimmten Einstellung bestimmt) weiter bei 5.

    3. und 4. sind vertauschbar

    6. - 8. sind vertauschbar

    Ausloeser

    Spieler wählt "Neues Spiel starten"

    Aktivitätsdiagramm

    Spielregeln_anzeigen (Anwendungsfallbeschreibungen)

    Anwendungsfall

    Spielregeln_anzeigen

    Kurzbeschreibung

    Der Spieler hat hier die Moeglichkeit sich mit dem Regelwerk des Spiels vertraut zu machen oder Unklarheiten nachzulesen.

    Vorbedingung

    Programm aktiv

    Nachbedingung

    keine Veraenderung des eigentlichen Programmzustands hervorgerufen

    Fehlersituation

    Nachzustand im Fehlerfall

    Akteure

    • Spieler

    Standardablauf

    1. Spieler aktiviert "Spielregeln_anzeigen"
    2. Spielregeln werden eingeblendet
    3. Spieler aktiviert "Ok"
    4. Spielregeln werden wieder ausgeblendet

    Alternativablaeufe

    keine

    Ausloeser

    Spieler ruft Spielregeln auf

    Aktivitaetsdiagramm

    Anwedungsdiagramm

    Anwedungsdiagramm
    Photo by yang

     

    Anwendungsfälle