文档介绍:基于java GUI编程的五子棋程序
项目简介
五子棋
现代五子棋专用棋盘为十五路(15X15),共225个交叉点。
黑白双方轮流落子,直到某一方首先在棋盘的横线、纵线或斜线上形成连续五子或五子以上〔仅对白棋而言〕,则该方就算获胜
五子棋棋盘
系统需求分析
稳定美观的基本页面,避免出现错误和界面变形;
简洁良好的外观界面,方便游戏;
人机对弈较复杂,具有挑战性;
人机对弈底层算法复杂性低,快速计算,避免等待;
能快速分辨胜利与失败,及时提供胜败信息;
实现计时功能,方便程序使用者。
系统设计
主要采用的方法和技术
Jframe类,实现界面绘制
Mouselistner接口,控制程序的功能和设置
Tread接口,实现计时操作
puterDo()方法,实现人机对于功能
ess()方法,判断五子棋胜负情况
设计过程
第一版——
实现人机对弈功能和基础胜负判断功能。
第二版——
实现界面调整和计时功能。
第一版
第二版
核心技术难点
人机对弈
解决算法:全棋盘遍历,对与每个未落子位置八个方向的棋子进行统计,计算棋子四个方向上最多落棋数字。保留最多的一个方向(无论黑白)进行下一步落子。
图片和界面制作
通过drawImage()方法导入调整好的图片,用drawLine()方法绘制棋盘,
放弃使用Jmenubar类和Jbuttun方法,提高程序整体性
()方法取得图形位置,并绘制相应图形
图片显示问题
双缓冲技术提高图片和附加图形的加载速度,提高内存使用效率,减少整个界面闪烁和白屏
提前手动调用repaint()方法,减少双缓冲技术带来的加载延迟