public Move GetNextMove(Player i_Player) { Move nextMove = null; string nextMoveString; bool moveIsValid = false; m_UIhandler.ShowWhichPlayerTurn(i_Player.PlayerName); while (!moveIsValid) { nextMoveString = m_UIhandler.GetNextMoveString(); moveIsValid = m_Valdator.MoveIsValid(nextMoveString, out nextMove); if (!moveIsValid) { m_UIhandler.ShowInvalidMoveMessage(); } } return(nextMove); }