一、项目简介
五子棋是大家喜闻乐见的小游戏,规则很简单,但又变化多端,具有趣味性,可玩性很强。五子棋游戏程序可以让人们方便快捷的下五子棋,让人们可以随时通过下棋提高思维能力。功能如下:在点击鼠标时,可以在相应的位置显示棋子;可以自动判断游戏是否结束,是否黑方或白方已经胜利;对游戏时间进行设置,判断是否超出规定时间。
此次课程设计我们小组通过编写五子棋游戏的程序,进一步的来锻炼Java图形编程技巧以及编写程序的能力。掌握以Java为核心的应用软件开发方案,达到能够独立阅读、编写和调试一定规模的Java程序的水平。
二、项目采用技术
处理屏幕闪烁问题:
双缓冲技术:用在手机游戏中用的是最多的。
原因是手机的内存相对较小,屏幕闪烁问题比较明显。
把所有要显示到屏幕上的信息,先缓冲到内存中的图片上,再统一把内存中的图片显示到窗体中。
paint 方法中添加双缓冲。
BufferedImage bi = new BufferedImage
(500,500,BufferedImage.TYPE_INT_ARGB);
//传入一个颜色类型
Graphics g2 = bi.createGraphics(); //为内存中的bi 图片创建画笔。
下面的都用g2 画到缓冲图片上,g只画bi。
…
g.drawImage(bi,0,0,this);
一次性绘制的东西太多,可以会先绘制一些,后绘制一些。
程序很快执行,就会出现闪烁。
双缓冲,只画一个,就把上面的内容一次性绘制到程序中。
三、功能需求分析:
①下棋功能;
②判断胜负功能;
③具有提示该轮到哪一方下棋的功能;
④开始功能;
⑤退出功能;
⑥认输功能;
⑦时间设置功能;
四、项目亮点:
在五子棋能够开始游戏,退出游戏的基础上添加了游戏设置按钮可以在下棋时设置限时。
输入时间后黑棋先行,黑棋下棋时时间倒置,白棋时间不变,黑棋下完后时间暂停,白棋时间倒置。如白棋超过时间设置则白棋为输,反之黑棋为输。
public void run() {
// TODO Auto-generated method stub
// 判断是否有时间限制
if (maxTime > 0) {
while (true) {
if (isBlack) {
blackTime–;
if (blackTime == 0) {
JOptionPane.showMessageDialog(this, “黑方超时,游戏结束!”);
}
} else {
whiteTime–;
if (whiteTime == 0) {
JOptionPane.showMessageDialog(this, “白方超时,游戏结束!”);
}
}
blackMessage = blackTime / 3600 + “:”
+ (blackTime / 60 - blackTime / 3600 * 60) + “:”
+ (blackTime - blackTime / 60 * 60);
whiteMessage = whiteTime / 3600 + “:”
+ (whiteTime / 60 - whiteTime / 3600 * 60) + “:”
+ (whiteTime - whiteTime / 60 * 60);
this.repaint();
try {
Thread.sleep(1000);//睡眠1000毫秒
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(blackTime + " -- " + whiteTime);
}
}
}
GIT地址:
https://github.com/lyp-12345/whole.git
按钮部分:
https://github.com/lyp-12345/-.git
绘制部分:
https://github.com/GHT303/GHT1.git
下棋和判断输赢部分
https://github.com/jmc-art/-