Home
GetGamefield
Contents
1. Aktiver Spieler Abbildung 2 Spielbrett Nachdem Sie ihr Spiel eingerichtet haben sehen Sie das Fang den Hut Spielfeld vor sich Abb 2 Das Spielfeld ist in zwei Bereiche unterteilt Zum Einen das eigentliche Spielbrett im linken Bereich zum Anderen zusatzliche Informationen wie Spielername Farbe und gew rfelte Augenzahl im rechten Bereich Unter Aktiver Spieler sehen sie den Namen des Spielers der gerade am Zug ist Der Name ist mit der Farbe des Spielers hinterlegt Das Spielbrett besteht aus den vier Heimfeldern den Spielfeldern und den H ten Die Sicherheitsfelder sind abgedunkelt dargestellt die H te werden durch farbige Kreise auf den Feldern repr sentiert Wenn Sie nun die Maus ber einen Hut bewegen wird dieser im Fenster H te unter dem Spielernamen angezeigt Dort sehen Sie auch ob mehrere H te einer Farbe auf einem Feld stehen und welche Gefangene die H te haben Der W rfel funktioniert v llig automatisch und zeigt an wie viele Schritte Sie mit einem Hut ihrer Farbe in dieser Runde laufen m ssen Zu Beginn des Spiels stehen alle H te auf den Heimfeldern Wenn Sie die Maus auf einen Hut ihrer Farbe bewegen sehen Sie also beim ersten Zug 6 identische H te im Auswahlfenster Durch Klicken auf den Hut w hlen Sie ihn aus Sollten mehrere H te auf einem Feld stehen k nnen Sie mehrfach auf den Hut klicken und so die zur Verf gung stehenden H te durchgehen Der ausgew hlte Hut wird im Auswahlfenste
2. Figuren fangen Fremde H tchen sicherstellen Sieg pr fen Spiel beenden Spiel speichern 8 FDH Complex CONTROLLER DOCUMENT Die eigenen H tchenobjekte werden aus der Liste des ehemaligen F ngers entfernt und in die Liste des urspr nglichen Besitzers eingef gt Klick auf den gew nschten Hut hat stattgefunden Klick auf legales Zielfeld hat stattgefunden illegale Feldklicks werden vom VIEW ignoriert DOCUMENT Spielerstatus auf passiv setzen VIEW Die Darstellung wird aktualisiert DOCUMENT Sofern fremde Hiitchen mitgefiihrt wurden werden diese aus der Opferliste des aktuellen Hiitchens entfernt CONTROLLER Wenn andere Spieler keine verf gbare Figuren mehr haben mit Spiel beenden fortfahren sonst mit Zug beenden Wurde festgestellt das ein Spieler gewonnen hat so kann das Spiel beendet werden Ein Spiel kann zwischen zwei Spielz gen gespeichert werden UseCase Summary W rfeln Klick auf W rfelbutton hat stattgefunden Zug beenden CONTROLLER Hat der aktive Spieler in diesem Zug eine 6 gew rfelt mit W rfeln fortfahren Aufruf von DOCUMENT gt Spielerzeiger weitersetzen Zugm glichkeiten VIEW finden Aufruf von DOCUMENT gt Zugm glichkeiten finden Aktiven Spieler festlegen CONTROLLER Entscheidung 1 Zug 1 Zug nach Laden Folgezug 1 Zug Aufruf an DOCUMENT gt Spielerliste mischen und Positionszeiger auf 1 setzen 1 Zug nac
3. Includes Links to UseCase Sieg pr fen 11 FDH Complex Fremde H tchen sicherstellen DOCUMENT Sofern fremde H tchen mitgef hrt wurden werden diese aus der Opferliste des aktuellen H tchens entfernt Ihr Status wechselt zu Knast und sie werden in die Liste des Spielfeldes integriert Punkte aktualisieren CONTROLLER Hat der aktive Hut eigene H tte in Gefangenschaft mit eigene H tte befreien fortfahren VIEW Die Darstellung wird aktalisiert Das bewegte und alle fremden mitgef hrten H tchen werden auf das Starfeld gesetzt fremde H tchen werden von eigenen getrennt dargestellt Fremde Hiitchen im Gef ngnis k nnen nicht ausgew hlt werden werden allerdings dargestellt im Gegensatz zu gefangenen Hiitchen die komplett vom Spielbrett entfernt werden Extends Links to UseCase Figur bewegen Sieg priifen CONTROLLER Wenn andere Spieler keine verf gbare Figuren mehr haben mit Spiel beenden fortfahren sonst mit Zug beenden Spiel beenden Wurde festgestellt das ein Spieler gewonnen hat so kann das Spiel beendet werden Ein Spiel kann zwischen zwei Z gen von einem Spieler ebenfalls beendet werden VIEW Meldung Spielende anzeigen CONTROLLER Aufr umarbeiten starten Siehe UseCase Spiel Abbauen Extends Links to UseCase Sieg pr fen 12 FDH Complex Spiel speichern Ein Spiel kann zwischen zwei Spielz gen gespeichert werden VIEW Speicherdialog
4. 40 pl9 q5 L play ssaooid aye Sawed ST Plon PIE JH PEPOPIENSWEH L GL Play joejes ayeySewey owing FT wr preyawego sinoqy ionIeg spjay PITA PIENEWEHO PIENEWEHISH PIOIAL OL p on spjey Pp ien spjeyewegeigepalesios Z JEHO ANNEHISO IEH 6 doopweng bas TZ p ox 0 SPIeyFWEHEIIEWSIESIOS l L piox plela p yolIOpleueureo GL plon spjel pijen spjeyewemargetoojesies JEHO ANNEHIOH IEH 1 6 dooreweg bas Tz doorfoweg bes TT doopweg bas zz doopweg bas T E wenen UOA ll u5S lp Juu aq 431 PIOA JEH_L YoIeD DOUMO JEH i JOUME JEHL HISIEH L1 03 pu3 sue Pap wuweJ6olg sep 1Buuds syjejuiepuy ap nm 1 pu q pleyjeuuoN wauIe jne 6nz Jep uuam uayne yoinp Janu palm uonesoy opuebjod 2A dooreweg bas I doopweg bas z dooreweg bas z Dokumentation FH Wiesbaden Fang den Hut FBI nformatik F Sequenzdiagramm HomeBase SS 2004 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi osegowoH bes T I Jekejd joajes aes ewed lt 19dns gt pre ase Bum p aws uepy edns gt EZ 0 i Jegqwnu uAolul 1S 1 J PIOA JEHO IEHPPV 8 Z Z L piqA 6sne le1lS1 s LaumouquabueEjab JeumoJeHpel z z z L OER ee J UMO JEHEL ZZ L IeH1u6neo uoe io x x 1eHO sleHluBne
5. eld Ie 1oj biounguo z Bo jeid uueoAASNO Boleid ON lt soyonsjsuod gt uollng uuecoASNuO L AWEDMEN MIA MIA DN pion Jawenuels lt soyonujsep gt pioA ur BuilSO i e dppv 2 2 pioa Qur Bums okei PPV FZ HQ49 eeu HOAD Soe Sunprewuwy bes T I N IA HID MAIA Sunpjewuy bes T I Dokumentation FH Wiesbaden Fang den Hut FBI nformatik E Sequenzdiagramm GameLoop SS 2004 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi doopwen bas I T splay angeo s uupo y lt Iedns gt g PIOA QI POYONDIEH L Z ploA qI p yoIIOleH yey pajas ag weg lt sadns pI0A M IAWE1Q 9 L ae yur JOIgMalyL dweLq F y yur a01q MOJY JegWNU UMON 7 Bulolp ayeyg uupo lt Iedns gt x pioa dwa 1 q 9Iq18S Z r zal ISI Jopuseq 49u you I lds sep ssep us ue a sne uonep Plm 191H paeooid dwajy sakejd aange osje pug ewe on dwald Jahkejd an pe abeyqy PIOA dwa q u eld18S 227 yur JofeldikeN dweld FZ Jur u e d1xX N duu Ld Z Jekejd joejes ayeygewey lt iadns gt 1 al JejlonuoD HAAI eeu HAD N IA HID HATIOULNO9 AVI MIIA dooreweg bas T I doopuweg bas Z pjojewedI 1314 doo Teoureo b s 7 TeHI steH1eD SIEH 61 Ag 2 PIOA PIOIJH PIENEWEHIOS 8 1 pioA wijspjegewedeigepsjessea1g
6. CFDH_Doc Erstellt ein Spielfeld und einen Wiirfel Destructor Summary CFDH_Doc Method Summary void AddPlayer CString amp name enum playercolor color Registriert einen neuen Spieler int const CGamefield const void const CHat const void const CPlayer const void WORD 27 CFDH_Doc GetActivePlayerCount Gibt die Anzahl der aktiven Spieler zur ck zur Siegpr fung GetGamefield WORD goid Ruft gameboard gt GetGamefield auf GetGamefields CTypedPtrList lt CPtrList CGamefield gt amp into Liefert eine Liste der Spielfelder GetHat WORD goid Liefert der GOID entsprechenden Hut zuriick GetHats CTypedPtrList lt CPtrList CHat gt amp into Liefert eine Liste von Hiite GetPlayer WORD goid Gibt den Spieler mit dieser GOID zuriick GetPlayers CTypedPtrList lt CPtrList CPlayer gt amp into Liefert eine Liste der Spieler NextPlayer Setzt den n chsten aktiven Spieler anhand des inkrementieren von active_player evtl Method Summary void SetActivePlayer WORD goid Setzt den Spieler mit der erhaltenen ID als aktiv void SetSelectableGamefields const CWordArray amp fields BOOL set Setzt Spielfelder anklickbar int ThrowDice Ruft dice ThrowDice auf Constructor Detail CFDH_Doc public CFDH_Doc Erstellt ein Spielfeld und einen Wiirfel Die Spieler werden erst spater tiber AddPlayer hinzugefiigt Method Detail CFDH_Doc public synchr
7. Dokumentation FH Wiesbaden Fang den Hut FBI nformatik C Klassendiagramm amp Klassenbeschreibungen SS 2004 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi 1 1 FangDenHut Klassendiagramm CGamefield hats CHat neighbours int GOID int CGamefield CGamefield AddHat void GetHats CHat RemoveHat bool GetNeighbours int SetNeighbours void SetGOID void GetGOID int 1 1 FangDenHut Klassendiagramm CDice CDice ThrowDice int CDocument CSaveState state struct gamestate CSaveState CSaveState Serialize void SynchronizeData void RestoreGame void CGameboard gamefields CGamefield 81 lt gt CGameboard CGameboard GetGamefield CGamefield Q CFDH Doc dice CDice players CPlayer gameboard CGameboard active player POSITION hats CHat CFDH_Doc CFDH Doc RegisterInterface void AddPlayer void GetPlayer CPlayer NextPlayer int GetGamefield CGamefield GetHat CHat ThrowDice int 1 2 FangDenHut Klassendiagramm CDrawableHomebase position_point CPoint radius int CDrawableHomebase CDrawableHomebase Draw void SetPosition void lsClicked bool CalculateHit bool V CDrawableGamefield position CPoint 4 GOID int CDrawableGamefield CDrawableGamefield RegisterView void Draw void SetPosition void IsClicked bool SetGOID void GetGOID int CalculateHit bool CFD
8. pDC Diese Funktion ist echt virtuell virtual void Draw 0 und MUSS in abgeleiteten Klassen tiberschrieben werden virtual WORD GetGOID Liefert die GOID zuriick virtual BOOL IsClicked CPoint amp point Diese Funktion KANN in abgeleiteten Klassen tiberschrieben werden virtual BOOL IsMouseover CPoint amp point Diese Funktion KANN in abgeleiteten Klassen tiberschrieben werden virtual void Register View CFDH_View pnew_view Verkniipft einen neuen View virtual void SetGOID WORD new_goid Setzt die GOID Constructor Detail 10 CDrawableGameObject CDrawableGameObject public CDrawableGameObject Ist in der Basisklasse nur Platzhalter Method Detail CDrawableGameObject public virtual synchronized CDrawableGameObject Ist in der Basisklasse nur Platzhalter Method Detail Draw public abstract void Draw CDC pDC Diese Funktion ist echt virtuell virtual void Draw 0 und MUSS in abgeleiteten Klassen berschrieben werden GetGOID public virtual WORD GetGOID Liefert die GOID zuriick IsClicked public virtual BOOL IsClicked CPoint amp point Diese Funktion KANN in abgeleiteten Klassen berschrieben werden Ist dies nicht der Fall wird standardm ssig false zur ckgegeben Objekt ist nicht klickbar Ihr wird typischerweise ein CPoint Objekt bergeben Es muss dann vom Objekt selber tiberpriift werden ob dieser Punkt in seinem klickbaren Bereich liegt oder nicht
9. rest_number weitermachen Ansonsten pr fen ob Feld Ruhefeld wenn nicht dann feindliche H te gefangennehmen 8 Falls thrown_dice 6 gamestate dicing und dort weitermachen ansonsten gamestate select_player dort wird auch auf Sieg gepr ft SetActiveHat public void SetActiveHat WORD hat Setzt den aktuellen Hut SetActivePlayer public void SetActivePlayer WORD player Setzt den aktuellen Spieler SetGamerules public void SetGamerules enum gamerules rules Setzt die Spielregeln 24 CFDH_Controller SetGamestate public void SetGamestate enum gamestates state Setzt den Spielstatus SetHatLocked public void SetHatLocked BOOL value SetRestThrownNumber public void SetRestThrownNumber int value Setzt die Anzahl der restlichen W rfelaugen SetRethrow public void SetRethrow BOOL value Legt fest ob ein Zug fortgesetzt wird SetThrownNumber public void SetThrownNumber int value Pflegt die gew rfelte Augenzahl Set ValidFields public void SetValidFields const CWordArray amp src StartGame public void StartGame Initialisiert alle Objekte startet das Spiel Association Links 25 CFDH_Controller to Class CFDH Interface Verkn pfung zum Interface 26 CFDH_ Controller Class CFDH_Doc class CFDH_Doc Dies ist der Document Container von FDH Es enth lt alle Daten Objekte organisiert und verwaltet sie Constructor Summary
10. void SetPlayer WORD goid Setzt den Spielernamen des aktuell aktiven Spielers auf diese GOID bzw wird ber diese mittels GetPlayer auf die eigentlichen Player Daten zugegriffen und dem playerdisplay per SetString und SetColor tibermittelt void SetRegistered BOOL value Setzt die Variable registered void SetSelectableGamefields const CWordArray amp fields BOOL set Setzt alle angegebenen GOIDs als selektierbar oder nicht selektierbar Method Detail CFDH_View public virtual synchronized CFDH_View Method Detail AddPlayer public void AddPlayer CString amp name enum playercolor color Legt CSimpleHat Objekte an fiir diesen Spieler DECLARE_DYNCREATE public DECLARE DYNCREATE GetDocument public CFDH_ Interface GetDocument O berladung von GetDocument die den Pointer auf das Interface zur ckgibt GetDrawableHat public const CDrawableHat GetDrawableHat WORD goid Liefert das zur GOID passende DrawableHatObject zur ck um dessen Position setzen zu k nnen 38 CFDH_View GetGamefield publie CGamefield GetGamefield WORD goid Liefert das mit dieser GOID identifizierte Spielfeld zur ck GetHat public CHat GetHat WORD goid Liefert den Hut mit dieser GOID zur ck OnDraw public virtual void OnDraw CDC pDC ResetGame public void ResetGame Setzt den View so zuriick dass ein neues Spiel dargestellt werden kann SetActiveHat public void SetA
11. BE BE BE EHE Spielregel normal C alternativ Spiel laden Abbrechen Abbildung 1 Anmeldebildschirm Sie sehen dann den Anmeldebildschirm Abb 1 vor sich Hier nehmen Sie die n tigen Einstellungen f r ein neues Spiel vor Da man Fang den Hut nicht allein spielen kann m ssen Sie 2 3 oder 4 Spieler anlegen Dazu geben Sie einfach die Namen der Spieler in die wei en Felder ein Neben dem Namen eines Spielers k nnen sie seine Farbe ausw hlen Klicken sie dazu einfach auf den wei en Kreis neben der gew nschten Farbe Jede Farbe kann nur einmal vergeben werden achten Sie also darauf dass jeder Spieler eine andere Farbe erh lt Unter den Spielernamen haben Sie die M glichkeit zwischen den normalen und den alternativen Regeln zu entscheiden Alternative Regeln werden in der Fang den Hut Regelbeschreibung erkl rt Wenn Sie alle Ihre Eingaben get tigt haben best tigen sie mit OK Sollte alles richtig eingestellt sein kommen Sie nun zum Fang den Hut Spielfeld und k nnen loslegen Haben Sie bei der Eingabe einen Fehler gemacht bekommen Sie eine Fehlermeldung Kontrollieren Sie ihre Eingaben und versuchen Sie es erneut H ufigste Fehler nur ein Spieler ausgew hlt Farbe mehrfach vergeben SS 2004 Seite 5 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik Fang den Hut spielen Fang den Hut Unbenannt Datei
12. aktuell gespeicherten Spielstand berschreiben wollen k nnen sie wieder auf Speichern klicken Um einen neuen Spielstand zu speichern w hlen sie bitte Datei gt Speichern unter Den Spielstand k nnen sie zu Beginn des Spiels oder mitten w hrend eines laufenden Spiels laden Dazu klicken sie im Einstellungsbildschirm am Anfang auf Spiel laden und w hlen Ihren zuvor gespeicherten Spielstand aus W hrend des Spiels k nnen Sie mit Datei gt Offnen ebenfalls einen Spielstand laden Spielende Wenn es Ihnen gelungen ist alle H te der anderen Spieler gefangen zu nehmen haben Sie das Spiel gewonnen Herzlichen Gl ckwunsch Sie k nnen jetzt entweder zum Einstellungsbildschirm zur ckgehen und ein neues Spiel starten oder Fang den Hut beenden SS 2004 Seite 9 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik Spielabbruch Sie k nnen das Spiel jederzeit mit Datei gt Beenden abbrechen Das Programm wird Sie zur Sicherheit noch fragen ob Sie ihren Spielstand sichern m chten SS 2004 Seite 10 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik Systemdokumentation Anforderungsdefinition Projektprogrammierung in Visual C Version 6 Umsetzung der Model View Controller Architektur Verwendung des Microsof
13. angegebene wenn sie neu ist und gibt TRUE zur ck sie wird nicht gesetzt und FALSE zur ckgeben wenn die angegebene ID dieselbe ist void SetSelected WORD new_goid Setzt die selektierte GOID auf diesen Wert 15 CDrawableHatPreview Methods inherited from class CDrawableGameObject GetGOID IsClicked IsMouseover RegisterView SetGOID Constructor Detail CDrawableHatPreview public CDrawableHatPreview Standardkonstruktor Method Detail CDrawableHatPreview public synchronized CDrawableHatPreview Method Detail Draw public void Draw CDC pDC Malt den Preview GetSelected public WORD GetSelected Liefert die GOID der aktuellen Selektion zuriick SetColor public void SetColor COLORREF fg COLORREF bg Setzt die Vorder und Hintergrundfarbe die bentutzt wird beim zeichnen SetPosition public void SetPosition CRect amp rect 16 CDrawableHatPreview Setzt Position und Gr Be SetPreviewGOID public BOOL SetPreviewGOID WORD new _goid Setzt die darzustellende ID auf die angegebene wenn sie neu ist und gibt TRUE zur ck sie wird nicht gesetzt und FALSE zur ckgeben wenn die angegebene ID dieselbe ist SetSelected public void SetSelected WORD new_goid Setzt die selektierte GOID auf diesen Wert Association Links to Class CDrawableTextlabel Textlabel fiir die Darstellung 17 CDrawableHatPreview Class CDrawableTextlabel class CDrawableTextlabelderiv
14. anzeigen Aufruf von DOCUMENT gt Serialize Funktion DOCUMENT Serialize Vererbte Serialisierung von Spielerliste gt Spieler gt H tchen Spielfeld Randinformationen W rfeln Klick auf W rfelbutton hat stattgefunden VIEW Aufruf von DOCUMENT gt W rfeln Gew rfelte Augenzahl darstellen W rfelbutton deaktivieren Zug beenden CONTROLLER Hat der aktive Spieler in diesem Zug eine 6 gew rfelt mit W rfeln fortfahren Aufruf von DOCUMENT gt Spielerzeiger weitersetzen Die Spielerliste wird hier aktualisiert damit beim Speichern kein Fehler auftritt Extends Links to UseCase Fremde H tchen sicherstellen to UseCase Figur bewegen to UseCase Sieg pr fen Zugm glichkeiten finden 13 FDH Complex VIEW Aufruf von DOCUMENT gt Zugm glichkeiten finden R ckgabewert Liste mit m glichen Feldern Die m glichen Zielfelder in der Darstellung hervorheben DOCUMENT Zugm glichkeiten finden Feldliste vom aktuellen feld aus durchiterieren M gliche Zielfelder in eine Liste schreiben Achtung HomeBase kann nur vom Besitzer betreten werden R cksprung auf Figur ausw hlen m glich Includes Links to UseCase Figur bewegen Spielfl che aufbauen Zu beginn eines Spiels mus die Spielanzeige aufgebaut und dargestellt werden Dazu m ssen das Spielbrett die Spielfelder der W rfel und die Datenstrukturen f r Felder H te Spieler Wiirfel in
15. ck CGamefield GetGamefield WORD goid ruft document gt GetGamefieldO auf const void GetGamefields CTypedPtrList lt CPtrList CGamefield gt amp into ruft document gt GetGamefield auf CHat GetHat WORD goid ruft document gt GetHat auf const void GetHats CTypedPtrList lt CPtrList CHat gt amp into ruft document gt GetHats auf CPlayer GetPlayer WORD goid ruft document gt GetPlayer auf const void GetPlayers CTypedPtrList lt CPtrList CPlayer gt amp into ruft document gt GetPlayers auf BOOL HatClicked WORD goid ruft controller gt HatClicked auf 31 CFDH_Interface Method Summary WORD virtual BOOL BOOL void virtual void void void void void void void int void Method Detail NextPlayer Ruft document gt NextPlayer und view gt SetPlayer auf OnNewDocument RButtonPressed ruft controller gt RButtonPressed auf RegisterView CFDH_View pnew_view Serialize CArchive amp ar SetActiveHat WORD goid ruft view gt SetActiveHat auf SetActivePlayer WORD goid ruft ctrl gt SetActivePlayer und view gt SetPlayer auf SetGamerules enum gamerules rules ruft controller gt SetGamerules auf SetSelectableGamefields const CWordArray amp fields BOOL set ruft doc gt SetSelectableGamefields amp view gt SetSelectableGamefields auf SetThrownNumber int number ruft ctrl gt SetThrownNumer u
16. gt gt dieser Zweig weg lt lt extend gt gt I lt lt extend gt gt Fremde H tchen Figuren fangen Figur bewegen sicherstellen lt lt include gt gt 7 7 Z lt lt extend gt gt lt lt include gt gt i T gt C Sieg pr fen de Zug beenden pa aes en Eigene Hitchen befreien lt lt extend gt gt lt lt extend gt gt 7 lt lt extend gt gt 1 1 FDH Complex 1 2 FDH Complex Spiel fortsetzen Datei ausw hlen u Spielstand laden Spielfl che qufbauen Spielbrett initialisieren lt lt include gt gt H tchen initialisieren lt lt include gt gt W rfel initialisieren lt lt include gt gt Spielmaterial aufbauen Spiel abbauen Spielobjekte entfernen lt lt include gt gt Spielfl che abbauen _ F 1 2 FDH Complex Package lt default gt Use Case Diagram Summary FDH Complex In diesem UseCase Diagramm werden in detailierter Form die gesamten einzelnen Verhalten die im Spiel Fang den Hut autreten k nnen dargestellt sowie die Zust ndigkeiten der einzelnen Akteure lt default gt Use Case Diagram FDH Complex In diesem UseCase Diagramm werden in detailierter Form die gesamten einzelnen Verhalten die im Spiel Fang den Hut autreten k nnen dargestellt sowie die Zust ndigkeiten der einzelnen Akteure Actor Summary Der Administrator stellt das System dar und bernimmt die Spielf hrerrolle Dieser Ac
17. noch ein Spieler aktiv ist Liefert die GOID dieses Spielers zuriick 29 CFDH_Doc SetActivePlayer public void SetActivePlayer WORD goid Setzt den Spieler mit der erhaltenen ID als aktiv SetSelectableGamefields public void SetSelectableGamefields const CWordArray amp fields BOOL set Setzt Spielfelder anklickbar ThrowDice public int ThrowDice Ruft dice ThrowDice auf Association Links to Class CDice Eine Instanz des Wiirfels Supplier Cardinality 1 to Class CPlayer Ein CTypedPtrMap aller Spieler mit GOID als Schliissel Supplier Cardinality 2 4 Type aggregation associates CPlayer to Class CGameboard Eine Instanz des Spielbretts Supplier Cardinality 1 to Class CHat Eine CTypedPtrMap aller Hiite mit GOID als Schliissel Supplier Cardinality 12 24 associates CHat 30 CFDH_Doc Class CFDH Interface class CFDH Interfacederived from CDocument Dies ist das zentrale Interface des Spiels Es dient der Kommunikation zwischen den gro en Objekten View Controller Document Ausserdem werden diese hier verwaltet Destructor Summary virtual CFDH_Interface synchronized Method Summary void AddPlayer CString amp name enum playercolor color Ruft document gt AddPlayer und view gt AddPlayer auf DECLARE_DYNCREATE int GetActivePlayerCount ruft document gt GetActivePlayerCount auf const GetController CFDH_Controller gibt den Pointer auf den Controller zur
18. to Class CFDH_Doc Zeiger auf das Dokument mit allen Spieldaten to Class CFDH_View Zeiger auf View to Class CFDH_Controller Zeiger auf Controller Spiellogik to Class CSaveState Zeiger auf Spielstandspeicher 36 CFDH_Interface Class CFDH_ View class CFDH_ View derived from C View View enth lt Funktionalit t zur Darstellung des Spielbrettes der Spielfiguren des W rfels und der Spielerinformationen enthalten Die Klasse besitzt keine Anwendungslogik und ist nur f r die Darstellung zust ndig Destructor Summary virtual CFDH_View synchronized Method Summary void CFDH_Interface const CDrawableHat CGamefield CHat virtual void void void void 37 CFDH_View AddPlayer CString amp name enum playercolor color Legt CSimpleHat Objekte an fiir diesen Spieler DECLARE DYNCREATE GetDocument berladung von GetDocument die den Pointer auf das Interface zur ckgibt GetDrawableHat WORD goid Liefert das zur GOID passende DrawableHatObject zur ck um dessen Position setzen zu k nnen GetGamefield WORD goid Liefert das mit dieser GOID identifizierte Spielfeld zur ck GetHat WORD goid Liefert den Hut mit dieser GOID zur ck OnDraw CDC pDC ResetGame Setzt den View so zur ck dass ein neues Spiel dargestellt werden kann SetActiveHat WORD goid Setzt den selektierten Hut im Preview SetDice int number ruft dice SetValue auf Method Summary
19. zur ck const void GetNeighbours CWordArray amp into WORD without field Diese Funktion wird aufgerufen wenn berechnet wird auf welche Felder man laufen kann const BOOL GetSelectable Gibt zur ck ob dieses Feld ausw hlbar ist bool RemoveHat CHat hat L scht den angegebenen Hut aus der Liste void SetGOID WORD new_goid Setzt die GOID des Spielfeldes void SetHats const CTypedPtrList lt CPtrList CHat gt amp src Setzt die Liste an auf diesem Feld befindlichen Hiite 43 CGamefield Method Summary void SetNeighbours const CWordArray amp fields Setzt die Liste an Nachbarn void SetSelectable BOOL new_ value Setzt ob diese Feld selektierbar ist Constructor Detail CGamefield public CGamefield Method Detail CGamefield public synchronized CGamefield Method Detail AddHat public void AddHa CHat hat Fiigt einen Hut in die Liste der Hiite an GetGOID public const WORD GetGOID Liefert die GOID dieses Feldes zuriick GetHats public const void GetHats CTypedPtrList lt CPtrList CHat gt amp into Gibt eine Listen mit allen sich auf dem Feld befindlichen Hiiten zur ck 44 CGamefield GetNeighbours public const void GetNeighbours CWordArray amp into WORD without field Diese Funktion wird aufgerufen wenn berechnet wird auf welche Felder man laufen kann Sie gibt eine Liste an Spielfeld Nachbarn zur ck allerdings ohne das Feld das per Parameter berm
20. D goid Gibt das Spielfeld mit der entsprechenden GameObjectID zur ck const void GetGamefields CTypedPtrList lt CPtrList CGamefield gt amp into Constructor Detail CGameboard public CGameboard Hier bekommen alle Spielfelder ihre Eigenschaften und werden miteinander verkniipft Method Detail CGameboard public synchronized CGameboard L scht alle angelegten Spielfeld Objekte 41 CGameboard Method Detail GetGamefield public const CGamefield GetGamefield WORD goid Gibt das Spielfeld mit der entsprechenden GameObjectID zuriick GetGamefields public const void GetGamefields CTypedPtrList lt CPtrList CGamefield gt amp into Association Links to Class CGamefield Hier werden alle 81 Spielfelder in einer CTypedPtrMap festgehalten Der Schiissel fiir diese Map ist die GameObjectID des Spielfeldes Supplier Cardinality 81 Type aggregation associates CGamefield 42 CGameboard Class CGamefield class CGamefield Datenobjekt Spielfeld mit Verkn pfung auf Spielfeldnachbarn und Verkn pfung mit allen H ten die auf dem Feld stehen Constructor Summary CGamefield Destructor Summary CGamefield Method Summary void AddHatCHat hat Fiigt einen Hut in die Liste der Hiite an const WORD GetGOID Liefert die GOID dieses Feldes zuriick const void GetHats CTypedPtrList lt CPtrList CHat gt amp into Gibt eine Listen mit allen sich auf dem Feld befindlichen H ten
21. H Interface new_game_view CFDH_View_NewGa view CFDH_View controller CFDH_ Controller document CFDH_Doc saver CSaveState CFDH Interface CFDH Interface AddPlayer void GetPlayer CPlayer NextPlayer int GetGamefield CGamefield GetHat CHat RButtonPressed void ThrowDice int HatClicked void GamefieldClicked void SetSelectableGamefields void ClearSelectableGamefields void StartGame void SetGamerules void DrawView void GetSimpleHat CSimpleHat GetSimpleGamefield CSimpleGamefiel StopGame void InitGame void StoreGamestate void 1 2 FangDenHut Klassendiagramm CDrawableHat position CPoint 3 GOID int CDrawableHat CDrawableHat Draw void SetPosition void IsClicked bool IsMouseover bool SetGOID void GetGOID int CalculateHit bool CDrawableHatPreview positionbox CRect GOID int CDrawableHatPreview CDrawableHatPreview RegisterView void Draw void SetPosition void SetGOID void V CDrawableGameObject CDrawableGameObject CDrawableGameObject Draw void IsClicked bool IsMouseover bool CView CFDH View drawable_objects CDrawableGameObj lt gt gamefield_objects CDrawableGamefielq hat_objects CDrawableHat dice CDrawableDice hatpreview CDrawableHatPreview playerdisplay CDrawableTextlabel gamefields CSimpleGamefield 81 hats CSimpleHat CFDH View CFDH View RegisterInterface void Draw void OnLButtonDown voi
22. IsMouseover public virtual BOOL IsMouseover CPoint amp point Diese Funktion KANN in abgeleiteten Klassen berschrieben werden Ist dies nicht der Fall wird 11 CDrawableGameObject standardm ssig false zur ckgegeben Objekt reagiert auf mouseover nicht Ihr wird typischerweise ein CPoint Objekt bergeben Es muss dann vom Objekt selber berpr ft werden ob dieser Punkt in seinem Reaktionsbereich liegt oder nicht RegisterView public virtual void RegisterView CFDH_View pnew_view Verkn pft einen neuen View SetGOID public virtual void SetGOID WORD new_goid Setzt die GOID Association Links to Class CFDH_ View Verkn pfung zum View f r Objekte die auf Funktionen zugreifen m ssen 12 CDrawableGameObject Class CDrawableHat class CDrawableHatderived from CDrawableGameObject Grafikdarstellung eines reallen Hutobjektes Erm glicht Klicken und Mouseover Preview Constructor Summary CDrawableHat Standardkonstruktor Destructor Summary CDrawableHat Method Summary void Draw CDC pDC Zeichnet den Hut an die entsprechende Stelle BOOL IsClicked CPoint amp point Berechnet ob der Punkt innerhalb des Objekts liegt BOOL IsMouseover CPoint amp point Berechnet ob der Punkt innerhalb des Objekts liegt void SetPosition CPoint amp point ul CPoint amp point_br Diese Funktion bestimmt die Bounding Box Methods inherited from class CDrawableGameObject GetGOID Registe
23. Links to UseCase H tchen initialisieren Spielmaterial aufbauen VIEW 15 FDH Complex Darstellen der Spielfl che Bild laden oder selbst zeichnen Darstellen der H tchen an ihren Positionen Darstellen von Randinformationen Spielernahmen W rfelbox Frags W rfel initialisieren DOCUMENT Erstellen des Wiirfelobjektes Includes Links to UseCase Spielmaterial aufbauen Spiel fortsetzen Eine unterbrochene gespeicherte Partie Fang den Hut kann zu einem sp teren Zeitpunkt fortsetzt werden Ein Spielstand kann zu Beginn des Spiels oder mitten w hrend eines laufenden Spiels geladen werden backgroundColor 200 200 200 UseCase Summary Datei ausw hlen VIEW In einer Filebox die Auswahl der m glichen Dateien mit deren Spiesituation anzeigen Spielstand laden DOCUMENT Aus den gespeicherten Daten Spielzustand rekonstruieren Datei ausw hlen VIEW In einer Filebox die Auswahl der m glichen Dateien mit deren Spiesituation anzeigen Spielstand laden 16 FDH Complex DOCUMENT Aus den gespeicherten Daten Spielzustand rekonstruieren Es entstehen die gleichen Datenstrukturen wie bei Eingabe best tigen Es sind lediglich mehr Informationen vorhanden So werden die H tchen mit ihren Opfern und ihrer Feldposition erstellt und das Feld bekommt beim Erstellen die H tchenpositionen bermittelt Danach erfolgt analog der Aufruf InitGame 17 FDH Complex
24. O 5 l zl piox uuoHeuipoO bekejgjoe J9UMO pa Hoe PEYSWEHO UNPIONSWESISH PIOA Qui pexoijgprejeweD aveau HOO JaJoNUOD HAJO aepo eH eH 0d HAII Toyfonuos pjeyeweyd Jueunsop Ssegauou jemiubnes HPE osegauoH bes T I
25. SetCaughtHats const CTypedPtrList lt CPtrList CHat gt amp src Setzt die Liste der Gefangenen SetGamefield public void SetGamefield CGamefield new_gamefield Setzt das Feld auf dem dieser Hut steht SetGOID public void SetGOID WORD new_goid Setzt die GOID des Hutes SetOwner public void SetOwner CPlayer new_owner Setzt den Besitzer dieses Hutes 49 CHat SetState public void SetState enum hatstate new_ state Setzt den Status des Hutes Association Links to Class CPlayer Zeigt auf den Besitzer des Hutes vereinfacht Zugriff auf die anderen Hiite desselben Besitzers Supplier Cardinality 1 to Class CGamefield Zeigt auf das Feld auf welchem dieser Hut sichgerade befindet Supplier Cardinality 1 50 CHat Class CNewGameDialog class CNewGameDialogderived from CDialog Maske zum Starten eines neuen Spiels Dient der Spieleranmeldung Constructor Summary CNewGameDialog CWnd pParent Method Summary void Register Interface CFDH Interface pnewiface Constructor Detail CNewGameDialog public CNewGameDialog CW nd pParent Method Detail RegisterInterface public void Register Interface CFDH_ Interface pnewiface Association Links to Class CFDH_ Interface 51 CNewGameDialog Class CPlayer class CPlayer Repr sentiert einen Spieler in Fang den Hut Constructor Summary Destructor Summary Method Summary const WORD GetGOID Liefe
26. Softwaretechnik SS 2004 Dokumentation Eine Gruppenarbeit von Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi T abrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik Fang den Hut Dokumentation Inhaltsverzeichnis Einleitung 3 Projektziel ss uu azu Sia Qasni a nnen annen RO 3 hachliche Antorderungen 4 2 2 tn Ana eB ee ad u tu uka ee Sihua 3 Implementierungsanforderungen uno annnornnenennn er enenernnenennsennenerensnenenernen ensen enen nen senen nen enen 3 Benutzerdokumentation 4 Installation aN U O wipte Di nne her ab tna ada 4 Spi lredeln 2 ziener serene enne RI nenn Ei 4 Bedien ngsanleitUnGiem yuaya u ai ek Dau Q coed tar DER END else hehe 5 Systemdokumentation 11 Anf rd rungsd fi itipiu cr n u u S an il vaneen en vam eed de laken 11 MVC Architektur und Architekturentscheidungen sennsn enen srennnernnersnnnsrnn sneren ennn ee nnen 11 Us eCas su cu aken ehealth a SS ba Sale aa ea Ne adel ALO Gd ee ede Ua Raat atk 12 Klassenmodal go Gen ee nnee ee aa ne Oa ee ee ONEA 12 Seqguenzdiagramme n Nulsenn n
27. _hat ClearSelectableFields empty valid_fields RegisterInterface public void RegisterInterface CFDH_Interface pnewInterface Registriert das ein neues Interface Membervariable zur Speicherun nicht integriert da TCC Bug siehe Klassendescription RunGame public void RunGame WORD goid Diese Funktion ist fiir den eigentlichen Spielablauf zust ndig Spielablauf 23 CFDH_Controller 1 gamestate select player 2 Uber NextPlayer schauen ob es wieder derselbe ist gt Spiel beendet ansonsten active_player aktualisieren 3 gamestate dicing 4 ThrowDice 5 gamestate select_hat hier h rt die Funktion auf und es wird gewartet dass HatClicked aufgerufen wird ausserdem wird ein DrawView gemacht 6 gamestate calculate_fields Das Feld auf dem der angeklickte Hut steht wird geholt GetHat GOID gt GetGamefield und dessen Nachbarfelder berechnet anhand der Nachbarn und der Augenzahl restliche Augenzahl speichern bei Homebase Ausserdem nur eigene Homebase zulassen anhand GOID und nur wenn Hut gt 0 Gefangene GetCaughtHats gamestate select_field Aufruf SetSelectableField und Draw View Beenden der Funktion gt Warten auf einen Aufruf von GamefieldClicked 7 gamestate process_field Schauen ob Feld g ltige Homebase wenn ja Eigene gefangene H te befreien fremde H te komplett aus dem Spiel nehmen erneut bei gamestate calculate_fields mit thrown_number
28. aktualisieren Highscores L schen der Spieler und Spielerliste Includes Links to UseCase Spielfl che abbauen Spielen W hrend des Spiels erfolgt die Darstellung auf einem Spielfeldt Auf einem Spielbrett werden die H te angezeigt auBerhalb werden zus tzliche Informationen wie Spielername Farbe und gew rfelte Augenzahl dargestellt Das Spielbrett besteht aus den vier Heimfeldern den Spielfeldern und den H ten Die Sicherheitsfelder sind abgedunkelt dargestellt die H te werden durch farbige Kreise auf den Feldern repr sentiert Zu Beginn des Spiels stehen alle H te auf den Heimfeldern Durch Klicken auf einen Hut wird dieser ausgew hlt Sollten mehrere H te auf einem Feld stehen kann man durch mehrfaches klicken die zur Verf gung stehenden H te durchgehen Der ausgew hlte Hut wird in einem Auswahlfenster dargestellt F r den ausgew hlten Hut werden die m glichen Zielfelder automatisch berechnet und auf dem Spielbrett farblich gekennzeichnet Die Sicherheitsfelder werden etwas dunkler gef rbt Durch das Klicken eines der markierten Zielfelder wird der ausgew hlte Hut dorthin bewegt und der n chste Spiele ist an der Reihe Um die Hutauswahl aufzuheben klickt man auf die rechte Maustaste oder einfach auf einen der anderen Spielerh te Die g ltigen Spielfelder f r diesen Hut werden dann sofort angezeigt Hat ein Spieler eine 6 gew rfelt dann f hrt er seinen Spielzug wie gewohnt aus und ist danach ein weiteres Mal dr
29. an Landet ein Hut auf einem Feld auf dem sich H te anderer Spieler befinden so werden die fremden H te von dem aktiven Hut des aktiven Spielers gefangen genommen Sonderfall Auf einem Sicherheitsfeld k nnen keine H te gefangen werden In den normalen Spielregeln besteht die M glichkeit das ein Hut seine Gefangenen zu Hause abliefert sicherstellt Diese werden dann aus dem Spiel genommen Sollten sich unter den Gefangenen einige eigene H te befinden werden diese befreit und auf dem Heimatfeld des Spielers plaziert Ein Hut kann nur nach Hause zur ck wenn er Gefangene besitzt Es reichts eine gen gend Hohe Augenzahl gew rfelt zu haben um das Heimatfeld zu erreichen Die einzige Besonderheit besteht nun darin dass brige Auge nun ebenfalls verbraucht werden m ssen d h der Spielzug wird fortgesetzt Ein Hutwechsel ist in dieser Situation nicht m glich Dieser Zugzwang besteht nicht wenn das Heimatfeld mit einer genau passender Augenzahl erreicht wurde Bei den alternativen Spielregeln entf llt dieser Spielzug 7 FDH Complex Eine Partie Fang den Hut kann unterbrochen und zu einem sp teren Zeitpunkt fortsetzt werden Ein Spielstand kann unter einem beliebigen Namen gespeichert werden Ein Spielstand kann zu Beginn des Spiels oder mitten w hrend eines laufenden Spiels geladen werden backgroundColor 200 200 200 UseCase Summary Aktiven Spieler festlegen Eigene H tchen befreien Figur ausw hlen Figur bewegen
30. atlich entsprechen die fachlichen Anforderungen den Spielregeln siehe Benutzerhandbuch die Anzahl der Spieler betr gt 2 bis 4 Personen Anmeldung der Spieler und Auswahl einer Farbe am Anfang des Spiels alle Teilnehmer k nnen wechselseitig an einem Bildschirm miteinander spielen jeder Teilnehmer kommt nacheinander dran und w rfelt Darstellung der m glichen Z ge nach dem W rfeln und Ausw hlen des gew nschten Hutes der ausgew hlte Hut wird entsprechend der Feldauswahl bewegt je nach dem auf welchem Feld der Hut landet k nnen fremde H te gefangengenommen werden wenn das Spiel noch nicht beendet werden kann so darf der n chste Spieler w rfeln Au er der aktive Spieler hat zuletzt eine 6 gew rfelt so kommt er erneut dran Bedienung der Spiels ausschlie lich mit einer Computermaus Nur zur Eingabe der Spielernamen ist Tastaturbedienung notwendig Speicherung und Wiederherstellung der verschiedenen Spielst nde Spielen nach Standard und Alternativspielregeln Implementierungsanforderungen Projektprogrammierung in Visual C Version 6 Umsetzung der Model View Controller Architektur Verwendung des Microsoft Foundation Classes Frameworks Umsetzung der Anwendung als eine SDI Anwendung Bedienung des Spiels ausschlie lich mit einer Computermaus durch Drag and Drop und Select and Click Spielstandspeicherung und wiederherstellung mit Hilfe der Serialisierung aus dem MFC Framework SS 2004 S
31. chaffen ist es nicht erforderlich genau die Zahl zu w rfeln mit der das Versteck erreicht werden kann Beispiel Man steht 2 Felder vor dem Versteck und wirft 5 Augen Nun bewegt man den Hut in das Versteck das als ein Feld mitgez hlt werden mu und setzt dort Gefangenen ab Mit den noch brigen Punkten darf man nun wieder ein H tchen vom Versteck auf das Spielfeld setzen Dies ist der einzige Fall in dem man in einem Zug die Richtung umdrehen darf Gewinner ist wer zuletzt noch eigene H tchen auf dem Spielfeld hat wenn alle H tchen der Gegner gefangen sind Die Zahl der gefangenen H tchen gibt dabei nicht den Ausschlag Alternative Regel Man spielt wie bei der Grundregel Alle H tchen aber die aus dem Versteck auf den Spielplan gebracht werden d rfen nicht mehr in das Versteck zur ck Dadurch ist es auch nicht m glich gefangene H tchen sicherzustellen So bleibt zum Schlu nur ein gro er Turm brig dessen Besitzer das Spiel gewinnt SS 2004 Seite 4 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik Bedienungsanleitung Ein neues Spiel starten Starten Sie das Fang den Hut Programm Unter Windows mit einem Doppelklick auf FangDenHut exe Fang den Hut Neues Spiel x Fang den Hut Neus Spiel Spieleranmeldung Bitte mindestens 2 Spieler angeben Spielername Farbe e 822 22 ee E E E OB _ N EI e ee
32. ctiveHat WORD goid Setzt den selektierten Hut im Preview SetDice public void SetDice int number ruft dice SetValue auf SetPlayer public void SetPlayer WORD goid Setzt den Spielernamen des aktuell aktiven Spielers auf diese GOID bzw wird ber diese mittels GetPlayer auf die eigentlichen Player Daten zugegriffen und dem playerdisplay per SetString und 39 CFDH_ View SetColor bermittelt SetRegistered public void SetRegistered BOOL value Setzt die Variable registered SetSelectableGamefields public void SetSelectableGamefields const CWordArray amp fields BOOL set Setzt alle angegebenen GOIDs als selektierbar oder nicht selektierbar Association Links to Class CDrawableDice Der darzustellende W rfel Supplier Cardinality 1 to Class CDrawableHatPreview Der Preview des Hutes seiner Gefangenen Supplier Cardinality 1 to Class CDrawableTextlabel Ein buntes Label mit dem Namen des aktiven Spielers Supplier Cardinality 1 to Class CDrawableTextlabel Zeiger auf den aktuellen Spieler 40 CFDH_ View Class CGameboard class CGameboard Das Spielbrett ist eigentlich nichts anderes als ein Container f r die Spielfelder Constructor Summary CGameboard Hier bekommen alle Spielfelder ihre Eigenschaften und werden miteinander verkniipft Destructor Summary CGameboard L scht alle angelegten Spielfeld Objekte Method Summary const CGamefield GetGamefield WOR
33. d OnRButtonDown void OnMousemove void GetSimpleHat CSimpleHat GetSimpleGamefield CSimpleGamefiel SetSelectableGamefields void SetDice void SetPlayer void AddPlayer void CalculateViewport void FindAssociatedDrawableHat C Drawabl 1 3 FangDenHut Klassendiagramm CDrawableDice CDrawableTextlabel value int positionbox CRect positionbox CRect color int text CString CDrawableDice CDrawableDice CDrawableTextlabel Draw void CDrawableTextlabel SetPosition void Draw void SetValue void SetPosition void SetColor void SetText void CSimpleGamefield hats CSimpleHat GOID int selectable bool CSimpleGamefield CSimpleGamefield GetGOID int SetGOID void RemoveHat bool AddHat void GetHats CSimpleHat SetSelectable void GetSelectable bool CSimpleHat caught_hats CSimpleHat field CSimpleGamefield GOID int state int CSimpleHat CSimpleHat GetGOID int SetGOID void GetGamefield CSimpleGamefield ClearList void GetCaughtHats CSimpleHat Catch void GetState int SetState void 1 3 FangDenHut Klassendiagramm 2 1 FangDenHut Klassendiagramm caught hats CHat owner CPlayer field CGamefield state int GOID int CHat CHat Catch void GetCaughtHats CHat ClearList void GetOwner CPlayer SetOwner void GetGamefield CGamefield SetGamefield void GetState int SetState void SetGOID void G
34. d CDrawableGamefield Method Detail Draw public void Draw CDC pDC Malt das Feld F r jedes auf ihm befindliche simple Hutobjekt wird view gt FindAssociateDrawableHat aufgerufen und dann deren Position berechnet IsClicked public BOOL IsClicked CPoint amp point Ermittelt ob innerhalb des Objekts geklickt wurde SetHatPosition public void SetHatPosition int count int hatsize double hats_x double hats_y int base Hier werden die ermittelten Hutpositionen bergeben das Objekt erstellt daraus selbstst ndig CPoints SetPosition public void SetPosition CPoint amp point_ul CPoint amp point_ur CPoint amp point_br CPoint amp point_bl Ubergibt die vier Randpunkte des Spielfeldes 9 CDrawableGamefield Class CDrawableGameObject Direct Known Subclasses CDrawableDice CDrawableGamefield CDrawableHat CDrawableHatPreview CDrawableTextlabel abstract class CDrawableGameObject Basisklasse f r alle darstellbaren Objekte Es dient f r eine einheitliche Schnittstelle und stellt sicher das einige Funktionen berschrieben werden m ssen Wenn Nachfahren IsClicked und oder IsMouseover nicht ber schreiben reagiert das Objekt nicht darauf Constructor Summary CDrawableGameObject Ist in der Basisklasse nur Platzhalter Destructor Summary virtual CDrawableGameObject synchronized Ist in der Basisklasse nur Platzhalter Method Summary abstract void Draw CDC
35. das Feld zur ck auf dem dieser Hut steht const WORD GetGOID Liefert die GOID dieses Hutes zuriick const CPlayer GetOwner Gibt den Besitzer dieses Hutes zuriick void SetCaughtHats const CTypedPtrList lt CPtrList CHat gt amp src Setzt die Liste der Gefangenen void SetGamefield CGamefield new_gamefield Setzt das Feld auf dem dieser Hut steht void SetGOID WORD new_goid Setzt die GOID des Hutes 47 CHat Method Summary void SetOwner CPlayer new_owner Setzt den Besitzer dieses Hutes void SetState enum hatstate new_ state Setzt den Status des Hutes Constructor Detail CHat public CHat Method Detail CHat public synchronized CHat Method Detail Catch public void Catch CHat hat Nimmt den angegebenen Hut gefangen Holt sich seine Gefangenliste und h ngt die an sich dran L scht die Liste der Gefangenen des Gefangenen ClearList public void ClearList L scht die Liste der Gefangenen GetCaughtHats public const void GetCaughtHats CTypedPtrList lt CPtrList CHat gt amp into Gibt die Liste aller Gefangenen als Liste zur ck 48 CHat GetGamefield public const CGamefield GetGamefield Liefert das Feld zuriick auf dem dieser Hut steht GetGOID public const WORD GetGOID Liefert die GOID dieses Hutes zuriick GetOwner public const CPlayer GetOwner Gibt den Besitzer dieses Hutes zuriick SetCaughtHats public void
36. ed from CDrawableGameObject Einfaches Textlabel das dargestellt werden soll Constructor Summary CDrawableTextlabel Standardkonstruktor Destructor Summary virtual CDrawableTextlabel synchronized Method Summary virtual void Draw CDC pDC Schreibt den Text void SetColor COLORREF fg COLORREF bg Setzt die Vorder und Hintergrundfarbe des darzustellenden Textes virtual void SetPosition CRect amp rect Setzt die bounding box der Darstellung void SetText CString amp new_text enum textformat new_format Setzt den Text der dargestellt werden soll Methods inherited from class CDrawableGameObject GetGOID IsClicked IsMouseover RegisterView SetGOID Constructor Detail CDrawableTextlabel public CDrawableTextlabel Standardkonstruktor 18 CDrawableTextlabel Method Detail CDrawableTextlabel public virtual synchronized CDrawableTextlabel Method Detail Draw public virtual void Draw CDC pDC Schreibt den Text SetColor public void SetColor COLORREF fg COLORREF bg Setzt die Vorder und Hintergrundfarbe des darzustellenden Textes SetPosition public virtual void SetPosition CRect amp rect Setzt die bounding box der Darstellung SetText public void SetText CString amp new_text enum textformat new_format Setzt den Text der dargestellt werden soll 19 CDrawableTextlabel Class CFDH Controller class CFDH Controller Im CFDH Con
37. ei aderen een else ademend 12 Erstellen einer ausf hrbaren Datei dee nenn 12 Anhang 13 Seite 2 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik Einleitung Die vorliegende Dokumentation beschreibt die Vorgehensweise und die einzelnen Schritte bei der Konzeption Design und Implementierung des Spiels Fang den Hut Des weiteren enth lt diese Dokumentation auch das detaillierte Fachkonzept Systemdokumentation und Benutzerhandbuch zu dem Spiel Projektziele Das Projekt hat zum Ziel die Erstellung des Spiels Fang den Hut in Visual C Version 6 Die Anwendung soll als eine SDI Anwendung unter Verwendung des Microsoft Foundation Classes Frameworks realisiert werden Als wichtigstes Kriterium bei der Konzeption der Anwendung gilt die Umsetzung der Model View Controller Archtektur Die einzelnen Projektphasen bestehen aus Analyse Design Implementierung und Dokumentationserstellung F r die Analyse und das Design des Projektes als auch f r die Erstellung von UML Diagrammen wird das Case Tool Together Control Center 6 1 eingesetzt Das Spiel ist von einer Projektgruppe bestehend aus vier Personen in einem Zeitraum von ca 14 Wochen zu erstellen Fachliche Anforderungen grunds
38. eite 3 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik Benutzerdokumentation Installationsanleitung Erstellen sie an einer beliebigen Stelle auf ihrer Festplatte einen Ordner f r das Spiel z B C Spiele FangDenHut Kopieren Sie den Inhalt des Ordners CDROM FangDenHut setup in den von ihnen angelegten Ordner Zum Spielen des Spiels f hren sie einen Doppel Klick auf die Datei FangDenHut exe aus Spielregeln Grundregel Zu Beginn w hlt jeder Spieler sechs H tchen einer Farbe und setzt sie auf das runde Feld das Versteck derselben Farbe Von hier aus starten die H tchen und nach hier bringen die Spieler bzw die H tchen ihre Gefangenen wieder zur ck Im Versteck das man nach dem Verlassen nur wieder mit Gefangenen betreten darf ist man unangreifbar und kann nicht gefangen werden Ebenso gesch tzt sind die H te auf den Ruheb nkchen dunklen Feldern des Spielplanes Die Spieler w rfeln nacheinander der Reihe nach Die H tchen werden immer soviele Felder weiterger ckt als Augen auf dem W rfel sind Die Richtung ist nicht vorgeschrieben jeder Spieler kann seine H tchen nach allen Seiten vor und r ckw rts bewegen in einem Zug jedoch immer nur in einer Richtung Ausnahme siehe weiter unten Es steht den Spielern frei welche H tchen sie bewegen wollen doch d rfen sie selbstverst ndlich bei jedem Wurf nu
39. ekommt den Anmeldebildschirm angezeigt Dort nimmt er die n tigen Einstellungen f r ein neues Spiel vor Es werden fiir 2 bis 4 Spieler die Namen eingegeben und ihre Farben ausgew hlt Dabei erh lt jeder Spieler eine andere Farbe Weiterhin hat man die M glichkeit zwischen den normalen und den alternativen Regeln zu entscheiden Wurden alle Eingaben richtig get tigt so erscheint das Fan den Hut Spielfeld und das Spiel beginnt Wurden bei der Eingabe Fehler gemacht so erscheint eine Fehlermeldung H ufigste Fehler nur ein Spieler ausgew hlt Farbe mehrfach vergeben backgroundColor 200 200 200 UseCase Summary Eingaben VIEW CONTROLLER bestatigen Warnung falls weniger als 2 Spielernamen eingegeben da das Spiel erst ab 2 Spieler spielbar ist 4 FDH Complex UseCase Summary Farbe ausw hlen VIEW CONTROLLER Pro Spieler Auswahl einer der 4 Farben blau rot gr n gelb ber 4 Radiobuttons tempor re Speicherung ber Membervariable View ausgew hlte Farbe wird f r andere Spieler deaktiviert Name eingeben VIEW Eingabe der Namen ber Textfelder tempor re Speicherung in Membervariablen des Views 4 Namen Spieler Spieleranmeldung VIEW Darstellung der Anmeldemaske und tempor re Speicherung der Benutzereingaben CONTROLLER Erstellen von Benutzerobjekten und Speichern dieser im Document Eingaben best tigen VIEW CONTROLLER Warnung falls weniger als 2 Spielernamen eingegeben da das Spiel erst ab 2 Spiel
40. er spielbar ist Aufruf des Document mit allen eingegebenen Informationen F Aufruf von InitGame DOCUMENT Erstellung von Spieler mit den bergebenen Daten Spieler in statisches Array 4 einf gen verlinken private Variable array_pos Farbe ausw hlen VIEW CONTROLLER Pro Spieler Auswahl einer der 4 Farben blau rot gr n gelb ber 4 Radiobuttons tempor re Speicherung ber Membervariable View ausgew hlte Farbe wird f r andere Spieler deaktiviert Name eingeben VIEW Eingabe der Namen ber Textfelder tempor re Speicherung in Membervariablen des Views 4 Namen Spieler 5 FDH Complex Spieleranmeldung VIEW Darstellung der Anmeldemaske und tempor re Speicherung der Benutzereingaben CONTROLLER Erstellen von Benutzerobjekten und Speichern dieser im Document DOCUMENT Ablegen der Benutzerobjekte Includes Links to UseCase Name eingeben to UseCase Farbe ausw hlen to UseCase Eingaben best tigen Spiel abbauen Beim Beenden eines Spiels m ssen Datenstrukturen gel scht und Speicher freigegeben werden backgroundColor 200 200 200 UseCase Summary Spielfl che VIEW abbauen Darstellung aktualisieren Spielobjekte DOCUMENT entfernen L schen der H tchen und des Spielfeldes Spielfl che abbauen VIEW Darstellung aktualisieren Zur ck zur Starmaske Spielobjekte entfernen 6 FDH Complex DOCUMENT L schen der H tchen und des Spielfeldes Statistiken
41. etGOID int 2 1 FangDenHut Klassendiagramm CPlayer hats CHat 6 name CString color int GOID int CPlayer CPlayer GetState int GetName CString SetName void SetColor void GetColor int GetHats CHat GetGOID int SetGOID void 2 2 FangDenHut Klassendiagramm 1 CFDH Controller CView CFDH View NewGame gamerules int gamestate int new_game_button CButton active_player int load game button CButton old_thrown_number int fdh_logo CDrawableTextlabel rest_thrown_number int new_game_dialog CNewGameDialog thrown_number int valid_fields int CFDH_View_NewGame 7CEDH View NewGame CFDH_ Controller OnLoadButton void CFDH_ Controller OnNewGameButton void RegisterInterface void Draw void RButtonPressed void HatClicked void GamefieldClicked void SetGamerules void RunGame void ComeHome void AbleToSave bool 2 2 FangDenHut Klassendiagramm 2 3 FangDenHut Klassendiagramm CFormDialog CNewGameDialog names CString 4 colors int 4 gamerules int BtnCancel CButton BtnOK CButton CNewGameDialog CNewGameDialog RegisterInterface void OnbtnCancel void OnbtnOK void 2 3 FangDenHut Klassendiagramm Package lt default gt Class Diagram Summary FangDenHut Klassendiagramm Class Summary CDice CDrawableDice CDrawableGamefi eld CDrawableGame Object CDrawableHat CDrawableHatPre view CDrawableTextlab el CFDH_ Contro
42. felt haben um Ihr Heimatfeld zu erreichen wird dieses wie alle anderen g ltigen Felder mit markiert Die einzige Besonderheit besteht nun darin dass brige Augen nun ebenfalls verbraucht werden m ssen Es werden Ihnen also sofort neue Zielfelder angezeigt Ein Hutwechsel ist in dieser Situation nicht m glich Bitte beachten Sie das dieser Zugzwang nat rlich nicht besteht wenn sie Ihr Heimatfeld mit einer genau passenden Augenzahl erreichen Bei den alternativen Spielregeln entf llt dieser Spielzug SS 2004 Seite 8 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik Spiel speichern und laden Sie k nnen eine Partie Fang den Hut unterbrechen und zu einem spateren Zeitpunkt fortsetzen Klicken in der Men leiste auf Datei und dann auf Speichern Jetzt k nnen sie einen Namen f r ihren Spielstand Savegame angeben Best tigen sie mit Speichern und ihr Spielstand wird gespeichert BEE Aktiver Spieler Speichern unter Speichern amp Eigene Dateien le f amp er Er CI My Music J Visual Studio F Bluetooth Exchange Ordner C NAVI C Visual Studio F Caplio ma NAYI_IX Eigene Bilder CI Navisw Eigene Musik CJ NeroYision FinePrint files Oo ruby ICO Lite Ga uebung_4 test gt Dateityp Fang den Hut Savegame fdh Y Abbrechen Z Abbildung 5 Spiel speichern Wenn sie den
43. gen Klick auf legales Zielfeld hat stattgefunden illegale Feldklicks werden vom VIEW ignoriert DOCUMENT Spielerstatus auf passiv setzen 10 FDH Complex VIEW Dem Document die gew hlte Position bermitteln Darstellung des Bewegten H tchens wird erst durchgef hrt wenn klar ist was auf dem Feld passiert CONTROLLER Fragen an DOCUMENT zum Zielfeld N chsten Schritt entsprechend den Regeln pr fen Befindet sich der Hut auf einem Zielfeld Versteck mit Fremde H tchen sicherstellen fortfahren B alternativer Spielregel f llt diese M glichkeit weg In diesem Fall mit Zug beenden fortfahren Befindet sich der Hut auf einem Normalfeld auf dem bereits fremde H tchen stehen mit Figuren fangen fortfahren Figuren fangen VIEW Die Darstellung wird aktualisiert Es werden das die gefangene n H tchen entfernt status gefangen und das bewegte H tchen auf dem Feld positioniert Aufruf von DOCUMENT gt figuren fangen DOCUMENT Figuren fangen Die gefangenen H tchenobjekte werden aus der Liste des Spielerobjekts entfernt und in die Opferliste des bewegten H tchens eingesetzt Fanglist aktualisieren Der Status der gefangenen H tchen wird aktualisiert Die Liste des Spielfeldes wird aktualisiert Falls ein Spieler seine letzten H tchen verliert Spielerstatus auf ausgeschieden setzen CONTROLLER Mit Sieg pr fen fortfahren Extends Links to UseCase Figur bewegen
44. h Laden Spielerliste ist bereits richtig Spieler am Positionszeiger ist drann Folgezug Spielerliste ist bereits richtig Spieler am Positionszeiger ist drann Die Spielerposition wird bei Spielzug beenden aktualisiert So wird sichergestellt dass beim Speichern der Positionszeiger richtig steht DOCUMENT F hrt die Aufrufe des CONTROLLERS aus VIEW Aktiven Spieler markieren durch Rahmen oder durch bertragen der Spielerdaten in ein spezieles Fenster Button W rfeln aktivieren Eigene H tchen befreien 9 FDH Complex DOCUMENT Die eigenen H tchenobjekte werden aus der Liste des ehemaligen F ngers entfernt und in die Liste des urspr nglichen Besitzers eingef gt Der Status der befreiten H tchen wird aktualisiert Die Positionszeiger der befreiten H tchen werden auf HomeBase gesetzt und die Liste des Feldes wird akutalisiert das Feld enth lt jetzt alle eigenen und alle fremden H tchen VIEW Die Darstellung wird aktualisiert Die befreiten H tchen werden auf HomeBase dargestellt CONTROLLER Mit Zug beenden fortfahren Extends Links to UseCase Fremde Hiitchen sicherstellen Includes Links to UseCase Zug beenden Figur ausw hlen Klick auf den gew nschten Hut hat stattgefunden VIEW DOCUMENT Hiitchenobjekt aus Mauskoordinaten bestimmen Gew hltes H tchen an DOCUMENT bermitteln H tchen markieren Illegale Auswahlen m ssen ignoriert werden Figur bewe
45. ir diesen Spieler SetName public void SetName CString amp new_name Setzt den Namen des Spielers Association Links to Class CHat Die Hiite dieses Spielers Immer 6 Sie werden in einer Liste gehalten deren Schliissel die GOID des Hutes ist Supplier Cardinality 6 associates CHat 54 CPlayer Class CSaveState class CSaveState CSaveState ist f r die Speicherung und Wiederherstellung der Spielzust nde zust ndig CSaveState CSaveState RegisterInterface CFDH_Interface pnewiface RestoreStateFromArchive CArchive amp ar Stellt einen Zustand wieder her SaveStateToArchive CArchive amp ar Speichert den aktuellen Zustand CSaveState public CSaveState CSaveState public synchronized CSaveState 55 CSaveState Method Detail RegisterInterface public void Register Interface CFDH_ Interface pnewiface RestoreStateF romArchive public void RestoreStateFromArchive C Archive amp ar Stellt einen Zustand wieder her SaveState ToArchive public void SaveStateToArchive CArchive amp ar Speichert den aktuellen Zustand Association Links to Class CFDH_Interface 56 CSaveState Dokumentation FH Wiesbaden Fang den Hut FBI nformatik D Sequenzdiagramm Anmeldung SS 2004 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi lt uolonu s p gt plon ewegueIs E pion lu 6uunSO i Ae dppv si1
46. itialisiert werden Die Felder werden sofort beim Spielbeginn und auf dem Spielbrett angeordnet backgroundColor 200 200 200 UseCase Summary Hitchen DOCUMENT initialisieren Erstellen der H tchenobjekte aus den ermittelten Daten Spielbrett VIEW initialisieren DOCUMENT Instanz der Spielbrettklasse anlegen Spielmaterial VIEW aufbauen Darstellen der Spielfl che Wiirfel DOCUMENT initialisieren Erstellen des Wiirfelobjektes Hiitchen initialisieren 14 FDH Complex DOCUMENT Erstellen der Hiitchenobjekte aus den ermittelten Daten Anzahl 6 Spieleranzahl Zuordnen der Hiitchen zum jeweiligen Spielerbojekt Hiitchenobjekt Typvariable fiir die Farbe und evtl den kontrollierenden Spieler Zeiger auf das momentan besetze Spielfeld Liste mit den gefangenen Hiitchen status Includes Links to UseCase Wiirfel initialisieren Spielbrett initialisieren VIEW DOCUMENT Instanz der Spielbrettklasse anlegen Aus den Daten die durch Spieleranmeldung oder Spiel fortsetzen ermittelt wurden SpielBrettklasse besteht aus Spielfeldern in fester Verkettung FDH Layout statisches Array evtl Spielfeldbild alternative gt selbst Zeichnen Unterobjekt Spielfeld Spieltypvariable HomeBase Normal ProtectionField enth lt 4 statische Zeiger auf die Folgefelder oder auf NULL enth lt Liste mit den H tchen die auf diesem Feld stehen Includes
47. ittelt wurde verhindert Uberschneidungen GetSelectable public const BOOL GetSelectable Gibt zur ck ob dieses Feld ausw hlbar ist RemoveHat public bool RemoveHat CHat hat L scht den angegebenen Hut aus der Liste Gibt true zur ck bei Erfolg false falls der Hut nicht in der Liste existierte SetGOID public void SetGOID WORD new_goid Setzt die GOID des Spielfeldes SetHats public void SetHats const CTypedPtrList lt CPtrList CHat gt amp src Setzt die Liste an auf diesem Feld befindlichen Hiite SetNeighbours public void SetNeighbours const CWordArray amp fields Setzt die Liste an Nachbarn SetSelectable public void SetSelectable BOOL new_value 45 CGamefield Setzt ob diese Feld selektierbar ist Association Links to Class CHat Alle sich auf diesem Spielfeld befindlichen H te in einer Liste Supplier Cardinality 0 associates CHat 46 CGamefield Class CHat class CHat Repr sentiert ein Spielobjekt Hut mit seinem Status Besitzer besetzes Feld und die H te die dieser Hut gefangen hat Constructor Summary CHat Destructor Summary CHat Method Summary void Catch CHat hat Nimmt den angegebenen Hut gefangen void ClearList L scht die Liste der Gefangenen const void GetCaughtHats CTypedPtrList lt CPtrList CHat gt amp into Gibt die Liste aller Gefangenen als Liste zuriick const CGamefield GetGamefield Liefert
48. leDice public virtual synchronized CDrawableDice Method Detail Draw public virtual void Draw CDC pDC Malt den Wiirfel in die angegebene CRect Box SetPosition public virtual void SetPosition CRect amp rect setzt Position und Gr e des W rfels auf dem View Set Value public void SetValue int new_value Die Zahl wird dargestellt 7 CDrawableDice Class CDrawableGamefield class CDrawableGamefieldderived from CDrawableGameObject Die Grafikdarstellung des Spielfeld Es kann sowohl normale Felder als auch Homebases darstellen Constructor Summary CDrawableGamefield Standardkonstruktor Destructor Summary CDrawableGamefield Method Summary void Draw CDC pDC Malt das Feld BOOL IsClicked CPoint amp point Ermittelt ob innerhalb des Objekts geklickt wurde void SetHatPosition int count int hatsize double hats_x double hats_y int base Hier werden die ermittelten Hutpositionen bergeben das Objekt erstellt daraus selbstst ndig CPoints void SetPosition CPoint amp point ul CPoint amp point ur CPoint amp point br CPoint amp point bl bergibt die vier Randpunkte des Spielfeldes Methods inherited from class CDrawableGameObject GetGOID IsMouseover RegisterView SetGOID Constructor Detail 8 CDrawableGamefield CDrawableGamefield public CDrawableGamefield Standardkonstruktor Method Detail CDrawableGamefield public synchronize
49. lic BOOL HatClicked WORD goid ruft controller gt HatClicked auf NextPlayer public WORD NextPlayer Ruft document gt NextPlayer und view gt SetPlayer auf OnNewDocument public virtual BOOL OnNewDocument RButtonPressed public BOOL RButtonPressed ruft controller gt RButtonPressed auf 34 CFDH Interface Register View public void Register View CFDH_View pnew_view Serialize public virtual void Serialize CArchive amp ar SetActiveHat public void SetActiveHat WORD goid ruft view gt SetActiveHat auf SetActivePlayer public void SetActivePlayer WORD goid ruft ctrl gt SetActivePlayer und view gt SetPlayer auf SetGamerules public void SetGamerules enum gamerules rules ruft controller gt SetGamerules auf SetSelectableGamefields public void SetSelectableGamefields const CWordArray amp fields BOOL set ruft doc gt SetSelectableGamefields amp view gt SetSelectableGamefields auf SetThrownNumber public void SetThrownNumber int number ruft ctrl gt SetThrownNumer und view gt SetDice auf StartGame 35 CFDH Interface public void StartGame 0 ruft controller gt StartGame auf ThrowDice public int ThrowDice ruft document gt ThrowDice und view gt SetDice auf ViewSetRegistered public void ViewSetRegistered BOOL value ruft view gt SetRegistered auf Association Links
50. ller CFDH_Doc CFDH_ Interface CFDH_View CGameboard CGamefield CHat CNewGameDialog CPlayer CSaveState Das komplette Klassendiagramm des Spieles Fang den Hut Das Objekt W rfel Grafikdarstellung des W Die Grafikdarstellung des Spielfeld Es kann sowohl normale Felder als auch Homebases darstellen Basisklasse fiir alle darstellbaren Objekte Grafikdarstellung eines reallen Hutobjektes Preview eines Hutobjektes mitsamt seiner Gefangenen Einfaches Textlabel das dargestellt werden soll Im CFDH Controller sind die Spielregeln abgebildet Dies ist der Document Container von FDH Dies ist das zentrale Interface des Spiels View enth lt Funktionalit t zur Darstellung des Spielbrettes der Spielfiguren des W rfels und der Spielerinformationen enthalten Das Spielbrett ist eigentlich nichts anderes als ein Container f r die Spielfelder Datenobjekt Spielfeld mit Verkn pfung auf Spielfeldnachbarn und Verkn pfung mit allen H ten die auf dem Feld stehen Repr sentiert ein Spielobjekt Hut mit seinem Status Besitzer besetzes Feld und die H te die dieser Hut gefangen hat Maske zum Starten eines neuen Spiels Repr sentiert einen Spieler in Fang den Hut CSaveState ist f r die Speicherung und Wiederherstellung der Spielzust nde zust ndig lt default gt Class Diagram FangDenHut Klassendiagramm Das komplette Klassendiagramm des Spieles Fang den Hut Imported Das Objekt W rfel CD
51. llt werden kann spielen Das eigentliche Spielen von Fang den Hut Jeder Spieler kommt nacheinander dran Nach einem Zug besteht die M glichkeit das lt Spiel zu unterbrechen gt Spieler anmelden Hier werden alle Mitspieler registriert Nur registrierte Spieler d rfen auch spielen Es muss ausserdem auch auf die Minimal und Maximalspieleranzahl geachtet werden 2 4 Jeder der Mitspielenden bekommt eine eindeutig Farbe zugewiesen anhand welcher er seine Spielobjekte identifizieren kann Spiel fortsetzen 4 FDH Simple Ein vorher unterbrochenenes Spiel wird fortgesetzt Das gesamte Spiel muss daf r vollst ndig rekonstruiert werden Spiel unterbrechen Der aktuelle Status des Spiels wird gespeichert so dass es komplett rekonstruiert werden kann Extends Links to UseCase spielen 5 FDH Simple Dokumentation FH Wiesbaden Fang den Hut FBI nformatik B UseCase Complex Diagramm amp Beschreibung SS 2004 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi 1 1 FDH Complex Neues Spiel Farbe ausw hlen Eingaben best tigen S A lt lt include gt gt lt lt include gt gt f we N lt lt include gt gt S N N 7 7 Spieleranmeldung Spieler Spielen Aktiven Spieler festlegen Spiel speichern c gt Figur ausw hlen Spiel beenden Zugm glichkeiten finden Bei alternativer lt lt extend gt gt Spielregel f llt lt lt include
52. mehr ber cksichtigt werden Zum Anwendungsbereich View geh ren Klassen welche die Funktionalit t zur Darstellung des Spielbrettes der Spielfiguren des W rfels und der Spielerinformationen enthalten Sie besitzen keine Anwendungslogik und sind nur f r die Darstellung zust ndig Der Controller besitzt die Zust ndigkeiten eines Spielleiters denn im Controller sind die Spielregeln abgebildet Er entscheidet w hrend des Spielverlaufs abh ngig vom Spielzustand und den auftretenden Ereignissen welche Aktion als n chste ausgef hrt werden soll bzw darf In dem Anwendungsbereich Model werden die Zustandsinformationen ber das Spielbrett den W rfel die Spieler und ihre H te festgehalten SS 2004 Seite 11 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik UseCases Simple siehe Anhang Complex siehe Anhang Klassenmodel Diagramm siehe Anhang Klassenbeschreibungen siehe Anhang Sequenzdiagramme Anmeldung siehe Anhang GameLoop siehe Anhang HomeBase siehe Anhang Erstellen einer ausf hrbaren Datei Zum Erstellen einer ausf hrbaren Datei f r das Spiel Fang den Hut ist die installierte Entwicklungsumgebung Microsoft Visual Studio C in Version 6 erforderlich Erstellen sie an einer beliebigen Stelle auf ihrer Festplatte einen Projektordner z B C FangDenHut Kopieren Sie den Inhalt de
53. nd view gt SetDice auf StartGame ruft controller gt StartGame auf ThrowDice ruft document gt ThrowDice und view gt SetDice auf ViewSetRegistered BOOL value ruft view gt SetRegistered auf CFDH_ Interface public virtual synchronized CFDH_Interface Method Detail 32 CFDH_Interface AddPlayer public void AddPlayer CString amp name enum playercolor color Ruft document gt AddPlayer und view gt AddPlayer auf DECLARE_DYNCREATE public DECLARE DYNCREATE GetActivePlayerCount public int GetActivePlayerCount ruft document gt GetActivePlayerCount auf GetController public const CFDH_Controller GetController gibt den Pointer auf den Controller zur ck GetGamefield public CGamefield GetGamefield WORD goid ruft document gt GetGamefield auf GetGamefields public const void GetGamefields CTypedPtrList lt CPtrList CGamefield gt amp into ruft document gt GetGamefield auf GetHat public CHat GetHat WORD goid ruft document gt GetHat auf 33 CFDH_Interface GetHats public const void GetHats CTypedPtrList lt CPtrList CHat gt amp into ruft document gt GetHats auf GetPlayer public CPlayer GetPlayer WORD goid ruft document gt GetPlayer auf GetPlayers public const void GetPlayers CTypedPtrList lt CPtrList CPlayer gt amp into ruft document gt GetPlayers auf HatClicked pub
54. ng 3 Auf dem Zielfeld stehen eigene H te In diesem Fall werden alle H te die sich auf einem Feld befinden nur durch einen Kreis mit der entsprechenden Farbe dargestellt um eine gr ere bersicht zu gew hrleisten Die H te werden in dem Auswahlfenster genauer dargestellt SS 2004 Seite 7 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik 2 Auf dem Zielfeld stehen fremde H te gt Fang den Hut Unbenannt Datei Aktiver Spieler Abbildung 4 Fremde H te auf dem Zielfeld Die fremden H te werden von Ihrem Hut gefangen genommen Sie k nnen das daran erkennen dass im Auswahlfenster unter ihrem Hut der eben Gefangene und seine bereits Gefangenen dargestellt werden Sie sollten auf diese Darstellung achten damit sie richtig abw gen k nnen welchen Hut Sie bewegen wollen Sonderfall Auf einem Sicherheitsfeld k nnen sie keine H te fangen ihr Hut steht dann einfach nur neben den anderen fremden H ten auf diesem Feld Gefangene H te abliefern In den normalen Spielregeln besteht die M glichkeit das ein Hut seine Gefangenen zu Hause abliefert Diese werden dann aus dem Spiel genommen Sollten sich unter den Gefangenen einige Ihrer eigenen befinden werden diese befreit und auf Ihr Heimatfeld plaziert Ein Hut kann nur nach Hause zur ck wenn er Gefangene besitzt Sollten Sie eine gen gend Hohe Augenzahl gew r
55. onized CFDH_Doc Method Detail AddPlayer public void AddPlayer CString amp name enum playercolor color Registriert einen neuen Spieler Ausserdem werden seine H te erstellt und mit ihm verkn pft GetActivePlayerCount public int GetActivePlayerCount Gibt die Anzahl der aktiven Spieler zur ck zur Siegpr fung GetGamefield public const CGamefield GetGamefield WORD goid 28 CFDH_Doc Ruft gameboard gt GetGamefield auf GetGamefields public const void GetGamefields CTypedPtrList lt CPtrList CGamefield gt amp into Liefert eine Liste der Spielfelder GetHat public const CHat GetHat WORD goid Liefert der GOID entsprechenden Hut zur ck GetHats public const void GetHats CTypedPtrList lt CPtrList CHat gt amp into Liefert eine Liste von Hiite GetPlayer public const CPlayer GetPlayer WORD goid Gibt den Spieler mit dieser GOID zuriick GetPlayers public const void GetPlayers CTypedPtrList lt CPtrList CPlayer gt amp into Liefert eine Liste der Spieler NextPlayer public WORD NextPlayer Setzt den n chsten aktiven Spieler anhand des inkrementieren von active_player evtl Uberlauf beachten und dann wieder vorne anfangen Ist dieser Spieler nicht mehr aktiv player gt GetState beim n chsten probieren Der Controller muss berpr fen ob dieser neue aktive Spieler wieder derselbe ist Ist dies der Fall ist das Spiel gewonnen da nur
56. r die Speicherung und Wiederherstellung der Spielzust nde zust ndig 3 FangDenHut Klassendiagramm Class CDice class CDice Das Objekt Wiirfel Es kapselt einen Zufallsgenerator und liefert nur g ltige Werte 1 6 zur ck CDice Initialisiert den Random Seeds fiir s W CDice ThrowDice Wiirfelt die n chste Zahl aus und liefert diese zur ck CDice public CDice O Initialisiert den Random Seeds fiir s W rfeln CDice public synchronized CDice ThrowDice 4 CDice public int ThrowDice W rfelt die n chste Zahl aus und liefert diese zur ck 5 CDice Class CDrawableDice class CDrawableDicederived from CDrawableGameObject Grafikdarstellung des W rfels Darstellung ge mit entsprechenden schwarzen Punkten o ol zur Anzeige der W rfelzahl lool Constructor Summary CDrawableDice Standardkonstruktor Destructor Summary virtual CDrawableDice synchronized Method Summary virtual void Draw CDC pDC Malt den Wiirfel in die angegebene CRect Box virtual void SetPosition CRect amp rect setzt Position und Gr e des W rfels auf dem View void SetValue int new_value Die Zahl wird dargestellt Methods inherited from class CDrawableGameObject GetGOID IsClicked IsMouseover RegisterView SetGOID Constructor Detail CDrawableDice 6 CDrawableDice public CDrawableDice Standardkonstruktor Method Detail CDrawab
57. r mit einem roten Rahmen markiert Wenn Sie einen Hut ausgew hlt haben k nnen sie die Felder auf die er sich bewegen kann daran erkennen dass sie hellblau gef rbt werden Die Sicherheitsfelder werden etwas dunkler gef rbt Um den Hut zu bewegen klicken sie einfach auf das gew nschte Zielfeld Ihr Hut wird dann automatisch auf das neue Feld bewegt und der n chste Spieler ist an der Reihe Sollten Sie sich dazu entscheiden lieber einen anderen Ihrer H te zu bewegen k nnen Sie den aktuellen mittels einem rechten Mausklick wieder abw hlen Au erdem ist es m glich einfach einen anderen Ihrer H te anzuklicken Die g ltigen Spielfelder f r diesen Hut werden dann sofort angezeigt SS 2004 Seite 6 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik Besondere Spielz ge Doppelt ziehen bei 6 Wenn Sie eine 6 gew rfelt haben bewegen Sie den Hut wie gewohnt Danach sind Sie ein weiteres Mal dran Beachten Sie dass sich die Augenzahl auf dem W rfel ver ndert hat Es sei denn Sie haben so viel Gl ck noch eine 6 zu w rfeln Machen Sie auch Ihren n chsten Zug wie gewohnt Auf ein besetztes Feld ziehen Wenn sie auf ein Feld ziehen auf dem sich andere H te befinden gibt es grunds tzlich zwei M glichkeiten 1 Die H te auf dem Zielfeld geh ren Ihnen Fang den Hut Unbenannt EE x Datei Aktiver Spieler Abbildu
58. r mit einem H tchen ziehen Den Spielern bleibt es berlassen gleich anfangs mit allen oder nach und nach mit je einem H tchen in das Spielfeld einzur cken Ziel des Spieles ist es die H tchen der anderen Farben zu fangen und zur ck in das eigene Versteck zu bringen Gefangen ist ein H tchen wenn ein anderes H tchen direkt auf dasselbe Feld kommt Man st lpt dann einfach sein eigenes H tchen ber das gefangene Auf einem Feld k nnen ohne weiteres mehrere H tchen der gleichen Farbe stehen Trifft aber ein H tchen einer anderen Farbe auf dieses Feld so kann es alle dort stehenden H tchen gefangennehmen Ein Spieler der mit einem oder mehreren gefangenen H tchen unterwegs ist kann noch weitere H tchen einfangen wenn er durch einen entsprechenden Wurf ein bereits besetztes Feld erreicht Gefangene H tchen die nicht auf einem Ruheb nkchen stehen oder in einem Versteck sichergestellt sind k nnen wieder befreit werden Dieses Abjagen ist dann m glich wenn der beraubte Spieler seinem Gegner nacheilt und diesen einzuholen versucht Gelingt ihm dies indem er auf das gleiche Feld gelangt so setzt er sein H tchen auf das des Gegners samt allen darunter befindlichen H tchen Dann mu er versuchen mit seiner Beute schleunigst in sein Versteck zu gelangen Dort kann er sein bisher gefangenes H tchen befreien und wieder verwenden w hrend alle brigen Gefangenen sichergestellt werden Um gefangene H tchen in sein Versteck zu s
59. rView SetGOID Constructor Detail CDrawableHat public CDrawableHat Standardkonstruktor 13 CDrawableHat Method Detail CDrawableHat public synchronized CDrawableHat Method Detail Draw public void Draw CDC pDC Zeichnet den Hut an die entsprechende Stelle Ist der Status des Hutes gefangen oder besiegt wird er nicht gezeichnet IsClicked public BOOL IsClicked CPoint amp point Berechnet ob der Punkt innerhalb des Objekts liegt IsMouseover public BOOL IsMouseover CPoint amp point Berechnet ob der Punkt innerhalb des Objekts liegt SetPosition public void SetPosition CPoint amp point_ul CPoint amp point_br Diese Funktion bestimmt die Bounding Box 14 CDrawableHat Class CDrawableHatPreview class CDrawableHatPreviewderived from CDrawableGameObject Preview eines Hutobjektes mitsamt seiner Gefangenen Idee Darstellung rechts mitte Art der Darstellung __ __ _N etc Constructor Summary CDrawableHatPreview Standardkonstruktor Destructor Summary CDrawableHatPreview Method Summary void Draw CDC pDC Malt den Preview WORD GetSelected Liefert die GOID der aktuellen Selektion zuriick void SetColor COLORREF fg COLORREF bg Setzt die Vorder und Hintergrundfarbe die bentutzt wird beim zeichnen void SetPosition CRect amp rect Setzt Position und Gr e BOOL SetPreviewGOID WORD new_goid Setzt die darzustellende ID auf die
60. rawableDice Imported Grafikdarstellung des W 2 FangDenHut Klassendiagramm Class Summary CDrawableGamefi Imported Die Grafikdarstellung des Spielfeld eld Es kann sowohl normale Felder als auch Homebases darstellen CDrawableGame Imported Basisklasse f r alle darstellbaren Objekte Object CDrawableHat Imported Grafikdarstellung eines reallen Hutobjektes CDrawableHatPre Imported Preview eines Hutobjektes mitsamt seiner Gefangenen view CDrawableTextlab Imported Einfaches Textlabel das dargestellt werden soll el CFDH_Controller Imported Im CFDH Controller sind die Spielregeln abgebildet CFDH_Doc Imported Dies ist der Document Container von FDH CFDH_Interface Imported Dies ist das zentrale Interface des Spiels CFDH_ View Imported View enth lt Funktionalit t zur Darstellung des Spielbrettes der Spielfiguren des Wiirfels und der Spielerinformationen enthalten CGameboard Imported Das Spielbrett ist eigentlich nichts anderes als ein Container fiir die Spielfelder CGamefield Imported Datenobjekt Spielfeld mit Verkniipfung auf Spielfeldnachbarn und Verkniipfung mit allen Hiiten die auf dem Feld stehen CHat Imported Repr sentiert ein Spielobjekt Hut mit seinem Status Besitzer besetzes Feld und die Hiite die dieser Hut gefangen hat CNewGameDialog Imported Maske zum Starten eines neuen Spiels CPlayer Imported Repr sentiert einen Spieler in Fang den Hut CSaveState Imported CSaveState ist fii
61. rt die GOID dieses Spielers zuriick const void GetHats CTypedPtrList lt CPtrList CHat gt amp into Gibt eine CTypedPtrList zuriick mit allen Hiiten dieses Spielers const CString GetName Gibt den Namen dieses Spielers zuriick const BOOL GetState 0 Diese Funktion schaut f r alle H te nach ob sie noch frei sind void SetGOID WORD new_goid Setzt die GOID des Spielers void SetHats CTypedPtrList lt CPtrList CHat gt amp new_hats Setzt die Liste an H ten f r diesen Spieler void SetName CString amp new_name Setzt den Namen des Spielers Constructor Detail CPlayer public CPlayer O 52 CPlayer Method Detail CPlayer public synchronized CPlayer Method Detail GetGOID public const WORD GetGOID Liefert die GOID dieses Spielers zuriick GetHats public const void GetHats CTypedPtrList lt CPtrList CHat gt amp into Gibt eine CTypedPtrList zuriick mit allen Hiiten dieses Spielers GetName public const CString GetName Gibt den Namen dieses Spielers zuriick GetState public const BOOL GetState Diese Funktion schaut fiir alle Hiite nach ob sie noch frei sind Ist dies der Fall wird true Spieler noch aktiv zuriickgegeben ansonsten false Spieler besiegt SetGOID public void SetGOID WORD new_goid Setzt die GOID des Spielers 53 CPlayer SetHats public void SetHats CTypedPtrList lt CPtrList CHat gt amp new_hats Setzt die Liste an Hiiten fi
62. rt die Person die die Spielstartvorbereitungnen trifft Sie kann ein neues Spiel starten und muss dann alle Mitspieler anmelden oder sie kann ein unterbrochenes Spiel wiederaufnehmen Communicates Links to UseCase Spieler anmelden to UseCase Spiel fortsetzen Fang den Hut Dies ist das gesamte Spiel Fang den Hut in einfachster Darstellung Detailiertere Darstellung im Diagramm FDH Comlex backgroundColor 200 200 200 3 FDH Simple UseCase Summary Spiel abbauen Das Spielbrett sowie alle anderen Spielobjekte werden entfernt Spiel aufbauen Das Spielbrett sowie alle Spielobjekte werden initialisiert entweder mit den normalen Startwerten wenn ein neues Spiel gestartet wird oder mit den Daten des unterbrochenen Spiels so dass es komplett wiederhergestellt werden kann spielen Das eigentliche Spielen von Fang den Hut Spieler anmelden Hier werden alle Mitspieler registriert Spiel fortsetzen Ein vorher unterbrochenenes Spiel wird fortgesetzt Spiel Der aktuelle Status des Spiels wird gespeichert so dass es komplett rekonstruiert unterbrechen werden kann Spiel abbauen Das Spielbrett sowie alle anderen Spielobjekte werden entfernt Communicates Links to Actor Administrator Spiel aufbauen Das Spielbrett sowie alle Spielobjekte werden initialisiert entweder mit den normalen Startwerten wenn ein neues Spiel gestartet wird oder mit den Daten des unterbrochenen Spiels so dass es komplett wiederhergeste
63. s Ordners CDROM FangDenHut src in den von ihnen angelegten Projektordner In dem Projektordner befindet sich eine Datei FangDenHut dsw Nach einem Doppel Klick auf diese Datei ffnet sich das Projekt FangDenHut in der Entwicklungsumgebung Vergewissern sie sich da die richtige Projektkonfiguration Release eingestellt ist Dazu im Men den Punkt Erstellen gt Aktive Konfiguration festlegen anklicken Im ge ffneten Fenster FangDenHut Win32 Release ausw hlen und mit einem Klick auf den OK Button die Auswahl best tigen Zur Anwendungserstellung im Men Erstellen den Punkt FangDenHut exe anklicken Daraufhin startet der Kompiliervorgang Wurde die Anwendung erfolgreich kompiliert und erstellt so befindet sich in dem Projektordner ein Verzeichnis Release in dem sich die ausf hrbare Datei FangDenHut exe befindet SS 2004 Seite 12 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hut FBI nformatik Anhang A UseCase Simple Diagramm amp Beschreibung PB UseCase Complex Diagramm amp Beschreibung C Klassendiagramm amp Klassenbeschreibungen D Sequenzdiagramm Anmeldung E Sequenzdiagramm GameLoop F Sequenzdiagramm HomeBase SS 2004 Seite 13 von 13 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi Dokumentation FH Wiesbaden Fang den Hu
64. t FBI nformatik A UseCase Simple Diagramm amp Beschreibung SS 2004 Daniel Schneidereit Alexander Roth J rg Schweitzer Mehrdad Mojarabi Tabrizi JorensIuIwpy u uo uqi lun I ids uanegge jeids lt lt pu l x gt gt uaneqjne jaids u z sluo jolds uepjewue Jejeids NH uep Buej ojdwrs HOA TT Jejeids Jeuejsjeids opduns Haa T I Package lt default gt FDH Simple Dies ist das gesamte Spiel Fang den Hut in einfachster Darstellung lt default gt Use Case Diagram FDH Simple E SF Dies ist das gesamte Spiel Fang den Hut in einfachster Darstellung Detailiertere Darstellung im Diagramm FDH Comlex Administrator Der Administrator ist der Computer selber Dies ist der eigentliche Spieler von welchen immer 2 4 an einem Spiel teilnehmen Spielstarter Dieser Aktor repr sentiert die Person die die Spielstartvorbereitungnen trifft Fang den Hut Dies ist das gesamte Spiel Fang den Hut in einfachster Darstellung 2 FDH Simple Diagram Elements Detail Administrator Der Administrator ist der Computer selber Er k mmert sich um den Auf und Abbau des Spielbretts und aller anderen Objekte Communicates Links to UseCase Spiel aufbauen Spieler Dies ist der eigentliche Spieler von welchen immer 2 4 an einem Spiel teilnehmen Diese wechseln sich nacheinander ab Communicates Links to UseCase spielen Spielstarter Dieser Aktor repr sentie
65. t Foundation Classes Frameworks Umsetzung der Anwendung als eine SDI Anwendung Bedienung des Spiels ausschlie lich mit einer Computermaus durch Drag and Drop und Select and Click Spielstandspeicherung und wiederherstellung mit Hilfe der Serialisierung aus dem MFC Framework MVC Architektur und Architekturentscheidungen Die Anwendung Fang den Hut wurde nach der Model View Controller Architektur erstellt Diese unterst tzt eine bessere Trennung Entkopplung der einzelnen Anwendungsbereiche Datenhaltung Anwendungslogik und Prasentation Sie dient auch einer einfacheren Pflege und Wartung Systemerweiterung anpassung und Wiederverwendbarkeit Somit sollte ein sp terer Austausch von zum Beispiel der Pr sentationsschicht einfacher und ohne Einflu nahme auf andere Anwendungsbestandteile erfolgen Um die einzelnen Komponentenbereiche Model View und Controller noch mehr von einander zu entkoppeln wurde eine zusatzliche Schnittstellen Klasse CInterface nach dem Fasaden Muster eingefuhrt Sie ist fur die Kommunikation bzw f r die Nachrichtenweiterleitung zwischen den Anwendungsbestandteilen zust ndig Beim Entwurf des Klassenmodels wurden auch folgende Entwurfsmuster und Konstrukte eingesetzt 0 Vererbung Spezialisierung Expert Don Talk to Strangers Serialisierung Da die Behandlung des State Patterns in der Vorlesung Softwaretechnik ziemlich am Ende der Lehrveranstaltung statt fand konnte dieser beim Design nicht
66. t wird SetThrownNumber int value Pflegt die gew rfelte Augenzahl SetValidFields const CWordArray amp src StartGame Initialisiert alle Objekte startet das Spiel Constructor Detail 21 CFDH_Controller CFDH Controller public CFDH_Controller Method Detail CFDH_ Controller public virtual synchronized CFDH_ Controller Method Detail GetActiveHat public const WORD GetActiveHat GetActivePlayer public const WORD GetActivePlayer GetHatLocked public const BOOL GetHatLocked GetRestThrownNumber public const int GetRestThrownNumber GetRethrow public const BOOL GetRethrow GetThrownNumber public const int GetThrownNumber 22 CFDH_Controller GetValidFields publie const void GetValidFields CWordArray amp into HatClicked public BOOL HatClicked WORD goid Wird aufgerufen falls ein Hut angeklickt wurde Wenn gamestate select_player Es wird verglichen ob dieser Hut dem Spieler geh rt wenn nich Abbruch wenn doch gamestate calculate_fields und Aufruf von RunGame RButtonPressed public BOOL RButtonPressed Wenn nach dem Ausw hlen einer Figur und der Anzeige der m glichen Zielfelder dieser Figur ein Rechtsklick gemacht wird geht man einen Schritt r ckw rts innerhalb des Spielablaufs sprich man kann sich eine andere Figur ausw hlen und deren Zielfelder anzeigen lassen Falls gamestate select_fields gamestate select
67. tor repr sentiert die Spieler und f hrt stellvertretend deren Aktionen aus 2 FDH Complex Note Summary Notel System Boundary Summary Neues Spiel Dieser UseCase stellt den allgemeinen Ablauf beim Starten dar Spiel abbauen Beim Beenden eines Spiels m ssen Datenstrukturen gel scht und Speicher freigegeben werden Spielen W hrend des Spiels erfolgt die Darstellung auf einem Spielfeldt Spielfl che Zu beginn eines Spiels mus die Spielanzeige aufgebaut und dargestellt werden aufbauen Spiel fortsetzen Eine unterbrochene gespeicherte Partie Fang den Hut kann zu einem sp teren Zeitpunkt fortsetzt werden Diagram Elements Detail Admin Der Administrator stellt das System dar und bernimmt die Spielf hrerrolle Communicates Links to UseCase Spielbrett initialisieren to UseCase Aktiven Spieler festlegen to UseCase Zugm glichkeiten finden to UseCase Spielobjekte entfernen to UseCase Spielstand laden Spieler Dieser Actor repr sentiert die Spieler und f hrt stellvertretend deren Aktionen aus Communicates Links 3 FDH Complex to UseCase Datei ausw hlen to UseCase W rfeln to UseCase Figur ausw hlen to UseCase Spiel speichern to UseCase Spiel beenden to UseCase Spieleranmeldung Notel text Bei alternativer Spielregel fallt dieser Zweig weg Neues Spiel Dieser UseCase stellt den allgemeinen Ablauf beim Starten dar Der Spieler startet das Fang den Hut Programm und b
68. troller sind die Spielregeln abgebildet Er entscheidet w hrend des Spielverlaufs abh ngig vo Spielzustand und den auftretenden Ereignissen welche Aktion als n chste ausgef hrt werden soll bzw darf Constructor Summary CFDH_Controller Destructor Summary virtual CFDH_Controller synchronized Method Summary const WORD GetActiveHat GetActivePlayer HatClicked WORD goid Wird aufgerufen falls ein Hut angeklickt wurde 20 CFDH Controller Method Summary BOOL void void void void void void void void void void void void RButtonPressed Wenn nach dem Ausw hlen einer Figur und der Anzeige der m glichen Zielfelde dieser Figur ein Rechtsklick gemacht wird geht man einen Schritt r ckw rts innerhalb des Spielablaufs sprich man kann sich eine andere Figur ausw hlen und deren Zielfelder anzeigen lassen Register Interface CFDH_ Interface pnewInterface Registriert das ein neues Interface RunGame WORD goid Diese Funktion ist f r den eigentlichen Spielablauf zust ndig SetActiveHat WORD hat Setzt den aktuellen Hut SetActivePlayer WORD player Setzt den aktuellen Spieler SetGamerules enum gamerules rules Setzt die Spielregeln SetGamestate enum gamestates state Setzt den Spielstatus SetHatLocked BOOL value SetRestThrownNumber int value Setzt die Anzahl der restlichen W rfelaugen SetRethrow BOOL value Legt fest ob ein Zug fortgesetz
Download Pdf Manuals
Related Search
Related Contents
Qu`est ce qu`un module « Formation : mode d`emploi » ? Copyright © All rights reserved.
Failed to retrieve file