连连看游戏设计
连连看是一种很受大家欢迎的小游戏。微软亚洲研究院的实习生 们就曾经开发过一个类似的游戏——Microsoft Link-up。
图 1-17 连连看游戏示意图
图 1-17 为Microsoft Link-up 的一个截图。如果用户可以把两 个同样的图用线(连线拐的弯不能多于两个)连到一起,那么这两个 头像就会消掉,当所有的头像全部消掉的时候,游戏成功结束。游戏 头像有珍稀动物、京剧脸谱等。Microsoft Link-up还支持用户输入 的图像库,微软的同事们曾经把新员工的漫画头像加到这个游戏中,让大家在游戏之余也互相熟悉起来。
假如让你来设计一个连连看游戏的算法,你会怎么做呢?要求说 明:
1. 怎样用简单的计算机模型来描述这个问题?
2. 怎样判断两个图形能否相消?
3. 怎样求出相同图形之间的最短路径(转弯数最少,路径经过的 格子数目最少)。
4. 怎样确定目前是处于死锁状态,如何设计算法来解除死锁?
分析与解法
连连看游戏的设计,最主要包含游戏局面的状态描述,以及游戏 规则的描述。而游戏规则的描述就对应着状态的合法转移(在某一个 状态,有哪些操作是满足规则的