Schach programmieren

Hi :)
Ich bin etwas am verzweifel, wir sollen ein Programm erstellen zur Positionierung von Schachfiguren auf einem Schachbrett.
aber ich scheitere schon am Erstellen von Board :/. weiß nicht wir ich board erstellen soll da es ein zwei dim array ist. dann gibts noch int size und board ist size * size.

Angabe wäre:
Implementieren Sie die Klassen Board und Piece. Das Board repräsentiert das Schachbrett der Größe NxN. Die zentrale Methode ist put(), die eine Figur sicher auf das Brett stellt (wenn möglich). Die wichtigste Methode der Klasse Piece ist canReach(), die ermittelt, ob die Figur eine Position am Brett erreichen kann (i.e., eine andere Figur dort schlagen könnte). Die API der beiden Klassen findet sich unten (halten Sie sich genau daran).
Die Klasse Board habe folgende Methoden:

public Board(int size)
erzeugt das Brett der Größe sizexsize

public int getSize()
Größe des Bretts

public int getPieceCount()
aktuelle Anzahl der Figuren am Brett

public Piece[] getPieces()
gibt alle Figuren am Brett zurück, die Figuren bleiben aber am Brett

public boolean put(Piece p)
true, falls die Figur p sicher am Brett platziert wurde
false, falls die Figur p nicht am Brett platziert werden konnte

public void clear()
nimmt alle Figuren vom Brett

public String toString()
das Brett als "Textgraphik", jedes Feld ist ein Buchstabe, '.' für leeres Feld, 'K' für König/King, 'Q' für Dame/Queen, 'R' für Turm/Rook, 'B' für Läufer/Bishop und 'N' für Springer/Knight (siehe unten)
Die Methoden der Klasse Piece sind

public Piece()
no-arg constructor, Figur auf (0, 0) (linke, obere Ecke des Bretts)
public Piece(int row, int column)
Konstruktor einer Figur auf Feld (row, column)

public int getRow()

public void setRow(int row)

public int getColumn()

public void setColumn(int column)

Getters und Setters
public boolean canReach(int r, int c)

true, falls die Figur das Feld (r, c) von ihrer Position erreichen kann, da diese Methode permanent aufgerufen wird, muss sie schnell sein (keine Schleifen), hier ist die Methode nur ein Platzhalter, die in den Unterklassen konkretisiert wird
Die konkreten Figuren sind alle Unterklassen von Piece, nämlich King, Queen, Rook, Bishop und Knight. Hier müssen aber nur die Konstruktoren, canReach() (definiert die Zugweise der Figur) und toString() implementiert werden.
Beispiel (Ausgabe einer Brettstellung mittels toString() in Board):
......Q.
..R.....
.......R
.B......
....R...
K.......
.....Q..
...K....
 
X

Xyz1

Gast
Vielleicht suchst Du das?
Java:
	static int[][] getBoard(String fen) {
		int[][] d = new int[8][8];

		String[] a = fen.split("/");
		for (int i = 0; i < 8; i++) {
			char[] b = a[i].toCharArray();
			int index = 0;
			for (int j = 0; index < 8; j++) {
				char c = b[j];
				if (Character.isDigit(c)) {
					index += c - '0';
				} else {
					int v = -1;
					if (Character.isUpperCase(c)) {
						c = Character.toLowerCase(c);
						v = 1;
					}
					switch (c) {
					case 'p':
						d[i][index++] = v * 1;
						break;
					case 'r':
						d[i][index++] = v * 2;
						break;
					case 'n':
						d[i][index++] = v * 3;
						break;
					case 'b':
						d[i][index++] = v * 4;
						break;
					case 'q':
						d[i][index++] = v * 5;
						break;
					case 'k':
						d[i][index++] = v * 6;
						break;

					default:
						break;
					}
				}
			}
		}

		return d;
	}

	static void print(int[][] board) {
		for (int[] is : board) {
			System.out.printf("[");
			for (int i = 0; i < 7; i++) {
				System.out.printf("% 3d,", is[i]);
			}
			System.out.printf("% 3d]%n", is[7]);
		}
		System.out.println("");
	}

Java:
print(getBoard("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"));

...Und die Ausgabe wäre dann:
Code:
[ -2, -3, -4, -5, -6, -4, -3, -2]
[ -1, -1, -1, -1, -1, -1, -1, -1]
[  0,  0,  0,  0,  0,  0,  0,  0]
[  0,  0,  0,  0,  0,  0,  0,  0]
[  0,  0,  0,  0,  0,  0,  0,  0]
[  0,  0,  0,  0,  0,  0,  0,  0]
[  1,  1,  1,  1,  1,  1,  1,  1]
[  2,  3,  4,  5,  6,  4,  3,  2]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Schach schnelle Zuggenerierung Allgemeine Java-Themen 3
H Schach Designfehler, Algorithmenproblem Allgemeine Java-Themen 25
F Schach / zweidimensionales Array Allgemeine Java-Themen 9
T Programmieren als Angestellter Allgemeine Java-Themen 2
NoahPillich Navigations-App und Wegfindung selber programmieren - Erfahrungen, Ideen, Anregungen Allgemeine Java-Themen 6
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B hard wrap selber programmieren Allgemeine Java-Themen 9
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
L Einfache Navigations-App schnell selber Programmieren? Bitte um Ideen und Anregungen. Allgemeine Java-Themen 17
Q Java-Programmieren Allgemeine Java-Themen 1
B BOT mit Java [Eclipse] programmieren Allgemeine Java-Themen 7
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
O wie kann ich p = s · (1 + r )^t-s programmieren? Allgemeine Java-Themen 7
N Lottowebsite programmieren mittels Java, HTML,.... Allgemeine Java-Themen 7
J Vokabeltrainer programmieren Allgemeine Java-Themen 4
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
Q Möglichkeit Online-Programmieren üben. Allgemeine Java-Themen 9
S Einfaches Programm programmieren Allgemeine Java-Themen 5
F Große Datenmengen effizient programmieren Allgemeine Java-Themen 51
E Einen Bot Programmieren. Allgemeine Java-Themen 6
T Graph/Adjazenzliste programmieren Allgemeine Java-Themen 10
M Allgemeine Frage: Wie lernt man Java / Programmieren von Grund auf? Allgemeine Java-Themen 7
R Wie einen ClientBuilder / JarBuilder programmieren? Allgemeine Java-Themen 14
T Sprachsteuerung programmieren? Allgemeine Java-Themen 1
W IDEA IntelliJ Build-Management-Tool selbst programmieren Allgemeine Java-Themen 2
D Was als nächstes programmieren? Allgemeine Java-Themen 6
C Compiler programmieren Allgemeine Java-Themen 13
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
H .Sh Datei ausführen programmieren Allgemeine Java-Themen 5
T Frage zu UML in Java programmieren Allgemeine Java-Themen 1
G Bot Programmieren Allgemeine Java-Themen 16
T Best Practice Eigene GUI programmieren | MouseMotion Detection Allgemeine Java-Themen 3
A Erste Schritte Die Kunst am Programmieren Allgemeine Java-Themen 20
S Captchas programmieren Allgemeine Java-Themen 6
J Java: Installer für Mods programmieren Allgemeine Java-Themen 5
J Java eigenen Button programmieren (ob Cursor im Rechteck ist oder nicht..../button pressed or not) Allgemeine Java-Themen 6
P Effizientes Programmieren - oder Windows Autostart fürs Herunterfahren Allgemeine Java-Themen 11
A Update Software programmieren Allgemeine Java-Themen 1
G Objekotorientiertes Programmieren / Lose Kopplung Allgemeine Java-Themen 5
G PC Fernbedienung programmieren Allgemeine Java-Themen 6
I Dringend nachhilfe in programmieren gesucht!!!!!!!! Allgemeine Java-Themen 1
I Dringend nachhilfe in programmieren in mannheim gesucht!!!!! Allgemeine Java-Themen 3
L COM Schnittstelle in Java programmieren Allgemeine Java-Themen 4
U BlueJ NXT Projekt programmieren Allgemeine Java-Themen 0
V Abwesenheitsliste programmieren - Ideen? Allgemeine Java-Themen 11
P KI für TicTacToe programmieren > Probleme Allgemeine Java-Themen 2
J (Java3D) Einen Faden programmieren - Logikproblem Allgemeine Java-Themen 5
M Android Programmieren Allgemeine Java-Themen 11
B Virtualisierung Programmieren Allgemeine Java-Themen 3
B Shortcut Erkennung programmieren Allgemeine Java-Themen 5
K Parallel programmieren mit ExecutorService Allgemeine Java-Themen 41
T Takuzu Spiel programmieren Allgemeine Java-Themen 4
L CSV Beziehungen programmieren Allgemeine Java-Themen 7
P wie logisch Programmieren? Allgemeine Java-Themen 6
K Programmieren anfangen. Allgemeine Java-Themen 21
J Problem mit Programmieren in Eclipse Allgemeine Java-Themen 5
E Klassen Mitgliederverwaltung programmieren Allgemeine Java-Themen 6
N Abkürzung STRG-G zu programmieren Allgemeine Java-Themen 4
P Java auf dem Handy programmieren Allgemeine Java-Themen 16
truesoul Sudoku programmieren Allgemeine Java-Themen 23
K sauber und schön programmieren Allgemeine Java-Themen 2
X Spiele für Handys programmieren Allgemeine Java-Themen 2
J Abbuchung vom Konto programmieren Allgemeine Java-Themen 6
P Fortgeschritten Java programmieren Allgemeine Java-Themen 2
J Dymnamische Programmieren. Allgemeine Java-Themen 4
MQue Schnittstelle programmieren Allgemeine Java-Themen 2
D brauch hilfe ! bei Spiele Programmieren Allgemeine Java-Themen 5
F Autorennen programmieren Allgemeine Java-Themen 5
H Graustufe programmieren Allgemeine Java-Themen 7
M Intervall Programmieren ? Allgemeine Java-Themen 3
leifg Rekursiv mit Threads Programmieren Allgemeine Java-Themen 2
M Java Programm als Dämon Programmieren. Allgemeine Java-Themen 7
V Avatar selbst programmieren Allgemeine Java-Themen 4
M Generics - besser programmieren, Warnung umgehen Allgemeine Java-Themen 4
G Was als fortgeschrittener Anfänger programmieren? Allgemeine Java-Themen 7
S grafisch programmieren aber nicht applets Allgemeine Java-Themen 13
W Spiel für Handy, normale GUI und Web programmieren Allgemeine Java-Themen 2
P Mehrsprachig programmieren ResourceBundle Allgemeine Java-Themen 6
reibi Eclipse PlugIn selber programmieren Allgemeine Java-Themen 3
T einen SVN- oder QVCS-Client selber programmieren Allgemeine Java-Themen 2
saxman Lego Mindstorms Roboter mit Java programmieren Allgemeine Java-Themen 9
S eine farbpipette programmieren Allgemeine Java-Themen 7
V Mit Java einen Shop programmieren ? Allgemeine Java-Themen 8
M Mehrsprachig programmieren Allgemeine Java-Themen 3
S Programmieren eines Webwatchers Allgemeine Java-Themen 4
D Tainer programmieren Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben