博舍

智能拼图 智能拼图软件重叠怎么办

智能拼图

前几天用win32api写了个拼图游戏,现在写完了,想与大家分享一下。这个拼图游戏,我一共写了两个版本。

一、第一个版本

这是比较原始的版本,包含了拼图游戏所需的基本功能,通过用鼠标点击图片,实现图片的移动,并且,加入了计时和记录步数的功能。

1.效果图:

2.设计思路:

大致的思路是这样的,先加载一张位图,将位图分割成9个小的图片,开一个3*3的POINT数组,用来存储这9张图片的左上角顶点的坐标。程序中我用了两个POINT数组,一个数组p用来记录着终止状态时这九张图片的坐标,数组point用来记录当前时刻9张图片的坐标。这样的话,把对应的point[i]位置的图片加载到p[i]位置,就可以实现将图片分割的效果。

3.注意点;

对于随机打乱图片的位置生成的拼图,有50%的几率是不可解的。我这里生成的拼图是保证可解的。这里有一个知识点,在这种情况下,生成拼图序列的逆序数是偶数就可解;

关键代码:

voidGenerate_Puzzles(){srand((unsigned)time(NULL));intb[NUM*NUM];while(true){memset(vis,false,sizeof(vis));for(inti=0;i

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇