Java五子棋游戏开发博客

一、项目简介
五子棋是大家喜闻乐见的小游戏,规则很简单,但又变化多端,具有趣味性,可玩性很强。五子棋游戏程序可以让人们方便快捷的下五子棋,让人们可以随时通过下棋提高思维能力。功能如下:在点击鼠标时,可以在相应的位置显示棋子;可以自动判断游戏是否结束,是否黑方或白方已经胜利;对游戏时间进行设置,判断是否超出规定时间。
此次课程设计我们小组通过编写五子棋游戏的程序,进一步的来锻炼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/-

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值