Vsevolod Levitan hai 4 meses
pai
achega
982006fcd4
Modificáronse 1 ficheiros con 11 adicións e 8 borrados
  1. 11 8
      MinMaxABFourInARowBoard.cs

+ 11 - 8
MinMaxABFourInARowBoard.cs

@@ -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();