Exemple #1
0
        // gameMode = 1 - H vs H
        // gameMode = 2 - H vs Ai
        // gameMode = 3 - Ai vs Ai
        // gameMode = 4 - H vs Ai_AB
        // gameMode = 5 - Ai_AB vs Ai_AB
        // gameMode = 6 - Ai_AB vs Ai

        // For deepCopy
        public Mancala(Mancala mancala)
        {
            firstMove = mancala.firstMove;
            player1Turn = mancala.player1Turn;

            Player1 = mancala.Player1;
            Player1Holes = mancala.Player1Holes.Select(x => x).ToArray();
            Player1Well = mancala.Player1Well.Select(x => x).ToArray();

            Player2 = mancala.Player2;
            Player2Holes = mancala.Player2Holes.Select(x => x).ToArray();
            Player2Well = mancala.Player2Well.Select(x => x).ToArray();

            this.evaluatePointsP1 = mancala.evaluatePointsP1;
            this.evaluatePointsP2 = mancala.evaluatePointsP2;
            Player1Depth = mancala.Player1Depth;
            Player2Depth = mancala.Player2Depth;
        }
Exemple #2
0
        public Mancala(ref IEvaluatePoints evaluatePointsP1, ref IEvaluatePoints evaluatePointsP2,
            int gameMode = 1, bool player1Turn = true,
            int player1Depth = 5, int player2Depth = 5)
        {
            this.evaluatePointsP1 = evaluatePointsP1;
            this.evaluatePointsP2 = evaluatePointsP2;

            TimesOfPlayer1 = new List<TimeSpan>();
            TimesOfPlayer2 = new List<TimeSpan>();

            Player1Depth = player1Depth;
            Player2Depth = player2Depth;
            switch (gameMode)
            {
                case 1:
                    Player1 = PlayerType.Human;
                    Player2 = PlayerType.Human;
                    break;
                case 2:
                    Player1 = PlayerType.Human;
                    Player2 = PlayerType.Ai;
                    break;
                case 3:
                    Player1 = PlayerType.Ai;
                    Player2 = PlayerType.Ai;
                    break;
                case 4:
                    Player1 = PlayerType.Human;
                    Player2 = PlayerType.Ai_AB;
                    break;
                case 5:
                    Player1 = PlayerType.Ai_AB;
                    Player2 = PlayerType.Ai_AB;
                    break;
                case 6:
                    Player1 = PlayerType.Ai;
                    Player2 = PlayerType.Ai_AB;
                    break;
            }

            this.player1Turn = player1Turn;
        }