Java3*3拼图小游戏--powered by dustin

终于用了2天时间写出了这个游戏,算是对事件处理和基本绘图的一种联系吧!至于更NB的功能以后会慢慢添加的,写出属于自己的作品方可谓“璀璨的是人生”!
废话我不多说了,首先介绍一下基本功能。是一个3*3的图像,素材我选了“德国总理调戏小机器人”这幅有趣的画面,之所以选这幅图有一个原因是图像分为9块之后每一块的特征都相当明显也就是说辨识度很高,这样是符合拼图的基本要求的。 Java3*3拼图小游戏 - duslish - duslish的博客
 
写了这个程序我才发现即使一个简单的拼图游戏,要实现好也并不容易,尤其是对初学者查阅大量的api甚至百度上找一些用法都是家常便饭啦,不过我终于体会到CSDN上真是牛人辈出啊!不错的网站,赞一个!首先我遇到的 第一个问题是如何生成一个随机的数组,要求数组大小为9(存储9个子图像的索引),最后一位即下标为8时数组值为8(这里出现空格),其余各位(0~7)要将0~7这8个数字随机安排进去,也就是说“无序不重复”。经过思考之后我采用了生成随机数的方法,new一个大小为9的数组,然后得到一个随机数,查找数组中现在有没有这个数,如果有就在获取另一个随机数(0~7之间),如果没有就将这个随机数插入数组,数组下标加一,到下标为7的位置填充完毕之后退出循环,将下标为8的位置置为8。这样就算解决了如何得到一个随机的初始乱序图像问题。
第二个问题是如何保证得到的随机乱序图像有解?经过查阅之后我发现,有一种通过“逆序数奇偶性”的算法可以解决这个问题,所以我用循环的方法自己编写了一个判断是否有解的函数。在输出窗口如果有解会是:

                    Java3*3拼图小游戏 - duslish - duslish的博客
如果没有解则会是:
Java3*3拼图小游戏 - duslish - duslish的博客
  第三个问题是解决子图像的移动问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值