Wie kann ich ein Spielbrett in Java erstellen?
ich möchte ein Spielbrett der Größe n x n für 1 <= n <= 10 erstellen und weiß leider nicht wie ich das mache.
Wozu dient das Spielbrett?
Benutzt ihr irgendwelche Grafik-Libraries?
es soll ein TicTacToe spielbrett werden
3 Antworten
Benutz ein zwei-dimensionales Array als Spielfeld:
int[][] gameBoard = new int[n][n];
Das ist standardmäßig mit 0 befüllt.
Willst du es mit etwas anderem befüllen (oder z.B. ein Char-Array voller Leertasten), dann geht das mit einer verschachtelten Schleife:
for(int y = 0; y < n; y++) {
for(int x = 0; x < n; x++) {
gameBoard[y][x] = gewuenschterStartwert;
}
}
Falls du eine Print-Funktion brauchst, mit Trenn-Linien etc., benutze folgenden Code:
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
System.out.print(" " + gameBoard[i][j]);
if(j < n-1) System.out.print(" │");
}
//Waagerechte Trennlinie:
if (i < n-1) {
System.out.print("\n───");
for(int j = 0; j < n-1; j++) System.out.print("┼───");
System.out.println();
}
}
Eine Ausgabe sieht dann z.B. so aus:
O │ X │ X
───┼───┼───
X │ O │ O
───┼───┼───
X │ O │ X
Ich nehme mal an du hast ein zwei-dimensionales String oder Int Array (ich nenne es gameBoard) in dem der derzeitige Stand des Spiels gespeichert ist.
Dann machst du das Spielbrett so:
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
System.out.print(gameBoard[i][j]);
}
System.out.println();
}
Eine Ausgabe sieht dann z.B. so aus:
X-O
-OO
-XX
muss ich gameBoard hierfür vorher erstellen, oder ist das hier dann so schon erstellt?
Musst du erstellen.
Irgendwo musst du ja die Daten speichern, wie dein Spielfeld derzeit aussieht.
reicht es mit private gameBoard; ? oder private int [][] gameBoard;?
private int [][] gameBoard;
Oder am besten sogar String, dann kannst du gleich 'X' und 'O' für die Spieler hernehmen, und '-' für unbesetzt.
private String[][] gameBoard;
Initialisieren musst du es noch irgendwo.
Char meinte ich, sorry :D
Und am besten initialisierst du es auch gleich:
char[][] gameBoard = new char[n][n];
Und mit '-' kannst du es auch direkt befüllen:
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
gameBoard[i][j] = '-';
}
}
for(int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
this.board[i][j] = 0
}
ginge es auch so?
Jo, wenn du ein int-array hernimmst, dann passt das so. ^^
(Natürlich fehlt am Ende noch eine geschweifte Klammer zu } , aber ich denke die hast du einfach nur beim rüberkopieren vergessen :D )
Ein 2D-Array oder gar ein 1D-Array (wo du dann eben die Kombination von Zeile und Spalte auf einen Index umrechnest)
Warum das?
Falls du Daten speichern willst (was bei TicTacToe der Fall ist) wirst du ein Array brauchen..
Brauchst du eine grafische Oberfläche?
Ich bin mir leider nicht ganz sicher. In meiner Aufgabe steht nur erzeugt ein Spielbrett .
Dann loop dich einmal durch eine Array Liste durch und erzeuge durch Print ein Spielbrett...
könntest du mir vielleicht aufschreiben wie ich das ganze genau als Code schreiben sollte?