Schöne Weihnachten an alle!
Sitze gerade an einer Sache, wo ich die aktuelle Position und mögliche Positionen einer Figur auf einem Brett ausgeben möchte (Schach).
Es gibt eine Klasse Figur und davon abgeleitet z.B. die KLasse Springer und nun soll das ganze ausgegeben werden.
In meiner Klasse Figur habe ich die Methode showBoard.
Das Zeichnen des Bretts funktioniert, auch kann ich mir an der Posititon der Figur ein anderes Zeichen (hier +) anzeigen lassen. Woran es aber scheitert ist folgendes.
1. Möchte ich mir nicht das '+' sondern, im Fall des Springers, das 'S' aus der Springer Klasse anzeigen lassen bzw. eben 'D' für die Dame.
2. Sollen die möglichen Positionen der Figur ebenfalls anders dargestellt und angezeigt werden. Die Position werden wie oben zu sehen auch in der Springer Klasse bestimmt.
Aktuelle Ausgabe:
--- Springer ---
g6;f7;g4;f3;c6;d7;c4;d3
8--------
7--------
6--------
5----+---
4--------
3--------
2--------
1--------
abcdefgh
Kann ich dieses 'S' bzw. die Positionen aus der Springer KLasse überhaupt ansprechen? Danke schonmal.
Mfg. Syrghar
Sitze gerade an einer Sache, wo ich die aktuelle Position und mögliche Positionen einer Figur auf einem Brett ausgeben möchte (Schach).
Es gibt eine Klasse Figur und davon abgeleitet z.B. die KLasse Springer und nun soll das ganze ausgegeben werden.
Java:
public class Springer extends Figur
{
/**
* Konstruktor
*/
public Springer(String startpos)
{
super(startpos, 'S');
}
public String ermittleZiele()
{
String zuege = "";
zuege += position(spalte + 2, reihe + 1);
zuege += position(spalte + 1, reihe + 2);
zuege += position(spalte + 2, reihe - 1);
zuege += position(spalte + 1, reihe - 2);
zuege += position(spalte - 2, reihe + 1);
zuege += position(spalte - 1, reihe + 2);
zuege += position(spalte - 2, reihe - 1);
zuege += position(spalte - 1, reihe - 2);
return (zuege.substring(0, zuege.length() - 1));
}
}
In meiner Klasse Figur habe ich die Methode showBoard.
Java:
public void showBoard()
{
System.out.println();
int i = 8;
//zeichnen des Schachbretts
for(int v_zeichneReihe = 7; v_zeichneReihe >= 0; v_zeichneReihe--)
{
System.out.printf("%d", i);
i--;
for(int v_zeichneSpalte = 0; v_zeichneSpalte <= 7; v_zeichneSpalte++)
{
if(spalte == v_zeichneSpalte && reihe == v_zeichneReihe)
{
System.out.printf("+");
}else
{
System.out.printf("-");
}
}
System.out.println();
}
System.out.println(" abcdefgh");
System.out.println();
}
Das Zeichnen des Bretts funktioniert, auch kann ich mir an der Posititon der Figur ein anderes Zeichen (hier +) anzeigen lassen. Woran es aber scheitert ist folgendes.
1. Möchte ich mir nicht das '+' sondern, im Fall des Springers, das 'S' aus der Springer Klasse anzeigen lassen bzw. eben 'D' für die Dame.
2. Sollen die möglichen Positionen der Figur ebenfalls anders dargestellt und angezeigt werden. Die Position werden wie oben zu sehen auch in der Springer Klasse bestimmt.
Aktuelle Ausgabe:
--- Springer ---
g6;f7;g4;f3;c6;d7;c4;d3
8--------
7--------
6--------
5----+---
4--------
3--------
2--------
1--------
abcdefgh
Kann ich dieses 'S' bzw. die Positionen aus der Springer KLasse überhaupt ansprechen? Danke schonmal.
Mfg. Syrghar