Доброго времени суток, друзья!
Подскажите что не нравится валидатору?
ругается на:
- В методе openTile(int, int) значение поля score должно увеличиваться на 5, если элемент матрицы gameField отмечается флагом isOpen и этот элемент не является миной. Убедись, что в методе openTile() значение поля score увеличивается на 5, если элемент матрицы gameField отмечается флагом isOpen и этот элемент — не мина.
- В методе openTile(int, int) должен вызываться метод setScore(int) с параметром score. Убедись, что метод setScore() вызывается после изменения параметра score.
private void openTile(int x, int y) {
if(!gameField[y][x].isOpen && !gameField[y][x].isFlag && !isGameStopped) {
if (gameField[y][x].isMine) {
setCellValueEx(x, y, Color.RED, MINE);
gameOver();
gameField[y][x].isOpen = true;
} else {
gameField[y][x].isOpen = true;
score = score + 5;
setScore(score);
countClosedTiles--;
List<GameObject> list = new ArrayList<GameObject>();
list = getNeighbors(gameField[y][x]);
int countMine = 0;
for (GameObject gameObject : list) {
if (gameObject.isMine) {
countMine++;
}
}
if (countMine == 0) {
for (GameObject gameObject : list) {
if (!gameObject.isOpen) {
openTile(gameObject.x, gameObject.y);
}
}
}
if (gameField[y][x].countMineNeighbors != 0) {
setCellNumber(x, y, gameField[y][x].countMineNeighbors);
} else {
setCellValue(x, y, "");
}
setCellColor(x, y, Color.GREEN);
if (countClosedTiles == countMinesOnField){
win();
}
}
}
}
package com.javarush.games.minesweeper;
public class GameObject {
public int x;
public int y;
public boolean isMine;
public int countMineNeighbors;
public boolean isOpen;
public boolean isFlag;
public GameObject(int x, int y, boolean isMine)
{
this.x = x;
this.y = y;
this.isMine = isMine;
}
}