Hallo ich soll als Aufgabe Spielfiguren für ein auf einem Schachspiel basierendes kleines Beute-Jäger-Spiel programmieren.
Jedoch habe ich dabei ein paar Probleme und komme nicht weiter.
SpielFigur
Objekte dieser Klassen besitzen insgesamt drei von außen nicht zugreifbare Attribute: xPos, yPos und farbe. Es muss sichergestellt werden, dass zu jeder Zeit xPos nur Werte zwischen A und H, yPos nur Werte zwischen 1 und 8 und farbe nur die Werte "weiss" oder "schwarz" annehmen (daraus ergeben sich auch die entsprechenden Datentypen). Der Konstruktor erhält die xPos und yPos als Parameter des entsprechenden Datentyps sowie einen boolean-Wert (true falls die Farbe schwarz ist und false falls die Farbe weiß ist). Sollten bezüglich der Position falsche Werte übergeben worden sein, so wird der am nächsten liegende erlaubte Wert angenommen. Implementieren Sie nun noch die folgenden Methoden:
Das habe ich bis jetzt:
Jedoch habe ich dabei ein paar Probleme und komme nicht weiter.
SpielFigur
Objekte dieser Klassen besitzen insgesamt drei von außen nicht zugreifbare Attribute: xPos, yPos und farbe. Es muss sichergestellt werden, dass zu jeder Zeit xPos nur Werte zwischen A und H, yPos nur Werte zwischen 1 und 8 und farbe nur die Werte "weiss" oder "schwarz" annehmen (daraus ergeben sich auch die entsprechenden Datentypen). Der Konstruktor erhält die xPos und yPos als Parameter des entsprechenden Datentyps sowie einen boolean-Wert (true falls die Farbe schwarz ist und false falls die Farbe weiß ist). Sollten bezüglich der Position falsche Werte übergeben worden sein, so wird der am nächsten liegende erlaubte Wert angenommen. Implementieren Sie nun noch die folgenden Methoden:
- getXPos, getYPos und getFarbe, welche den Wert des entsprechenden Attributes zurückgeben.
- toString, welche eine Zeichenkette im Format "schwarze Figur (Feld A1)" zurückgibt (ohne Zeilenumbruch am Ende, wobei schwarz die Farbe ist und A1 sich aus der x- und y-Position zusammensetzt).
- istNeuePositionKorrekt, welche als Parameter die neue einzunehmende x- und y-Position übergeben bekommt sowie true zurückgibt, falls sich die neue Position auf dem Spielfeld befindet und false zurückgibt, falls sich die neue Position außerhalb des Spielfeldes befindet. Diese Methode darf nur von dieser Klasse bzw. von Unterklassen aufrufbar sein!
- ziehe, welche als Parameter die Anzahl der zu ziehenden Felder in x- und y-Richtung erhält (positive Werte stehen für eine Bewegung nach rechts bzw. oben). Die Methode berechnet nun die neue Position und überprüft sie mit der Methode istNeuePositionKorrekt. Falls die neue Position legitim ist, nimmt die Figur auch die Position ein und es wird true zurückgegeben. Andernfalls wird die neue Position nicht eingenommen und false zurückgegeben.
- trifft erhält als Parameter ein Objekt vom Typ SpielFigur und gibt true, falls die eigene Position mit der Position des übergebenen Objektes übereinstimmt und in allen anderen Fällen false zurück.
Das habe ich bis jetzt:
Java:
public class SpielFigur {
private int yPos= 0;
private String xPos = A;
private boolean farbe;
SpielFigur (String xPosition, int yPosition, boolean farben){
yPos = yPosition;
xPos = xPosition;
farbe = farben;
}
public String getXPos(){
return xPos;
}
public int getYPos(){
return yPos;
}
public boolean getFarbe(){
return farben;
}
public String toString(){
return "schwarze Figur (Feld A1)";
}
private boolean istNeuePositionKorrekt (int xpos, String ypos){
if (1<=xpos<=8)
return true;
if (ypos equals A||B||C||D||E||F||G||H)
return true;
else
return false;
}
public boolean ziehe (int x, String y){
istNeuePositionKorrekt.Methode (x,y)
if (true)
return true;
else
return false;
}
public boolean trifft (int x, String y)
if (x==xpos && y equals ypos)
return true;
else
return false;
}
Zuletzt bearbeitet: