public void Give(Seats seat, Suits suit, Ranks rank) { if (this.deal == null) { this.InitCardDealing(); } if (Owned(suit, rank) && !this.Owns(seat, suit, rank)) { throw new FatalBridgeException("Distribution.Give: card is already owned"); } if (!this.Owns(seat, suit, rank)) { lastCard++; if (this.deal[this.lastCard] == null) { this.deal[this.lastCard] = new DistributionCard(); } for (int i = lastCard; i <= 51; i++) { if (deal[i].Suit == suit && deal[i].Rank == rank) { DistributionCard swap = Deal[i]; deal[i] = deal[lastCard]; deal[lastCard] = swap; break; } } deal[lastCard].Seat = seat; deal[lastCard].played = false; } }
public void Remove(Suits suit, Ranks rank) { for (int i = 0; i <= lastCard; i++) { if (deal[i].Suit == suit && deal[i].Rank == rank) { DistributionCard swap = deal[i]; deal[i] = deal[lastCard]; deal[lastCard] = swap; lastCard--; break; } } }
public Distribution Clone() { Distribution copy = new Distribution(); if (this.deal != null) { copy.deal = new Collection <DistributionCard>(); foreach (var item in this.deal) { var c = new DistributionCard(); c.Seat = item.Seat; c.Suit = item.Suit; c.Rank = item.Rank; copy.deal.Add(c); } } copy.lastCard = this.lastCard; return(copy); }