/// <summary> /// Collects input from user for passive turn, ensures legality, then executes move. /// Also updates Turn properties to reflect upcoming aggressive turn. /// </summary> private void ExecutePassiveTurn() { while (!PassiveTurnDone) { while (!GetUserInputForTurn()) { CurrentGame.Refresh(); } if (MoveLogic.MoveIsLegal(this.CurrentMove)) { ExecuteCurrentMove(this.CurrentMove); CurrentPlayer.LastMoveMade = CurrentMove; TurnIsPassive = false; PassiveTurnDone = true; this.currentTurnType = TurnType.Aggressive; } else { Console.WriteLine(MoveLogic.PrintErrorMessage(this.CurrentMove) + " Press enter to continue..."); Console.ReadLine(); PassiveTurnDone = false; } CurrentGame.Refresh(); } }
/// <summary> /// Collects input from user for aggressive turn, ensures legality, then executes move. /// </summary> private void ExecuteAggressiveTurn() { while (TurnDone == false) { CurrentGame.Refresh(); Console.WriteLine(this.CurrentPlayer.LastMoveMade); while (!GetUserInputForTurn()) { CurrentGame.Refresh(); Console.WriteLine(this.CurrentPlayer.LastMoveMade); } if (MoveLogic.MoveIsLegal(this.CurrentMove) && MoveLogic.MatchesPassiveMoveWhileAggressive(this.CurrentMove, this.CurrentPlayer.LastMoveMade)) { ExecuteCurrentMove(this.CurrentMove); TurnDone = true; } else { Console.WriteLine(MoveLogic.PrintErrorMessage(this.CurrentMove) + " Press enter to continue..."); Console.ReadLine(); } } }