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....
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....