My question is why variables for 'Life' won't work even if I think I did it right?
I have main method and in it:
int destroyer1Life = 4;
int destroyer2Life = 4;
int battleShipLife = 5;
int gameBoardLenght = 10;
int shipsLife = destroyer1Life + destroyer2Life + battleShipLife;
while(shipsLife > 0){ //ships life is warned as always true
char locationViewUpdate = evaluateGuessAndGetTarget(guessLocation, gameBoard, water, hit, miss, destroyer1, destroyer2, battleShip,battleShipLife, destroyer1Life, destroyer2Life, ship );
if (shipsLife == 0){ //ships life is warned as always false
System.out.print("You won");
}
In another method I have:
private static char evaluateGuessAndGetTarget(int[] guessLocation, char[][] gameBoard, char water, char hit, char miss, char destroyer1, char destroyer2, char battleShip, int battleShipLife, int destroyer1Life, int destroyer2Life,char ship) {
if (target == destroyer1){
if (destroyer1Life > 0){
target = hit;
message = "Hit!";
destroyer1Life--; //The value changed at 'destroyer1Life--' is never used
}
}
if (target == destroyer2){
if (destroyer2Life > 0){
target = hit;
message = "Hit!";
destroyer2Life--; //The value changed at 'destroyer2Life--' is never used
}
}
if (target == battleShip){
if (battleShipLife > 0){
target = hit;
message = "Hit!";
battleShipLife--; //The value changed at 'battleShipLife--' is never used
}
}
}
So, even when I get an update on board that ship has been changed into hit, life wont go down. Full code: https://github.com/Mertyon/BattleShipsGame/blob/main/src/com/company/BattleShipsGame.java