课课程程设设计计说说明明书书五子棋游戏五子棋游戏TheGameofGobang学院名称:学院名称:机械工程学院机械工程学院专业班级:专业班级:测控测控1010 xxxx学生姓名:学生姓名:xx指导教师...1面向对象程序设计课程设计面向对象程序设计课程设计五子棋学号:学号:学院:信息科学与工程学院学
C五子棋Tag内容描述:
1、4 2.2 主体功能.4 2.3 开发环境.4 2.4 概念设计.4 3 系统总体设计.5 3.1 系统的功能模块划分.5 3.2 系统流程图.6 4 系统详细设计.7 4.1 代码实现情况.7 4.1.1 server 包 chessServer 类.7 41.2 client 包 chessClient 类7 4.1.3 chessface 包 chatPad 类8 4.1.4 chessface 包 chessPad 类.8 4.1.5 chessface 包 chessthread 类.8 4.1.6 chessface 包 controlpad 类.8 4.1.7 chessface 包 inputpad 类.8 4.1.8 chessface 包 userPad 类9 4.1 测试分析9 4.2.1 程序运行情况9 4.2.2 程序运行异常处理.12 5 小结.12 参考文献.13 附 源代码 Java 语言与面向对象技术课程设计 3 1、概述 1.1 课程设计目的 JAVA 程序设计是计算机相关专业的必修专业基础课程,其实 践性、应用性很强。
实践教学环节是必不可少的。
2、优势。
Java 编程语言与众不同之处在于:Java 程序既是编译型的(转换为一 种称为 Java 字节码的中间语言),又是解释型的(JVM 对字节码进行解析 和运行)。
编译只进行一次,而解释在每次运行程序时都会进行。
编译后 的字节码采用一种针对 JVM 优化过的机器码形式;解释器是 JVM 的实现。
二、二、摘要摘要 五子棋作为一个棋类竞技运动,在民间十分流行,本课题主要完成了 五子棋人机对战和玩家之间联网对战 2 个功能。
网络连接部分为 Socket 编 程应用,客户端和服务器端的交互用 Class Message 定义,有很好的可扩 展性,客户端负责界面维护和收集用户输入的信息,及错误处理。
服务器 维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户 列表。
在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。
分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办 法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提 高电脑 AI 方案,如递归算法、电脑学习等。
算法的研究有助于理解程序结 构,增强逻辑思维能力,在其他人工智能方面也有很大的。
3、 - II - Abstract Click here and input abstract in EnglishThis system will use Renju as research objects, passing to design a Renju game that can provide two kinds of dissimilarities to the play mode. to involve to of the related technique carry on the study of the first step, play more attention in the AI calculate way research aspect. It provide two kinds of choice modes in the game:Persons machine to the war and the everyone to war.The player passes to choose the different AI grade and 。
4、类 4 4.3 多用户聊天 5 4.4 流程图 .6 五、运行调试与分析讨论 7 六、设计体会与小结 . 9 七、参考文献. 10 第 1 页 一、课程设计任务一、课程设计任务及要求及要求 1、五子棋游戏室界面:用户可以选择对弈桌及角色(执黑、执白、旁观) ; 2、游戏界面:有开始、退出、悔棋、判断胜负;发言及显示区;用户列表 区;棋盘绘制区; 3、使用 Socket 来完成服务端和客户端的通信; 4、使用多线程技术支持多用户操作; 5、增强功能:支持用户注册、添加和删除好友、战绩显示、发送消息、接 受消息、多人聊天等功能;使用数据库保存用户信息。
二、需求分析二、需求分析 2.1 棋盘板块 画一个 1515 的棋盘版面,及两个按钮组。
初始化:开始、重置、 退出;角色选择:黑方、白方、旁观。
2.2 聊天板块 聊天信息显示区,聊天信息输入区。
2.3 ChatSever 模拟服务器:用于桥接不同用户,实现接收用户发出的信息,然后 将信息传递到每个用户的聊天窗口。
2.4 编译环境 Eclipse 实验室上机 在宿舍编写 2.5 参考资料 Jav。
5、计算机技术的不断发展,网络技术的普及范围越来越广,网络能够提 供的服务多样、便捷,已经成为人们生产生活中不可缺少的重要组成部分。
如 今网络休闲游戏发展迅速,它凭借健康、方便、互动性强、益智等诸多优点, 成为大部分现代人休闲娱乐的首选。
网络五子棋游戏是使用 Java 语言开发的一款游戏。
它使用 SOCKET 建立连 接,多线程处理数据,以及可嵌入网络浏览器的 APPLET 作为客户端,这些特点 使这款游戏无论是服务器还是客户端的实现都相对容易。
通过对该软件的编写, 还可以巩固学生对以上各种知识的掌握和理解。
- 3 - 2 JAVA 语言概述 2.1 JAVA 简介 JAVA 是 Sun Microsystem 公司开发的编程语言,是一个简单,面向对 象,分布式,解释性,强壮,安全,与系统无关,可移植,高性能,多线程 和动态的语言。
2.1.1 JAVA 的基本特点 (1) 简单性 Java 与 C+语言非常相近, 但 Java 比 C+简单, 它抛弃了 C+中的一些 不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、 多重继承以及自动强迫同型。
Java 实现。
6、四章第四章 运行结果运行结果 6 6 第五章第五章 总结总结 8 8 第六章第六章 致谢致谢 8 8 附录一附录一 参考文献参考文献 8 8 附录二附录二 源代码源代码 9 9 课程设计综合课程设计 1 五子棋游戏 第一章 需求分析 1.1 总体分析 软件需求分析是软件开发周期的第一个阶段, 也是关系到软件开发成败的关键一 步。
对于任何一个软件而言,需求分析工作都是至关重要的一步。
只有通过软件需求 分析,才能把软件的功能和性能由总体的概念性描述转化为具体的规格说明,进而建 立软件开发的基础。
实践表明,需求分析工作进行得好坏,在很大程度上决定了软件 开发的成败。
软件需求分析的任务是: 让用户和开发者共同明确将要开发的是一个什么样的软 件。
具体而言,就是通过对问题及其环境的理解、分析和综合,建立逻辑模型,完成 新软件的逻辑方案设计。
基于本游戏,首先得为整个棋盘建立一张表格用以记录棋子信息,我们使用一个 15*15 的二维数组 Table1515(15*15 是五子棋棋盘的大小),数组的每一个元素 对应棋盘上的一个交叉点,用0表示空位、1代表己方的子、2代表。
7、 游戏游戏设计思路设计思路 : 五子棋五子棋 选子(黑色,选子(黑色, 白色)白色) 开始开始 右击:右击: 悔棋悔棋 读档读档 存档存档 重开重开 你输了你输了 你赢了你赢了 第二章 第一节 java 程序基础知识 本系统有 4 个程序每个程序都导入了不同的包和类运用了不同的所学知识。
不同的类和 包提供的方法、类型等都不同,本程序还使用了继承。
以至使其能够完成不同的功能。
本节 主要讲述本系统所使用的基础知识。
1、 类的基础 =4; i-) play=!play; step=i/2; gobangAI2(play); if(turn) return; gobangAI5(); if(!turn) gobangRandom(); private void gobangAI2(boolean player) check = player? Player: AI; for(int i=0; i=0 else space=0; x=locX-displace_x; y=locY-displace_y; while(x=0 else return false。
8、管理上的可行性 . 2 3 JAVA 五子棋对弈现的需求分析 2 3.1 用户需求分析 . 2 3.1.1 普通用户主要需要: . 2 3.1.2 系级管理员主要需要: . 2 3.1.3 系统用例图: 3 3.2 数据字典的描述 . 3 3.2.1 用户信息表的数据字典的描述: . 3 3.2.2 用户每次游戏信息表的数据字典描述: . 4 3.2.3 用户每盘棋信息表的数据字典描述: . 4 3.2.4 用户每步棋信息表的数据字典描述: . 4 3.3 五子棋对弈系统的数据流图 . 4 3.3.1 用户登录数据流图(DFD) 5 3.3.2 普通用户界面显示数据流图(DFD) 5 3.3.3 管理员用户界面显示数据流图(DFD) 6 3.3.4 用户棋局回放数据流图(DFD) 6 4 JAVA 五子棋对弈系统分析与设计 7 4.1 系统设计总体思想、目标 . 7 4.2 五子棋人机对弈系统的 ER 模型 7 4.3 JAVA 五子棋对弈系统结构、功能设计 9 4.3.1 系统结构设计 . 9 4.3.2 系统功能模块设计 10 4.3.3 设计思路 . 11 4.4 程序设计分析 。
9、重置功能; (4) 可以自动判断输赢; (5) 简单的游戏规则介绍; (6) 可以打开和关闭窗口。
2. 2. 实现目的实现目的 (1)设计简单的图形界面; (2)用户可通过简介了解游戏规则; (2)用户可自行选择执白子或执黑子; (3)可以实现开始和重置; (4)电脑可以自动判断输赢; (5)用户可使用鼠标落子,可落在任意交叉线上。
2 设计环境或器材、原理与说明:设计环境或器材、原理与说明: 1. 设计环境:设计环境: 硬件环境: CPU:Intel 奔腾双核 E5200 主频 2.5GHz 内存:2G 软件环境: 操作系统:Windows 7 编程环境 JDK7.0 开发工具:Eclipse SDK 2. 使用环境(用户运行环境) 硬件环境: CPU 主频在 500MHZ 以上,内存在 128M 以上 软件环境: JAVA 运行环境 + Windows XP 戒 Windows 2000 以上操作系统 3 设计过程(步骤)或程序代码(可以加页): 1.1.需求分析需求分析 1.1 1.1 界面及布局设计界面及布局设计 系统的整体布局为:左边为 15*15 的棋盘,右面为 “游。
10、子棋对弈。
Abstract Gobang is a traditional checker-type game in which the lining up of five pieces in a straight line scores victory. And C language can accomplish a 2-player gobang on computers. This 2-player gobang program contains 4 main sections, they are, graphics, movement and selection, victory judgment and helping system. Several elements and sentences of C programming language such as structural element, array, global variables, press processing and Graphics Programming are also applied in 。
11、 (1)实现双人对战的简单步骤和规则,能够判断输赢; (2)双方轮流使用键盘的“” 、 “” 、 “” 、 “”键控制棋子在屏幕上 的位置,按“空格”键放置棋子,判断棋子应放置在棋盘范围内且不能已经有棋 子,否则使用扬声器提示不能放置; (3)当一方的棋子数在行、列或对角线上连续达到 5 个(无禁手判断) ,则 为胜方,在屏幕上显示胜利一方,按任意键退出程序。
3. 实验方案(程序设计说明) (1)算法设计思路 棋盘设计为 1919 格,初始状态光标在棋盘的左上,黑棋先走,轮流落子, 当一方连成五子或下满棋盘时,游戏结束。
当游戏一方胜利后显示胜利信息。
从 程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标 可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别 是 0 代表无棋子,1 代表黑棋,2 代表白棋。
这样程序的主要工作是接收棋手按 键操作,双方轮流使用键盘的“” 、 “” 、 “” 、 “”键控制光标移动,空格 键表示落子。
一旦接收到空格键,说明棋手落子,先判断是否是有效位置,也就 是说棋子应在棋盘内或棋盘的空位。
12、统的运行 2 3.2 运行说明 4 4 课程设计目的. 5 程序特色.5 6 总结 5 附件:源程序清单5 1 设计内容与设计要求 1.1 系统功能简介 该系统是五子棋的人人对战模式,而非平常的人机对战 系统有简单的菜单界面 1.2 系统运行环境 Vc+6.0 下运行,硬件基本无要求,现在的计算机系统基本都可以 运行该系统。
2 程序流程图 3 系统的运行及说明 3.1 系统的运行 开始 白子落棋 白 子 有 五 个 在 一 条 直 线 黑子落棋 黑 子 五 个 在 一 条 直 线 上 白子获胜 黑子获胜 结束 是 否 否 是 图 3-1 程序的初始化界面 程序初始化的界面,界面简洁明快,便于观察。
图 3-2 程序的运行界面 图 3-3 程序的介绍界面 3-2 运行说明 A 向左 W 向上 D 向右 S 向左 空格键 确定 当结束时按 Y 重新开始 游戏按 。
13、解决实际问题的能力。
提高学生适应实际,实践编程的能 力; 3)培养学生在项目开发中团队合作精神、创新意识及能力。
2.要求: 1) 、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加 以其他功能或修饰,使程序更加完善、合理; 2) 、系统设计要实用,编程简练,可用,功能全面 3) 、说明书、流程图要清楚 4) 、记录设计情况(备查,也为编写设计说明书作好准备) ; 5) 、要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格 式。
指导教师签字: 日期: 2 指导教师评语指导教师评语 成绩: 指导教师签字: 日期: 课程设计课程设计所需软件、硬件等所需软件、硬件等 软件:Microsoft Visual C+6.0 操作系统:WIN xp Rom:256 Cpu:1.6Ghz 课程设计进度计划课程设计进度计划 起至日期起至日期 工作内容工作内容 备注备注 3 5 月 25 日 5 月 26 日 5 月 27 日 进行程序设计需求分析 分析程序代码 撰写课。
14、结构和类结构77 4.2 (2)五子棋类的结构.7.7 4.3 系统工作流程介绍 7 错误错误! !未定义书未定义书 签。
签。
类的介绍.8 4.54.5 (5) 各个模块的介绍8 4.6 (6)程序运行图示14 5.5.总结总结1616 参考文献参考文献.17.17 3 (a) 1.设计目的设计目的 (1)加深我对面向对象程序基本的理解和掌握。
(2)熟练掌握基本流程图的绘制。
(3)熟练 visio 的一些操作方法。
(4)能够在调试程序中快速发现并排除程序中的错误。
(5)提高面向对象程序语言解决实际中的问题的能力。
(b) 2.设计要求设计要求 五子棋是玩家在游戏棋盘上逐个输入黑子或白子的坐标,因此游戏要求在 DOS 界面生成 一个可供操作的棋盘。
通过输入坐标完成对应落子情况,在输入过程中判断落子是否正确、 是否有一方胜利等情况。
编写代码可以在 VC6.0 下编译通过。
游戏要能实现五子棋游戏的简 单操作。
程序中要体现面向对象思想。
(c) 3.设计方案设计方案 (必须包含系统功能说明、用例图和类图)(必须包含系统功能说明、用例图和类图) 一、一、 用例图用例图 落。
15、ich is interesting and absorbing。
The version of this software,includes two kinds of patterns, standalone mode and network mode。
The former uses a game-tree search algorithm , which can only predict a follow-up move after calculation。
Moreover, the network mode needs to be brought online, in other words, first need a player in a computer start game as the server-side, then the other enter the servers ip to connect and join game in another computer as the client. Both modes support undo functions。
16、通过鼠标进行操作,具有 悔棋功能,可以多次进行游戏,界面美观,有音效。
重要的是按键进 行弹窗提醒,由用户进行确认。
二、概要设计 窗口注册窗口注册:向系统注册窗口。
建立窗口建立窗口:初始化并建立窗口。
处理消息处理消息:等待消息传入,调用处理函数。
POINT_POINT_类类: 记录一个点及其处理函数,包括点的位置规范化函数。
ChessChess 类:类:记录棋子相关信息及其处理函数,包括落子,起子函 数。
GameGolbalGameGolbal 类:类:记录一个五子棋游戏的整体信息及其处理函数, 包括定义了 POINT_类,Chess 类的成员,及一些游戏中 会用到的整体变量。
主要函数包括如下: 窗口刷新函数窗口刷新函数:通过储存的数据重新绘制窗口。
新游戏函数新游戏函数:对游戏的变量进行初始化的处理。
悔棋函数悔棋函数:对储存数据修改,达到悔棋的目的,会调用 窗口刷新函数。
声音播放函数声音播放函数:播放效果声音。
2 结果判断函数结果判断函数:每次落子后判断结果。
结结果显示函数果显示函数:绘制游戏胜利的结果。
程序运行流程及函数调用关系如下:程序运行流程及函数调用。
17、教师职称: 副教授副教授 2012 年 6 月 1 目录 第一章 需求分析 5 1.1 系统概述 . 5 1.1.1 概述: 5 1.2 系统运行环境 5 1.2.1 运行环境. 5 1.3 功能需求描述 6 1.3.1 功能需求. 6 第二章 总体设计 6 2.1 开发与设计的总体思想 6 2.1.1 总体设计思路 6 2.1.2 屏幕的组成 . 7 2.1.3 形状的组成 . 8 2.1.4 形状的统一 . 8 第三章 概要设计 9 3.1 系统流程图 9 3.2 软件功能模块 . 10 3.3 系统功能模块 11 第四章 详细设计 .11 4.1.界面的设计 11 4.1.1 总体界面的设计 .11 4.1.2 界面棋子的设计 .11 4.2.显示界面的准备 13 4.2.1 在窗体类中添加存放黑白棋两维数组和背景棋盘、黑棋、白棋位图对象 13 4.2.2 在窗体构造函数中初始化 wb,装入棋盘、黑棋、白棋位图 . 13 4.3. 显示棋盘和棋子代码 . 13 4.4. 轮流下子代码 14 4.5. 判断输赢. 17 4.5.1 判断是否白棋胜代码 . 。