// 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; }
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; }