Smeagle / dungeongame

Inspired by "Spar Wars"
2 stars 1 forks source link

Dev-Spielbrett einlesen #2

Open Smeagle opened 8 years ago

Smeagle commented 8 years ago

Es muss auf möglichst komfortable Weise (für den Entwickler...) ein Spielbrett eingelesen werden, mit dem man als Entwickler arbeiten kann (Algorithmen testen etc.). Z.B. soll man per Textdatei Shub's Spar-Wars-Brett einlesen können. Das Format der Datei kann beliebig definiert werden, sollte aber möglichst wenig zu schreiben sein und trotzdem verständlich.

murchandamus commented 8 years ago

Ich habe bei der Implementierung des Spielbretts inzwischen mit einem Axialkoordinatensystem angefangen. R stellt dabei die Zeile dar und Q die schräg-nach-unten Spalte.

Ich würde einfach eine CSV mit drei Spalten machen. Für R und Q dann dementsprechend die Koordinaten, und für Terrain einen Buchstaben oder Zahl. Buchstaben F und W symbolisieren Boden und Wand, S den Startpunkt des Spielers (Sonderform von Boden), Zahlen den Startpunkt von Wachen.

   R  Q   Terrain
   0  0     S
   1  0     W
   0 -1     F
      …

Wegpunkte der Routen der Wache könnten dann in Form einer Liste von Koordinaten im Anschluss definiert werden.

Alternativ das ganze als XML o.ä.

Smeagle commented 8 years ago

Muss nicht als XML, das brauchen wir glaube ich nicht. So wie du geschrieben hast ist doch gut. Whitespaces+ trennen dann einfach die Spalten (quasi whitespace separated).

Smeagle commented 8 years ago

Ich meine eher ein Format in der Art wie:

W-W

F-F-F

W-F

= Außerhalb des Spielfelds

W = Wall F = Floor

Ist aber nicht unmittelbar notwendig.

murchandamus commented 8 years ago

Ah stimmt, das wäre eigentlich noch intuitiver. Wobei man dann entweder whitespace zählen muss, oder ein bestimmtes Format (e.g. sechseckig) zwingend vorschreibt. Aber da kann man ja gleich nochmal drüber reden.

murchandamus commented 8 years ago

Weil mich genervt hat GameBoards von Hand anzulegen, habe ich mal mit GameBoardUtils angefangen.

Eingelesene Syntax ist im Moment: F F $ F W W $ W P $ Für ein Hexfeld: F F F W W W P P ist hier ein FLOOR-Feld mit einem Spieler.

Ist hier zu finden: https://github.com/Xekyo/dungeongame/commit/d6dce0ac80250c4e676272bdbd57b460e5d48ad2

murchandamus commented 8 years ago

Das könnte nach dem Merge meines "Player-backend"-branches auch von DevUtilities verwendet werden um das Brett zu bauen. :)