Spiel programmieren

kokojamboo92

Mitglied
Hallo mal wieder habe ein großes Problem bei einer Aufgabe..

Vorher wollte ich mich bei jedem in diesem Forum für die bisherige Hilfe bedanken, bin jetzt seit knapp 3 Monaten an Java (meiner ersten Programmiersprache) dran, und hatte am Anfang ziemlich Schwierigkeiten vieles zu verstehen, jedoch helfen die Kommentare von der Community sehr und habe somit paar Schritte mehr zum Erfolg dank euch zu verdanken.
Danke...

Zur Aufgabe ich erwarte keine Lösung dies würde selbst den Spaß der Aufgabe zunichte machen, jedoch würde ich gerne Tipps oder Ratschläge hören da ich bei der Aufgabe( Zusatzaufgabe über Weihnachten (freiwillig)) ziemliche Schwierigkeiten habe und hoffe die Themen mit dem Programm aufzuarbeiten...

Es soll das Spiel Solo Halma programmiert werden:
Spielfeld:

"" XXX ""
"" XXX ""
XXXXXXX
XXXOXXX
XXXXXXX
"" XXX ""
"" XXX ""

7x7 also 0 ist dabei leer und x belegte Plätze...

1) Dabei soll das Feld aus einer txt datei ausgelesen werden und ausgegeben werden..

2a) Alle Spielzügmöglichkeiten beim Beginn des Spiels soll in der Konsole ausgegeben werden.
bsp:
Zug 0: von Position (1, 3) nach Position (3, 3)
Zug 1: von Position (3, 1) nach Position (3, 3)
Zug 2: von Position (3, 5) nach Position (3, 3)
Zug 3: von Position (5, 3) nach Position (3, 3)

2b) Der Computer soll zufällig spielen und dabei jeden Schritt in der Konsole ausgeben.

//

Zurzeit kann ich mir noch nicht vorstellen wie ich da beginnen soll..
muss ich ein Array erstellen und in ihm dann die X O und Leerzeichen einspeichern ?
aber wie kriege ich dann die Position brauche ich dann noch ein 2tes Array was die Positionen speichert? Und wie kriege ich das Programm dazu das es weiß wohin es springen darf, wie soll ich dies deklarieren?

Ich danke jetzt schonmal 🙂
 
Zunächst solltest du die Spiellogik von der Ausgabe trennen. Programmiere sie so, dass es in der Konsolen oder einer GUI oder auch als Client-Server Version laufen kann.
Spiele und OOP vertragen sich mMn sehr gut, da man Spielobjekte sehr gut als Klassen darstellen kann. Also fang damit an ein Spielbrett, Spielfiguren, Spieler, etc. zu erstellen. Ohne oder nur nur mit einfacher Logik, wie z.B. 2 Figuren können nicht auf dem selben Feld stehen.
Da das Spielbrett aus einer Datei gelesen werden soll, wäre des denkbar, dass der Konstruktor den Dateinamen übergeben bekommt. Für eine intelligentere KI als "Zufall" ist es auch hilfreich einen Klon-Konsturktor zu haben um Züge zu simulieren.
Erst danach kommt die Logik-Klasse. Dort erfolgen die Sielregeln, also Zugmöglichkeiten, wann ist das Spiel gewonnen? und solche Dinge. Diese Klasse kennt auch die Lösung von 2a.
Jetzt kommt noch eine Ablauf-Steuerung hinzu, die die bisherigen Klassen verbindet. Diese weiß wer dran ist, und auch die UI kennt, die nun ebenfalls dazu kommt und dessen einzige Aufgaben das Ausgeben des Spielbretts so wie Usereingaben sind.

Für das Spielbrett würde ich nur ein 2D-Array verwenden. Für die Felder enums z.B.: NONE, FREE, PLAYER_1, PLAYER_2
Die Konsole wandelt diese dann in die jeweiligen ASCII-Zeichen zur Ausgabe um.

Achja und Hilfreich ist ein Input-Interface, was 2 Implementierungen hat. Einmal die Anfrage an die UI und einmal an die KI. So kann man das Spiel schnell zum 2 oder 0 Spieler-Modus (KI gegen KI) abändern. 😉
 

Zurück
Oben