private CompareTo ( AnnouncementTypeEnum type ) : int | ||
type | AnnouncementTypeEnum | |
return | 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;
}
Announcement::CompareTo ( object obj ) : int |
/// <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); }