Exemplo n.º 1
0
        public async Task DealCards()
        {
            GameStatus       = GameStatus.Playing;
            RiverPokers      = new List <Poker>();
            _openRiverPokers = new List <Poker>();
            int index = 0;

            foreach (var player in Players)
            {
                player.Poker1 = AllPokers[index++];
                player.Poker2 = AllPokers[index++];
                await Dealing?.Invoke(player);

                Thread.Sleep(500);
            }

            for (int i = 0; i < 5; i++)
            {
                RiverPokers.Add(_backPoker);
                _openRiverPokers.Add(AllPokers[index++]);
                Thread.Sleep(500);
                await GameUpdated?.Invoke(this);
            }
            Start();
        }
Exemplo n.º 2
0
 public static void Save(Dealing cards)
 {
     using (var dbContext = new BridgeBelotEntities())
     {
         dbContext.Dealings.Add(cards);
         cards.CardsDealt.ForEach(side => side.ForEach(card => dbContext.Cards.Add(card)));
         dbContext.SaveChanges();
     }
 }
Exemplo n.º 3
0
 protected Bitmap openPCX(string filePath, MyPCX pcxInfo, PictureBox view, Dealing dealing)
 {
     if (pcxInfo == null)
         pcxInfo = new MyPCX();
     Bitmap output;
     if (!pcxInfo.from(filePath))
     {
         MessageBox.Show(filePath, "開啟失敗");
         return null;
     }
     output = dealing(pcxInfo.getView());
     view.Image = output;
     MessageBox.Show(filePath, "開啟成功");
     return output;
 }
Exemplo n.º 4
0
        static void Main()
        {
            const int DefaultMaxDealCount = 32;

            var sortOrders        = SortOrders.Suit;
            var allow4OfAKind     = true;
            var maxSequenceLength = 0;

            var dealings = new List <Dealing>();

            var dealSequence = 1;

            var dealingSide = Sides.North;

            var outputData = new List <string>();

            var sortBySuitSetting        = ConfigurationManager.AppSettings["SortBySuit"];
            var allow4OfAKindSetting     = ConfigurationManager.AppSettings["Allow4OfAKind"];
            var maxSequenceLengthSetting = ConfigurationManager.AppSettings["MaxSequenceLength"];
            var maxDealCountSetting      = ConfigurationManager.AppSettings["MaxDealCount"];
            var saveToDatabaseSetting    = ConfigurationManager.AppSettings["SaveToDatabase"];

            var sortBySuitParamParseSuccess        = bool.TryParse(sortBySuitSetting, out var sortBySuitValue);
            var allow4OfAKindParamParseSuccess     = bool.TryParse(allow4OfAKindSetting, out var allow4OfAKindValue);
            var maxSequenceLengthParamParseSuccess = int.TryParse(maxSequenceLengthSetting, out var maxSequenceLengthValue);
            var maxDealCountParamParseSuccess      = int.TryParse(maxDealCountSetting, out var maxDealCountValue);
            var saveToDatabaseParseSuccess         = bool.TryParse(saveToDatabaseSetting, out var saveToDatabaseValue);

            Console.OutputEncoding = Encoding.Unicode;

            if (sortBySuitParamParseSuccess && !sortBySuitValue)
            {
                sortOrders = SortOrders.NoTrumps;
            }

            if (allow4OfAKindParamParseSuccess && !allow4OfAKindValue)
            {
                allow4OfAKind = false;
            }

            if (maxSequenceLengthParamParseSuccess && maxSequenceLengthValue > 0 && maxSequenceLengthValue < 8)
            {
                maxSequenceLength = maxSequenceLengthValue;
            }

            if (!maxDealCountParamParseSuccess)
            {
                maxDealCountValue = DefaultMaxDealCount;
            }

            var shuffledSequenceNos = ShuffledSequenceNos(maxDealCountValue);

            var output = new Output();

            Console.WriteLine("Карти за Бридж Белот");
            Console.WriteLine("====================");

            while (dealSequence <= maxDealCountValue)
            {
                if (outputData.Count > 0)
                {
                    outputData.Add(string.Empty);
                    outputData.Add(new string('=', 80));
                    outputData.Add(string.Empty);
                }

                var dealing = new Dealing(sortOrders, dealSequence, shuffledSequenceNos[dealSequence - 1], dealingSide);

                var allCardsDealt        = dealing.AllCardsDealt;
                var initial5CardDealt    = dealing.Initial5CardsDealt;
                var additional3CardDealt = dealing.Additional3CardsDealt;

                if (!allow4OfAKind && Rules.FourOfAKindCheck(allCardsDealt))
                {
                    // Discard deals containing 4 of a kind
                    continue;
                }

                if (maxSequenceLength > 0 && Rules.LongSequencesCheck(allCardsDealt, maxSequenceLength))
                {
                    // Discard deals containing sequences longer that specified
                    continue;
                }

                // Note: No shuffled sequence numbers in the initial dealings set
                var formattedOutput = output.FormattedOutput(initial5CardDealt, additional3CardDealt, dealing.SequenceNo, default, dealingSide);
Exemplo n.º 5
0
 public void AddToDealings(Dealing dealing)
 {
     base.AddObject("Dealings", dealing);
 }
Exemplo n.º 6
0
 public static Dealing CreateDealing(int ID)
 {
     Dealing dealing = new Dealing();
     dealing.ID = ID;
     return dealing;
 }