public (int, Fase, string) GetBid(BiddingState biddingState, string handsString) { var description = new StringBuilder(128); var bidFromRule = Pinvoke.GetBidFromRuleEx(biddingState.fase, handsString, biddingState.nextBidIdForRule, out var nextfase, description); return(bidFromRule, nextfase, description.ToString()); }
public static Auction GetAuction(string handsString, IBidGenerator bidGenerator, Dictionary <Fase, bool> fasesWithOffset) { Auction auction = new Auction(); BiddingState biddingState = new BiddingState(fasesWithOffset); Player currentPlayer = Player.West; do { switch (currentPlayer) { case Player.West: case Player.East: auction.AddBid(Bid.PassBid); break; case Player.North: NorthBid(biddingState); auction.AddBid(biddingState.currentBid); break; case Player.South: SouthBid(biddingState, handsString, bidGenerator); auction.AddBid(biddingState.currentBid); break; default: throw new ArgumentOutOfRangeException(); } currentPlayer = NextPlayer(currentPlayer); }while (!biddingState.EndOfBidding); return(auction); }
private void BidTillSouth(Auction auction, BiddingState biddingState) { // West auction.AddBid(Bid.PassBid); // North BidManager.NorthBid(biddingState); auction.AddBid(biddingState.currentBid); // East auction.AddBid(Bid.PassBid); auctionControl.ReDraw(); biddingBox.UpdateButtons(biddingState.currentBid, auctionControl.auction.currentPlayer); }
public (int, Fase, string) GetBid(BiddingState biddingState, string handsString) { var bidFromRule = Pinvoke.GetBidFromRule(biddingState.fase, handsString, biddingState.nextBidIdForRule, out var nextfase); return(bidFromRule, nextfase, string.Empty); }
public static void SouthBid(BiddingState biddingState, string handsString, IBidGenerator bidGenerator) { var(bidIdFromRule, nextfase, description) = bidGenerator.GetBid(biddingState, handsString); biddingState.UpdateBiddingState(bidIdFromRule, nextfase, description); }
public static void NorthBid(BiddingState biddingState) { biddingState.currentBid = NextBid(biddingState.currentBid); }