예제 #1
0
        private void label3_Click(object sender, EventArgs e)
        {
            label3.Visible = false;

            boBai = new BoBai();

            com = new Player();
            com.setLoaiNguoi(0);

            user = new Player();
            user.setLoaiNguoi(1);

            Card card = new Card();

            //card = boBai.getCard();
            //com.addCard(card);
            card = new Card();
            DrawCard(card, com.getLoaiNguoi(), 1);
            Thread.Sleep(100);

            card = boBai.getCard();
            user.addCard(card);
            DrawCard(card, user.getLoaiNguoi(), user.getNumberCard(1));
            Thread.Sleep(100);

            //card = boBai.getCard();
            //com.addCard(card);
            card = new Card();
            DrawCard(card, com.getLoaiNguoi(), 2);
            Thread.Sleep(100);

            card = boBai.getCard();
            user.addCard(card);
            DrawCard(card, user.getLoaiNguoi(), user.getNumberCard(1));
            Thread.Sleep(100);

            btnRut.Visible = true;

            label2.Text    = (user.getSum()).ToString();
            label2.Visible = true;

            if (Int32.Parse(label2.Text.Trim()) > 16)
            {
                btnDan.Visible = true;
            }
        }
예제 #2
0
        private void btnRut_Click_1(object sender, EventArgs e)
        {
            if (user.getNumberCard() == 4)
            {
                btnRut.Enabled = false;
                btnRut.Visible = false;
            }
            Card card = new Card();

            card = boBai.getCard();

            user.addCard(card);
            label2.Text = (user.getSum()).ToString();

            DrawCard(card, user.getLoaiNguoi(), user.getNumberCard(1));
            if (Int32.Parse(label2.Text.Trim()) > 16)
            {
                btnDan.Visible = true;
            }
        }
예제 #3
0
        //nhận tin
        void Receive(object obj)
        {
            Socket client = obj as Socket;

            while (true)
            {
                try
                {
                    byte[] data = new byte[1024 * 5000];
                    client.Receive(data);

                    string message = Deserialize(data).ToString();
                    string IP      = client.RemoteEndPoint.ToString();
                    //00: start
                    //01: Mess
                    //02: đợi
                    //03: Đã rút
                    //04: Rut
                    //05: Dan
                    //06: Xet bai


                    //07:Số lượng người chơi vidu: 7:20213 --->2 người chơi 1-> có 2 lá 2-> có 2 lá
                    //08: Server hỏi client

                    //09: nhà cái


                    //30: Xét bài

                    //11: udate numbercard

                    //2*: Get vào SQLServer
                    //20: Get số lượng người chơi
                    //21: Lấy số lượng người chơi
                    //22: Lấy IP người chơi 1  21:1
                    //   2 Lấy IP người chơi 2
                    //   3 Lấy IP người chơi 3
                    //   4 Lấy IP người chơi 4
                    //   5 Lấy IP người chơi 5

                    //20: Truy xuất SQL Server



                    switch (message.Substring(0, 3))
                    {
                    case "00:":
                    {
                        tempSL++;
                        if (tempSL == clientList.Count())
                        {
                            foreach (Socket item in clientList)
                            {
                                if (item != null)
                                {
                                    message = "00:Start";
                                    AddMessage(item.RemoteEndPoint.ToString() + ": " + message);
                                    item.Send(Serialize(message));
                                }
                                Thread.Sleep(100);
                            }
                            for (int i = 0; i < 2; i++)
                            {
                                foreach (Socket item in clientList)
                                {
                                    if (item != null)
                                    {
                                        Card card = new Card();
                                        card = boBai.getCard();
                                        AddMessage("94:" + card.getIdCard());
                                        item.Send(Serialize("94:" + card.getIdCard()));
                                    }
                                }
                                Thread.Sleep(100);
                            }

                            foreach (Socket item in clientList)         //đợi
                            {
                                item.Send(Serialize("02:"));
                            }
                            Thread.Sleep(100);
                            clientList[0].Send(Serialize("09: Bạn là cái ---> Rút cuoi"));         /// thang 0 đc rút
                        }

                        break;
                    }

                    case "01:":
                    {
                        AddMessage(client.RemoteEndPoint.ToString() + ": " + message);
                        foreach (Socket item in clientList)
                        {
                            if (item != null && item != client)
                            {
                                item.Send(Serialize(message));
                            }
                        }

                        break;
                    }

                    case "04:":
                    {
                        AddMessage("04:" + client.RemoteEndPoint.ToString());
                        foreach (Socket item in clientList)
                        {
                            if (item != null)
                            {
                                if (item == client)
                                {
                                    Card card = new Card();
                                    card = boBai.getCard();
                                    AddMessage("04:" + card.getIdCard());
                                    item.Send(Serialize("04:" + card.getIdCard()));
                                }
                            }
                        }
                        break;
                    }

                    case "05:":
                    {
                        AddMessage("05:" + client.RemoteEndPoint.ToString());
                        var dap   = new SqlDataAdapter("update CLIENT SET SUMCARD = " + message.Substring(3) + " WHERE IP='" + IP + "'", conn);
                        var table = new DataTable();
                        dap.Fill(table);

                        tempPlayer++;
                        if (tempPlayer < clientList.Count())
                        {
                            clientList[tempPlayer].Send(Serialize("03:"));
                        }
                        else
                        {
                            clientList[0].Send(Serialize("01:Tới lượt bạn"));
                        }
                        break;
                    }

                    case "11:":
                    {
                        AddMessage("update CLIENT SET NUMOFCARD = " + message.Substring(3) + " WHERE IP='" + IP + "'");
                        var dap = new SqlDataAdapter("update CLIENT SET NUMOFCARD = " + message.Substring(3) + " WHERE IP='" + IP + "'", conn);

                        var table = new DataTable();
                        dap.Fill(table);
                        AddMessage("UPDATE CLIENT SET NUMOFCARD = " + message.Substring(3) + " WHERE IP='" + IP + "'");

                        foreach (Socket item in clientList)
                        {
                            if (item != null && item != client)
                            {
                                AddMessage("21:" + IP + message.Substring(3, 1));
                                item.Send(Serialize("21:" + IP + message.Substring(3, 1)));
                            }
                        }
                        break;
                    }

                    case "12:":
                    {
                        AddMessage("update CLIENT SET DAN = 1 WHERE IP='" + IP + "'");
                        var dap   = new SqlDataAdapter("update CLIENT SET DAN = 1 WHERE IP='" + IP + "'", conn);
                        var table = new DataTable();
                        dap.Fill(table);

                        //CHECK DAN HET CHUA
                        AddMessage("SELECT COUNT(*) FROM Client WHERE DAN=1");
                        dap   = new SqlDataAdapter("SELECT COUNT(*) FROM Client WHERE DAN=1", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        if (Int32.Parse(table.Rows[0][0].ToString()) == clientList.Count())
                        {
                            foreach (Socket item in clientList)
                            {
                                if (item != null)
                                {
                                    AddMessage("01:");
                                    item.Send(Serialize("01: Xét bài"));
                                }
                            }
                            AddMessage("30:");
                            clientList[0].Send(Serialize("30:"));
                        }

                        break;
                    }

                    case "20:":
                    {
                        //get so luong người chơi database

                        foreach (Socket item in clientList)
                        {
                            string temp = "";
                            foreach (Socket i in clientList)
                            {
                                if (i != null && item != i)
                                {
                                    temp += i.RemoteEndPoint.ToString() + "2";
                                }
                            }
                            AddMessage("20:" + (tempSL).ToString() + temp);
                            item.Send(Serialize("20:" + (tempSL).ToString() + temp));
                            Thread.Sleep(100);
                        }
                        Thread.Sleep(100);
                        foreach (Socket item in clientList)
                        {
                            string temp = clientList[0].RemoteEndPoint.ToString();
                            AddMessage("98:" + temp);
                            item.Send(Serialize("98:" + temp));
                        }
                        break;
                    }

                    case "31:":
                    {
                        int sumCai     = 0;
                        int slCardCai  = 0;
                        int sumUser    = 0;
                        int slCardUser = 0;

                        AddMessage("SELECT SUMCARD FROM Client WHERE IP='" + IP + "'");
                        var dap   = new SqlDataAdapter("SELECT SUMCARD FROM Client WHERE IP='" + IP + "'", conn);
                        var table = new DataTable();
                        dap.Fill(table);
                        sumCai = Int32.Parse(table.Rows[0][0].ToString());
                        AddMessage("SELECT NUMOFCARD FROM Client WHERE IP='" + IP + "'");
                        dap   = new SqlDataAdapter("SELECT NUMOFCARD FROM Client WHERE IP='" + IP + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        slCardCai = Int32.Parse(table.Rows[0][0].ToString());

                        AddMessage("SELECT SUMCARD FROM Client WHERE IP='" + message.Substring(3) + "'");
                        dap   = new SqlDataAdapter("SELECT SUMCARD FROM Client WHERE IP='" + message.Substring(3) + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        sumUser = Int32.Parse(table.Rows[0][0].ToString());
                        AddMessage("SELECT NUMOFCARD FROM Client WHERE IP='" + message.Substring(3) + "'");
                        dap   = new SqlDataAdapter("SELECT NUMOFCARD FROM Client WHERE IP='" + message.Substring(3) + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        slCardUser = Int32.Parse(table.Rows[0][0].ToString());

                        int ketQua = (KetQua(sumCai, sumUser, slCardCai, slCardUser));
                        if (ketQua == 1)
                        {
                            AddMessage("61:01");
                            client.Send(Serialize("61:01"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:-1");
                                    item.Send(Serialize("31:-1"));
                                }
                            }
                        }
                        if (ketQua == 0)
                        {
                            client.Send(Serialize("61:00"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:00");
                                    item.Send(Serialize("31:00"));
                                }
                            }
                        }
                        if (ketQua == -1)
                        {
                            AddMessage("61:-1");
                            client.Send(Serialize("61:-1"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:01");
                                    item.Send(Serialize("31:01"));
                                }
                            }
                        }
                        Thread.Sleep(100);
                        foreach (Socket item in clientList)
                        {
                            if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                            {
                                AddMessage("41:");
                                item.Send(Serialize("41:"));
                            }
                        }
                        Thread.Sleep(130);
                        break;
                    }

                    case "32:":
                    {
                        int sumCai     = 0;
                        int slCardCai  = 0;
                        int sumUser    = 0;
                        int slCardUser = 0;

                        AddMessage("SELECT SUMCARD FROM Client WHERE IP='" + IP + "'");
                        var dap   = new SqlDataAdapter("SELECT SUMCARD FROM Client WHERE IP='" + IP + "'", conn);
                        var table = new DataTable();
                        dap.Fill(table);
                        sumCai = Int32.Parse(table.Rows[0][0].ToString());
                        AddMessage("SELECT NUMOFCARD FROM Client WHERE IP='" + IP + "'");
                        dap   = new SqlDataAdapter("SELECT NUMOFCARD FROM Client WHERE IP='" + IP + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        slCardCai = Int32.Parse(table.Rows[0][0].ToString());

                        AddMessage("SELECT SUMCARD FROM Client WHERE IP='" + message.Substring(3) + "'");
                        dap   = new SqlDataAdapter("SELECT SUMCARD FROM Client WHERE IP='" + message.Substring(3) + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        sumUser = Int32.Parse(table.Rows[0][0].ToString());
                        AddMessage("SELECT NUMOFCARD FROM Client WHERE IP='" + message.Substring(3) + "'");
                        dap   = new SqlDataAdapter("SELECT NUMOFCARD FROM Client WHERE IP='" + message.Substring(3) + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        slCardUser = Int32.Parse(table.Rows[0][0].ToString());

                        int ketQua = (KetQua(sumCai, sumUser, slCardCai, slCardUser));
                        if (ketQua == 1)
                        {
                            AddMessage("62:01");
                            client.Send(Serialize("62:01"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:-1");
                                    item.Send(Serialize("31:-1"));
                                }
                            }
                        }
                        if (ketQua == 0)
                        {
                            AddMessage("64:00");
                            client.Send(Serialize("62:00"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:00");
                                    item.Send(Serialize("31:00"));
                                }
                            }
                        }
                        if (ketQua == -1)
                        {
                            AddMessage("62:-1");
                            client.Send(Serialize("62:-1"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:01");
                                    item.Send(Serialize("31:01"));
                                }
                            }
                        }

                        Thread.Sleep(100);
                        foreach (Socket item in clientList)
                        {
                            if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                            {
                                AddMessage("42:");
                                item.Send(Serialize("42:"));
                            }
                        }
                        Thread.Sleep(130);
                        break;
                    }

                    case "33:":
                    {
                        int sumCai     = 0;
                        int slCardCai  = 0;
                        int sumUser    = 0;
                        int slCardUser = 0;

                        AddMessage("SELECT SUMCARD FROM Client WHERE IP='" + IP + "'");
                        var dap   = new SqlDataAdapter("SELECT SUMCARD FROM Client WHERE IP='" + IP + "'", conn);
                        var table = new DataTable();
                        dap.Fill(table);
                        sumCai = Int32.Parse(table.Rows[0][0].ToString());
                        AddMessage("SELECT NUMOFCARD FROM Client WHERE IP='" + IP + "'");
                        dap   = new SqlDataAdapter("SELECT NUMOFCARD FROM Client WHERE IP='" + IP + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        slCardCai = Int32.Parse(table.Rows[0][0].ToString());

                        AddMessage("SELECT SUMCARD FROM Client WHERE IP='" + message.Substring(3) + "'");
                        dap   = new SqlDataAdapter("SELECT SUMCARD FROM Client WHERE IP='" + message.Substring(3) + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        sumUser = Int32.Parse(table.Rows[0][0].ToString());
                        AddMessage("SELECT NUMOFCARD FROM Client WHERE IP='" + message.Substring(3) + "'");
                        dap   = new SqlDataAdapter("SELECT NUMOFCARD FROM Client WHERE IP='" + message.Substring(3) + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        slCardUser = Int32.Parse(table.Rows[0][0].ToString());

                        int ketQua = (KetQua(sumCai, sumUser, slCardCai, slCardUser));
                        if (ketQua == 1)
                        {
                            AddMessage("63:01");
                            client.Send(Serialize("63:01"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:-1");
                                    item.Send(Serialize("31:-1"));
                                }
                            }
                        }
                        if (ketQua == 0)
                        {
                            AddMessage("63:00");
                            client.Send(Serialize("63:00"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:00");
                                    item.Send(Serialize("31:00"));
                                }
                            }
                        }
                        if (ketQua == -1)
                        {
                            AddMessage("63:-1");
                            client.Send(Serialize("63:-1"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:01");
                                    item.Send(Serialize("31:01"));
                                }
                            }
                        }

                        Thread.Sleep(100);
                        foreach (Socket item in clientList)
                        {
                            if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                            {
                                AddMessage("43:");
                                item.Send(Serialize("43:"));
                            }
                        }
                        Thread.Sleep(130);
                        break;
                    }

                    case "34:":
                    {
                        int sumCai     = 0;
                        int slCardCai  = 0;
                        int sumUser    = 0;
                        int slCardUser = 0;

                        AddMessage("SELECT SUMCARD FROM Client WHERE IP='" + IP + "'");
                        var dap   = new SqlDataAdapter("SELECT SUMCARD FROM Client WHERE IP='" + IP + "'", conn);
                        var table = new DataTable();
                        dap.Fill(table);
                        sumCai = Int32.Parse(table.Rows[0][0].ToString());
                        AddMessage("SELECT NUMOFCARD FROM Client WHERE IP='" + IP + "'");
                        dap   = new SqlDataAdapter("SELECT NUMOFCARD FROM Client WHERE IP='" + IP + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        slCardCai = Int32.Parse(table.Rows[0][0].ToString());

                        AddMessage("SELECT SUMCARD FROM Client WHERE IP='" + message.Substring(3) + "'");
                        dap   = new SqlDataAdapter("SELECT SUMCARD FROM Client WHERE IP='" + message.Substring(3) + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        sumUser = Int32.Parse(table.Rows[0][0].ToString());
                        AddMessage("SELECT NUMOFCARD FROM Client WHERE IP = '" + message.Substring(3) + "'");
                        dap   = new SqlDataAdapter("SELECT NUMOFCARD FROM Client WHERE IP='" + message.Substring(3) + "'", conn);
                        table = new DataTable();
                        dap.Fill(table);
                        slCardUser = Int32.Parse(table.Rows[0][0].ToString());

                        int ketQua = (KetQua(sumCai, sumUser, slCardCai, slCardUser));
                        if (ketQua == 1)
                        {
                            AddMessage("64:01");
                            client.Send(Serialize("64:01"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:-1");
                                    item.Send(Serialize("31:-1"));
                                }
                            }
                        }
                        if (ketQua == 0)
                        {
                            AddMessage("64:00");
                            client.Send(Serialize("64:00"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:00");
                                    item.Send(Serialize("31:00"));
                                }
                            }
                        }
                        if (ketQua == -1)
                        {
                            AddMessage("64:-1");
                            client.Send(Serialize("64:-1"));
                            foreach (Socket item in clientList)
                            {
                                if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                                {
                                    AddMessage("31:01");
                                    item.Send(Serialize("31:01"));
                                }
                            }
                        }

                        Thread.Sleep(100);
                        foreach (Socket item in clientList)
                        {
                            if (item != null && item.RemoteEndPoint.ToString() == message.Substring(3))
                            {
                                AddMessage("44:");
                                item.Send(Serialize("44:"));
                            }
                        }
                        Thread.Sleep(130);
                        break;
                    }

                    case "35:":
                    {
                        tempCai = message.Substring(3);
                        AddMessage(tempCai);
                        break;
                    }

                    case "36:":
                    {
                        client.Send(Serialize("36:" + tempCai));
                        string temp = IP + message.Substring(3);
                        foreach (Socket item in clientList)
                        {
                            if (item != null && item != clientList[0] && item != client)
                            {
                                item.Send(Serialize("55:" + temp));
                            }
                        }
                        break;
                    }

                    case "41:":
                    {
                        AddMessage("51:" + message.Substring(3));
                        clientList[0].Send(Serialize("51:" + message.Substring(3)));
                        break;
                    }

                    case "42:":
                    {
                        AddMessage("51:" + message.Substring(3));
                        clientList[0].Send(Serialize("52:" + message.Substring(3)));

                        break;
                    }

                    case "43:":
                    {
                        AddMessage("51:" + message.Substring(3));
                        clientList[0].Send(Serialize("53:" + message.Substring(3)));

                        break;
                    }

                    case "44:":
                    {
                        AddMessage("51:" + message.Substring(3));
                        clientList[0].Send(Serialize("54:" + message.Substring(3)));
                        break;
                    }

                    default:
                        break;
                    }
                }
                catch
                {
                    clientList.Remove(client);
                    client.Close();
                }
            }
        }