Алгоритм проверки выйгрыша в крестиках-ноликах
Пройтись по строкам, затем по столбцам, затем по диагоналям в поисках 5 подряд стоящих одинаковых символов?
а ну а дальше один проход и тривиальный подсчёт.
для простоты конечно стоит сделать 16*16 — добавить пустых клеток с вух сторон.
можно сделать 16*16*4*2 ещё отдельно для крестиров ноликов подсчитать, тогда пересчёт будет совсем тривиальным без заглядывания на соседние клетки поля
только слишком много if-ов и for-ов получается, если не хочешь ArrayIndexOutOfBounds exception получить(язык - java).
Проход по строке, например
cx = 1; cs = a[i][0]
for(int j = 1; j < 15; j++){
if(a[i][j] == cs){
cx++;
} else{
cs = a[i][j]; cx = 1;
}
if(cx == 5) return "YES!";
}
большое спасибо!
Тогда проверка очевидна - как только появится 5-элементный набор.
Наверное это даже работать будет быстрее, только вот программить такое сложнее.
Оставить комментарий
grek72
что-то не получается красивый сабж написать.подскажите, как это сделать, если игровое поле - не динамический двумерный массив 15х15.