示例#1
0
 private static void CheckWinLoseDraw(Board gameBoard, ref bool drawnGame, ref bool wonGame, ref char winner)
 {
     if (gameBoard.IsFull())
     {
         drawnGame = true;
     }
     switch (gameBoard.Score(Side1, false))
     {
         case Board.Win:
             wonGame = true;
             winner = Side1;
             break;
         case Board.Lose:
             wonGame = true;
             winner = Side2;
             break;
     }
 }
示例#2
0
        private static int MakeAMoveHelper(char side, char playAs, Board gameBoard)
        {
            int score = gameBoard.Score(side, false);
            if (score != 0)
            {
                return score;
            }

            if (gameBoard.IsFull())
            {
                return 0;
            }

            List<int> scores = new List<int>(3);
            for (int i = 0; i < 3; ++i)
            {
                scores.Add(Board.Lose);
            }
            for (int i = 0; i < 3; ++i)
            {
                if (!gameBoard.IsFull(i))
                {
                    gameBoard.Drop(i, side);
                    scores[i] = (-(MakeAMoveHelper(side, side == Side1 ? Side2 : Side1, gameBoard)));
                    gameBoard.Pop(i);
                }
            }
            return scores.IndexOf(scores.Max());
        }