Belot.Announcement.CompareTo C# (CSharp) Метод

CompareTo() приватный Метод

private CompareTo ( AnnouncementTypeEnum type ) : int
type AnnouncementTypeEnum
Результат int
        private int CompareTo( AnnouncementTypeEnum type )
        {
            int x = 0, y = 0;

            switch( this._type )
            {
                case AnnouncementTypeEnum.AllTrumps:
                    x = 7;
                    break;
                case AnnouncementTypeEnum.NoTrumps:
                    x = 6;
                    break;
                case AnnouncementTypeEnum.Spades:
                    x = 5;
                    break;
                case AnnouncementTypeEnum.Hearts:
                    x = 4;
                    break;
                case AnnouncementTypeEnum.Diamonds:
                    x = 3;
                    break;
                case AnnouncementTypeEnum.Clubs:
                    x = 2;
                    break;
                case AnnouncementTypeEnum.Pass:
                    x = 1;
                    break;
            }

            switch( type )
            {
                case AnnouncementTypeEnum.AllTrumps:
                    y = 7;
                    break;
                case AnnouncementTypeEnum.NoTrumps:
                    y = 6;
                    break;
                case AnnouncementTypeEnum.Spades:
                    y = 5;
                    break;
                case AnnouncementTypeEnum.Hearts:
                    y = 4;
                    break;
                case AnnouncementTypeEnum.Diamonds:
                    y = 3;
                    break;
                case AnnouncementTypeEnum.Clubs:
                    y = 2;
                    break;
                case AnnouncementTypeEnum.Pass:
                    y = 1;
                    break;
            }

            if( x > y )
                return 1;
            else if( x < y )
                return -1;
            else
                return 0;
        }

Same methods

Announcement::CompareTo ( object obj ) : int

Usage Example

        /// <summary>
        /// If announcement made by this player is valid according to game rules
        /// </summary>
        public bool IsValid(Player player, AnnouncementTypeEnum type, bool isDoubled, bool isRedoubled)
        {
            //no player
            if (player == null)
            {
                throw new ArgumentNullException("Player", "Bidding player cannot be null");
            }

            //legal pass
            if (type == AnnouncementTypeEnum.Pass)
            {
                if (!isDoubled && !isRedoubled)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            if (_lastValidAnnouncement.CompareTo(type) < 0 && !isDoubled && !isRedoubled)
            {
                return(true);
            }

            if (_lastValidAnnouncement.CompareTo(type) == 0 && !IsLastValidBidByTeam(player) && !_lastValidAnnouncement.IsReDoubled)
            {
                if (!_lastValidAnnouncement.IsDoubled && isDoubled && !isRedoubled)
                {
                    return(true);
                }
                if (_lastValidAnnouncement.IsDoubled && !isDoubled && isRedoubled)
                {
                    return(true);
                }
            }

            return(false);
        }
All Usage Examples Of Belot.Announcement::CompareTo