Код:
private boolean canUserMove() {
    boolean result = true;
    for (int x = 0; x < SIDE; x++) {
        for (int y = 0; y < SIDE; y++) {
            if (gameField[x][y] == 0)
                return true;
        }
    }
    return true;
}
Рисует галочку на canUserMove() должен возвращать true, если нулевых элементов нет, но в матрице gameField есть хотя бы две соседние клетки с одинаковым значением (по горизонтали или вертикали). хотя по идеи никакой проверки нет