Пример #1
0
        private void GiveFlop()
        {
            Card flop1 = _deck.GetRandomCard();
            Card flop2 = _deck.GetRandomCard();
            Card flop3 = _deck.GetRandomCard();

            BinaryFormatter formatter = new BinaryFormatter();

            // Выдаем первую карту flop'а
            using (MemoryStream memory = new MemoryStream())
            {
                // Количество реально записанных в мэйлслот байт
                uint   bytesWritten = 0;
                byte[] bytes        = new byte[400];

                formatter.Serialize(memory, flop1);
                bytes = memory.ToArray();
                // Выполняем запись последовательности байт в мэйлслот
                Mailslot.WriteFile(mailslotHandle, bytes, Convert.ToUInt32(bytes.Length), ref bytesWritten, 0);
                Console.WriteLine($"Flop1 is {flop1.ToString()}");
            }

            // Выдаем вторую карту flop'а
            using (MemoryStream memory = new MemoryStream())
            {
                uint   bytesWritten = 0;
                byte[] bytes        = new byte[400];
                formatter.Serialize(memory, flop2);
                bytes = memory.ToArray();
                Mailslot.WriteFile(mailslotHandle, bytes, Convert.ToUInt32(bytes.Length), ref bytesWritten, 0);
                Console.WriteLine($"Flop2 is {flop2.ToString()}");
            }

            // Выдаем третью карту flop'а
            using (MemoryStream memory = new MemoryStream())
            {
                uint   bytesWritten = 0;
                byte[] bytes        = new byte[400];
                formatter.Serialize(memory, flop3);
                bytes = memory.ToArray();
                Mailslot.WriteFile(mailslotHandle, bytes, Convert.ToUInt32(bytes.Length), ref bytesWritten, 0);
                Console.WriteLine($"Flop3 is {flop3.ToString()}");
            }

            cardsOnTable[0] = flop1;
            cardsOnTable[1] = flop2;
            cardsOnTable[2] = flop3;
        }
Пример #2
0
        // Отправляем несуществующую карту как признак окончания раздачи
        private void SendGameEnd()
        {
            // Количество реально записанных в мэйлслот байт
            uint bytesWritten = 0;

            Card endGame = new Card(CardSuit.Count, CardQuality.Count);

            BinaryFormatter formatter = new BinaryFormatter();

            using (MemoryStream memory = new MemoryStream())
            {
                byte[] bytes = new byte[400];
                // Выдаем пятую карту (river)
                formatter.Serialize(memory, endGame);
                bytes = memory.ToArray();
                // Выполняем запись последовательности байт в мэйлслот
                Mailslot.WriteFile(mailslotHandle, bytes, Convert.ToUInt32(bytes.Length), ref bytesWritten, 0);
            }
        }
Пример #3
0
        private void GiveTurn()
        {
            // Количество реально записанных в мэйлслот байт
            uint bytesWritten = 0;

            Card turn = _deck.GetRandomCard();

            BinaryFormatter formatter = new BinaryFormatter();

            using (MemoryStream memory = new MemoryStream())
            {
                byte[] bytes = new byte[400];
                // Выдаем червертую карту (turn)
                formatter.Serialize(memory, turn);
                bytes = memory.ToArray();
                // Выполняем запись последовательности байт в мэйлслот
                Mailslot.WriteFile(mailslotHandle, bytes, Convert.ToUInt32(bytes.Length), ref bytesWritten, 0);
                Console.WriteLine($"Turn is {turn.ToString()}");
            }

            cardsOnTable[3] = turn;
        }