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(); }
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(); } }
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; }
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);
public void AddToDealings(Dealing dealing) { base.AddObject("Dealings", dealing); }
public static Dealing CreateDealing(int ID) { Dealing dealing = new Dealing(); dealing.ID = ID; return dealing; }