免费论文网 首页

山东省象棋网

时间:2017-05-05 06:37 来源:免费论文网

篇一:计算机中国象棋网络对弈软件毕业设计

线

┊ 摘 要 中国象棋网络版是一款可以实现多人同时在线的网络对弈象棋软件。 中国象棋网络版采用C/S架构,由跨平台的Java语言和MySQ L数据库开发,在开发过程中使用了多线程、java swing、Socket编程以及TCP和UDP协议等技术。中国象棋网络版提供了:棋友状态列表,弈棋邀请,观看他人弈棋,棋谱记录和保存,在线交流,快速注册等功能。服务端提供了:发布系统消息提示,服务器状态显示,在线棋友管理等功能。最后,对系统进行测试表明,系统功能达到了预期的要求,实现与同类的象棋软件如QQ象棋类似的功能,具有界面友好,操作简便,运行稳定的特点,完成设计要求的功能。本系统不足之处在于没有实现人机对弈、聊天记录的本机存储,将在以后的更新版本中逐步完善。 关键词: 对弈,Java,多线程

线

┊ Abstract Chinese chess online is a software can support multiplayer play chess online at the same time . The chinese chess online, based on the architecture of C/S, is developed by MySQL database and Java, a cross-platform language. In the development, multi-thread, Java swing, Socket programming and TCP/UDP protocol are applied. First, the newer can fast register and then get an account in the network version. The players can invite others to join, watch others playing, communicate with others online and hold chess-playing records. Of course ,there exists a status bar to check the states of all chess players. Here the service releases the notes of the system information, displays the state of itself, and deal with chess players online, etc. The test of the system indicates, all the expected functions have been realized. It has the similar functions just like the QQ chess, an online software of kind. The interface is on good terms, and the operation is easy, and also it runs stably. However, disappointingly, the computer can't be an opponent of the players, and the users' computer can't keep the chat records itself. These are both the weak points and the improvements will be made in the new version. Keywords: chess-playing , Java, Multithreading

线

┊ 目 录 1. 前 言 ........................................................ 1 1.1 课题的研究目的和意义 ......................................... 1 1.2开发和运行环境 ................................................ 1 1.2.1开发环境 .................................................. 1 1.2.2运行环境 .................................................. 1 2.JAVA和网络套接字技术 ............................................ 2 2.1 JAVA简介 ...................................................... 2 2.2 JAVA图形技术 .................................................. 2 2.3 JAVA事件响应技术 .............................................. 4 2.3.1鼠标事件响应 .............................................. 4 2.3.2键盘事件响应 .............................................. 4 2.4 网络网络通信技术 .............................................. 4 2.4.1 TCP ...................................................... 4 2.4.2 UDP ...................................................... 4 2.4.3 Socket ................................................... 5 2.4.4 Java实现 ................................................ 5 3.中国象棋网络版架构设计与通信设计 ................................. 7 3.1 中国象棋网络版架构分析与设计 .................................. 7 3.2中国象棋网络版数据通信设计与实现 .............................. 7 3.2.1通信协议选择 .............................................. 7 3.2.2数据类型分析 .............................................. 9 3.2.3数据格式设计 ............................................. 11 3.2.4数据通信与处理伪码示例 ................................... 13 4.中国象棋网络版客户端实现 ....................................... 16 4.1客户端基础架构 ............................................... 16 4.2客户端GUI设计 ............................................... 16 4.2.1弈棋主面板 ............................................... 16 4.2.2用户列表面板 ............................................. 17 4.2.3棋谱记录面板 ............................................. 17 4.2.4用户交流面板 ............................................. 17 4.3客户端类设计 ................................................. 18 4.3.1 chessboardP .............................................. 18 4.3.2 userP .................................................... 18 4.3.3 chessstateP .............................................. 19

4.3.4 chatP .................................................... 19

4.3.5数据处理相关类 ........................................... 19

4.4客户端主要算法伪码示例 ....................................... 20

4.4.1棋子和棋盘状态维护算法简介 ............................... 20

4.4.2棋盘规则马规则伪码示例 ................................... 20

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 4.4.4棋谱生成部分伪码示例 ..................................... 21 4.4.5棋局结果判定伪码示例 ..................................... 22 4.4.6通信数据处理和分发算法简介 ............................... 22 4.4.7棋子选中闪烁算法简介 ..................................... 22 5.中国象棋网络版服务器端实现 ...................................... 23 5.1服务器端基础架构 ............................................. 23 5.2服务器端GUI设计 ............................................. 24 5.3服务器端类设计 ............................................... 25 5.3.1 serverGUI ................................................ 25 5.3.2 serverListener ........................................... 25 5.3.3 chessroom ................................................ 26 5.3.4 databaseinterface ........................................ 26 5.4数据库相关开发 ............................................... 26 5.4.1数据库需求分析 ........................................... 26 5.4.2数据库表设计 ............................................. 26 5.5服务器端主要算法伪码示例 ..................................... 27 5.5.1登录注册时与数据库交互伪码示例 ........................... 27 5.5.2弈棋聊天用户列表维护数据转发算法简介 ..................... 28 5.5.3 MD5加密产生密匙伪码示例 ................................. 28 5.5.4踢用户下线伪码示例 ....................................... 28 6.中国象棋网络版运行测试 ......................................... 30 6.1.客户端功能测试 .............................................. 30 6.1.1用户上线响应异常 ......................................... 30 6.1.2弈棋过程中将可以出九宫异常 ............................... 31 6.2服务器端测试 ................................................. 32 6.2.1用户下线后服务器在线用户数统计异常 ....................... 32 6.2.2对正在弈棋的用户强制下线异常 ............................. 33 6.3测试总结 .................................................... 33 结束语 ............................................................ 34 致 谢 ............................................................ 35 参考文献 .......................................................... 36 附 录 ............................................................ 37

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 1. 前 言 1.1 课题的研究目的和意义 本课题的目的是采用Java语言编写实现网络象棋对弈软件,实现中国象棋的网络对弈,拥有用户列表、棋谱查看保存、在线交流等功能。 虽然现在已经有了许多网络对弈软件,其中大多数都很优秀,所以本课题不作对比性开发。通过中国象棋网络版的开发熟练掌握在Eclipse下的Java开发,详细了解Socket网络套接字技术、TCP和UDP协议,掌握MySQL应用。 1.2开发和运行环境 1.2.1开发环境 操作系统Windows7 开发平台 MyEcilpse 8.5 JDK1.6.0_17 数据库MySQL5.1 MySQL Workbench 5.2 CE 1.2.2运行环境 Window 7、Windows xp等各类支持Java的操作系统。

篇二:基于JAVA中国象棋网络对弈软件毕业设计

摘 要

中国象棋网络版是一款可以实现多人同时在线的网络对弈象棋软件。 中国象棋网络版采用C/S架构,由跨平台的Java语言和MySQ L数据库开发,在开发过程中使用了多线程、java swing、Socket编程以及TCP和UDP协议等技术。中国象棋网络版提供了:棋友状态列表,弈棋邀请,观看他人弈棋,棋谱记录和保存,在线交流,快速注册等功能。服务端提供了:发布系统消息提示,服务器状态显示,在线棋友管理等功能。最后,对系统进行测试表明,系统功能达到了预期的要求,实现与同类的象棋软件如QQ象棋类似的功能,具有界面友好,操作简便,运行稳定的特点,完成设计要求的功能。本系统不足之处在于没有实现人机对弈、聊天记录的本机存储,将在以后的更新版本中逐步完善。 关键词: 对弈,Java,多线程

Abstract

Chinese chess online is a software can support multiplayer play chess online at the same time .

The chinese chess online, based on the architecture of C/S, is developed by MySQL database and Java, a cross-platform language. In the development, multi-thread, Java swing, Socket programming and TCP/UDP protocol are applied. First, the newer can fast register and then get an account in the network version. The players can invite others to join, watch others playing, communicate with others online and hold chess-playing records. Of course ,there exists a status bar to check the states of all chess players. Here the service releases the notes of the system information, displays the state of itself, and deal with chess players online, etc. The test of the system indicates, all the expected functions have been realized. It has the similar functions just like the QQ chess, an online software of kind. The interface is on good terms, and the operation is easy, and also it runs stably. However, disappointingly, the computer can't be an opponent of the players, and the users' computer can't keep the chat records itself. These are both the weak points and the improvements will be made in the new version.

Keywords: chess-playing , Java, Multithreading

目 录

1. 前 言 ........................................................ 1

1.1 课题的研究目的和意义 ......................................... 1

1.2开发和运行环境 ................................................ 1

1.2.1开发环境 .................................................. 1

1.2.2运行环境 .................................................. 1

2.JAVA和网络套接字技术 ............................................ 2

2.1 JAVA简介 ...................................................... 2

2.2 JAVA图形技术 .................................................. 2

2.3 JAVA事件响应技术 .............................................. 4

2.3.1鼠标事件响应 .............................................. 4

2.3.2键盘事件响应 .............................................. 4

2.4 网络网络通信技术 .............................................. 4

2.4.1 TCP ...................................................... 4

2.4.2 UDP ...................................................... 4

2.4.3 Socket ................................................... 5

2.4.4 Java实现 ................................................ 5

3.中国象棋网络版架构设计与通信设计 ................................. 7

3.1 中国象棋网络版架构分析与设计 .................................. 7

3.2中国象棋网络版数据通信设计与实现 .............................. 7

3.2.1通信协议选择 .............................................. 7

3.2.2数据类型分析 .............................................. 9

3.2.3数据格式设计 ............................................. 11

3.2.4数据通信与处理伪码示例 ................................... 13

4.中国象棋网络版客户端实现 ....................................... 16

4.1客户端基础架构 ............................................... 16

4.2客户端GUI设计 ............................................... 16

4.2.1弈棋主面板 ............................................... 16

4.2.2用户列表面板 ............................................. 17

4.2.3棋谱记录面板 ............................................. 17

4.2.4用户交流面板 ............................................. 17

4.3客户端类设计 ................................................. 18

4.3.1 chessboardP .............................................. 18

4.3.2 userP .................................................... 18

4.3.3 chessstateP .............................................. 19

4.3.4 chatP .................................................... 19

4.3.5数据处理相关类 ........................................... 19

4.4客户端主要算法伪码示例 ....................................... 20

4.4.1棋子和棋盘状态维护算法简介 ............................... 20

4.4.2棋盘规则马规则伪码示例 ................................... 20

4.4.3棋子选择和移动伪码示例 ................................... 20

4.4.4棋谱生成部分伪码示例 ..................................... 21

4.4.5棋局结果判定伪码示例 ..................................... 22

4.4.6通信数据处理和分发算法简介 ............................... 22

4.4.7棋子选中闪烁算法简介 ..................................... 22

5.中国象棋网络版服务器端实现 ...................................... 23

5.1服务器端基础架构 ............................................. 23

5.2服务器端GUI设计 ............................................. 24

5.3服务器端类设计 ............................................... 25

5.3.1 serverGUI ................................................ 25

5.3.2 serverListener ........................................... 25

5.3.3 chessroom ................................................ 26

5.3.4 databaseinterface ........................................ 26

5.4数据库相关开发 ............................................... 26

5.4.1数据库需求分析 ........................................... 26

5.4.2数据库表设计 ............................................. 26

5.5服务器端主要算法伪码示例 ..................................... 27

5.5.1登录注册时与数据库交互伪码示例 ........................... 27

5.5.2弈棋聊天用户列表维护数据转发算法简介 ..................... 28

5.5.3 MD5加密产生密匙伪码示例 ................................. 28

5.5.4踢用户下线伪码示例 ....................................... 28

6.中国象棋网络版运行测试 ......................................... 30

6.1.客户端功能测试 .............................................. 30

6.1.1用户上线响应异常 ......................................... 30

6.1.2弈棋过程中将可以出九宫异常 ............................... 31

6.2服务器端测试 ................................................. 32

6.2.1用户下线后服务器在线用户数统计异常 ....................... 32

6.2.2对正在弈棋的用户强制下线异常 ............................. 33

6.3测试总结 .................................................... 33

结束语 ............................................................ 34

致 谢 ............................................................ 35

参考文献 .......................................................... 36

附 录 ............................................................ 37

1. 前 言

1.1 课题的研究目的和意义

本课题的目的是采用Java语言编写实现网络象棋对弈软件,实现中国象棋的网络对弈,拥有用户列表、棋谱查看保存、在线交流等功能。

虽然现在已经有了许多网络对弈软件,其中大多数都很优秀,所以本课题不作对比性开发。通过中国象棋网络版的开发熟练掌握在Eclipse下的Java开发,详细了解Socket网络套接字技术、TCP和UDP协议,掌握MySQL应用。

1.2开发和运行环境

1.2.1开发环境

操作系统Windows7

开发平台 MyEcilpse 8.5

JDK1.6.0_17

数据库MySQL5.1

MySQL Workbench 5.2 CE

1.2.2运行环境

Window 7、Windows xp等各类支持Java的操作系统。

篇三:基于HTTP网络协议的网络象棋的设计与实现 - 副本 (2)

广州大学华软软件学院网络技术系学位论文

5.3 通信系统设计

5.3.1 通信编码设计

1) 服务器端发送,浏览器端接收时的通信编码如表5-2所示:

表5-2 服务器端到浏览器端的通信编码

2) 浏览器端发送,服务器端接受时的通信编码如表5-3所示:

表5-3 浏览器端到服务器端的通信编码

5.3.2 消息的缓存

由于B/S通信模式的特点“不请求则不响应”,而ASP.NET采用代码分离技术,服务器后台页面长时间存在过于浪费服务器资源,故而需将通信消息暂时存放于Application中。

建立一个消息类“MessageStat”,该对象中实例化一个用户对象和一个泛型数组

1

第六章

测试

msgLst。“MessageStat”类实现添加消息的方法、删除消息的方法、读取指定定条目的消息的方法和计算消息条数的方法。该对象在用户登录是实例化,通过Add方法添加到一个标识为用户ID的共享对象中暂时保存。当用户发出读取请求时,服务器通过类“MessageStat”中读取消息的方法读取对应的消息,并响应。

5.3.3 通信的实现

为避免在更新数据的时候刷新整个页面,在浏览器端使用XMLHttpRequest对象发送请求并获得返回值。实现与服务器端的隐藏页面之间的数据交互。

浏览器端核心通信代码如图5-10所示:

图5-10 浏览器端使用XMLHttpRequest对象发送请求

如图5-10所示,实例化一个XMLHttpRequest对象,使用open方法准备好对服务器端隐藏页面的请求信息,由send方法发送并获取服务器的响应。此处要做的是从服务器端检索数据,故而设置发送消息的方式为“get”,将通信编码和通信的内容放到URL中,采用QueryString参数的形式发送。形参str为需要发送的消息,形参cmd为通信编码,当浏览器端需要发送或读取消息时调用该方法。再使用setTimeout方法即可实现在不刷新整个页面的前提下,定时更新数据。

当服务器接受到消息后,使用ASP.NET的内置对象Request获取QueryString参数内由浏览器发出的编码和消息。判断其编码获知浏览器端想要做什么,读取其消息内容获得具体参数,准备好要作出的响应体后,通过Response.Write发回响应体。为方便对响应信息的处理,响应的格式设置为无格式正文“text/plain”。

2

5.4 对弈系统设计。

对弈系统只要包括以下几个模块:

1) 初始摆盘模块。

2) 走棋模块。

3) 悔棋模块。

4) 胜负判断模块。

5.4.1 走棋模块。

用户“走棋”的过程如图5-11所示:

3

图5-11 “走棋”过程示意图

如图5-11所示,轮到用户A走棋,当用户A点选棋子时,记录下棋子的坐标,即走棋信息的起始坐标。当用户再次点击单元格时,记录目的坐标,并将起始坐标和目的坐标作为走棋信息发送到服务器,由服务器依据走棋信息进行规则判断。如果违反走棋规则,则让用户A重新走棋。如果走棋符合规则,则允许用户A走棋,并在逻辑棋盘上将目的坐标对应的棋子编码改为起始坐标对应的棋子编码,再将起始坐标对应的棋子编码修改为-1,即没有棋子。这样就更新了逻辑棋盘。之后再将走棋信息写入Application中,供用户B读取,当用户B读取到走棋信息后,再根据走棋信息移动棋子。

5.4.2 悔棋模块

悔棋是本系统所需实现的基本功能,要实现“悔棋”的功能,需要先记录用户的走棋信息。当轮到对方走棋时,悔棋按钮为可点击状态,反之则不可点击。点击悔棋按钮后,从原先记录的最后一步走棋信息中读取数据并进行逆向操作以达到悔棋的目的。悔棋操作的总体思路如下:

1) 将记录中的目的坐标和初始坐标互换并移动棋子。

2) 将记录中被吃掉的棋子编码取出,并在记录的目的地址处生成一个对应该编码的

棋子。

3) 悔棋后将由悔棋方走棋。

4) 悔棋之后需将原本记录的信息清空,不支持连续悔多步棋。当记录为空时,悔棋

按钮为不可点击状态。

5.4.3“死棋”和“将军”的判断。

1) 总体判断流程流程。

在任一用户走棋时,判断其走棋是否符合走棋规则,如果不符合则让用户重新走棋。如果符合走棋规则,继续做死期和将军的判断。总体实现的思路如图5-12所

4

示:

图5-12 “死棋”和“将军”判断的总体实现思路

如图5-12所示,当走棋规则判断通过时,才需要进行“死期”和“将军”的判断。死期的判断只需看是否能获得到对方帅(将)的位置即可。如果 “死期”,对弈直接结束,不需要继续判断是否“将军”。如果未死期,则传入获取到的对方帅(将)的坐标,进行“将军的判断”。

2) 获取对方“帅(将)”坐标的方法。

获取对方“帅(将)”坐标,可方便“死棋”和“将军”的判断,获取流程如图5-13所示:

5


山东省象棋网
由:免费论文网互联网用户整理提供,链接地址:
http://m.csmayi.cn/meiwen/32256.html
转载请保留,谢谢!
相关阅读
最近更新
推荐专题