i

Beziehungen zwischen den Akteuren

Beziehungen herstellen

Nun wollen wir herausfinden, wie unsere Akteure zueinander in Verbindung stehen. Zur Erinnerung: Eine Klasse ist so etwas wie eine Schablone oder ein Bauplan; ein Objekt ist ein konkretes Abbild einer Klasse (Bspw. Ein 'Turnschuh' ist ein Objekt der Klasse 'Schuhe').

Aus Kapitel 'Die Akteure in unserer Miniwelt' haben wir folgende Klassen erhalten: 'Player' für Spieler, GUI für 'Aussehen', Field für 'Spielfeld', RuleSet für die 'Gebrauchsanleitung". Wenn wir Klassen als ein Kästchen zusammenfassen und darin alle unsere gefundenen Methoden und Attribute schreiben, sieht unser Spiel nun wie folgt aus:
FourWins_KlassenEinzeln
Quelle: SD BRI


Da man allgemein in englischer Sprache programmiert wird (egal welche Programmiersprache), möchten wir auch unsere Klassen und Methoden auf Englisch verfassen. In der nachfolgenden Tabelle sind alle bisher definierten Methoden und ihre Funktionalität aufgelistet:

Klasse Methode Beschreibung
Player getName() Gibt den Namen des Spielers zurück
setName() Setzt den Namen des Spielers
getID() Gibt die SpielerID zurück (Repräsentation des Spielsteins)
setID() Setzt die SpielerID
getGameMode() Gibt den Spielermodus zurück (Echter Spieler/Computergegner)
playDraw() Spielt einen Spielzug abhängig vom Spielmodus
RuleSet checkDraw() überprüft, ob ein Spielzug an der Spalte möglich ist
checkPlayerWon() überprüft, ob der aktuelle Spieler gewonnen hat
checkGameOver() überprüft, ob das Spielfeld voll ist
GUI outputField() Gibt die grafische Repräsentation des Spielfelds aus
getName() Eingabeaufforderung für den Namen eines Spielers
getGameMode() Eingabeaufforderung für den Spielmodus eines Spielers
getDraw() Eingabeaufforderung für den Spielzug eine Spielers
Field getFields() Gibt das Spielfeld als Array zurück
setFields() Setzt einen Spielstein mit einer übergebenen SpielerID und einer übergebenen Spaltennummer in das Spielfeld
getLastRow() Gibt die Reihe zurück, in die als letztes ein Stein geworfen wurde
getLastCol() Gibt die Spalte zurück, in die als letztes ein Stein geworfen wurde
FourWinsGame initializeGame() Erstellt alle nötigen Objekte zum Spielen und setzt die Spielmodi
startGame() Methode, die den eigentlichen Spielablauf implementiert


Um jetzt unser Spiel spielen zu können, müssen wir aus den Klassen Objekte herstellen und sie zueinander in Beziehung stellen. Dazu wollen wir ein Objektdiagramm für ein konkretes Spiel herstellen. Wir erstellen uns dabei zunächst den Spielraum und nennen die Klasse 'FourWinsGame'. Wir nennen unser Objekt der Klasse 'FourWinsGame' 'game'.

523_game
Quelle: SD BRI



Als nächstes setzen wir ein Spielfeld aus unserer Spielfeld-Klasse in den Spielraum. Dabei unterscheiden wir - wie schon bekannt - zwischen dem Spielfeld an sich (Daten) und dem Aussehen an (Repräsentation) an sich:

523_field_gui
Quelle: SD BRI



Nun brauchen wir zwei Spieler in unserem Spielraum, player1 und player2.

523_player
Quelle: SD BRI



Den einen Spieler nennen wir 'Dietz' und den anderen 'Britti'. Des Weiteren wählen wir Spielsteine für Britti und Dietz aus; Dietz bekommt hierbei den Stein 'X' und Britti ‘0’. Zuletzt legen wir fest, dass Dietz von einem echten Spieler gespielt (1) werden soll und Britti ein Computergegner (0) ist:

523_players_Dietz_Britti
Quelle: SD BRI



Zuletzt brauchen wir in unserem Spielraum noch das Regelwerk.

523_ruleset
Quelle: SD BRI


Da unser Spielraum 'FourWinsGame' die Objekte player1 und player2 'besitzt', player1 und player2 aber Objekte der Klasse 'Player' sind, ergänzen wir unser Objektdiagramm mit je einem Pfeil zwischen dem Objekt in der Klasse 'FourWInsGame' und der Klasse, woraus das Objekt stammt. Solche Pfeile nennt man Assoziationen. Sie verdeutlichen die Beziehungen zwischen Objekten. Unser Objektdiagramm sieht nun wie folgt aus:

Objekt_Diagramm_4Gewinnt_2_Zwischenstand
Quelle: SD BRI


Aufgabe 1

Ergänze das Objektdiagramm mit weiteren Assoziationspfeile, um alle Beziehungen zwischen den Objekten und ihren Klassen zu verdeutlichen.

Hinweis: UML und Objekt-Editor

Ein UML und Objekt-Editor ist ein Werkzeug, mit dem man Objektdiagramme und UML-Diagramme erstellen kann. Die hier dargestellten Objektdiagramm wurden alle mit dem UML-Editor Violet erstellt.

Suche

v
7.2.5.2.3
dev.inf-schule.de/oop/python/viergewinnt/oopmodellierung/beziehungen
dev.inf-schule.de/7.2.5.2.3
dev.inf-schule.de/@/page/jqg55C4sdlxtnBLQ

Rückmeldung geben