开发学院软件开发C语言 游戏人生Silverlight(4) - 连连看[Silverlight 2.... 阅读

游戏人生Silverlight(4) - 连连看[Silverlight 2.0(c#)]

 2009-06-22 08:33:10 来源:WEB开发网   
核心提示: 介绍使用 Silverlight 2.0(c#) 开发一个连连看游戏玩法用鼠标左键选中卡片,如果选中的两卡片间的连线不多于 3 根直线,游戏人生Silverlight(4) - 连连看[Silverlight 2.0(c#)],则选中的两卡片可消除在线DEMO思路1、卡片初始排列算法:已知容器容量为 x, 不

介绍

使用 Silverlight 2.0(c#) 开发一个连连看游戏

玩法

用鼠标左键选中卡片,如果选中的两卡片间的连线不多于 3 根直线,则选中的两卡片可消除

在线DEMO

游戏人生Silverlight(4) - 连连看[Silverlight 2.0(c#)] 

思路

1、卡片初始排列算法:已知容器容量为 x, 不重复的卡片数量为 y, x >= y && x % 2 == 0, 首先在容器内随机排列卡片,然后取出容器内相同的卡片个数为奇数的集合(集合内成员数量必为偶数个),最后将该集合一刀切,将集合右半部分的卡片的依次复制到集合左半部分。以上算法保证了在一定随机率的基础上,不会出现相同的卡片个数为奇数的情况

2、无解算法和重排算法:在容器内存在的卡片中,两两计算是否存在可消路径,如果没有就是无解,需要重排。重排时,需要得到现存的卡片集合和卡片位置集合,在卡片集合中随机取卡片(取出一个,原集合就要移除这一个),然后依次放到卡片位置集合内,从而达到将现存卡片重新排列的目的

3、两点消去路径的算法以及取最优消去路径的算法:取玩家选的第一点的 x 轴方向和 y 轴方向上的所有无占位符的坐标集合(包括自己),名称分别为 x1s, y1s;取玩家选的第二点的 x 轴方向和 y 轴方向上的所有无占位符的坐标集合(包括自己),名称分别为 x2s, y2s。先在 x1s 和 x2s 中找 x 坐标相等的两点,然后找出该两点与玩家选的两点可组成一条连续的直线的集合,该集合就是可消路径的集合,之后同理再在 y1s 和 y2s 中找到可消路径的集合。两集合合并就是玩家选中的两点间的所有可消路径的集合,该集合为空则两点不可消,该集合内的最短路径则为最优消去路径,集合内的 4 点连接线则为消去路径的连接线

1 2  下一页

Tags:游戏 人生 Silverlight

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接