水沝--JAVA团队课程设计博客(五子棋)
##3.1 团队名称、团队成员介绍、任务分配,团队成员课程设计博客连接(以表格形式呈现),标明组长。 |团队名称|成员姓名|任务分配|我的博客连接| |--------|-------|-------|-----------| |水沝 |林晓龙(组长)|人机对战算法实现| | |李金妲|游戏界面的GUI设计、背景音乐功能、趣味对战算法实现|https://www.cnblogs.com/112Ada/p/12173236.html| | |韦荣桃|实现用户系统功能(登陆、注册)|https://www.cnblogs.com/Gejkdj/p/12158759.html|html
##3.2 项目git地址(咱们组没有将代码提交到Git上)git
##3.3 项目git提交记录截图(要体现出每一个人的提交记录、提交说明),老师将重点考核。 ##3.4 前期调查算法
咱们在4399和7k7k小游戏里找了不少版本的五子棋小游戏,发现他们都比较简陋,有些直接点进去就是开始游戏了, 默认人机对战或者人人对战,有些比较好一点的会有“悔棋”或者“认输”功能,可是基本没有让用户登陆和注册这个功能。 咱们综合了各类版本的五子棋小游戏里的功能,而后构思了咱们写的五子棋小游戏应有的功能,分别是用户登陆和注册、 开始游戏、悔棋、认输和可选择对战模式(人人对战或者人机对战或者趣味对战)功能。
下图是咱们找到的、还算不太简陋的五子棋的功能界面截图↓数组
##3.5 项目功能架构图、主要功能流程图 多线程
##3.6 面向对象设计包图、类图。若是类太多,可仅列出主要类。 架构
##3.7 项目运行截图或屏幕录制优化
- 登陆界面
- 游戏界面
##3.8 项目关键代码:模块名称-文字说明-关键代码(注意:不得直接复制全部源代码,仅粘贴最关键代码)。url
- 用户登陆注册 游戏登陆系统,用文件存储用户信息。实现用户注册或登录帐进入游戏。 说明:用容器和面板作一个GUI登录界面,在按钮上添加监听器,根据按钮编写相关代码。登录按钮:须要扫描文件,依次比较用户输入的帐号和密码是否相同,结果会提示是否登录成功,若不成功,提示是帐号仍是密码错误。注册按钮:打开文件,把用户输入帐号和密码写入文件中,肯定后,提示注成功,若取消,则返回开始系统界面。
- 人机对战 算法:利用权值数组控制机器的棋子落点。 (1) 首先扫描整个棋盘,对于已经有棋子的地方直接将其权值置为0。 (2) 先进行以空点为中心的左右(行扫描)扫描,再依次进行上下(列扫描)扫描,再进行斜向的扫描,将其空点当前的左右,上下,斜向的状况在哈希表中寻找相应的权值,而后再将其赋值到当前落点的权值数组中。 (3) 扫描整个权值数值,将其最大的点选定为棋子的落点。 (4) 而后再将权值数组重置。
- 趣味对战 每下一个棋子时会有40%的几率再在棋盘上随机的位置上生成一个颜色相同的棋子。产生40个1~40的随机数,这些随机的位置有四个方向,肯定他们的方向后再计算他们的坐标信息,再下棋。
##3.9 项目代码扫描结果及改正。 (1)结果截图:
改正:
<span style="color:red">命名不规范,应该使用“驼峰命名”法命名。</span> (2)结果截图:
spa
<span style="color:red">改正:这一张是不能有多余的不用的代码,要把多余的代码删掉。</span> (3)结果截图:
.net
<span style="color:red">改正:这是不能在行尾进行注释,要删掉行尾的注释。</span>
##3.10 项目总结(包括不足与展望)
总结:此次的课程设计--五子棋小游戏,因为经验不足,咱们在作以前参考了网上已有的代码,发现他们在功能方面都不太成熟,基本都只有“人人对战”这一功能,因而咱们在原有代码的基础不断进行优化、改进,根据实际状况继续完善,又增长了登陆注册等功能,增长了背景音乐和开发了新的对战模式。在课设前两周咱们就开始着手这个小游戏了,由于是第一次作小游戏并且自身基础也没有很好,因此一开始磕磕绊绊,还好经过不断查资料和问大佬都基本能解决。相比于原有的代码,咱们增长了挺多东西的,经过分工合做,每一个人负责一部分代码的编写,最后再把它们整合在一块儿,获得一个相对完善的小游戏,这时候咱们三个合做的结果。虽然作了改进,可是咱们的小游戏还存在不足之处,咱们以前还想作一个要限制下棋时间的功能,可是查了资料发现作这个要用到多线程,在短期内咱们还弄不清楚这个东西,遂暂时放弃这个想法,在课设以后如有条件,咱们会继续完善。