用SilverLight实现 连连看 游戏 (3)

用SilverLight实现 连连看 游戏 (3),第1张

概述  本节介绍这个游戏的核心,如何寻路!很有意思的一节! 在SL上显示若干个小图标 可以点击小图标并标识选中的图标 两个相同图标间的连线(寻路功能、判断是否存在两图标是可连接的) 计时功能,游戏开始后,需要显示离游戏结束时的剩余时间。         我这样考虑寻路功能:   对于一个表情A,它怎么知道存在另一个表情B是与它相连的呢?!   最简单的方法,从表情A连一条线出去,在规则(连线可以弯二次

 

本节介绍这个游戏的核心,如何寻路!很有意思的一节!

在SL上显示若干个小图标 可以点击小图标并标识选中的图标 两个相同图标间的连线(寻路功能、判断是否存在两图标是可连接的) 计时功能,游戏开始后,需要显示离游戏结束时的剩余时间。

 

 

 

 

我这样考虑寻路功能:

 

对于一个表情A,它怎么知道存在另一个表情B是与它相连的呢?!

 

最简单的方法,从表情A连一条线出去,在规则(连线可以弯二次)允许下一直延伸,直到触及一个表情为止。

这条线延伸时,会存在无数不同的形状。我们需要把所有形状都演绎一次,把所有可连接的表情找出来,并判断是否存在相同的表情。

 

 

方法确定后,我再做一些补充解释,以让大家更明白:

对于一个表情,旁边的CELL如果没有被另一表情占有,则是可连线的

如上图,上面的一个表情有四个相邻CELL为空,即:有四条线可以连接出去

或者说:查询这个表情的可连接表情时,需要查询四次,每相邻的未占用CELL都需要做一次查询。

 

我们现在从上面 CELL 1 处连接一条线,当这条线从表情连接到CELL 1 时,这条线接下来有三个可能的延伸方案,如下图所示:

 

相同的,每个方案再次延伸都会碰到多个方案(好多分支啊!)

不过,用递归很容易满足要求!

 

 

OK,开始贴代码之前,还有一个要处理:

在CELL容器放置表情时,一定要成对成对的放置。(要不然,会有表情消除不掉)

并且,放置时,一定需要随机放置

 

 

 

看代码吧,相比上一部分,改动有点大

 

主要的初始化工作流程如下:

 

在程序运行过程中,每次点击都会判断是否有需要消除的表情。

当鼠标点击一个表情后,流程如下:

 

 

代码如下,这里是整个文件的代码:

欢迎各位问题

 

希望大家看明白了 :)

 

至此为止,已经主要功能完成了!剩下的都是一些完善的功能,如:计时功能、计分功能...

总结

以上是内存溢出为你收集整理的用SilverLight实现 连连看 游戏 (3)全部内容,希望文章能够帮你解决用SilverLight实现 连连看 游戏 (3)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1024088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存