Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 public static void SouthBid(BiddingState biddingState, string handsString, IBidGenerator bidGenerator)
 {
     var(bidIdFromRule, nextfase, description) = bidGenerator.GetBid(biddingState, handsString);
     biddingState.UpdateBiddingState(bidIdFromRule, nextfase, description);
 }
Ejemplo n.º 6
0
 public static void NorthBid(BiddingState biddingState)
 {
     biddingState.currentBid = NextBid(biddingState.currentBid);
 }