|
@@ -33,16 +33,18 @@ public class MinMaxABFourInARowBoard
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+ private readonly int[][] directions = [
|
|
|
+ [ 0, 1 ],
|
|
|
+ [ 1, 0 ],
|
|
|
+ [ 1, 1 ],
|
|
|
+ [ -1, 1 ]
|
|
|
+ ];
|
|
|
+
|
|
|
public int CountSequences(GameBoard board)
|
|
|
{
|
|
|
int score = 0;
|
|
|
|
|
|
- int[,] directions = new int[,] {
|
|
|
- { 0, 1 },
|
|
|
- { 1, 0 },
|
|
|
- { 1, 1 },
|
|
|
- { -1, 1 }
|
|
|
- };
|
|
|
+
|
|
|
|
|
|
for (int row = 0; row < board.dimensions.Rows; row++)
|
|
|
{
|
|
@@ -50,8 +52,8 @@ public class MinMaxABFourInARowBoard
|
|
|
{
|
|
|
for (int dir = 0; dir < 4; dir++)
|
|
|
{
|
|
|
- int rowDir = directions[dir, 0];
|
|
|
- int colDir = directions[dir, 1];
|
|
|
+ int rowDir = directions[dir][0];
|
|
|
+ int colDir = directions[dir][1];
|
|
|
|
|
|
int endRow = row + (3 * rowDir);
|
|
|
int endCol = col + (3 * colDir);
|
|
@@ -114,6 +116,7 @@ public class MinMaxABFourInARowBoard
|
|
|
public int GetBestMove(GameBoard board, int depth)
|
|
|
{
|
|
|
List<(int Column, int Score)> moves = [];
|
|
|
+ // Parallel.For(0, board.dimensions.Columns, new() { MaxDegreeOfParallelism = 1 }, i =>
|
|
|
Parallel.For(0, board.dimensions.Columns, i =>
|
|
|
{
|
|
|
var newBoard = board.Clone();
|