Всем привет.Написал "Сапер"а ,все проверки прошел.При попытке запуска готовой игры - при клике выскакивает окно победы.Помогите-сам уже не вижу своей ошибки (((
package com.javarush.games.minesweeper;

import com.javarush.engine.cell.*;
import java.util.ArrayList;

public class MinesweeperGame extends Game {
    private static final int SIDE = 9;
    private static final String MINE = "\uD83D\uDCA3";
    private static final String FLAG = "\uD83D\uDEA9";
    private int countMinesOnField = 0;
    private int countFlags = 0;
    private int countClosedTiles = SIDE*SIDE;
    private int score = 0;
    private boolean isGameStopped;
    private GameObject gameField[][] = new GameObject[SIDE][SIDE];

    @Override
    public void initialize(){
        setScreenSize(SIDE, SIDE);
        createGame();
    }

    @Override
    public void onMouseLeftClick(int x, int y) {
        if (!isGameStopped){
          super.onMouseLeftClick(x,y);
          openTile(x, y);}
        else
            restart();
    }

    @Override
    public void onMouseRightClick(int x, int y){
        markTile(x, y);
    }

    private void createGame(){
        int number = getRandomNumber(10);
        boolean mine = false;
        countFlags = countMinesOnField;
        for (int x=0;x<gameField.length;x++){
            for (int y=0;y<gameField.length;y++){
                if (number==0){
                    mine = true;
                countMinesOnField++;}
                gameField[y][x] = new GameObject(x,y,mine);
                setCellColor(x, y, Color.GREEN);
                setCellValue(x,y,"");
            }
        }

        countMineNeighbors();
    }

    private void countMineNeighbors(){
        ArrayList<GameObject> list = new ArrayList<>();
        for (int x=0;x<gameField.length;x++)
            for (int y=0;y<gameField.length;y++) {
                if (!gameField[y][x].isMine) {
                    list = getNeighbors(gameField[y][x]);
                    for (GameObject cell : list) {
                        if (cell.isMine) {
                            gameField[y][x].countMineNeighbors++;
                        }
                    }
                }
            }
    }

    private ArrayList<GameObject> getNeighbors(GameObject gameObject) {
        ArrayList<GameObject> neighbors = new ArrayList<GameObject>();
        for (int i = gameObject.x - 1; i <= gameObject.x + 1; i++) {
            if (i < 0 || i >= SIDE) continue;
            for (int j = gameObject.y -1; j <= gameObject.y + 1; j++) {
                if (j < 0 || j >= SIDE) continue;
                if (i == gameObject.x && j == gameObject.y) continue;
                neighbors.add(gameField[j][i]);
            }
        }
        return neighbors;
    }

    private void openTile (int x, int y){
        if (!isGameStopped&&!gameField[y][x].isFlag&&!gameField[y][x].isOpen){
        gameField[y][x].isOpen=true;
        countClosedTiles--;
        setCellColor(x, y, Color.RED);

        if (gameField[y][x].isMine){
            setCellValueEx(x, y,Color.RED, MINE);
            gameOver();}
        else {
            if (gameField[y][x].countMineNeighbors==0){
                setCellValue(x,y,"");
                for (GameObject gameObject:getNeighbors(gameField[y][x])) {
                    if (!gameObject.isOpen) {
                        openTile(gameObject.x, gameObject.y);
                    }
                }
            }
            else  setCellNumber(x,y,gameField[y][x].countMineNeighbors);
            score+=5;
            setScore(score);
            if  (countClosedTiles==countMinesOnField)
            win();
            }
        }
    }

    private void markTile(int x, int y){
        if (gameField[y][x].isOpen&&!isGameStopped)
            return;
        if (countFlags==0&&!gameField[y][x].isFlag&&!isGameStopped)
            return;
        if (!gameField[y][x].isFlag&&!isGameStopped){
            gameField[y][x].isFlag=true;
            countFlags--;
            setCellValue(x,y,FLAG);
            setCellColor(x,y,Color.AQUA);
        }
        else if (gameField[y][x].isFlag&&!isGameStopped){
            gameField[y][x].isFlag=false;
            countFlags++;
            setCellValue(x,y,"");
            setCellColor(x,y,Color.GREEN);
        }

    }

    private void gameOver(){
        isGameStopped = true;
        showMessageDialog(Color.AQUAMARINE, "Игра окончена!", Color.HOTPINK, 24);
    }

    private void win(){
        isGameStopped = true;
        showMessageDialog(Color.AQUAMARINE, "Победа!!!", Color.HOTPINK, 24);
    }

    private void restart(){
        isGameStopped = false;
        countClosedTiles = SIDE*SIDE;
        score = 0;
        countMinesOnField = 0;
        setScore(score);
        createGame();
    }

}


package com.javarush.games.minesweeper;

public class GameObject {
        public int x;
        public int y;
        public boolean isMine;
        public boolean isOpen;
        public boolean isFlag;
        public int countMineNeighbors;

        public GameObject(int x,int y, boolean isMine){
            this.x=x;
            this.y=y;
            this.isMine = isMine;
        }
}