五子棋和画板项目总结

项目介绍

项目过程:

一.遇到的困难

五子棋:刚开始接触到五子棋的时候经常会被一些很简单的算法纠结,比如说,判断输赢的算法,还有就是怎么样让棋子下到交叉点上,刚开始有点不太明白

在人人对战的时候也经常会犯很多错误但是自己这么都找不到,有时为了一个很小的问题纠结很久

在人机对战的时候怎么实现人机算法关于判断权值找出下棋的位置,刚开始不是很理解,

怎么去判段到底是属于活连还是死连,一直没想到解决的方法,后来看了网上的资料才有了思路

在最后的优化界面的过程中,一直有个问题困扰着我,那就是如何实现添加背景图片,然后可以在图片上添加组件,那段时间一直没有解决,直到前段时间随着知识的积累就解决了那个问题

最后在实现五子棋的一些功能的时候,第一个困难就是悔棋的实现(最后被逼无难只有用队列实现)

然后就是关于人人和人机之间的转换(在移除监听器和加上监听器之间转换,经常会出现一些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

分享到:

2011-07-31 21:30

浏览 1399

分类:非技术

评论

2 楼

yu06206

2011-10-08

过奖!一起加油!

1 楼

flycatdeng

2011-10-03

好棒,继续加油!!!

五子棋项目结束总结_五子棋和画板项目总结相关推荐

  1. 五子棋项目结束总结_五子棋活动总结

    五子棋活动总结 篇一:五子棋兴趣小组活动总结 五子棋兴趣小组活动总结 在这个学期里,我们五子棋兴趣小组的活动提高了学 生活动兴趣,增长学生棋艺水平,陶冶学生的性情.现将本 小组的活动情况总结如下: 一 ...

  2. 五子棋项目结束总结_五子棋项目总结

    五子棋项目是在我加入蓝杰后第一个接触的小型游戏项目,有着非同寻常的意义,所以本人也是相当的重视. 在胡哥的指导下,我们通过完成一个简单的登录界面,初步对桌面应用程序的开发有了一定的了解,即UI的相关知 ...

  3. 五子棋项目结束总结_五子棋比赛总结

    五子棋比赛总结 为了丰富我校课余文化和学生们的课余生活, 宣传中华传统文化 和棋类文化, 促进棋类爱好者之间的交流, 提高我系学生的综合素质, 我们女生部特此举办了五子棋比赛,于 2011 年 11 ...

  4. 五子棋项目结束总结_五子棋编程思想小结

    昨天学习了一个控制台五子棋的小程序,还是获益匪浅的,下面对这个小程序总结一下: 首先是要解决如何显示棋盘和显示棋子,这里我们用了一个二维数组借助图像"□"来布局棋盘,棋子用● 遍历 ...

  5. 项目结束先别着急庆祝,项目经理还有这些事要做

    项目管理生命周期结束阶段的目的是确认项目可交付成果的完成,使项目发起人满意,并向所有参与者和利益相关者传达项目的最终处置和状态.   项目结束确保项目的所有参与者和利益相关者都清楚后续活动(如新项目. ...

  6. 【源码+教程】Java学生成绩在线管理项目_Java实战项目_Java开源项目_Java毕设项目_Java毕业设计_计算机毕业设计_Java项目开发

    今天为大家带来的是Java实战项目--学生成绩在线管理,可以用来做毕业设计喔~源码和教程就在下方.请大家查收~[源码+教程]Java学生成绩在线管理项目_Java实战项目_Java开源项目_Java毕 ...

  7. java五子棋需求分析文档_五子棋需求文档.docx

    五子棋需求文档 <五子棋goBang>项目需求分析报告作者:陈平.雷小梅.唐莉.邓悦.程强日期:2016-3-12审批:日期:状态修订人修改日期版本备注五子棋2016-3-121.0概述1 ...

  8. 产品经理 需求 项目经理 选择_产品经理和项目经理的区别

    "产品经理和项目经理都负责什么工作?" "我想做产品经理,你觉得合适吗?" "程序员做几年可以做到项目经理?" "产品经理和项目经 ...

  9. it项目经理带一个项目的完整_如何控制IT项目需求范围?千万别让用户把你带沟里……...

    IT项目管理之需求范围控制篇 作为一名项目经理,如果您遇到这种情况该怎么办?客户仅仅付给了你一块蛋糕的钱,但他却想拥有一顿非常丰盛的晚餐.如果有一位项目经理能够让客户非常满意的只带着一块蛋糕离开,那么 ...

最新文章

  1. proc/[pid]/maps 文件解释
  2. 内存溢出原因及解决方案
  3. Vmware7.1.4安装+破解+汉化
  4. GPTEE中的Storage API的使用
  5. 图解ARP协议(六)RARP与IARP:被遗忘的兄弟协议
  6. P3349-[ZJOI2016]小星星【树形dp,容斥】
  7. python建db文件_临时数据库之python用sqlite3模块操作sqlite
  8. RTX5 | 事件标志组03 - 线程同步(逻辑或)
  9. linux那些事之LRU(4)
  10. 关于外键,再唠叨一下下
  11. WinCE学习系列(1)——在VS2008的环境下安装WinCE 5.0仿真模拟器
  12. RazorSQL for Mac:查看和编辑二进制数据和图像
  13. 电商购物核心架构演进:谁说架构思路会过时?
  14. Spring之AOP面向切面编程
  15. 分类算法学习(四)——决策树算法的原理及简单实现
  16. 音视频基础概念与流程
  17. 入门系列之在Ubuntu上使用Netdata设置实时性能监控
  18. 算法与数据结构全阶班-左程云版系列目录
  19. PHP代码审计入门学习过程
  20. 数字化转型,金融行业的下一个引爆点

热门文章

  1. 嵌入式的我们需要学习一下ROS吗?
  2. 读书笔记16 《傅雷家书》 傅雷傅敏
  3. wrong ELF class: ELFCLASS32
  4. Python 爬虫第三步 -- 多线程爬虫爬取当当网书籍信息
  5. 全能型Mac解压缩软件 MacZip2.0.1(41)中文版 原ezip
  6. vulnhub之FirstBlood: 1
  7. websocket实现语音通讯(转)
  8. Win10常用的快捷键和触摸板操作合集
  9. 路由中的shells / CLI
  10. 用for循环嵌套实现使用 “ * ” 打印直角三角形。