Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 359
1

Проверка победы в крестики-нолики по диагонали

12.02.2017, 11:39. Показов 5300. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу составить правильные условия победы по диагонали. При наличии 5 одинаковых символов по диагонали, игра все равно продолжается.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
static boolean isGameOver(int n){
        //
        //  0   1  2  3 4
        //  5   6  7  8 9 
        // 10 11 12 13 14
        // 15 16 17 18 19
        // 20 21 22 23 24
        //поиск совпадений по горизонтали
        int row = n-n%5; //номер строки - проверяем только её
        if ((canvas[row]==canvas[row+1]) &&
                (canvas[row]==canvas[row+2]) &&
                        (canvas[row]==canvas[row+3]) &&
                                (canvas[row]==canvas[row+4])) return true;
        //поиск совпадений по вертикали
        int column = n%5; //номер столбца - проверяем только его
        if ((canvas[column]==canvas[column+5])&&
            (canvas[column]==canvas[column+10])&&
                (canvas[column]==canvas[column+15])&&
                    (canvas[column]==canvas[column+20]))return true;
        //мы здесь, значит, первый поиск не положительного результата
        //если значение n находится на одной из граней - возвращаем false
        if (n%5!=0) return false;
        //проверяем принадлежит ли к левой диагонали значение
        if (n%3==0){
            //проверяем есть ли совпадения на левой диагонали
            if ((canvas[0] == canvas[6]) &&
                    (canvas[0] == canvas[12]) &&
                            (canvas[0] == canvas[18]) &&
                                    (canvas[0] == canvas[24])) return true;
            if (n!=4) return false;
        }
        return canvas[4] == canvas[8] &&
                canvas[4] == canvas[12]&&
                        canvas[2] == canvas[16]&&
                                canvas[2] == canvas[20];
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2017, 11:39
Ответы с готовыми решениями:

Игра по сети в «Го» («крестики-нолики» на безразмерном (большом) поле. Для победы необходимо выстроить пять в
Игра по сети в «Го» («крестики-нолики» на безразмерном (большом) поле. Для победы необходимо...

Крестики-нолики (проверка занятости ячейки)
Здравствуйте всем! Есть код игры крестиков-ноликов, но при нажатии на одну и ту же кнопку это...

Крестики нолики
Задание : Необходимо реализовать метод, который проверяет наличие победителя на поле! Этот...

Крестики-Нолики
Привет. Столкнулся с проблемой в скрипте. Не могу правильно присвоить каждой кнопки значение "x"...

1
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
12.02.2017, 18:41 2
30-я строка: Видимо должно быть if ( n%4 != 0 ). Кроме того это условие не должно быть вложено в другой if (надо поменять местами строку 30 и 31.

Строки 34 и 35: должно быть canvas[4] вместо canvas[2].
0
12.02.2017, 18:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2017, 18:41
Помогаю со студенческими работами здесь

Крестики нолики(учимся)
Всем привет, изучаю java со всем не много и взбрела в голову идея написать игру крестики нолики)...

игра крестики нолики
помогите переделать код : import java.io.BufferedReader; import java.io.IOException; import...

Крестики - нолики (консоль)
Всем доброго времени суток.Начал учить java совсем недавно,и после пары уроков выбрал для себя...

ИИ для крестики-нолики
Есть программа на Java, крестики-нолики. Human vs PC. Ход компьютера происходит рандомно. А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru