五子棋和画板项目总结
项目介绍
项目过程:
一.
遇到的困难
五子棋:刚开始接触到五子棋的时候经常会被一些很简单的算法纠结,比如说,判断输赢的算法,还有就是怎么样让棋子下到交叉点上,刚开始有点不太明白
在人人对战的时候也经常会犯很多错误但是自己这么都找不到,有时为了一个很小的问题纠结很久
在人机对战的时候怎么实现人机算法关于判断权值找出下棋的位置,刚开始不是很理解,
怎么去判段到底是属于活连还是死连,一直没想到解决的方法,后来看了网上的资料才有了思路
在最后的优化界面的过程中,一直有个问题困扰着我,那就是如何实现添加背景图片,然后可以在图片上添加组件,那段时间一直没有解决,直到前段时间随着知识的积累就解决了那个问题
最后在实现五子棋的一些功能的时候,第一个困难就是悔棋的实现(最后被逼无难只有用队列实现)
然后就是关于人人和人机之间的转换(在移除监听器和加上监听器之间转换,经常会出现一些BUG),最后就是关于加倒计时功能,因为我的五子棋就是一张背景图片,要关于五子棋在图片是倒计时一直会出现闪屏的问题,有解决的方法,但是会破坏我整个界面的布局,所以一直纠结着到现在还没解决
画图板:最开始接触画图板的时候对鼠标监听器迷茫的,一时很难接受,
然后就是在优化界面的时候关于界面的排版总是达不到我想要的结果,关于JPanel和JSplitPane分割界面感觉不受控制
最后就是在图片的保存和打开时,在打开BMP文件时总会出现一些奇怪异常,无法在画图板中打开bmp文件,最后bmp的保存时,基本上自己无法想到用截图的方法保存图片,还有那些复杂的图片数据,最后在雷超的帮助下实现了bmp的保存
二.
解决困难
当我遇到那些我暂时还没有理解的问题是,就会多理解几遍,多敲几遍代码,档子渐渐熟悉了这个问题后就觉得不是很难
在做五子棋的时候为了解决窗体的布局问题,我直接绕过,通过PS来整合多张图片,然后达到一个很好的效果
在遇到五子棋人机对战的算法时在查看了很多资料后初步对怎么实现一个好的人计算法有了了解
在五子棋倒计时功能的实现上通过预习后面的线程的知识然后慢慢熟悉掌握一些线程的基本用法
关于窗体的背景图片的添加,通过请教老师和同学慢慢的了解了添加背景的一些方法
还有就是布局和JPanel的应用,通过多次试验最后能做出一个和XP很相似的画图板
三.
存在的问题
五子棋再人人和人机对战之间转换由于系统反应慢,会出现人人和人机叠加的现象
五子棋添加倒计时功能
五子棋打开后的棋子不能实现重绘功能
五子棋界面存在局限性,如果在加一些功能的话就会打乱布局
画图板打开bmp文件速度太慢了,
画图板的功能按钮没有XP系统按钮的效果,还有很多功能有待实现
在画图板打开bmp图片后,再清楚图片重绘功能失效
心得体会:
我的感悟
写代码时最好写注释当一个类比较长时要理清楚类里面的逻辑顺序
做一个java程序都是不断优化的过程(从最开始的简单界面到最后的仿真界面)
写java程序要要追求完美,也许开始的时候你不能把这个界面写的很完美,只要你不断地去优化,去追求完美,你会乐在其中。
对于一些不懂的问题,代码出现了异常,要去寻求别人的帮助,或者去网上找资料,不一定别人的东西就不能拿来借鉴,你可以把别人的转化为自己的,
自己的不足
对一些基本的概念理解的不是很清楚
代码写的不够好,不够精简,在写代码时没有一个全局观
对一些比较复杂的算法的理解深度不够
写代码不喜欢写注释
- 大小: 71.8 KB
- 大小: 105 KB
- 大小: 48.5 KB
- 大小: 70.6 KB
分享到:
相关推荐
五子棋社团工作计划总结总结.doc
NULL 博文链接:https://javaprince.iteye.com/blog/798714
C#五子棋完整项目C#五子棋完整项目C#五子棋完整项目C#五子棋完整项目C#五子棋完整项目C#五子棋完整项目C#五子棋完整项目C#五子棋完整项目
1引言1 1.1系统开发背景2 1.1系统开发的目的和意义3 1.2完成的主要工作4 2需求分析和总体设计4 2.1需求分析与设计思路5 2.1.1关键技术说明5 2.1.2需求分析5 2.1.3系统设计方案与思路5 2.1.4系统目录结构说明5 2.2...
Java五子棋项目Java五子棋项目Java五子棋项目Java五子棋项目Java五子棋项目
五子棋项目,控制台程序五子棋项目,控制台程序五子棋项目,控制台程序五子棋项目,控制台程序五子棋项目,控制台程序五子棋项目,控制台程序五子棋项目,控制台程序
基于 C++实现人工智能课程五子棋博弈问题项目源码(高分项目).zip 已获导师指导并通过的高分项目可作为课程设计和期末大作业,代码完整下载可用。 基于 C++实现人工智能课程五子棋博弈问题项目源码(高分项目)....
五子棋java小项目-含源码,测试能正常使用
本文档是关于大学本科课程实训的一个项目,是用c语言写的一个关于五子棋的实训报告,并且可视化
五子棋MFC 五子棋MFC 五子棋MFC
简单的五子棋小项目的资源,可以使用五子棋项目学习简单的C++知识!
网络五子棋设计报告 大家下载着看看吧 网络五子棋设计报告 网络五子棋设计报告
本项目使用了JavaSwing实现桌面五子棋应用,人机对战部分用a-B剪枝算法实现,有一定的智能。
这是一个我基于java开发的小项目,开发一个小的五子棋项目,对于初学者 掌握java项目十分有益
这个是用java技术写的的五子棋,可玩性很强,代码可以借鉴参考。
五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java五子棋.java...
实现GUI的五子棋小项目,是JAVA程序设计课程的课程PROJECT。
五子棋大作业项目sln
五子棋,相信是每个人都会的游戏,当游戏的一方构成5个连续的棋子,无论是水平方向、垂直方向,还是斜对角线方向,都表示获胜了。在游戏开发过程中,有很多功能需要严格测试,避免出现BUG。五子棋游戏具有以下功能。...
手机java五子棋 项目 手机java五子棋 项目 j2me实现的