info:sek-ii:q1:oop:l5-projekt
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
info:sek-ii:q1:oop:l5-projekt [2023-11-26 12:48] – [BetterBox#4] christian.weber | info:sek-ii:q1:oop:l5-projekt [2024-01-18 12:32] (aktuell) – [BetterBox#1] yannik.wehr | ||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
* Mindestens eine **Spieler-Klasse**, | * Mindestens eine **Spieler-Klasse**, | ||
- | * Mehrere **weitere Klassen**, z.B. eine Klasse pro **Level** / **Gegner** / **Hindernis** / **Gegenstand**, | + | * Mehrere **weitere Klassen**, z.B. eine Klasse pro **Screen** / **Level** / **Gegner** / **Hindernis** / **Gegenstand**, |
* Ein Klasse, die den **Startbildschirm** mit Infos zum Spiel und den Autoren darstellt. | * Ein Klasse, die den **Startbildschirm** mit Infos zum Spiel und den Autoren darstellt. | ||
+ | |||
+ | Abgesehen vom Code sollt ihr auch folgende Dokumente erstellen: | ||
+ | |||
+ | * Zu jeder Klasse auch ein **Klassendiagramm** | ||
+ | * Ein __kurzer__ **Leitfaden**, | ||
+ | |||
+ | Ganz unten findet ihr eine Vorlage für Processing. Diese ist als Vorschlag zu verstehen, ihr müsst sie nicht verwenden. | ||
</ | </ | ||
Zeile 27: | Zeile 34: | ||
* Diese haben ebenfalls Gemeinsamkeiten: | * Diese haben ebenfalls Gemeinsamkeiten: | ||
</ | </ | ||
- | <video w3|Demo: TicTacToe> | + | <video w3|**Demo: TicTacToe**> |
{{ : | {{ : | ||
</ | </ | ||
Zeile 87: | Zeile 94: | ||
interface Player { | interface Player { | ||
- | + **void** draw() | + | + **void** draw(int x, int y, int xOffset, int yOffset, int cellSize) |
+ **void** isSame(**Player** player) | + **void** isSame(**Player** player) | ||
} | } | ||
class Cross implements Player { | class Cross implements Player { | ||
- | + **void** draw() | + | + **void** draw(int x, int y, int xOffset, int yOffset, int cellSize) |
+ **void** isSame(**Player** player) | + **void** isSame(**Player** player) | ||
} | } | ||
class Circle implements Player { | class Circle implements Player { | ||
- | + **void** draw() | + | + **void** draw(int x, int y, int xOffset, int yOffset, int cellSize) |
+ **void** isSame(**Player** player) | + **void** isSame(**Player** player) | ||
} | } | ||
Zeile 104: | Zeile 111: | ||
</ | </ | ||
</ | </ | ||
- | <bbox white dotted | + | </ |
- | < | + | <lösung w1 collapsed center|**Code zur objektorientierten Variante von TicTacToe**> |
- | <code java TicTacToe.pde> | + | < |
+ | <code java TicTacToeOOP.pde> | ||
Screen screen; | Screen screen; | ||
Zeile 151: | Zeile 159: | ||
} | } | ||
</ | </ | ||
- | <tabbox Player, Cross, Circle> | + | <tabbox Player> |
<code java Player.pde> | <code java Player.pde> | ||
interface Player { | interface Player { | ||
Zeile 157: | Zeile 165: | ||
boolean isSame(Player player); | boolean isSame(Player player); | ||
} | } | ||
+ | </ | ||
+ | <tabbox Cross> | ||
+ | <code java Cross.pde> | ||
class Cross implements Player { | class Cross implements Player { | ||
void draw(int x, int y, int xOffset, int yOffset, int cellSize) { | void draw(int x, int y, int xOffset, int yOffset, int cellSize) { | ||
Zeile 168: | Zeile 178: | ||
} | } | ||
} | } | ||
+ | </ | ||
+ | <tabbox Circle> | ||
+ | <code java Circle.pde> | ||
class Circle implements Player { | class Circle implements Player { | ||
void draw(int x, int y, int xOffset, int yOffset, int cellSize) { | void draw(int x, int y, int xOffset, int yOffset, int cellSize) { | ||
Zeile 179: | Zeile 191: | ||
} | } | ||
</ | </ | ||
- | < | + | < |
- | <code java Playing.pde> | + | <code java PlayingScreen.pde> |
class PlayingScreen implements Screen { | class PlayingScreen implements Screen { | ||
final int[][] WINNING_COMBINATIONS = { | final int[][] WINNING_COMBINATIONS = { | ||
Zeile 367: | Zeile 379: | ||
} | } | ||
</ | </ | ||
- | < | + | < |
- | <code java GameOver.pde> | + | <code java GameOverScreen.pde> |
class GameOverScreen implements Screen { | class GameOverScreen implements Screen { | ||
private PlayingScreen playingScreen; | private PlayingScreen playingScreen; | ||
Zeile 433: | Zeile 445: | ||
</ | </ | ||
</ | </ | ||
- | </bbox> | + | </lösung> |
- | </beispiel> | + | <lösung w1 collapsed center|**Vorlage für ein eigenes Spiel**> |
+ | {{ : | ||
+ | </lösung> | ||
</ | </ |
info/sek-ii/q1/oop/l5-projekt.1700999303.txt.gz · Zuletzt geändert: 2023-11-26 12:48 von christian.weber