还是连连看算法的问题(整图是否有解)

lovewindy 2005-04-04 02:33:48
现在判断两点是否连通已经完成,
接下来就是要解决整图是否有解,以及加入重新洗牌的功能
对于整图是否有解,其实按最垃圾的方法,就是对每一个牌进行循环,然后判断与另外的是否能连通
但这样实在太......

1.希望各位能推荐个好方法,来判断整图是否有解, (这个问题最重要)
2.如果我在一个连接消除后,然后进行整图是否有解的判断.这样是不是会太慢,是不是应该搞个线程在那边算是否有解?
3.最后就是提醒道具,怎么实现来给玩家提醒哪两个可以连?
...全文
445 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlj1800 2005-04-09
  • 打赏
  • 举报
回复
http://bbb123.com/down.asp?UserID=116189
教学视频下载值得一看
ZhangYv 2005-04-09
  • 打赏
  • 举报
回复
嗯,对。但是在重新洗牌或位置变化的时候会稍微麻烦点,二维数组中的值要同步改变。
lovewindy 2005-04-09
  • 打赏
  • 举报
回复
呵,谢谢ZhangYv(Show you my money)
不过感觉好像还是shenqhy(love)的算法好一点,以一点空间换取时间上的进步,
ZhangYv 2005-04-08
  • 打赏
  • 举报
回复
最坏条件也就O(N^2),因为对被完全包围的图形就可以完全排除不进行比较,所以效率仍然可以接受。
shenqhy 2005-04-08
  • 打赏
  • 举报
回复
按图形的数量,建个二维数组,把同样的一些图形放在一组中,然后只要搜每组内是否可以连通.
ZhangYv 2005-04-06
  • 打赏
  • 举报
回复
就是我说的 1. 后台计算出一条可行的解,如果无解那么随机洗牌并且重复过程1,直到洗出有解的图

后台计算是一个穷举剪枝的过程,从第一个节点开始依次判定。一旦找到一条可行的连接就立刻返回,所以效率不会如想象中的那么糟。
lovewindy 2005-04-06
  • 打赏
  • 举报
回复
to:ckc(火)
不好意思,我好像理解不了你的意思,不知道能否详细讲解一下

to:ZhangYv(Show you my money)
羡慕啊,三颗星星,呵呵.对于该游戏的流程我已经清楚了,而且也解决了判断两点是否连通的算法,我现在要解决的是,如何去判断整图有解,希望能给出个解决方法,

谢谢
lovewindy 2005-04-06
  • 打赏
  • 举报
回复
to: ZhangYv(Show you my money)

您所说的后台..是不是再开一个线程,让它在那边算?

如果能很早地找到可连接点,那这个算法倒还行,但如果遇到最坏条件,那.....
ZhangYv 2005-04-05
  • 打赏
  • 举报
回复
如何消除的规则需要自己定,普遍做法是如果两节点间需要拐弯两次就判断不合法。

0. 玩家选定一个连接后,判断该连接是否合法。如果合法消除,转过程1
1. 后台计算出一条可行的解,如果无解那么随机洗牌并且重复过程1,直到洗出有解的图
2. 玩家使用提醒道具,把后退计算出的解提示给玩家。




ckc 2005-04-05
  • 打赏
  • 举报
回复
我玩过的连连看好象不一定整图有解的
有的就是没解
你只要有一些可以洗牌的功能应该就可以了
或者是不是可以用随机一对一对加上牌的办法解决?
因为是一对一对加上去的,所以肯定有解(按相反顺序取下即可)
zbo 2005-04-04
  • 打赏
  • 举报
回复
不懂算法。不过按照连连看的玩法。在牌堆内部的牌只需要判断周围四个是否跟他连接。是不是?

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧