实验要求
九宫格的拼图游戏,上下左右键用来移动,采用贴图实现。
程序思路
将一张图片分成三行三列进行贴图,首先需要打乱顺序,但保证右下角为空白。然后上下左右可以进行图片的移动,将空白处和四周进行交换,如果最终达到完整的图片则游戏结束,获得胜利。
关键之处是,如果一个拼图随意打乱顺序是否可以还原。这是不一定的。在网上查阅资料表明,将贴图标号顺序排成一列,最后的位置是0,如果两个序列的逆序数的奇偶性是一致的,则可以由一个图形得到另一个。我们期望的游戏结果是得到{1,2,3,4,5,6,7,8,0}的序列,逆序数为偶数,则判断随机生成的拼图的逆序数是否为偶数即可。
打乱拼图的方式我采用了随机数,用一个数组保存这个序列,除了最后一位即下标为8的数外,随机获得0到7的数字,交换位置,实现打乱,如果拼图不可解则重新打乱,每次打乱五次。
Gamecanvas中一个线程循环判断是否有上下左右按下,并进行重新贴图,每次也判断是否赢得胜利,若获胜则切换到结束界面。拼图可解性
链接地址:http://blog.youkuaiyun.com/tailzhou/article/details/3002442
有一个3*3的矩阵,里面分别填着数字0~8,填入的时候是随机的,要求每次只能用0和和边上的一个数字交换,最终实现所要求的数字排列。
如:
随机真数字矩阵为ÿ
如:
随机真数字矩阵为ÿ