示例#1
0
        public void PlayerForfit(Player i_PlayerForfit, out Move.eMoveStatus i_CurrentMoveStatus)
        {
            int forfitPlayerPoints = i_PlayerForfit.PlayerPosition == ePlayerPosition.BottomPlayer
                                         ? m_BottomPlayerPoints
                                         : m_TopPlayerPoints;
            int otherPlayerPoints = i_PlayerForfit.PlayerPosition == ePlayerPosition.BottomPlayer
                                        ? m_TopPlayerPoints
                                        : m_BottomPlayerPoints;

            if (forfitPlayerPoints <= otherPlayerPoints)
            {
                i_CurrentMoveStatus = Move.eMoveStatus.Legal;
                m_PlayerHasForfit   = true;
                m_PlayerForfit      = i_PlayerForfit.PlayerPosition;
            }
            else
            {
                i_CurrentMoveStatus = Move.eMoveStatus.Illegal;
            }
        }
示例#2
0
        public void MovePiece(ref Move io_Move, Move i_PreviousMove, out Move.eMoveStatus o_MoveStatus)
        {
            o_MoveStatus = Move.eMoveStatus.Illegal;
            if (checkMoveLegality(ref io_Move, i_PreviousMove))
            {
                o_MoveStatus = Move.eMoveStatus.Legal;
                changePiecePosition(io_Move);
                checkKing(io_Move.End);
                if (io_Move.Type != Move.eMoveType.Jump)
                {
                    return;
                }

                removedJumpedOverPiece(io_Move);
                if (isJumpPossible(PossibleMovesForPiece(io_Move.End), out List <Move> jumpsList))
                {
                    o_MoveStatus = Move.eMoveStatus.AnotherJumpPossible;
                }
            }
            else
            {
                o_MoveStatus = Move.eMoveStatus.Illegal;
            }
        }