Example #1
0
        public Player(
            string i_Name,
            int i_PlayerNumber,
            eType i_Type,
            CheckersMen.eSign i_RegularSign,
            CheckersMen.eSign i_KingSign,
            char i_BaseLineRowKey,
            int i_m_AmountOfMenOnBoard)
        {
            r_Name                  = i_Name;
            r_Type                  = i_Type;
            r_PlayerNumber          = i_PlayerNumber;
            r_RegularCheckersMen    = new CheckersMen(i_RegularSign);
            r_KingCheckersMen       = new CheckersMen(i_KingSign);
            r_PossibleMoves         = new List <PlayerMove>(0);
            r_LastMovesPlayed       = new List <PlayerMove>(0);
            r_RandomNumberGenerator = new Random();
            m_CanEatAgain           = false;
            r_BaseLineRowKey        = i_BaseLineRowKey;
            m_AmountOfMenOnBoard    = i_m_AmountOfMenOnBoard;
            m_Score                 = 0;

            if (i_RegularSign == CheckersMen.eSign.O)
            {
                r_Direction = new Direction(1, -1, 1, -1);
            }
            else
            {
                r_Direction = new Direction(-1, 1, -1, 1);
            }
        }
Example #2
0
        public void SetPlayerMove(PlayerMove i_PlayerMove)
        {
            CheckersMen FromSlotContent = r_Board[i_PlayerMove.FromSlotKey].Content.Value;

            r_Board[i_PlayerMove.FromSlotKey].Clear();
            r_Board[i_PlayerMove.ToSlotKey].Content = FromSlotContent;
            if (i_PlayerMove.Type == PlayerMove.eMoveType.Eat)
            {
                r_Board[i_PlayerMove.SlotKeyToEat].Clear();
            }
        }
Example #3
0
        private void setKing(string i_SlotKey)
        {
            BoardSlot   slot = m_Board[i_SlotKey];
            CheckersMen king = new CheckersMen(CheckersMen.eSign.K);

            if (slot.Content.Value.Sign == CheckersMen.eSign.O)
            {
                king = new CheckersMen(CheckersMen.eSign.U);
            }

            m_PlayerTurn.AmountOfMenOnBoard += king.Value - slot.Content.Value.Value;
            m_Board[i_SlotKey].Content       = king;
            onKingSet(new SlotContentEventArgs(i_SlotKey, king));
        }
Example #4
0
        private void checkIfPlayerMoveToEnemyBaseLine(PlayerMove i_PlayerMove)
        {
            CheckersBoard.GetRowAndColumnFromKey(
                i_PlayerMove.ToSlotKey,
                out char toRowKeyPlayerMove,
                out char toColumnKeyPlayerMove);

            if (toRowKeyPlayerMove == m_PlayerEnemy.BaseLineRowKey)
            {
                CheckersMen slotContent = m_Board[i_PlayerMove.ToSlotKey].Content.Value;

                if (slotContent.Type == CheckersMen.eType.Regular)
                {
                    setKing(i_PlayerMove.ToSlotKey);
                }
            }
        }
        public CheckersMen AsRegular()
        {
            CheckersMen requireCheckerMen = this;

            if (r_Type != eType.Regular)
            {
                if (r_Sign == eSign.U)
                {
                    requireCheckerMen = new CheckersMen(eSign.O);
                }
                else
                {
                    requireCheckerMen = new CheckersMen(eSign.X);
                }
            }

            return(requireCheckerMen);
        }
        public CheckersMen AsKing()
        {
            CheckersMen requireCheckerMen = this;

            if (r_Type != eType.King)
            {
                if (r_Sign == eSign.O)
                {
                    requireCheckerMen = new CheckersMen(eSign.U);
                }
                else
                {
                    requireCheckerMen = new CheckersMen(eSign.K);
                }
            }

            return(requireCheckerMen);
        }