Hallo,
ich versuche gerade Schiffe versenken zu programmieren. Bin dabei auf ein Problem gestoßen und zwar wie ich überprüfe ob ein schiff versunken ist oder nicht.
Nach jedem Klick auf ein 10x10 Spielfeld wird die untenstehend Methode ausgeführt und sollte dann überprüfen ob ein Schiff getroffen oder versunken ist.
Ich hab mir dazu natürlich etwas überlegt und zwar das ich die Positionen der Schiffe in ein Array speicher und dann miteinander vergleiche aber irgendwie steh ich an.
@Override
public void fieldHit(BattleshipGUI.BattleshipCell p) {
System.err.println("Hit at " + p);
/*
* Check here if this shot hit a ship and if its sunk now. Set the
* correct attributes on p
*/
int counter = 0;
if (ships[p.getXPos()][p.getYPos()] == true) {
gui.getBattleshipCell(p.getXPos(), p.getYPos()).setHit(true);
for(int k = 0; k < shipPositions.length; k++){
for (int i = 0; i < shipPositions[k].length; i++) {
for (int j = 0; j < shipPositions[k]**.length; j++) {
if(gui.getBattleshipCell(i, j).isHit() == shipPositions[k]**[j] && gui.getBattleshipCell(i, j).isShip() == shipPositions[k]**[j]){
gui.getBattleshipCell(i, j).setSunk(true);
}
}
}
}
}
Ich hoffe man versteht was ich mein und kann mir helfen.
lg