# Gesellschaftsspiel Mühle in Java programmieren



## M4ximus (28. Apr 2016)

Hallo,

wir müssen zur Zeit im Informatikunterricht ein Projekt realisieren und mir wurde zugetragen, das Gesellschaftspiel Mühle zu programmieren, allerdings habe ich keinen Plan wo und wie ich überhaupt beginnen soll, weshalb ein paar Denkanstöße und/oder auch Lösungsansätze sehr hilfreich wären.

Vielen Dank und Gruß,

M4ximus


----------



## Jardcore (28. Apr 2016)

Hey M4ximus,
erst einmal die Frage, wie gut kennst du dich mit Java aus? Kennst du das Prinzip von Klassen und Methoden und der objektorientierten Programmierung? Sagen dir for while if und else etwas?

Versuche die komplette Aufgabe erstmal in kleine Teile zu spalten.
Also welche Daten brauchst du (Spieler, Spielfeld), wie soll es auf den Bildschirm aussehen. Welche GUI Technologie willst du verwenden, JavaFx Swing... (ich bevorzuge FX).

Aber als aller erstes, setzte dich hin, nimm ein Stück Papier und schreibe, oder male dir alles auf was du für das Spiel brauchst. Wenn du das gemacht hast, kannst du diesen Plan in kleine Teilaufgaben einteilen und anfangen. Bzw. dann nochmal genaue Fragen stellen


----------



## M4ximus (2. Mai 2016)

Hallo, 
ich bin mit den dir angesprochenen Methoden vertraut und habe mir auf dem Papier Gedanken zur Umsetzung gemacht.
Zur Vorgehensweise würde ich nun versuchen, wie von dir angesprochen die Arbeit aufzuspalten. 
Ich bin halt nicht mit Methoden zur Spieleprogrammierung vertraut und bräuchte halt dahingehend Unterstützung bzw. erstmal eine Anregung, wie ich nach der theoretischen Ausarbeitung mit der Programmierung beginnen soll.

LG


----------



## Jardcore (3. Mai 2016)

Vielleicht hilft dir dieser Link: http://gameprogrammingpatterns.com/game-loop.html
Der Game-Loop ist das Herz eines Spiels, diesen kann man entwendet als einfachen Timer implementieren oder wie im Artikel beschrieben, selbst erarbeiten.

Aber: Für Mühle benötigst du eigentlich nur eine einfache StateMaschine im Sinne von, Spieler 1 ist dran, Spieler 2 ist dran... usw.

```
switch(state) {
   case PLAYER_1:
     break;
   case PLAYER_2:
      break;
}
```

Das heißt es bleibt nur noch das trennen von Daten (Model), Logik (Controller) und Oberfläche (View) zu tun. Stichwort MVC.


----------

