JAVA PROJEKT „Schiffe Versenken“ mit GUI

Werbung
Anwendungspraktikum aus JAVA Programmierung
SS 2006
Leitung: Dr. Albert Weichselbraun
JAVA PROJEKT
„Schiffe Versenken“ mit GUI
Projektheft
Marija Matejic
Matrikelnummer: 9352571
E-mail: [email protected]
Inhaltsverzeichnis
1. Projektdefinition
2. Projektbeschreibung
3. Projektanalyse
3.1 Projektplanung
3.2 Netzplan
3.3 Modellierung
3.3.1 Use Case Diagramm
3.3.2 Klassendiagramm
3.3.3 Sequenzdiagramm
3.3.4 Zustandsdiagramm
2
1. Projektdefinition
Projektbezeichnung
Software Version vom Spiel „ Schiffe versenken“.
Kurzbeschreibung
In diesem Projekt wird das Papier und Bleistift Spiel „Schiffchen Versenken“ in
eine Software Version mit Hilfe der Java Programmiersprache umgesetzt. Das
Spiel ist leicht mit Hilfe eines User Interfaces zu bedienen.
In der Grundversion des Spieles werden die Schiffe in beiden Spielfeldern
mittels des Zufallsgenerators dargestellt. Wenn die Zeit zulässt, besteht in
einer erweiterten Version die Möglichkeit, dass der User seine Schiffe selber
auf dem Spielbrett auswählen kann.
Projektziele
Projektziele sind die Funktionalität der Software wie deren leichte Benutzung
zum anderen.
Projektumfang
Das Projekt ist während der Dauer der Lehrveranstaltung als
Anwendungspraktikum in Java fertig zu stellen und hat den Umfang von der
halben Lehrveranstaltung, d.h. etwa 13 Wochen.
2. Projektbeschreibung
Ziel des Projektes ist eine funktionstüchtige Software Version des Spieles
„Schiffe versenken“ in Java Programmiersprache zu erstellen. Das Spiel wird
von einem User gegen den Computer gespielt.
Spielfelder
Es werden 2 Spielfelder dargestellt, das User_Spielfeld und das
Computer_Spielfeld. Das rechteckige Spielfeld besteht aus quadratischen
Feldern und soll 8 x 8 Felder haben. Es sind insgesamt 5 Schiffe zu platzieren,
die verschiedene Größe haben:
ein Schiff der Größe 1 belegt 1 Feld,
ein Schiff der Größe 2 belegt 2 Felder,
ein Schiff der Größe 3 belegt 3 Felder,
ein Schiff der Größe 4 belegt 4 Felder,
ein Schiff der Größe 5 belegt 5 Felder.
Schiffe werden entweder horizontal oder vertikal platziert. Sie dürfen sich
berühren, aber nicht überlappen. Der Computer platziert zufällig die 5 Schiffe
im Computer_Spielfeld, die für den User unsichtbar sind. In der Grundversion
werden auch die Schiffe im User_Spielfeld zufällig platziert, die für den User
ersichtlich sind. In der erweiterten Version (optional) wählt der User die Felder,
wo er seine Schiffe platzieren will.
Spielablauf
Am Anfang jedes Spieles ist der User am Zug. Der User feuert in das
gegnerische Spielfeld, in dem er mit der Maus ein gegnerisches Feld anklickt.
3
Er bleibt solange am Zug bis er einen Fehlschuss abgegeben hat, d.h. bis ein
Feld beschossen wurde, unter dem sich kein Schiff befindet. Wenn der User
das erste Mal einen Fehlschuss getätigt hat, übernimmt der Computer.
Sobald der User oder der Computer alle gegnerischen Schiffe getroffen hat,
hat er gewonnen und das Spiel ist beendet.
Graphisches Feedback
Sowohl Fehlschüsse als auch Treffer werden in beiden Spielfeldern mit
speziellen Farbcodierungen gekennzeichnet. Die Fehlschüsse werden mit
gelb, die Treffer in orange und das Versenken eines kompletten Schiffes in rot
dargestellt.
GUI – Übersicht
Das Menü
Das Spiel wird über einen Menüpunkt gestartet und beendet. Die Menüleiste
am oberen Rand des Interfaces beinhaltet die beiden Untermenüs Spiel und
Hilfe. In dem Spiel Menü wiederum lässt sich das Spiel starten, in dem der
Menüpunkt Neues Spiel selektiert wird. Entsprechend wird das Spiel über den
Menüpunkt Beenden beendet. Tastenkürzel stehen ebenfalls zur Verfügung.
Das Hilfe Untermenü gibt Informationen über das Spiel und bietet ausserdem
eine einfache Spielanleitung an.
Spiel – GUI
Die graphische Version des Spieles beinhaltet 2 Spielfelder, einen
User_Spielfeld und einen Computer_Spielfeld. Die Spielfelder werden
zweidimensional dargestellt, mittels einer 8 x 8 Matrix (siehe Abb. 1).
Die Interaktion der Spieler erfolgt per Mausklick. Die Schüsse können
abgegeben werden, in dem das gewünschte Feld im gegnerischen Spielfeld
angeklickt wird. Entsprechend, ob das Feld, in dem sich das Schiff befindet,
getroffen wird oder nicht, ändert sich die Farbe des Feldes. Im Fall des
Nichttreffens verändert sich die Farbe des Feldes in gelb, im Fall des Treffens
in orange und im Fall des Versenkens des ganzen Schiffes in rot.
Am Anfang des Spieles stehen jedem Spieler 5 Schiffe zur Verfügung, die zu
treffen sind. Jedes versunkene Schiff wird dann in einer so genannten
Ergebnisanzeige aufgelistet (im unteren Teil der GUI). Somit ist es für jeden
Spieler ersichtlich, wie viele Schiffe noch zu versenken sind. Wenn alle Schiffe
im gegnerischen Spielfeld versunken sind, hat jedes Schiff in der
Ergebnisanzeige den Wert 1 und das Spiel ist beendet.
4
Abb. 1: Entwurf der „Schiffe Versenken“ GUI
5
3. Projektanalyse
3.1
Projektplanung
Tabelle 1 zeigt die einzelnen Arbeitsschritte die geplant sind, um das Projekt
zeitgemäss abzuschliessen. Die Dauer des Projektes wird in Arbeitstagen
berechnet, wobei ein Arbeitstag 6 Arbeitsstunden beinhaltet. Zusätzlich zu der
Dauer der Schritte sind die erforderlichen Vorgänger- und Nachfolgerschritte
aufgeführt.
ID
A
B
C
D
E
F
G
H
I
K
L
M
N
O
Beschreibung
Projektdefinition und -beschreibung
Projektanalyse
Design
Implementierung Basis Klassen
Implementierung Controller
Korrigieren/Testen
GUI Design
Implementierung Basis GUI
Integration Basis GUI
Implementierung Interaktion GUI
Integration Interaktion GUI
Entwicklung von Schiffbildchen
Fertigstellung Gesamtprojekt
Schreiben Projektbericht
Dauer (d)
5
5
5
10
5
5
3
5
7
15
10
2
5
15
Vorgänger Nachfolger
-A
B
C
D
E
B
G
F,H
I
K
K
L,M
O
B
C,G
D
E
F
I
H
I
K
M,L
N
N
O
--
Tabelle 1: Arbeitsschritte für das Projekt „Schiffe Versenken“
Die Methoden, die beim Programmieren des Spieles „Schiffe Versenken“
verwendet werden, sind folgende:
1. Eclipse
2. Java 1.5
3. Java Swing (für Graphik)
3.2
Netzplan
Der Netzplan ist laut dem Projektplan und anhand der Daten aus der Tabelle 1
erstellt worden. Der kritische Pfad ist mit den dicken Pfeilen markiert und
enthält die folgende Vorgänge: A – B – C – D – E – F – I – K – L – N – O.
6
Abb. 2: Netzplan
7
3.3
Modellierung
Im Folgenden sind die einzelnen Modellierungsdiagramme mit einer kurzen
Beschreibung angeführt.
3.3.1 Use Case Diagramm
Das Use Case Diagramm besteht aus den beiden Usern Spieler und
Computer. Jeder User hat als einzigen Use Case die Aktion schiessen. Diese
Aktion schiessen selbst wird erweitert durch die Zustände getroffen und
daneben, welche das Resultat der Aktion darstellen. Der Zustand getroffen
wird erweitert durch den Zustand versenkt, und dieser wiederum durch den
Zustand Spiel beenden.
8
Abb. 3: Use Case Diagramm
9
3.3.2 Klassendiagramm
Das Klassendiagramm für das Projekt verwirklicht das Model – View –
Contoller SW Pattern. Die drei Einheiten werden hierbei strikt voneinander
getrennt, um für ein durchsichtiges Handhaben der verschiedenen
Aufgabenfelder zu sorgen: so muss die graphische Darstellung der
Anwendung nicht aufwendig mit Daten gespeist werden, um auf Veränderung
im Spielgeschehen zu reagieren, sondern kann diese eigenständig beziehen.
Abb. 4: Klassendiagramm
10
3.3.3
Sequenzdiagramm
Abb.5: Sequenzdiagramm
11
3.3.2 Zustandsdiagramm
Abb. 6: Zustandsdiagramm
Das Zustandsdiagramm für die Anwendung ist in zwei Komponenten unterteilt:
die Computerkomponente und die Userkomponente. Angefangen von dem
Startzustand (schwarzer Punkt am linken Rand) wechselt das Programm in
turn Zustand. Dies bedeutet, dass der User am Zug ist einen Schuss
abzufeuern. Entsprechend dem Resultat des abgegebenen Schusses
wechselt der Zustand des Programms entweder zu hit oder wechselt zum turn
Zustand des Computers. Vom hit Zustand aus registriert eine
Counter_Variable, ob ein Schiff der Länge n versenkt worden ist. Ist dies der
Fall, wechselt der Zustand zu sunk, ansonsten bleibt der Zustand bei hit
(wobei die Counter_Variable inkrementiert wird). Von beiden Zuständen hit
und sunk wechselt der Zustand zurück zu turn für den Fall, dass eine miss
Aktion (daneben geschossen) registriert wird. Dies bedeutet wiederum ein
Wechsel des Spielers. Der Endzustand (schwarzer Punkt am rechten Rand)
wird erreicht sobald entweder der User oder der Computer alle fünf Schiffe
des Gegners versenkt hat.
12
Herunterladen