Пример #1
0
        /// <summary>
        /// Check all last cards in every game column and in additional columns.
        /// If card suitables set property AllowDrop = true
        /// </summary>
        private void CheckOnAllowDrop(Card card)
        {
            Card lastCard;

            Data.Name  cardName;
            Data.Color cardColor;

            if (card.Place == CardPlace.GameColumn)
            {
                cardName  = GameColumns.ColGame[(int)GameColumns.GetGameColIndex(card)].GetCardMovingNameInColumn(card);
                cardColor = GameColumns.ColGame[(int)GameColumns.GetGameColIndex(card)].GetCardColorInColumn(card);
            }
            else
            {
                cardName  = card.Data.CardName;
                cardColor = card.Data.CardColor;
            }

            //game columns
            for (int index = 0; index < GameColumns.ColGame.Length; index++)
            {
                //set allowDrop = false for every card in column
                GameColumns.ColGame[index].SetAllowDrop();
                //set allowDrop = false for image in this column
                GameImages.GameColImages[index].AllowDrop = false;
                //get last card
                lastCard = GameColumns.ColGame[index].GetLastCard();

                if (lastCard != null)
                {
                    Data.Name  lastCardName  = GameColumns.ColGame[index].GetCardReceivingNameInColumn(lastCard);
                    Data.Color lastCardColor = GameColumns.ColGame[index].GetCardColorInColumn(lastCard);

                    if (lastCardName != Data.Name.Joker)
                    {
                        if (cardName == Data.Name.Joker ||
                            (cardName == lastCardName - 1 && cardColor != lastCardColor))
                        {
                            lastCard.AllowDrop = true;
                        }
                    }
                }
                else
                {
                    if (cardName == Data.Name.Joker || cardName == Data.Name.King)
                    {
                        GameImages.GameColImages[index].AllowDrop = true;
                    }
                }
            }

            lastCard = null;

            //if move 1 card
            if (card.Place != CardPlace.GameColumn ||
                GameColumns.ColGame[(int)GameColumns.GetGameColIndex(card)].GetLastCard().Equals(card))
            {
                //result columns
                for (int index = 0; index < GameColumns.ColResult.Length; index++)
                {
                    //set allowDrop = false for every card in column
                    GameColumns.ColResult[index].SetAllowDrop();
                    //set allowDrop = false for image in this column
                    GameImages.ResultColImages[index].AllowDrop = false;
                    //get last card
                    lastCard = GameColumns.ColResult[index].GetLastCard();

                    if (lastCard != null)
                    {
                        if (card.Data.CardLear == lastCard.Data.CardLear &&
                            card.Data.CardName == lastCard.Data.CardName + 1)
                        {
                            lastCard.AllowDrop = true;
                        }
                    }
                    else
                    {
                        if (card.Data.CardName == Data.Name.Ace)
                        {
                            GameImages.ResultColImages[index].AllowDrop = true;
                        }
                    }
                }

                lastCard = null;

                //additional columns
                for (int index = 0; index < GameColumns.ColAdditional.Length; index++)
                {
                    //set allowDrop = false for every card in column
                    GameColumns.ColAdditional[index].SetAllowDrop();
                    //set allowDrop = false for image in this column
                    GameImages.AdditionalColImages[index].AllowDrop = false;
                    //get last card
                    lastCard = GameColumns.ColAdditional[index].GetLastCard();

                    if (lastCard != null)
                    {
                        if (card.Data.CardName == GameColumns.ColAdditional[index].CardName)
                        {
                            lastCard.AllowDrop = true;
                        }
                    }
                    else
                    {
                        if (card.Data.CardName == GameColumns.ColAdditional[index].CardName)
                        {
                            GameImages.AdditionalColImages[index].AllowDrop = true;
                        }
                    }
                }
            }
        }
Пример #2
0
 return(new SimpleInfo(Data.Name, Data.Text));
Пример #3
0
        /// <summary>
        /// Check all last cards in every game column and in additional columns.
        /// If card suitables set property AllowDrop = true
        /// </summary>
        private void CheckOnAllowDrop(ICard card)
        {
            ICard lastCard;

            Data.Name  cardName;
            Data.Color cardColor;

            cardName = card.Place == CardPlace.GameColumn
                ? _game.Columns.ColGame[(int)_game.Columns.GetGameColIndex(card)].GetCardMovingNameInColumn(card)
                : card.Data.CardName;

            cardColor = card.Place == CardPlace.GameColumn
                ? _game.Columns.ColGame[(int)_game.Columns.GetGameColIndex(card)].GetCardColorInColumn(card)
                : card.Data.CardColor;

            //set allowDrop = false for every card in game
            _imageViewer.SetAllowDrop();

            //game columns
            for (int index = 0; index < _game.Columns.ColGame.Length; index++)
            {
                //get last card in the column
                lastCard = _game.Columns.ColGame[index].GetLastCard();

                // if last card exists
                if (lastCard != null)
                {
                    Data.Name  lastCardName  = _game.Columns.ColGame[index].GetCardReceivingNameInColumn(lastCard);
                    Data.Color lastCardColor = _game.Columns.ColGame[index].GetCardColorInColumn(lastCard);

                    if (lastCardName != Data.Name.Joker)
                    {
                        (lastCard as CardImage).AllowDrop = cardName == Data.Name.Joker ||
                                                            (cardName == lastCardName - 1 && cardColor != lastCardColor);
                    }
                }
                else
                {
                    _imageViewer.GameColImages[index].AllowDrop = cardName == Data.Name.Joker ||
                                                                  cardName == Data.Name.King;
                }
            }

            lastCard = null;

            //if move 1 card
            if (card.Place != CardPlace.GameColumn ||
                _game.Columns.ColGame[(int)_game.Columns.GetGameColIndex(card)].GetLastCard().Equals(card))
            {
                //result columns
                for (int index = 0; index < _game.Columns.ColResult.Length; index++)
                {
                    //get last card
                    lastCard = _game.Columns.ColResult[index].GetLastCard();

                    if (lastCard != null)
                    {
                        if (card.Data.CardLear == lastCard.Data.CardLear &&
                            card.Data.CardName == lastCard.Data.CardName + 1)
                        {
                            (lastCard as CardImage).AllowDrop = true;
                        }
                    }
                    else
                    {
                        _imageViewer.ResultColImages[index].AllowDrop = card.Data.CardName == Data.Name.Ace;
                    }
                }

                lastCard = null;

                //additional columns
                for (int index = 0; index < _game.Columns.ColAdditional.Length; index++)
                {
                    //get last card
                    lastCard = _game.Columns.ColAdditional[index].GetLastCard();

                    if (lastCard != null)
                    {
                        if (card.Data.CardName == _game.Columns.ColAdditional[index].CardName)
                        {
                            (lastCard as CardImage).AllowDrop = true;
                        }
                    }
                    else
                    {
                        if (card.Data.CardName == _game.Columns.ColAdditional[index].CardName)
                        {
                            _imageViewer.AdditionalColImages[index].AllowDrop = true;
                        }
                    }
                }
            }
        }