C#网络版斗地主——出牌权限的传递
2009-06-08 08:32:26 来源:WEB开发网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#网络版斗地主——地主权限的传递
更多精彩
赞助商链接