コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: GameEngine.cs プロジェクト: liornaar/mta-othello
        // 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);
        }
コード例 #3
0
        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);
        }