欢迎来到天天文库
浏览记录
ID:10575853
大小:237.00 KB
页数:47页
时间:2018-07-07
《java实验报告——网络中国象棋对战学位论文 .doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《Java语言程序设计(英)》课程大作业报告开发背景中国象棋有着悠久的历史,象棋爱好者更是不计其数,但是由于人们工作地点,时间的限制,原是那种面对面的下棋方式已经不再适合人们的生活,人们已经开始走向网络象棋。网络象棋有着很多的优点,通过网络象棋,对弈双方可以是任意两个象棋爱好者,甚至从不认识。网络象棋让对弈的范围更加的广泛,让象棋爱好者可以与更多的象棋爱好者切磋棋艺。系统分析1、服务器端可以指定服务端口号可以支撑多人同时在线可以显示在线用户的信息不允许玩家同名2、客户端能够通过主机IP及端口号登陆到服务器可以显示当前所
2、有用户可以从在线用户列表中选择玩家进行挑战可以接受或拒绝挑战如果对方正在与其他玩家对弈中,则应给出相应的提示信息象棋规则一定要严密棋子样式采用最普通的橡胶式象棋,即棋子黑色,文字红色和白色设计方案与算法分析:服务器端框架设计游戏开发过程,当然首先从服务器端开始,因为有了服务器的基础框架,客户端在在开发过程中才能进行一些有必要的测试,这是该类游戏一般的开发流程。服务器端主类即服务器端的运行类,用户通过运行该类进行服务器的主界面,其实这里暂时只能开发出服务器的简单框架及界面,因为服务器线程和服务器代理线程暂时都还没有开发,
3、等相应的类开发完成之后,再回到该类进行代码完善。服务器线程的开发服务器线程是服务器启动后创建并启动的第一个线程,该线程主要用于接受客户端的连接,并为每一个链接分配一个服务器代理线程为其进行服务。服务器代理线程的开发与设计服务器代理线程主要用于接收客户端传来的信息并将该信息转发给对应的另一客户端。服务器为所有的客户端都分配了一个该类实例,单独为特定客户端进行服务。同时每一个服务器代理线程都有唯一能标志其的名称。服务器端的完善服务器端的类的框架都已开发完成,但在一开始时,由于没有服务器线程和服务器代理线程,有些业务处理代码
4、没有开发,从而将完成对服务器端各个类的完善工作。棋子类的开发前面我们已经基本完成了服务器端的开发,已经可以接受客户端的连接,从这里开始将正式进入客户端的开发,下象棋当然要有棋子,下面我们将对棋子类进行介绍,该类主要包含着棋子的属性及一些关于属性的小的方法。客户端主类框架的开发客户端主类即客户端的运行类,用户通过运行该类连接服务器,也是通过在该类的窗体中与其他玩家进行对弈。当然其与服务器端主类的开发类似,由于部分类没有开发,这里暂时只能完成界面的搭建及简单的业务代码框架,具体的业务代码在后面的开发中会进行完善。客户端代理
5、线程的开发客户端代理线程主要用于接收服务器传来的消息,并根据不同的消息进行相应的业务处理,当然这里暂时先给出该类的代码框架,对消息的业务处理代码在后面会进行介绍。规则类的开发与设计通过上面的开发,客户端已经可以连接到服务器,而且通信的框架也已经开发完成,下面我们将正式开始进入游戏逻辑业务的开发。首先将从下棋最基本的一步开始,即开发下棋的规则。棋盘类的开发与设计棋盘类除了完成绘制棋盘的作用,同时还负责下棋逻辑的处理。完整代码如下:packagewyf.cgq;importjava.util.*;importjava.aw
6、t.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;importjava.net.*;importjava.io.*;publicclassServerextendsJFrameimplementsActionListener{JLabeljlPort=newJLabel("端口号");//创建提示输入端口号标签JTextFieldjtfPort=newJTextField("9999");//用于输入端口号的文本框JButt
7、onjbStart=newJButton("启动");//创建"启动"按钮JButtonjbStop=newJButton("关闭");//创建"关闭"按钮JPaneljps=newJPanel();//创建一个JPanel对象JListjlUserOnline=newJList();//创建用于显示当前用户的JListJScrollPanejspx=newJScrollPane(jlUserOnline);//将显示当前用户的JList放在JScrollPane中JSplitPanejspz=newJSplitPan
8、e(JSplitPane.HORIZONTAL_SPLIT,jspx,jps);//创建JSplitPane对象ServerSocketss;//声明ServerSocket引用ServerThreadst;//声明ServerThread引用VectoronlineList=newVector();//创建存放当前在线用户的Ve
此文档下载收益归作者所有