当前位置:文档之家› 计算机中国象棋网络对弈软件毕业设计

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

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

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

摘要

中国象棋网络版是一款可以实现多人同时在线的网络对弈象棋软件。

中国象棋网络版采用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.1J AVA简介 (2)

2.2J AVA图形技术 (2)

2.3J AVA事件响应技术 (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的操作系统。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

2.Java和网络套接字技术

2.1 Java简介

Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。

Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java 应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.5,最近版本为Java1.7。

Java分为三个体系JavaSE(Java2 Platform Standard Edition,java 平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。本软件采用的是JavaSE。

Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。

2.2 Java图形技术

Java是面向对象的语言,运用Java开发图形界面相当便捷,Java提供了JFrame、JPanel、JButton、JLabel等窗口和组件。Java采用了触发更新的方式更新界面,如果我们需要在界面上添加上自己的图形则只需要重写paint方法。

AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java 提供的用来建立和设置Java的图形用户界面的基本工具。AWT由Java中的java.awt包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类又被称为组件(components)。

抽象窗口工具包(Abstract Windowing Toolkit) (AWT)是Java的平

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊台独立的窗口系统,图形和用户界面器件工具包。AWT是Java基础类 (JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API。

AWT提供了Java Applet和Java Application中可用的用户图形界面GUI中的基本组件(components)。由于Java是一种独立于平台的程序设计语言,但GUI却往往是依赖于特定平台的,Java采用了相应的技术使得AWT能提供给应用程序独立于机器平台的接口,这保证了同一程序的GUI在不同机器上运行具有类似的外观(不一定完全一致)。

Java1.0的AWT(旧AWT)和Java1.1以后的AWT(新AWT)有着很大的区别,新的AWT克服了旧AWT的很多缺点,在设计上有较大改进,使用也更方便,这里主要介绍新的AWT, 但在Java1.1及以后版本中旧的AWT的程序也可运行。

抽象窗口工具包AWT (Abstract Window Toolkit) 是 API为Java 程序提供的建立图形用户界面GUI (Graphics User Interface)工具集,AWT可用于Java的applet和applications中。它支持图形用户界面编程的功能包括:用户界面组件;事件处理模型;图形和图像工具,包括形状、颜色和字体类;布局管理器,可以进行灵活的窗口布局而与特定窗口的尺寸和屏幕分辨率无关;数据传送类,可以通过本地平台的剪贴板来进行剪切和粘贴。

Java释出的时候,AWT作为Java最弱的组件受到不小的批评。最根本的缺点是AWT在原生的用户界面之上仅提供了一个非常薄的抽象层。例如,生成一个AWT的复选框会导致AWT直接调用下层原生例程来生成一个复选框。不幸的是,一个Windows平台上的复选框同MacOS平台或者各种UNIX 风格平台上的复选框并不是那么相同。

这种糟糕的设计选择使得那些拥护Java“一次编写,到处运行(write once, run anywhere)”信条的程序员们过得并不舒畅,因为AWT并不能保证他们的应用在各种平台上表现得有多相似。一个AWT应用可能在Windows 上表现很好可是到了Macintosh上几乎不能使用,或者正好相反。在90年代,程序员中流传着一个笑话:Java的真正信条是“一次编写,到处测试(write once, test everywhere)”。导致这种糟糕局面的一个可能原因据说是AWT从概念产生到完成实现只用了一个月。

在第二版的Java开发包中,AWT的器件很大程度上被Swing工具包替代。Swing通过自己绘制器件而避免了AWT的种种弊端:Swing调用本地图形子系统中的底层例程,而不是依赖操作系统的高层用户界面模块。

Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing 开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊2.3 Java事件响应技术

Java事件响应技术采用监听事件产生组件的事件产生来响应事件。

2.3.1鼠标事件响应

鼠标操作可以产生ActionEvent,MouseEvent,MouseWheelEvent事件,我们可以创建一个继承ActionListener接口的MyActionListener类用来监听鼠标产生的ActionEvent事件,在MyActionListener中重写actionPerformed方法,在此方法中可以加入当鼠标产生ActionEvent事件时的响应操作,我们通过创建另一个继承MouseListener接口的MyMouseListener类用来监听鼠标产生的MouseEvent,在MyMouseListener中重写mouseClicked方法,在此方法中可以加入鼠标产生MouseEvent事件时的响应操作。

2.3.2键盘事件响应

键盘操作可以产生KeyEvent事件,我们可以创建一个继承KeyListener接口的MyKeyListener类用来监听键盘产生的KeyEvent事件,在MyKeyListener 中重写keyPressed方法,在此方法中可以加入键盘产生KeyEvent事件时的相应操作。

2.4 网络网络通信技术

2.4.1 TCP

TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。

TCP是TCP/IP体系中非常复杂的一个协议,TCP的最主要的特点有:

1)TCP是面向连接的运输层协议。

2)每一条TCP连接只能有两个端点,每一条连接只能是点对点的。

3)TCP提供可靠交付的服务。

4)TCP提供全双工通信。

5)面向字节流。

2.4.2 UDP

UDP 是User Datagram Protocol的简称,中文名是用户数据包协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。它是IETF RFC 768是UDP的正式规范。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

用户数据报协议UDP只在IP的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及差错检测的功能。UDP的主要特点是:

1)UDP是无连接的,即发送数据之前不需要建立连接,因此减少了开

销和发送数据之前的时延。

2)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维

持复杂的连接状态表。

3)UDP是面向报文的。

2.4.3 Socket

socket的英文原义是“孔”或“插座”。作为4BDS UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。所谓socket通常也称作"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

如何使用Socket开发一个Server-Client模型的程序。

服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。

客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。客户端不需要指定打开的端口,通常临时的、动态的分配一个1024以上的端口。

Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket 也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。

2.4.4 Java实现

Java提供了灵活方便的类实现Socket通信,https://www.doczj.com/doc/57676573.html,包中拥有丰富的API,与TCP和UDP相关的有。

InetAddress:用来封装IP地址的类。

ServerSocket:用来产生服务器套接字实例的类。

Socket;用来产生客户端套接字实例的类。

DatagramPacket:用来产生数据包实例的类。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊DatagramSocket:用来实现UDP套接字的类。

另外java.io提供了InputStream和OutputStream虚类实现对字节流操作的封装。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

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

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

本软件要实现多用户在线弈棋,所以采用C/S架构,服务器端和客户端分别完成各自的功能。

服务器需要实现登录注册和弈棋通信两大功能模块,提供登录、注册、数据转发、在线用户数据维护、建立弈棋等服务功能。将服务器分为两大模块是因为这两个模块可以完全分离,互不影响,独立运行,保证了登录模块出现异常不会影响到已在线用户的用户体验,提高了服务器的可用性。

客户端需要实现登录、注册、弈棋、用户列表、实时交流和棋局状态记录显示六大功能,需要设计登录、注册、弈棋、用户列表维护、实时交流、棋局状态记录显示、登录注册和弈棋通信八大模块。

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

3.2.1通信协议选择

经架构分析将登录注册模块与弈棋的通信模块分开设计,又根据两个模块对网络通信可靠性和即时性要求不同,所以设计登录模块的网络层通信协议为UDP 协议,弈棋通信模块的网络层通信协议为TCP协议。

效率分析:

UDP协议是无连接、不需要包检测和重传机制的,优点是网络通信效率高。而TCP协议是面向连接的,需经过三次握手,拥有包检测和重传机制,保证了数据完整和正确性,优点是可靠。

登录注册模块需要提供一个高效但不一定可靠的响应,即该模块允许在通信过程中丢包。每一次登录注册请求与响应只产生一个往返的数据报,UDP协议的无连接特性保证的数据通信的高效性。面对恶意登录请求,如果选择TCP协议,大量的建立连接会占用过多的系统资源,产生很高的服务器负载,影响服务质量,降低客户的用户体验。所以登录注册模块选择UDP协议可以带来一个高效益的服务响应。

弈棋通信模块需要给客户提供一个高可靠性和稳定性的连接,即不允许在通信过程中发生数据丢失而不处理的事件。如果采用UDP协议需要在服务器应用中添加包检测与重传功能,增加了服务器负载。且弈棋通信是一个较长的数据通信过程,使用UDP协议并不能很大提供数据通信效率,而TCP协议很好的提供了包检测和重传机制,保证了数据通信的高可靠性和稳定性。

服务器与客户端的典型数据通信与处理流程图如图3.1。

┊┊┊┊┊┊┊┊┊┊

┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

图3.1 服务器与客户端网络通信流程图服务器端

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊3.2.2数据类型分析

要实现在线对弈,就需要有数据的交互,根据预设的功能需要最基础的就有登录、登出、棋子移动、聊天等数据的通信,还有其它一些如:棋子的选择、用户列表更新、棋谱的传输等数据通信。如果不加分类很容易产生混乱,所以根据数据所属的不同模块将这些数据进行分类。

数据传输方式以“UTF-8”字符编码明文传输,其消息字符串message中的第一个字符为系统消息,将第一个字符char的2个字节16bit分为4级消息

char&0xf00 char&0xf

符号位第二级消息第四级消息

将此字符进行位移运算分离各级消息

第一级消息第三级消息

char&0xf000 char&0xf0

关于棋盘的消息格式为:4字节字符串,前2个字节表示系统消息,后2个字节表示用户操作消息:

X坐标 y坐标

源x坐标源y

坐标目的x坐标目的y坐标

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

用户积分用户状态 8-16个

";"为分隔符,分割

每个用户的信息多个

服务器发送给旁观者的棋盘状态是一个由24个字符组成的字符串:第一个字符为系统消息

其余23个字符分别携带棋盘上的90个位置的棋子状态

其中空子位为0

1-7代表黑方棋子:1 车 8-14代表红方棋子:8 车

2 马 9 马

3 象 10 相

4 士 11 仕

5 将 12 帅

6 炮 13 炮

7 兵 14 卒

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊3.2.3数据格式设计

根据3.2.2节中对数据格式的分析,设计出系统消息格式(详见表3.1)。给不同的功能模块设计不同的系统命令(如表3.1中Chessboard中第一级命令格式为CHESSBOARDPANE 0x1000/0001,其中0x1000表示此命令的十六进制数值,0001表示为此命令的部分二进制数值,CHESSBORADPANE表示此命令所实现的消息内容)。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊3.2.4数据通信与处理伪码示例

数据通信格式为系统命令类型+消息数据。

此伪码示例简要的阐述了从登录到弈棋的数据通信与处理过程。

Begin:

第一步(登录):

Client (Login): send UDP packet(登录消息+用户名+密码)

Server (Login and Register Thread): 接收Client的UDP包,解析数据内容为 command + message

if(command == 登录消息)

查询数据库中此用户名的密码

if(无此用户或密码不一致)

send UDP packet(登录失败)

else 将用户名经MD5加密

send UDP packet(登录成功+MD5加密后的密匙)

else if(command == 注册消息)

if(数据库中有此用户)

send UDP packet(注册失败)

else send UDP packet(注册成功)

else 错误消息类型,丢弃

Client(Login):接收Server的UDP响应包,解析数据内容为command +

message

if(command==登录成功) goto 第二步

else 登录失败 goto 第一步

第二步(连接弈棋服务器):

Client(UserList):send TCP request(连接服务器+用户名+密匙)

Server(ChessRoom Thread):接收Client的TCP连接,解析数据内容为

command + message

将用户名进行MD5加密生成密匙

if(客户端密匙==服务器端密匙)

send TCP packet(登录成功)

添加用户到usermanage中

生成用户交互监听进程

查询数据库用户数据

send TCP packet to全体在线用户(用户列表更新+新上

线用户信息)

send TCP packet to当前用户(用户列表初始化+全体在

线用户信息)

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

else send TCP packet(登录失败)

Client(UserList):接收Server的TCP响应包,解析数据内容为command

+ message

if(command==登录成功)

接收Server的用户列表初始化信息,初始化用户列表

goto第三步

else goto 第一步

第三步(邀请弈棋):

Client1(Userlist):send TCP request(邀请弈棋+Client2用户名) Server(ChessRoom Thread): 接收Client的TCP连接,解析数据内容为command + message

if(Client2已经被邀请或正在弈棋) send(拒绝邀请)

else send to Client2(邀请弈棋+Client1用户名)

Client2(Userlist):接收Server的TCP包,解析数据内容为command + message

if(同意Client1的弈棋邀请)

send(接收邀请)

else send(拒绝邀请)

goto第三步

Server(ChessRoom Thread): 接收Client的TCP连接,解析数据内容为command + message

if(command == 同意邀请)

send to Client1(接受邀请)

生成一个ChessDesk实例管理整个弈棋过程

send to Client1 Client2(开始弈棋+执子颜色)

send to全体用户(用户列表更新+Client1 Client2用户状态改变)

goto 第四步

else send to Client1(拒绝邀请)

Client1(Userlist):接收Server的TCP包,解析数据内容为command

+ message

if(command==接收邀请)

接收Server的TCP包,初始化棋盘,更新用户列表

goto第四步

else goto 第三步

Client2(Userlist):接收Server的TCP包,初始化棋盘,更新用户列

goto 第四步

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊第四步(弈棋过程):

ClientRedOrBlack (ChessBoard):send (选中棋子+棋子坐标) ClientRedOrBlack (ChessBoard):send (移动棋子+棋子坐标)

ClientRedOrBlack (ChessBoard):send (棋局结束) goto 第三步

Server(ChessDesk): 接收ClientOneColor的TCP包,解析数据内容为command + message

Switch(command)

case 选中棋子:send to ClientOtherColor(选中棋子+

棋子坐标)

case 移动棋子:send to ClientOtherColor (移动棋子+

棋子坐标)

记录当前棋盘状态

case 棋局结束:send to ClientOtherColor (棋局结束)

结束ChessDesk生命周期

goto第五步

ClientRedOrBlack (ChessBoard): 接收Server的TCP包,解析数据内

容为command + message Switch(command)

case 选中棋子:选中棋子

case 移动棋子:移动棋子

case 棋局结束:棋局结束 goto 第三步

第五步(用户数据更新):

Server(ChessRoom):

处理积分信息,更新数据库

send to全体在线用户(用户列表更新+用户状态改变)Client(Userlist): 接收Server的TCP包,解析数据内容为command +

message

更新用户列表

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

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

4.1客户端基础架构

客户端架构设计如图4.1。

图4.1客户端架构图

4.2客户端GUI设计

客户端GUI需求分析和效果展示。

4.2.1弈棋主面板

该面板要实现弈棋的主要功能:显示棋盘、选择棋子、移动棋子实现后的效果如图4.2。

图4.2 弈棋主面板

国际象棋谢军坦言跟电脑下棋没感觉

国际象棋谢军坦言跟电脑下棋没感觉 下面给你介绍国际象棋(Chess),又称西洋棋,是一种二人对弈的棋类游戏,棋盘由64个黑白相间的格子组成,每方16个棋子,欢迎阅读。 国际象棋女子国际特级大师谢军简介国际象棋女子国际特级大师。 北京棋院院长、北京西城区教委副主任、首都体育学院副院长。 她1991、1993、1999、2000年四次获得女子国际象棋世界冠军。 1998、2000、2004年在国际象棋奥林匹克团体赛中与队友合作获得女子团体世界冠军。 1991、1992、1994年三次获年度"全国十佳运动员"称号。 1998年出版有自传《下棋的女人》。 1980年获北京市儿童中国象棋冠军。 1982年获北京市第六届运动会成人组国际象棋比赛冠军。 1984、1985年,获得两届国际象棋全国少年冠军和成年组第6名。 1998年,首次夺得全国女子个人赛冠军,在全国青年赛(男女混合编组)中亦名列榜首。 1990年在国际象棋女子世界冠军赛的分区赛,区际赛和候选人赛三阶段中,分别夺得第一名,第二名和第一名。 1991年2月与南斯拉夫国际特级大师艾丽萨·马里奇在北京争夺挑战权,结果以3胜3和1负的优势将马里奇淘汰。 1991年秋,在菲律宾首都马尼拉与保持世界冠军头衔达13年之久

的格鲁吉亚棋手齐布尔达尼泽的比赛中,以4胜2负9和积8.5分的总成绩获胜,成为中国第一个女子国际象棋世界冠军。 也是国际象棋史上第一位欧洲以外的国际象棋女子世界冠军。 1993年10月24日-11月17日,在摩纳哥的蒙特卡洛城与格鲁吉亚选手娜娜.约谢莉阿妮的比赛中,以8.5:2.5的绝对优势卫冕成功,这是继1962年世界冠军加普林达什维利以9:2战胜挑战者贝科娃后,在世界女子冠军争夺战中出现的第2个好成绩。 1996年2月20日,在西班牙哈恩举行的国际象棋女子世界冠军赛上,以2胜5和6败的成绩负于匈牙利选手苏珊·波尔加,卫冕失败。 1997年12月,参加女子国际象棋世界冠军赛,获争夺世界冠军挑战权资格。 1998年8月,参加女子国际象棋冠军挑战者资格赛,因对手弃权,获得向上届冠军挑战资格。 1998年10月,代表中国队参加国际象棋奥林匹克团体赛,与队友合作,以29分的成绩获得女子组冠军,夺得"国际维拉.明契克流动奖杯"。 这是我国第一次获得此项赛事冠军。 1999年7月,在中国沈阳及俄罗斯喀山举行的世界冠军对抗赛中,以8.5:6.5的比分战胜俄罗斯选手加利亚莫娃,夺回女子个人世界冠军。 2000年10月,在土耳其举办的国际象棋奥林匹克团体赛中与队友合作,卫冕女子团体世界冠军。

象棋游戏毕业设计

智能中国象棋系统的设计与实现 摘要 人工智能(AI)中国象棋系统是将计算机知识和中国象棋知识结合起来的一种新型的游戏方式。智能中国象棋系统在此基础上实现人与机器的对弈,突破了以往传统象棋游戏只能人与人对战的限制,使中国象棋这一古老的游戏形式焕发出蓬勃朝气。 本文结合在中国象棋机器博弈方面的实践经验,在分析了中国象棋游戏需求基础上,设计并实现了智能中国象棋系统。该系统包括人人对战、人机对战、制作棋谱、播放棋谱以及挑战英雄榜等功能模块。人人对战规则明确,包含了中国象棋所有的着法;人机对战中电脑棋力分为简单、中等、困难三个等级,方便了不同水平人群的选择;制作和播放棋谱模块容易操作,方便学习;挑战英雄榜则为象棋游戏增加了乐趣。 本系统的实现满足了人们对中国象棋的基本需求,解决了传统象棋游戏学习性差、棋谱不易保存、不易演示等问题。 关键词:计算机博弈,中国象棋,人机对战,制作棋谱,搜索算法

Intelligent Chinese Chess System Design and Implementation Abstract Artificial Intelligence (AI) Chinese Chess System is a new games’ way which combines with computer knowledge and Chinese Chess knowledge.Intelligent Chinese Chess System on the basis of it which completes the game between human and computer , breaking the traditional chess game’s restriction that only can play against people. So that the ancient game of Chinese chess become prosperity . With the practical experience in Chinese chess computer game,a detailed analysis and research has been done .Based on those, I designed and implemented the Intelligent Chinese Chess System .This system includes the game against human ,the gme between computer and human ,make chess manual ,play chess manual and hero list functions .The game against human function has all the Chinese Chess rules and they are very clear.In the game between computer and human function ,computer thinking depth is divided into simple,medium and difficulty.It facilitate the choice of different levels. Making and playing chess manual fuctions are easy to operating and learning. Hero list fuction adds much fun to chess game. This system satisfied the basic demand of people to Chinese chess and solved the studying hard and the theoretical is not easy to making and playing of the traditional chess game. Key Words:Computer Game, Chinese Chess,Game between Human and Computer, Make Chess Manual, Search Tecniques

2018《计算机网络技术》专业毕业设计的具体要求

计算机网络技术专业 毕业设计的具体要求 毕业设计(论文)是“计算机网络技术”专业教学计划的最后一个也是最重要的一个实践环节。通过毕业设计(论文),使学生对所获得的知识和技能,进行一次独立的、综合的运用,探索和解决计算机网络实际问题的能力,同时增强独立分析问题和解决问题的能力。在毕业设计过程中使其对原有知识系统化,达到能系统理解,综合掌握并进一步扩展知识的目的。 一、毕业设计(论文)的选题 毕业设计(论文)题目选择应遵循以下原则: 1.符合专业培养目标要求,符合教学要求,有利于巩固、深化所学的知识,有利于得到全面的综合训练和解决实际问题能力的培养。 2.选题应符合所学专业方向,应涵盖本专业三门以上专业课或专业基础课所涉及的知识范围。 3.选题要充分体现先进性、典型性,要有利于深化和拓展所学知识,尽量使用较为先进的技术手段完成,尽量与当前实际的应用水平接轨。 4.设计工作要有一定的编程量要求,以保证有明确的工作成果。 5.选题难易适度,具有一定的深度与广度,基本原则是经过努力能够完成,并能较好的发挥自己创造才能。 6.选题原则上一人一题,结合较大型任务的课题,每个学生必须有毕业设计的独立子课题。 7.本次毕业设计(论文)的题目大致分为四类:中小型企业网站设计与开发、中小型企业网络管理与维护、中小型企业网络安全设计、园区网络综合布线系统设计。学生可在教师给定的参考题目(见后文)中选题,也可结合自身专业爱好及学习专长在规定范围内自由选题。 二、毕业设计内容要求 1.毕业设计的选题应符合“计算机网络技术”专业业务范围和知识结构的基本要求既要结合本单位或本人从事的工作,又要有明确的实际背景和应用。 2.毕业论文除具备上述条件外,其内容要紧密结合当前国家经济发展或最新科技术情况做到既要有理论与方法的研究,又要有应用前景。 3.毕业论文内容要翔实、论点要正确,避免空洞无物,脱离实际或抄袭他人之作。 4.毕业设计(论文)一定不要脱离“网络”而存在。 三、毕业设计(论文)的成果形式及要求 毕业论文应采用中文撰写;一般由七部分组成,依次为:①封面、②中文摘要、英文摘要③关键词、④目录、⑤正文、⑥感谢、⑦参考文献、⑧附录,具体要求见学院网站“电气工程系”主页的“资料下载”专区“毕业论文格式及交件要求”。 补充: (1) 可将论文题目、作者、中文摘要与关键词翻译成英文附于论文后面。

中国象棋-游戏规则

棋盘和棋子 象棋是棋子共三十二个,分为红黑两组,各十六个,由对弈双方各执一组,兵种是一样的,分为七种: 红方:帅、仕、相、车、马、炮、兵 黑方:将、士、象、车、马、炮、卒 其中帅与将、仕与士、相与象、兵与卒的作用完全相同,仅仅是为了区分红棋和黑棋。 棋子活动的场所,叫做"棋盘",在长方形的平面上,绘有九条平行的竖线和十条平行的横线相交组成,共九十个交叉点,棋子就摆在这些交叉点上。中间第五、第六两横线之间未画竖线的空白地带,称为"河界",整个棋盘就以"河界"分为相等的两部分;两方将帅坐镇、画"米"字方格的地方,叫做"九宫"。 将或帅 移动范围:它只能在王宫内移动。 移动规则:它每一步只可以水平或垂直移动一点。 士 移动范围:它只能在王宫内移动。 移动规则:它每一步只可以沿对角线方向移动一点。 象 移动范围:河界的一侧。 移动规则:它每一步只可以沿对角线方向移动两点,另外,在移动的过程中不能够穿越障碍。 马 移动范围:任何位置

移动规则:每一步只可以水平或垂直移动一点,再按对角线方面向左或者右移动。另外,在移动的过程中不能够穿越障碍。 车 移动范围:任何位置 移动规则:可以水平或垂直方向移动任意个无阻碍的点。 炮 移动范围:任何位置 移动规则:移动起来和车很相似,但它必须跳过一个棋子来吃掉对方的一个棋子。 兵 移动范围:任何位置 移动规则:每步只能向前移动一点。过河以后,它便增加了向左右移动的能力,兵不允许向后移动。 胜、负、和 对局中,出现下列情况之一,本方算输,对方赢: 帅(将)被对方"将死",即被对方将军却无法应将; 自己宣布认输; 走棋超时; 走棋时循环反复向对方将军三次,违反"不得将三将"的规定。 出现以下情况,算和局: 一方提议作和,对方同意; 双方走棋出现循环反复达三次,符合"不变作和"的规定,双方又不愿变着时。

中国象棋需求与设计方案

中国象棋需求与设计方案 (WORD版完整可编辑,需更多资料请联系) 一、系统概述 1.1 软件用途 提供了一个PC端的中国象棋游戏。同时发布了GUI版与CLI版。其中CLI 版为象棋AI部分开发过程中用作测试。但已经具有完整的人机对弈功能与相对友好的界面。考虑到有些用户可能相对GUI更偏向命令行操作方式,因此与GUI 版本一起发布。 CLI版本只有人机对弈功能,默认黑方(AI)先走。AI原理与GUI版相同,以下文档只对GUI版作出说明。如无特殊说明, 提到”软件”时,所指均为GUI版本。 软件具有两种模式,双人对弈与人机对弈。 若选择双人对弈, 因为此版本暂未开发联机对弈功能, 只能双人共用一台PC,红方先走,黑方后走,有一方被将死,即无棋可走时,电脑会自动判定胜负。 若选择人机对弈,默认用户执红子,AI执黑子。软件可自动判定胜负。 软件在ubuntu 13。04、windows7、windowsXP平台下测试性能良好。 此版本未实现的功能:长将判负。即假定红方只剩5个兵与一个将,且全部过河。黑方只剩一个将与一个车。则黑方基本不可能将死红方。但红方必定可在有限步之后将死黑方。则黑方为自保,最优策略是每一步都用车将红方的军,但无法将其将死。此时游戏会陷入循环。在正式象棋比赛中,任何情况下,长将判负。 考虑到主要是面向人机对弈, 和棋功能无意义, 亦未开发。 此AI与软件作者对弈,目前AI保持不败战绩。与其他测试者对弈,也是胜多败少。与作者ipad上的象棋app对弈,互有胜负,但软件AI胜少败多

游戏截图: 进场画面: 游戏界面:

1.2游戏特色 最大可达可接受时间内7层搜索深度,AI具有较高棋力。游戏固定权值与棋盘位置分值相结合的评估函数。基于alpha-beta搜索,走法排序后PVS搜索策略。 1.3 系统开发过程 软件作者为吕文龙与高楠。吕文龙负责开发系统的AI部分,即局面表示,走法生成,局面评估,Alpha-Beta搜索,搜索策略优化。高楠负责系统GUI的设计与实现。部分GUI设计吕文龙亦有参与。

中国象棋对弈软件的设计【2014java版本】

中国象棋对弈软件的设计 姓名 学科专业 指导老师

中国象棋对弈软件的设计 摘要:随着人工智能及计算机硬件的发展,计算机象棋程序的下棋水平也不断地得到提高。20世纪60年代初,麦卡锡提出了alpha-beta修剪算法,把为决定下 一个走步而需对棋盘状态空间的搜索量从指数级减少为指数的平方根,大大 地提高了机器下棋的水平。IBM的超级计算机“Deep Blue”更是一个神话, 让棋迷们神往。本文根据国际象棋程序设计的一些成功经验,提出中国象棋 程序设计的一些思路和方法。 关键词:中国象棋,位棋盘,Zobrist键值,alpha-beta搜索,置换表,局面评价Abstract:Along with the development of the Artificial Intelligence and computer hardware, the capability of computer chess program have advanced continually.At the beginning of 60s,20th century, McCaxi brought forword alpha-beta pruning algorism which made the chess program advanced more by reducing the order of magnitude of the number of searching nodes deciding next step,named ―State Space‖ from O(X n) to O(X n/2). IBM’s super-computer ―Deep Blue‖ is more like a myth for all computer chess fans. In my article, I will describe some ideas and methods of designing Chinese Chess program along with some successful experiences and cases of the Chess. Keywords: Chinese Chess, bit board, zobrist keys, alpha-beta search, transposition table, Evaluation

基于java语言的中国象棋设计与实现

题目:基于JA V A语言的中国象棋设计与实现

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

【摘要】 电脑在中国象棋上的运用还刚刚起步,尽管国内涌现出一大批中国象棋的专业网站和专业软件,但是由于缺乏必要的基础工作,电脑技术在中国象棋上的应用优势还无法体现出来,随着人工智能及计算机硬件的发展,计算机象棋程序的水平也不断地得到提高。 本文通过研究中国象棋的国内外研究现状、分析中国象棋的需求和用JA V A 语言设计中国象棋程序的可行性,同时根据国际象棋程序设计的一些成功经验,主要借鉴了位棋盘、Zobrist键值等,针对中国象棋程序设计的一系列问题,总结出一些中国象棋程序的设计方法。根据该方法设计出了符合中国象棋行棋和吃子规则,能够判断胜负,能够实现悔棋、重新开始等多种功能,而且界面十分美观的中国象棋程序,并给出了JA V A语言的实现方法。 关键词:中国象棋,位棋盘,Zobrist键值,着发生成

中国象棋教程

如何学习训练象棋技术 关于如何下好象棋----节选自《弈林新编》(杨官璘编著) 象棋是一种充满挑战的艺术,可以训练思考能力,因而广受大众喜爱.随着我国文化体育的发展,棋艺水准也不断地提高.但是,对一个象棋爱好者或者棋手来说,怎样才能在短期内提高棋艺呢?这就成为许多象棋爱好者深感兴趣的课题,这里谈谈我个人的一些看法,供大家参考. 第一节研究象棋的主项与副项 象棋艺术,大致上可以分为全盘对弈、让子局对弈、布局、中局、实用残局、排局等项目.在这些项目中,研究的时候应该以那一项为主呢? 以住,有些人专门以双傌来取胜棋艺较差的,并且把让双傌局当成秘诀.因此,在这些人看来,让双傌局是他们研究的主要对象.又有些人喜欢研究排局,很少下全盘对弈,认为排局的杀法比全盘对弈的杀法还要精采,于是排局就成为这些人的主要研究对象.但是,象棋比赛是以全盘对弈为准则的,大多数的象棋爱好者,都是以提高全盘的功力为目标.所以,研究全盘对弈,应作为主要的项目(以下简称「主项」),其余则可称为辅助项目(简称副项).主项与副项的关系如何呢?总的说来,一个棋手必须具备全盘对弈功力,然而全盘对弈功力是由多种因素构成的.让子对弈、布局构思、中局对杀、残局运筹以及排局研究等等,都是提高全盘功力所不可缺少的.以排局来说,它的形势是实战所不能弈成的,但是它那些运子取势和解杀还杀的技巧,对于实战有参考价值.例如以「七星聚会」排局来说,通过研究,可以学习兵和车卒的互相牵制的技巧,也能充实全盘对弈的功力. 关于让双傌对弈,多数是高低手的对弈.让方因为少双傌需要采取快速的进攻和避免同等的兑子.被让方则相反,主要是先守后攻和巧妙地兑子,或者以持久战来造成多子的优势.总之,这种对弈的战略战术,可以给全盘对弈作为参考.尤其是在全盘对弈中兑去双傌的,如果熟悉双双傌局的,对于双车双炮的运,总有帮助. 在提高全盘对弈功力的过程中,常常会在某一方面出现主要薄弱环节,影响到全盘对弈功力的提升.因此,如何克服这个薄弱环节,也就成为棋手在某个阶段研究的主要问题.克服了这个薄弱环节,全盘对弈的功力就能提高一步.克服一个薄弱环节,可能又出现另一个薄弱环节,棋手要及时发现它,并努力克服.全盘对弈的功力就是在不断克服薄弱环节的过程中提高的. 全盘对弈大致分为布局、中局、残局等三个阶段,一般来说,这些参考资料都可以在棋书里找到,尤其是布局和实用残局更多.关于实用残局,特别是例杀例和的残局,基本上都是棋手们从实践中归纳出来的经验,而且有许多局势己成定式.研究的时候,可以反覆推敲,从而加深印象,记住基本的变化.同时,还要理解它的要领,即胜或和的关键所在.换句话说,既要知其然,还要知其所以然,才能有利于触类旁通. 研究布局,当然也可以参考棋谱里的资料,但布局和实用残局不同,随着时代的演进,象棋的布局也在不断地发展.目前的各种布局,已经比过去有了很大的进步,有些布局在以往看来,是「先进」的,但现在便不一定了. 对弈时采取何种布局,常常因人而异.不同的对手采取不同的布局,即使是同一对手,也不宜一成不变.在上次对中,这种布局取得了优势,在下次对弈时再采取这种布局,就不一定能占优势,因为对方也在研究对策.所以,没有什么绝对「先进」的布局.各种布局的优劣都是相对的,因时因人而起变化的.但是,并不能因此而不去研究前人和别人的布局,只是在研究的时候,要着眼于创新,分析运子的度数是否严密,有无迁就的着法,结合自己的实践,注意能否符合实战的问题.

中国象棋对弈程序

中国象棋对弈程序 【摘要】:人机博弈是人工智能研究的经典课题之一。凭借设计优良的算法和计算机的快速运算能力,计算机可以在人机对弈中表现出相当高的“智能”。通常,一款象棋程序的实现可以被分为下棋引擎(人工智能)和外壳(界面及程序辅助)两大部分。本文将介绍如何实现一款中国象棋对弈程序。 【关键词】:中国象棋;人工智能;博弈树;Alpha-Beta搜索;历史启发;界面;多线程;计时器;列表框;MFC。 [Abstract]: Man-machine Game is a classic topic in Artificial Intelligence. Relying on fine-designed algorithms and the fast operation ability, computers can display high "intelligence" in playing chess. Usually, the realization of a chess program can be decomposed into two major parts: the Chess Engine (Artificial Intelligence) and the Shell (User Interface & Program Assist). This paper will introduce how to realize a Chinese Chess program. [Key words]: Chinese Chess; Artificial Intelligence (AI); Game Tree; Alpha-Beta Search; History Heuristic; User Interface; Multithreaded; Timer; List Box; MFC. 一、前言 我们的目标是实现一款有着一定下棋水平且交互友好的中国象棋人机对弈程序。 该程序功能包括: *人机对弈; *盲棋模式; (注:此功能为创新功能) *搜索深度设定; (电脑棋力选择) *棋子、棋盘样式选择; *悔棋、还原; *着法名称显示; *下棋双方计时; 整个程序的实现可分为两大部分: 一、人工智能部分(计算机下棋引擎) 该部分实现了如何让计算机下中国象棋,其中涉及人机博弈的基本理论及思想,是该程序的核心部分,同时也是本项目研究的重点所在。 二、界面及程序辅助部分 光有下棋引擎尚不能满足人机交互的基本要求,因此我们还需要一个框架(界面)来作为引擎的载体,同时提供一些诸如悔棋,计时之类的附属功能(程序辅助)来为程序增色添彩。 下面分别介绍各部分实现。由于界面及程序辅助部分涉及内容宽泛而又繁琐,因而本文只介绍其中重点部分以及我们在开发过程中曾经遇到过困难的地方。

基于Android的中国象棋毕业设计

基于Android的中国象棋 毕业设计 目录 1 绪论 (1) 1.1 中国象棋的背景介绍 (1) 1.1.1 中国象棋的历史起源 (1) 1.1.2 中国象棋的发展现状与前景 (1) 1.2 Android操作系统简介 (2) 1.2.1 Android操作系统背景 (2) 1.2.2 Android系统的优势与弊端 (3) 1.2.3 Android操作系统的现状与发展前景 (4) 2 Android系统的架构与开发环境 (6) 2.1 Android的体系结构 (6) 2.2 Android的四大组件 (8) 2.3 Android开发环境的搭建 (9) 2.3.1 Java JDK的安装 (9) 2.3.2 eclipse的下载与使用 (9) 2.3.3 Android开发工具的安装 (9) 2.3.4 Android工程的建立 (10) 3 中国象棋的走法规则与实现分析 (13) 3.1 中国象棋的走法规则 (13) 3.1.1 棋盘和棋子介绍 (13) 3.1.2 中国象棋的规则和胜负的判定 (14) 3.2 中国象棋的走法分析 (15) 4 中国象棋软件的主要功能和界面布局 (19) 4.1 中国象棋软件实现的主要功能 (19) 4.2 软件的主要布局与实现 (20) 4.2.1 开始游戏选项界面 (20) 4.2.2 中国象棋选项界面 (22)

5 中国象棋的算法设计与实现 (24) 5.1 工程的建立 (24) 5.2 工程模块的介绍 (25) 5.2.1 各个类主要实现的功能 (25) 5.2.2 工程中其他模块的介绍 (26) 5.3 中国象棋的逻辑算法和实现 (26) 5.3.1 棋盘和棋子的算法分析 (26) 5.3.3 棋盘和棋子的绘制 (28) 5.3.4 棋子的算法实现 (30) 6 问题与软件的改进 (32) 6.1 遇到的问题与解决方法 (32) 6.2 软件所需的改进 (33) 结束语 (34) 参考文献 (35) 致谢 (36) 附录 (38)

计算机网络专业毕业设计

编号 ****学院 毕业论文 学生姓名 学号 院系计算机与通信工程学院专业计算机网络技术 班级 指导教师*** 讲师 顾问教师 二〇一五年十月

信息化爆炸式发展的今天,以计算机网络迅猛发展而形成的网络化是推动信息化、数字化和全球化的综合信息系统,基于计算机网络的各种网络应用系统通过在网络中对数字信息的综合采集、存储、传输、处理和利用而在全球范围把人类社会更紧密地联系起来,并以不可抗拒之势影响和冲击着人类社会政治、经济、和日常工作、生活的各个方面。企业局域网建设的应用也越来越多,因此企业局域网也越来越被重视,成为企业核心竞争力的关键因素。利用网络技术,现代企业可以在供应商、客户、合作伙伴、员工之间实现优化的信息沟通,这直接关系到企业能否获得关键的竞争优势。近年来越来越多的企业都在加快构建自身的信息网络,而其中绝大多数都是中小企业,加上很多移动终端的使用,使得网络多元化,更智能。 本次论文,主要深入研究分析了企业局域网的构建及其相关安全管理技术措施,探索了局域网在企业网络中基本应用,运用多种网络常用技术使网络更加安全、可靠、实用。结合志诚科技有限公司企业网构建的实际需求,构建了一个实用、安全的企业局域网的解决方案。本方案针对中小企业的局域网建设,为企业信息平台的建设提供一个行之有效的方案。 关键词:企业网端口聚合访问控制VLAN 网络安全

The explosive growth of information technology today, the network and the rapid development of computer network is to promote the formation of information technology, digitization and globalization of integrated information system, a variety of network-based applications through the computer network of integrated digital information network collection, storage, transmission, processing and utilization of the human society on a global scale more closely together, and with irresistible trend influence and impact on all aspects of human social, political, economic, and daily work life. Application of enterprise LAN-building more and more, so companies are increasingly being taken seriously LANs become the core competitiveness of key factors. Use of network technology, modern enterprises can optimize communication of information among suppliers, customers, partners, employees, which is directly related to the ability of the business to obtain a key competitive advantage. In recent years, more and more enterprises are accelerating build their own information network, while the vast majority are SMEs, with a lot of use of the mobile terminal, making the network diversification, more intelligent. This paper mainly depth research and analysis of the Construction and related measures for security management technology enterprise LAN, explore the basic LAN application in enterprise networks, using a variety of common network technology makes the network more secure, reliable, and practical. Combined with the actual needs of the enterprise network to build Zhicheng Technology Co., Ltd. to construct a practical, secure enterprise LAN solutions. The program for the construction of small and medium local area networks, for building enterprise information platform to provide an effective solution. Keywords: Enterprise Network Port Aggregation Access control VLAN Cyber Security

中国象棋基本战术(新)

中国象棋基本战术 ——海保荣整理编辑 中国象棋博大精深,从开局、中局到残局,双方对弈过程中,优劣之间的转化,瞬息万变,精彩纷呈...... 其中充满了智慧的较量,和博弈艺术的升华之美!若想在方寸棋盘上能够骁勇善战,所向披靡,也非易事。需要精通棋道,而且要有顽强的意志。不但要敢于斗争,而且还要善于斗争。 而善于斗争,就是要掌握象棋的内在规律。具体说,就是要掌握象棋对弈的博弈艺术。其中最基础的就是中国象棋的基本战术。只有掌握了这些基本战术,那么就能够有效地在象棋对弈过程中,组织有效的进攻和防御。这些基本战术包括:捉双战术, 闪击战术, 双重威胁, 腾挪战术, 吸引战术, 引离战术,迂回战术, 顿挫战术, 兑子战术, 封锁战术, 隔断战术, 弃子战术,先弃后取战术,借力战术,运子战术,困子战术, 拦截战术, 牵制战术, 解杀还杀等等。 (一)捉双战术 捉双战术是象棋对弈过程中,最为常见的战术。它包括一个子同时捉对方的两个子,或者因为移动一个棋子,而出现自己的两个棋子,同时捉对方的两个棋子。捉双战术是谋取子力优势的主要手段。车马炮这三个强子,在捉双战术运用中,最为活跃。其他如兵、卒,仕、相、将、帅等也都有捉双的机会。 捉双战术应用实例:

(二)闪击战术 在象棋对弈过程中,闪击是一种比较经常出现的战术。在某种局面情况下,闪开一子,露出后面的棋子,向对方进行攻击。这种方式被称为“闪击”。也有的书上称做“挪”。适用于车马炮等强子之间配合组合运用。但有时候,也可以由车炮与相、兵配合使用。由于前面闪开的棋子往往同时具有捉、献、拦、垫将等作用,所以,实际上闪击同时具有双重威胁的作用,使对手常常首尾不能兼顾,难于防范。所以说,闪击战术具有一定的突击能力,和突防能力。 闪击战术应用实例:

中国象棋人人对战

中国象棋----人人对战设计 学号: 系别: 姓名: 班级: 成员:

中国象棋--人人对战设计 1 、问题定义 中国象棋在单击游戏可执行文件进入游戏,游戏系统初始化游戏界面,进入游戏系统后,用户可能单击棋子,再点击相应棋子坐标或棋子,实现棋子移动、吃棋子功能。实现人机对弈。用户在对弈中,可以实现悔棋、新游戏、退出游戏功能。系统的用例图如下所示: 图1系统用例图 2 、可行性研究 用户进入系统,进入游戏,把自己的电脑设为主机实现人机对弈。从功能上基本能满足用户的需求。性能稳定可靠。 3、需求分析 3.1象棋棋子走法规则和功能分析 (1) 中国象棋是双方在有着9调竖线和10条横线的棋盘上对弈,竖线和横线的交叉称为棋点或对弈点,每个棋子都是在棋点上行走,而不是在方格中行走。 (2) 河界将棋盘分成两等份,每一边都有一块有9个点组成的九宫,棋子“将”,“帅”和“士”只能在九宫内移动,并且“将”和“帅”每一步只可以水平或垂直移动一个棋点;“士”只能在九宫内移动,并且它每一步只可以沿着对角线移动一

个棋点;“象”必须一次沿着对角线方向走两个棋点,但它不能过河也不能跳过或穿越障碍,即“象”不能别眼,“马”没一步只可以水平或垂直移动两个棋点,但必须按对角线向左或向右移动。中国象棋的“马”不能跳过障碍,即马不能别腿。“车”可以水平或垂直方向移动入一个无障碍的点。“炮”移动起来和车类似,但它必须跳过一个棋子来吃掉对方的一个棋子。“兵”每步只能向前移动一个棋子过河以后,它便增加了向左右移动的能力,并不允许向后移动。 3.2 系统数据流图 (1)0层数据流图 图2 0层数据流图 (2)1层数据流图 图3 1层数据流图 (3)2层数据流图 图4 2层数据流图

计算机网络安全本科毕业设计(论文)

毕业设计论文计算机网络安全

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

中国象棋入门教程1

.

“中国象棋”进课堂,校本课程创特色。 “校本课程”这个概念,根据我们的理解,包含两层含义:一是使国家课程和地方课程校本化、个性化,即学校和教师通过选择、改编、整合、补充、拓展等方式,对国家课程和地方课程进行再加工、再创造,使之更符合学生、学校和社区的特点和需要;二是学校设计开发新的课程,即学校在对本校学生的需求进行科学的评估,并充分考虑当地社区和学校课程资源的基础上,以学校和教师为主体,开发旨在发展学生个性特长的、多样的、可供学生选择的课程。我们北岗学校摸索开发的校本课程就属于第二种情况,也就是学校自己设计开发新的课程。 伟大的革命导师列宁的“象棋是智慧的体操”这一著名论断给我们指明了方向。我们想到了中国象棋。象棋是我国人民创造的优秀文化遗产之一,源远流长,历千年而日趋兴盛,有着深厚的群众基础。它不仅具有很强的娱乐功能,而且它以红黑棋代表两军对垒的智力竞技,是一门开发智慧、提高智力水平的综合艺术。前苏联教育家苏霍姆林斯基曾经这样认为“不下棋就不可能充分增强智能和记忆力,下棋应当作为智能修养的科目之一列入学校教学大纲。”受到苏霍姆林斯基这一话语的启发,一个大胆的设想应运而生,那就是把象棋列入我校的教学活动中。象棋慢慢进入课堂,也慢慢深入学生心中。课余饭后,校园内的凉亭内、石板棋盘上、教室

内的讲台上、课桌上,你随时可看到专心对弈的小棋手,一边的旁观者也是那样的安静。校园里很少再见到因没有适合的娱乐活动而追逐打闹的学生。象棋课程的开发,丰富了学生的课余生活,也为我们学校构筑了一道亮丽的风景线。 中国象棋目录 第一单元象棋入门基础知识 1、现代象棋的情况 2、认识棋盘、棋子 3、象棋的基本技术 第二单元介绍各子的价值与运用原则 ⒈车的价值及运用原则 ⒉马的价值及运用原则 ⒊炮的价值及其运用原则 ⒋兵卒的价值及其运用原则 ⒌士象的价值及其运用原则 ⒍将帅的价值及其运用原则 第三单元简单棋规 1、长将 2、长杀 3、长捉 4、象棋术语

人机交互复习提纲

人机交互各章知识点 第1章 1.人机交互的概念,所涉及的学科及关系。 答:人机交互(Human-Computer Interaction,HCI)是关于设计、评价和实现供人们使用的交互是计算机系统,且围绕这些方面的主要现象进行研究的科学。 人机交互技术与认知心理学、人机工程学、多媒体技术和虚拟实现技术密切相关。其中,认知心理学与人机工程学是人机交互技术的理论基础,而多媒体技术和虚拟实现技术与人机交互技术相互交叉和渗透。 2.人机交互研究的内容。 答:人机交互的研究内容有人机交互界面表示模型与设计方法、可行性分析与评估、多通道交互技术、认知与智能用户界面、虚拟环境中的人机交互、Web设计、移动界面设计、群件。 3.人机交互经历的三个阶段 答:语音命令交互阶段、图形用户界面交互阶段、自然和谐的人机交互阶段 4.发展趋势 答:集成化、网络化、智能化、标准化 5.人机交互技术 答:人机交互技术主要是研究人与计算机之间的信息交换,主要包括人到计算机和计算机到人的信息交换两部分。 6什么是人机工程学? 第2章 1.人的主要的感知方式 答:视觉、听觉、触觉 2.人的认知过程 答:1、关注2、感知和识别3、记忆4、学习5、阅读、说话和聆听 6、解题、规划、推理和决策 交互原则:许多认知过程是相互依赖的,一个活动可同时涉及多个不同的过程,只涉及一个过程的情况非常罕见。 3.人机系统设计步骤 答:(1)需求分析阶段(2)调查研究阶段(3)系统分析规划阶段 (4)系统设计阶段(5)测试阶段(6)人机系统的生产制造及提交使用阶段 4.人机工程学的定义 答:人机工程学是研究“人-机-环境”系统中人、机、环境三大要素之间的关系,为解决系统中的人的效能、健康问题提供理论与方法的科学。 第3章 1. 交互设备的的分类 文本输入设备:键盘、手写设备、语音输入设备 图形输入设备:扫描仪、数码摄像头 指点输入设备:鼠标、触摸板、控制杆、光笔、触摸屏、手写液晶屏、眼动跟踪系统、光标键-非连续定位装置 显示设备:位图显示、 语音交互设备:耳麦、声音合成设备、 虚拟现实系统的交互设备:三维空间定位设备(空间跟踪定位器、数据手套、三维鼠标、触觉和力反馈器)、沉浸感显示设备、虚拟实现系统 第4章 1. 人机界面发展的几个阶段:根据用户界面的具体形式、根据根据用户界面中信息载体的类型、根据计算机输出信息的形式 图形用户界面有哪几种: 2. 图形用户界面的主要思想(p61) 答:1.桌面隐喻 2.所见即所得 3.直接操纵

java中国象棋对弈系统本科毕设论文

毕业设计(论文)中国象棋对弈系统 系别:计算机科学与技术系

专业(班级):计算机科学与技术09级本2班 作者(学号):XXX(学号) 指导教师:XXX(括号内填写职称或学位) 完成日期:2013年06月06日 XXXXX教务处制 目录 中国象棋对弈系统.................................................................................................................................... - 1 -Chinese chese playing system............................................................................................................ - 2 -第一章引言(概述)........................................................................................................................ - 3 -第二章系统可行性分析.......................................................................................................................... - 4 -2.1 总体分析............................................................................................................................................. - 4 -2.2 开发环境介绍..................................................................................................................................... - 4 - 2.2.1硬件开发环境 (4) 2.2.2软件开发环境 (4) 第三章系统需求设计.............................................................................................................................. - 5 -第四章详细设计.................................................................................................................................... - 6 -4.1 功能设计............................................................................................................................................. - 6 - 4.1.1功能说明 (6) 4.1.2对弈规则 (6) 4.1.3相关类图 (6) 4.1.4相关类的类图 (7) 4.2功能的实现.......................................................................................................................................... - 7 - 4.2.1图形界面的实现 (7) 4.2.2棋谱的实现 (10) 4.2.3棋子的添加 (10) 4.2.4背景音乐 (12)

相关主题
文本预览
相关文档 最新文档