加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

JAVA五子棋的报告

(2013-05-04 21:08:00)

第1章    哈尔滨工业大学

   计算机科学与技术学院

  软件设计与开发实践I

 

          目: 五子棋游戏

 

    业:

计算机科学与技术

学生学号:

1090310113

学生姓名:

赵中英

联系电话:

18704621474

学生Email

563947047@qq.com

师:

李秀坤

期:

2012.6.20

 

 

       哈尔滨工业大学计算机学院

 

 


  

1. 项目概述................................................................................................................. 1

1.1 项目创意及应用背景....................................................................................... 1

1.2 系统总体设计方案及开发目标....................................................................... 1

1.3 开发环境和开发工具....................................................................................... 1

1.4 项目计划进度安排........................................................................................... 1

2. 项目完成情况说明................................................................................................. 2

2.1 项目完成情况................................................................................................... 2

2.2 项目成果汇报................................................................................................... 2

2.3 系统安装及简要使用说明............................................................................... 2

3.项目开发体会........................................................................................................... 3

附录:项目答辩验收意见表...................................................................................... 4

 


1. 项目概述

1.1 项目创意及应用背景

     本项目是开发一款老少皆宜的小游戏五子棋,目前,以计算机技术和网络技术为核心的现代网络技术已在现实生活和生产中得以广泛的使用,休闲类网络游戏集趣味性,娱乐性,互动性和益智性于一体,已经成为多数人群的休闲方式。五子棋是当前非常流行的一种棋类游戏,它在我国的历史可谓是源远流长,五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种类之一。发展于日本,流行于欧美。五子棋容易上手,老少皆宜,而且趣味横生,引人入胜。不仅增强思维能力,提高智力,而且富含哲理,有助于修身养性。随着计算机的迅速发展,用电脑下五子棋已经成为一种时尚,现在网络上出现了各种各样的五子棋,有大师级的新手级的等等,但这些都满足了不同人们的需求,所以五子棋越来越让人们所熟悉,而且五子棋的发展也越来越快,由当初的双人到人机对战,然后到现在的网络对战,已经受到越来越多人的重视和喜爱。我开发的这款五子棋小游戏综合了人机对战一些功能,包括先手选择、悔棋、限时、坐标显示、等级选择等功能,而且操作特别简单,只需要用鼠标点击进行选项选择,完成后用鼠标点击进行下棋,界面风格优美,易于上手。

1.2 系统总体设计方案及开发目标

总体设计框图:

 

   总体设计

 

 

 

http://s10/mw690/9c7ef31btdbe436512109&690

 


 

 
总体设计流程图

 

 

 

 

 http://s16/mw690/9c7ef31bt096eb361615f&690

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 


 

1.建立一个gamejava类实现界面的初始化,添加所需要的菜单栏,以及菜单并添加监听器,在窗口添加所需要的button以及消息栏及标签,当给不同的菜单设置state时执行不同的任务。

2.建立一个boardJava类实现棋盘的初始化,画棋子,画棋盘,建立棋盘数组记录棋型便于悔棋并判断胜负,这个类中设置计时模块,难度选择模块,先手选择模块,胜负判断模块。

 

 

3.建立一个robotJava类对人工智能算法进行实现,这个类中对难度等级进行了三个选择,并且采用穷举法即对每一个位置进行权值衡量,最终得出最大权值并在该位置落子,简单,中等,困难三个等级限制,依次对权值进行不同考虑,只考虑自己权值,考虑对手权值,二者的权值之和,从上下左右左斜右斜几个方向判断棋子的数量,不同的模型设置不同权值最终得到最大权值即可。

4.建立一个startJava类,对整个游戏进行初始化,窗口的大小及其坐标位置。

     本项目开发目标是通过Java语言,运用面向对象的程序设计方法结合所学的数据结构知识,开发此款五子棋游戏,力争使程序短小精悍,简洁明了;游戏界面优美,容易操作;功能丰富,趣味性强;现将目标一一介绍:

1.可以实现人机对战棋盘大小20×20

2.可以选择电脑是否先手

3.可以悔棋、和棋、认输等

4.可以有难度等级的选择

5.良好的图形界面及功能按钮

6.有可能实现网络对战

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

其目标功能图如下所示有:

 

 

 

    五子棋

   游戏

    选项

    帮助

文本框: 开始文本框: 悔棋文本框: 认输文本框: 退出文本框: 和棋文本框: 游戏说明文本框: 关于作者文本框: 模式选择文本框: 难度选择文本框: 先手选择文本框: 人机对战文本框: 网络对战文本框: 电脑先手i文本框: 电脑后手文本框: 简单模式文本框: 中等模式文本框: 困难模式 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


1.3 开发环境和开发工具

开发环境及工具:

1.中央处理器:inter酷睿i5双核处理器470M2.53GHZ

2.内存:2G

3.硬盘:320G

4.操作系统:win7旗舰版

5.开发工具:netbeans

6.编程语言:java

7.环境变量JDK

JAVA技术介绍:

    Java技术是一门编程语言,也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。(题外话:Java热门的原因之一就是一个跨平台的概念,和跨平台类似跨浏览器的好处也是如此,这也是现在AJAX技术流行的原因之一。Java平台是一种纯软件平台,它有三个版本Java SEJavaEEJava ME    Java开发工具很多,个人使用的IDEEclipseNetBeansEclispe比较流行,各种插件也多,当然用起来也不错;NetBeans现在也是越做越好了,介绍这两个IDE主要是开源的,当然还有其它工具如JBuilderIntelliJJCreator。这些IDE各有优势劣势,根据你开发的项目来选择。

8.环境变量

(1)java(TM) SE Development Kits,JDK

(2)设置环境变量:

   右击 我的电脑->属性->高级->环境变量,这时候可以看到以下的环境变量:Path:系统在任何路径下都可以识别Java命令。

classPath:为Java加载类(包括classlib)的路径,只有类在classPath中,Java命令才能识别。

 

 

 

1.4 项目计划进度安排

     1.36周内了解Java语言的基础知识及其编程方法

     2.7周了解五子棋及其五子棋的算法及其一些基本的功能处理需求

     3.811周实现五子棋人工智能的核心算法及其整个程序的框图设计

     4.123周实现图形界面及五子棋基本功能

     5.1415周实现五子棋的悔棋及难度等级设置

     6.16周完善真个程序的功能并考虑网络对战能否实现

     7.17周做结题报告和答辩PPT准备答辩

 


2. 项目完成情况说明

2.1 项目完成情况

 整个项目基本按开题报告目标的要求实现,在这个项目中没有实现的难度等级的数量五个难度,仅仅实现了简单的三个等级选择,分别是简单、中等、困难;也没有实现五子棋的网络对战,其他的悔棋和棋还有先手选择都已经实现。另外这个项目额外实现了五子棋的计时功能,当轮到玩家开始下棋时,时间开始倒计时,如果超时系统将替玩家落当前棋子,实现了落子坐标的显示功能,在棋盘旁边的消息窗口中可以显示双方的下子坐标方便更加清晰的判断。整个程序有1300行左右,人工智能,悔棋等核心代码有800行左右。

2.2 项目成果汇报

 

首先运行游戏进入后选择模式以及等级难度然后点击开始按钮即可

 

 

然后开始下棋在旁边的消息框显示坐标,标签栏也显示内容时间也开始倒计时如果超时电脑将帮你下当前的一个棋子

 

 

 

 

 

如果电脑获胜将弹出消息框可选择悔棋如下图

 

 

 

 

 

 

 

2.3 系统安装及简要使用说明

     首先在目录下找到五子棋.exe可执行程序然后运行即可,运行完成后会弹出五子棋窗口,下面解释一下使用说明:

     进入游戏界面之后可以看到游戏,选项,帮助三个菜单,还有开始、悔棋、认输、和棋四个按钮,点击选项进行条件选择,在选择的菜单上点击鼠标打勾即可,然后点击开始按钮或者游戏下拉菜单中的开始便可进行游戏,如需悔棋可点击悔棋按钮,下子的坐标在旁边可以看到,输赢系统将会给出提示。

 


3.项目开发体会

 在这次软件设计实践中,学到了很多东西,收获颇丰,但要遇到了很多困难和问题,首先说一下所遇到难题:

1.第一件面临事情就是Java语言的问题,以前没有学习过所以要编程首先需要了解Java语言的基础知识,所以要做的就是借一本Java书进行学习。

2.第二个难度就是面向对象和图形化界面的问题,第一次做一个图形界面就很难了,看了很多网页还有同学之间的互相讨论才处理了简单的菜单和容器之类的问题。

3.在这些问题处理完之后,参考了网上数多五子棋设计的代码后开始着手写程序,在基本功能实现之后遇到的难题就是悔棋和难度等级设置,经过网上参阅添加了悔棋设置,但难度等级却是一个很大的难题,当在每一个位置考虑双方的权值之和时在20×20的棋盘上一般有400个权值,这是第一关,如果实现第二关,就假设在原来400的基础上又对每一个位置进行权值计算,结果导致400×400的数量,如果采用循环进行,棋型表将会很多,而且当前的权值保存以及找出最大权值更是很难。

下面说一下收获:

1.经过这个开发实践首先学习了Java语言的一些基础知识,并且掌握了简单的图形界面的制作。

2.对数据结构的部分知识有了一定的加深学习想数组,搜索算法等等

3.通过这次学习对软件整体的开发有了一定的了解和初步的学习,不仅仅是实现一个问题而是设计了一个面向对象的小软件,对于程序设计整体的思想有了一定的提高。


附录:项目答辩验收意见表

指导教师意见

 

 

 

 

 

               

 

 

 

 

        导师签字:

                                                     

答辩小组意见

 

程序运行: 正常

          基本正常

          不正常

代码检查:

代码量:        

 

代码解释: 正确

          基本正确

          不正确

 

结题结论:(分数)

 

 

 

 

 

评委签字:               

 

 

                          

 

 

                          

 

 

     

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有