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不可靠,通信过程可能会丢包,怎么让它变得可靠?

有种想法就是用利用代码实现确认机制,比如裁判给玩家发包,玩家要给裁判回包确认收到,如果裁判没收到确认则要重新发包。

 posted on 2018-12-13 19:23  SoridoD  阅读(288)  评论(0编辑  收藏  举报