java实验报告——网络中国象棋对战本科毕业论文.doc

java实验报告——网络中国象棋对战本科毕业论文.doc

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java实验报告——网络中国象棋对战本科毕业论文

《》课程大作业报告 中国象棋有着悠久的历史,象棋爱好者更是不计其数,但是由于人们工作地点,时间的限制,原是那种面对面的下棋方式已经不再适合人们的生活,人们已经开始走向网络象棋。 网络象棋有着很多的优点,通过网络象棋,对弈双方可以是任意两个象棋爱好者,甚至从不认识。网络象棋让对弈的范围更加的广泛,让象棋爱好者可以与更多的象棋爱好者切磋棋艺。 系统分析 1、服务器端 可以指定服务端口号 可以支撑多人同时在线 可以显示在线用户的信息 不允许玩家同名 2、客户端 能够通过主机IP及端口号登陆到服务器 可以显示当前所有用户 可以从在线用户列表中选择玩家进行挑战 可以接受或拒绝挑战 如果对方正在与其他玩家对弈中,则应给出相应的提示信息 象棋规则一定要严密 棋子样式采用最普通的橡胶式象棋,即棋子黑色,文字红色和白色 设计方案算法分析 服务器端框架设计 游戏开发过程,当然首先从服务器端开始,因为有了服务器的基础框架,客户端在在开发过程中才能进行一些有必要的测试,这是该类游戏一般的开发流程。 服务器端主类即服务器端的运行类,用户通过运行该类进行服务器的主界面,其实这里暂时只能开发出服务器的简单框架及界面,因为服务器线程和服务器代理线程暂时都还没有开发,等相应的类开发完成之后,再回到该类进行代码完善。 服务器线程的开发 服务器线程是服务器启动后创建并启动的第一个线程,该线程主要用于接受客户端的连接,并为每一个链接分配一个服务器代理线程为其进行服务。 服务器代理线程的开发与设计 服务器代理线程主要用于接收客户端传来的信息并将该信息转发给对应的另一客户端。服务器为所有的客户端都分配了一个该类实例,单独为特定客户端进行服务。同时每一个服务器代理线程都有唯一能标志其的名称。 服务器端的完善 服务器端的类的框架都已开发完成,但在一开始时,由于没有服务器线程和服务器代理线程,有些业务处理代码没有开发,从而将完成对服务器端各个类的完善工作。 棋子类的开发 前面我们已经基本完成了服务器端的开发,已经可以接受客户端的连接,从这里开始将正式进入客户端的开发,下象棋当然要有棋子,下面我们将对棋子类进行介绍,该类主要包含着棋子的属性及一些关于属性的小的方法。 客户端主类框架的开发 客户端主类即客户端的运行类,用户通过运行该类连接服务器,也是通过在该类的窗体中与其他玩家进行对弈。当然其与服务器端主类的开发类似,由于部分类没有开发,这里暂时只能完成界面的搭建及简单的业务代码框架,具体的业务代码在后面的开发中会进行完善。 客户端代理线程的开发 客户端代理线程主要用于接收服务器传来的消息,并根据不同的消息进行相应的业务处理,当然这里暂时先给出该类的代码框架,对消息的业务处理代码在后面会进行介绍。 规则类的开发与设计 通过上面的开发,客户端已经可以连接到服务器,而且通信的框架也已经开发完成,下面我们将正式开始进入游戏逻辑业务的开发。首先将从下棋最基本的一步开始,即开发下棋的规则。 棋盘类的开发与设计 棋盘类除了完成绘制棋盘的作用,同时还负责下棋逻辑的处理。 完整代码如下: package wyf.cgq; import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.net.*; import java.io.*; public class Server extends JFrame implements ActionListener { JLabel jlPort=new JLabel(端 口 号);//创建提示输入端口号标签 JTextField jtfPort=new JTextField(9999);//用于输入端口号的文本框 JButton jbStart=new JButton(启动);//创建启动按钮 JButton jbStop=new JButton(关闭);//创建关闭按钮 JPanel jps=new JPanel();//创建一个JPanel对象 JList jlUserOnline=new JList();//创建用于显示当前用户的JList JScrollPane jspx=new JScrollPane(jlUserOnline);//将显示当前用户的JList放在JScrollPane中 JSplitPane jspz=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jspx,jps);//创建JSplitPane对象 ServerSocke

您可能关注的文档

文档评论(0)

海纳百川 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档