public eSystemReply CheckIfUserCanPlay(Player i_Player) { eSystemReply canPlay = eSystemReply.PlayerHasNoMoves; List <PossibleMove?> listOfPossibleMovesForPlayer = GetPossibleMoves(i_Player); if (listOfPossibleMovesForPlayer.Count > 0) { canPlay = eSystemReply.PlayerCanMove; m_listOfPossibleMoves = listOfPossibleMovesForPlayer; } return(canPlay); }
// Holds the move of the player public eSystemReply Move(int i_X, int i_Y, Player i_Player) { if (i_Player.IsComputer) { DoComputerMove(i_Player); } eSystemReply moveReply = eSystemReply.ValidMove; moveReply = doPlayerMoveWithXY(i_X, i_Y, i_Player); if (moveReply == eSystemReply.ValidMove) { UpdatePlayerScore(i_Player); clearLastRoundPossibleMove(m_listOfPossibleMoves); } return(moveReply); }
private eSystemReply doPlayerMoveWithXY(int i_X, int i_Y, Player i_Player) { eSystemReply checkMoveReply = eSystemReply.ValidMove; bool playerCanMove = false; foreach (PossibleMove?move in m_listOfPossibleMoves) { if (move.Value.isEqualToPoisition(i_X, i_Y)) { playerCanMove = true; drawPossibleMove(move, i_Player); } } if (playerCanMove == false) { checkMoveReply = eSystemReply.ErrorBadLogicInput; } return(checkMoveReply); }