首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 網路版鬥地主(三):客戶端接收伺服器資料與出牌權限處理

     編輯:關於C語言

Client 類別 - AcceptServerData 方法

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 Font("宋體", 20), Brushes.Red, 5, 5);
            continue;
        }
        if (str.StartsWith("ServerPass")) // 伺服器 Pass
        {
            DConsole.gPlayer2LeadPoker.Clear(DConsole.backColor);
            DConsole.gPlayer2LeadPoker.DrawString("不要", new Font("宋體", 20), Brushes.Red, 5, 5);
            continue;
        }
        if (str.StartsWith("NoBiggest")) // 自己的牌被管走
        {
            DConsole.player1.isBiggest = false;
            continue;
        }
    }
}

流程說明

  • Order:標示輪到自己出牌,設定 haveOrder = true。
  • ClientPass/ServerPass:在對應位置繪製「不要」提示。
  • NoBiggest:重置 isBiggest,表示不再擁有最大牌。
  • 各指令形成閉環,除非有人出完牌,否則持續傳遞。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved