JAVA五子棋的报告

第1章
哈尔滨工业大学
专 |
计算机科学与技术 |
学生学号: |
1090310113 |
学生姓名: |
赵中英 |
联系电话: |
18704621474 |
学生Email: |
563947047@qq.com |
指 导 教 师: |
李秀坤 |
结 题 日 期: |
2012.6.20 |
目
1.2 系统总体设计方案及开发目标....................................................................... 1
2.3 系统安装及简要使用说明............................................................................... 2
附录:项目答辩验收意见表...................................................................................... 4
1. 项目概述
1.1 项目创意及应用背景
1.2 系统总体设计方案及开发目标
总体设计框图:
|
http://s10/mw690/9c7ef31btdbe436512109&690
|
|
1.建立一个game的java类实现界面的初始化,添加所需要的菜单栏,以及菜单并添加监听器,在窗口添加所需要的button以及消息栏及标签,当给不同的菜单设置state时执行不同的任务。
2.建立一个board的Java类实现棋盘的初始化,画棋子,画棋盘,建立棋盘数组记录棋型便于悔棋并判断胜负,这个类中设置计时模块,难度选择模块,先手选择模块,胜负判断模块。
3.建立一个robot的Java类对人工智能算法进行实现,这个类中对难度等级进行了三个选择,并且采用穷举法即对每一个位置进行权值衡量,最终得出最大权值并在该位置落子,简单,中等,困难三个等级限制,依次对权值进行不同考虑,只考虑自己权值,考虑对手权值,二者的权值之和,从上下左右左斜右斜几个方向判断棋子的数量,不同的模型设置不同权值最终得到最大权值即可。
4.建立一个start的Java类,对整个游戏进行初始化,窗口的大小及其坐标位置。
1.可以实现人机对战棋盘大小20×20
2.可以选择电脑是否先手
3.可以悔棋、和棋、认输等
4.可以有难度等级的选择
5.良好的图形界面及功能按钮
6.有可能实现网络对战
其目标功能图如下所示有:
|
|
|
|
1.3 开发环境和开发工具
开发环境及工具:
1.中央处理器:inter酷睿i5双核处理器470M2.53GHZ
2.内存:2G
3.硬盘:320G
4.操作系统:win7旗舰版
5.开发工具:netbeans
6.编程语言:java
7.环境变量JDK
JAVA技术介绍:
8.环境变量
(1)java(TM) SE Development Kits,即JDK。
(2)设置环境变量:
classPath:为Java加载类(包括class,lib)的路径,只有类在classPath中,Java命令才能识别。
1.4 项目计划进度安排
2. 项目完成情况说明
2.1 项目完成情况
2.2 项目成果汇报
首先运行游戏进入后选择模式以及等级难度然后点击开始按钮即可
然后开始下棋在旁边的消息框显示坐标,标签栏也显示内容时间也开始倒计时如果超时电脑将帮你下当前的一个棋子
如果电脑获胜将弹出消息框可选择悔棋如下图
2.3 系统安装及简要使用说明
3.项目开发体会
1.第一件面临事情就是Java语言的问题,以前没有学习过所以要编程首先需要了解Java语言的基础知识,所以要做的就是借一本Java书进行学习。
2.第二个难度就是面向对象和图形化界面的问题,第一次做一个图形界面就很难了,看了很多网页还有同学之间的互相讨论才处理了简单的菜单和容器之类的问题。
3.在这些问题处理完之后,参考了网上数多五子棋设计的代码后开始着手写程序,在基本功能实现之后遇到的难题就是悔棋和难度等级设置,经过网上参阅添加了悔棋设置,但难度等级却是一个很大的难题,当在每一个位置考虑双方的权值之和时在20×20的棋盘上一般有400个权值,这是第一关,如果实现第二关,就假设在原来400的基础上又对每一个位置进行权值计算,结果导致400×400的数量,如果采用循环进行,棋型表将会很多,而且当前的权值保存以及找出最大权值更是很难。
下面说一下收获:
1.经过这个开发实践首先学习了Java语言的一些基础知识,并且掌握了简单的图形界面的制作。
2.对数据结构的部分知识有了一定的加深学习想数组,搜索算法等等
3.通过这次学习对软件整体的开发有了一定的了解和初步的学习,不仅仅是实现一个问题而是设计了一个面向对象的小软件,对于程序设计整体的思想有了一定的提高。
指导教师意见 |
|
|
|
答辩小组意见 |
|
程序运行:◎ 正常 代码检查:
代码量: 代码解释:◎ 正确 结题结论:(分数) |
评委签字:
年 |