1. 程式人生 > >Java實訓:實訓一 ——長春職業技術學院 16級網路工程

Java實訓:實訓一 ——長春職業技術學院 16級網路工程

Java實訓:實訓一 

 

本文會解釋一些設計思路。

想看具體過程,請轉:https://www.cnblogs.com/lxwlxw/p/10114187.html

笑維的碼雲專案命名不太對,所以我來:https://gitee.com/SoridoD/java_shixun1


(括號裡的內容為寫文章時想到的,寫程式碼時沒有考慮到)

 

我的設計思路:

既然是個多人遊戲,必然是有伺服器和客戶端的

玩家過多的話,用TCP也許會導致伺服器記憶體滿了,所以我選擇用UDP來負責兩者的通訊

所有的計算由伺服器完成(也許這裡可以優化,讓客戶端分擔一部分?)

客戶端的所有顯示資訊皆由伺服器發出,客戶端接收並顯示(可能會有點多餘?)

所有玩家的資訊都存到伺服器的即時資料裡(我這裡把一個玩家對應一個物件。)

 

提供兩個簡單的程式碼:(複製即用)

功能:輸入特定的指令開始(只有輸入start才會跳出,否則一直迴圈)

1 while(true) {
2     if("start".equals(read.next())) 
3         break;
4 }

功能:讓執行等一會再執行(括號裡2000為毫秒,,也就是2秒)

1 try {
2     Thread.currentThread();
3     Thread.sleep(2000);
4 }catch(Exception e) {
5 System.out.println(e); 6 }

 

新思路:

 

UDP不可靠,通訊過程可能會丟包,怎麼讓它變得可靠?

有種想法就是用利用程式碼實現確認機制,比如裁判給玩家發包,玩家要給裁判回包確認收到,如果裁判沒收到確認則要重新發包。