程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# socket游戲編程(1服務器,多客戶端)

C# socket游戲編程(1服務器,多客戶端)

編輯:C#入門知識

 

最近兩天發的博文較少。。因為這個例子太長啦。

下面引用下書上的話,來引導這個例子:

游戲規則如下:

(1)玩家通過 internet 和 坐在同一桌的另外一個玩家對弈,一個玩家選擇黑方,另一個玩家選擇白方。

(2)游戲開始後,計算機自動在15x15的棋盤方格內,以固定的時間間隔,不停的在未放置棋子的位置隨機產生黑色棋子或白色棋子。

(3)玩家的目標是快速單擊自動出現在棋盤上的自己所選顏色的棋子,讓棋子從棋盤上小時,以避免自己的棋子出現在相鄰的位置。

(4)每當棋子從棋盤上小時,具有相應顏色的玩家既得1分。注意,如果玩家單擊了對方的棋子,則對方得1分。

(5)如果棋盤上出現兩個或者兩個以上相鄰的同色棋子,游戲就結束了,改顏色對應的玩家就是失敗者。

 

游戲功能要求如下:

(1)服務器可以同時服務多桌,每桌允許兩個玩家通過internet 對弈。

(2)允許玩家自由選擇坐哪一桌的哪一方。如果兩個玩家坐在同一桌,雙方應都能看到對方的狀態。兩個玩家均單擊‘開始’按鈕後,游戲才開始。

(3)某桌游戲開始後,服務器以固定的時間間隔同時在15x15的棋盤方格內向該桌隨機地發送黑白兩種顏色的棋子的位置,客戶端程序接收到服務器發送的棋子位置和顏色後,在15x15棋盤相應的位置顯示棋子。

(4)玩家坐到游戲桌座位上後,不論游戲是否開始,該玩家都可以隨時調整服務器發送棋子位置的時間間隔。

(5)游戲開始後,客戶端程序響應鼠標單擊,並根據游戲規則計算玩家的得分。

(6)如果兩個相同顏色的棋子在水平方向或垂直方向是相鄰的,那麼就認為這兩個棋子是相鄰的,這裡不考慮對角線相鄰的情況。

(7)如果相同顏色的棋子出現在相鄰的位置,本局游戲結束。

(8)同一桌的兩個玩家可以聊天。

 

這個游戲雖然比較小,但卻是“麻雀雖小,五髒俱全”。如果讀者真正理解了編寫的方法,就可以輕松編寫其他各類基於TCP的應用程序。

 

(打字挺累的,一字一字的照著打下來的。)

------------------------------------------

上面介紹完了,下面直接上圖 傳代碼。。

另外有一點要說的是 這個程序(客戶端和服務端)已經測試過了。

並不是很完美,但是並不影響學習socket TCP編程。挺不錯的一個例子。

先上圖吧,不唠叨了。

 

\

 

圖為兩個客戶端和一個服務端運行的狀況。

 

完整代碼下載:http://www.BkJia.com/uploadfile/2011/1210/20111210023130590.rar

注:再次說下,關於代碼的是否完美,這裡不作討論。僅用於學習socket編程

Andrew's Blog

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved