Здравствуйте!
Проблема заключается в игре Крестики нолики.
//Вот матрица a[i][j]
[ 1 ] [ 2 ] [ 3 ] //[00 ] [01 ] [02 ]
[ 4 ] [ 5 ] [ 6 ] //[10 ] [11 ] [12 ]
[ 7 ] [ 8 ] [ 9 ] //[20 ] [21 ] [22 ]
// при вводе конечного результат в [ 3 ]
// благодаря этой проверки: a[i][j+1] == X && a[i][j+2] == X
// пишет, что X выиграл. А значения он сравнивал в [0,4] и [0,3], которые каким-то
// образом равны Х оба.
[ O ] [ 2 ] [(X)]
[ X ] [ X ] [ O ]
[ 7 ] [ 8 ] [ O ]
(1)Я думаю ограничить, но не работает это ограничение.
// size = 3, i и j , текущие, зависят от номера ячейки, сверху в [ 3 ] - i = 0, j = 2
if (((i+1) >= size && (i-1) < 0 && (j+1) >= size && (j-1) < 0) &&
((i+2) >= size && (i-2) < 0 && (j+2) >= size && (j-2) < 0)) {
return ' ';
}
(2)Или присвоить нолик элементам, которые находятся за границей.
// элементам где есть -1 и 3
[-1-1] [-10] [-11] [-12] [-13]
[0-1 ] [00 ] [01 ] [02 ] [03]
[1-1 ] [10 ] [11 ] [12 ] [13]
[2-1 ] [20 ] [21 ] [22 ] [23]
[3-1 ] [30 ] [31 ] [32 ] [33]
Стоит ли делать (2)? Как исправить проблему с выходом за границу?