/// <summary> /// Place penguin for non human player /// </summary> public void PlacePenguin() { if (CurrentPlayer.PlayerType == PlayerType.AIEasy) { AI_easy.PlacePenguins((BoardClass)Board, (PlayerClass)CurrentPlayer); } else if (CurrentPlayer.PlayerType == PlayerType.AIMedium) { AI_medium.PlacePenguin(Board, CurrentPlayer, AIPenguins); NextAction = NextActionType.PlacePenguin; if (Turn == Players.Count() * PenguinsByPlayer) { NextAction = NextActionType.MovePenguin; } } NextAction = NextActionType.PlacePenguin; if (Turn == Players.Count() * PenguinsByPlayer) { NextAction = NextActionType.MovePenguin; } Turn++; NextPlayer(); StateChanged.Invoke(this, null); }
/// <summary> /// Move a non human player /// </summary> public void Move() { bool endGame = true; foreach (var item in Players) { if (item.Penguins > 0) { endGame = false; } } if (CurrentPlayer.PlayerType == PlayerType.AIEasy) { endGame = AI_easy.MovePenguins((BoardClass)Board, (PlayerClass)CurrentPlayer); } else if (CurrentPlayer.PlayerType == PlayerType.AIMedium) { AI_medium.Move(Board, CurrentPlayer, AIPenguins); } if (!endGame) { NextAction = NextActionType.MovePenguin; NextPlayer(); } else { NextPlayer(); endGame = false; while (!endGame) { endGame = AI_easy.MovePenguins((BoardClass)Board, (PlayerClass)CurrentPlayer); } NextAction = NextActionType.Nothing; } StateChanged(this, null); }