WEB开发网
开发学院软件开发C语言 C#网络版斗地主——出牌权限的传递 阅读

C#网络版斗地主——出牌权限的传递

 2009-06-08 08:32:26 来源:WEB开发网   
核心提示: Client类中有关出牌权限传递的代码:publicvoidAcceptServerData(){NetworkStreamNs=client.GetStream();stringstr="";while(true){byte[]bytes=newbyte[108];N

Client类中有关出牌权限传递的代码:

        public void AcceptServerData() 
        {
            NetworkStream Ns = client.GetStream();
            string str = "";
            while (true)
            {
                byte[] bytes = new byte[108];
                Ns.Read(bytes, 0, 108);
                str = Encoding.Default.GetString(bytes);
                if (str.StartsWith("Order")) //收到这条消息即表示自己有出牌权限了
                {
                    DConsole.player1.haveOrder = true;
                    continue;
                }
                if (str.StartsWith("ClientPass")) //另一个客户端pass后,在窗体中表示出来
                {
                    DConsole.gPlayer3LeadPoker.Clear(DConsole.backColor);
                    DConsole.gPlayer3LeadPoker.DrawString("不要", new System.Drawing.Font("宋体", 20), System.Drawing.Brushes.Red, 5, 5);
                    continue;
                }
                if (str.StartsWith("ServerPass"))//服务器pass后,在窗体中表示出来
                {
                    DConsole.gPlayer2LeadPoker.Clear(DConsole.backColor);
                    DConsole.gPlayer2LeadPoker.DrawString("不要", new System.Drawing.Font("宋体", 20), System.Drawing.Brushes.Red, 5, 5);
                    continue;
                }
                if (str.StartsWith("NoBiggest")) //当自己的牌被别人打了后,别人会发送该消息给自己,这时设置自己的Isbiggest为false
                {
                    DConsole.player1.isBiggest = false;
                    continue;
                }
        }

以上就是出牌权限传递的具体实现,这些代码之间是相互关联的,形成一个回路。除非有人的牌出完了,否则就会一直传递下去。代码比较多,如果哪里有错误的话欢迎留言反馈,谢谢!

系列文章:

C#写的网络版斗地主

C#网络版斗地主——网络部分实现

C#网络版斗地主——地主权限的传递

上一页  1 2 3 4 

Tags:网络 斗地主 权限

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接