Diagonal Winning Strategies in Connect 4: Help Needed!

Click For Summary
The discussion addresses a coding issue in a Connect 4 game related to detecting diagonal wins. The error "Index out of range" occurs due to the loop attempting to access an index that exceeds the grid's dimensions. The nested loops are incorrectly set, with the outer loop going up to 6 while the inner loop starts from 5, leading to potential out-of-bounds access. Additionally, the current implementation fails to check for winning conditions in the lower rows of the grid. Adjusting the loop boundaries and ensuring all potential winning positions are evaluated is necessary for a correct solution.
SGJ
Messages
10
Reaction score
0

Homework Statement


When I try and play it, it says that the Index out of range system was unhandled. I am pretty sure it is the j loop. Please help. In the game Connect 4, you can win diagonally, the grid is 6 squares down and 7 across. (5 positions down, 6 positions across including 0.)

Homework Equations


privateBoolean diagonalWinnerUp()//The name of the loop

{

Boolean winner = false;//The winner is set to false

{

for (int i = 0; i < 7; i++)//nested for loop. i starts at zero, it is incremented until it reaches 7

{

for (int j = 5; j < 8; j++)//j starts at 5. it will continue 8 times so that when 3 is subtracted from j(5) it can equal five.

{

if (board[j,i] == 1 && board[j - 1, i + 1] == 1 && board[j - 2, i + 2] == 1 && board[j - 3, i + 3] == 1 || board[j,i] == 2 && board[j - 1, i + 1] == 2 && board[j - 2, i + 2] == 2 && board[j - 3, i + 3] == 2)//Upward diagonal winner check

{

winner = true;

if (board[j, i] == 1)

{

player1_wins = 1;

}

else

{

player2_wins = 2;

}

}

}

}

}

return winner;

}

The Attempt at a Solution

 
Physics news on Phys.org
Your i values go up to 6, but you try to access i+3 in the second dimension.

You also miss solutions including pieces in j=0 to j=2.
 

Similar threads

  • · Replies 6 ·
Replies
6
Views
6K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 5 ·
Replies
5
Views
6K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K