Я работаю над игрой Connect 4, и есть редкие тестовые случаи, в которых программа терпит неудачу, например, здесь
x x x x x x x
x x x x x x x
R x x x x x x
B R x x x x x
R R R x x x B
B B B x x x B
X в моей программе означает, что это поле все еще пустое, в этом случае предполагается что никто еще не победил! но вывод "B WINS!" !!
Я попытался выяснить, в какой строке ошибка, и я обнаружил, что:
// Loop to go through the 2D and determine the winner
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 7; j++)
{
// First Player
// By Row
// [ALERT] THE PROBLEM IS IN THE WIN BY ROW HERE
if (arr[i][j] == 'B' && arr[i][j + 1] == 'B' && arr[i][j + 2] == 'B' && arr[i][j + 3] == 'B')
return 'B';
// By Columns
if (arr[i][j] == 'B' && arr[i + 1][j] == 'B' && arr[i + 2][j] == 'B' && arr[i + 3][j] == 'B')
return 'B';
// Second Player
// By Rows
// [ALERT] THE PROBLEM IS IN THE WIN BY ROW HERE
if (arr[i][j] == 'R' && arr[i][j + 1] == 'R' && arr[i][j + 2] == 'R' && arr[i][j + 3] == 'R')
return 'R';
// By Columns
if (arr[i][j] == 'R' && arr[i + 1][j] == 'R' && arr[i + 2][j] == 'R' && arr[i + 3][j] == 'R')
return 'R';
}
}
в чем здесь проблема? я буду очень благодарен за тебя.