求一消磚塊算法

东门吹雪 2011-07-07 09:56:01
还请大牛大虾们不吝赐教!
我平时写代码太少,思维有限,想不出来了,最笨的办法是先判断每行相邻的大于等于3个相同的砖块,再判断每列的;方块消去下落后再重复,这里是否应该使用递归呢?可是递归我又不知道怎么下手了。
...全文
195 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfvmario 2011-07-08
  • 打赏
  • 举报
回复
额,如果是那种相同颜色消的类俄罗斯方块游戏,因为初始变化范围有限(就是落完的新块),比较好实现
如果是没有初始变化范围的,开始要搜索的话感觉就没法太高效了。。
东门吹雪 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 gogdizzy 的回复:]
同意,就是判断局部就可以了。而且消去检查时要注意,可能不一定只消去“一”或“1”型,还可能消去“T”型。

而且消去以后,所有在消去方块上方的都会向下动,这些也都是新的发生变化的,可能掉下来后会继续消去方块。而且要注意可能每个状态可能同时消去多种方块,然后剩下的一起掉落。

可以用个队列来储存待检查的位置。


引用 5 楼 yaoweijq 的回复:

不用全搜索,只判断有变化……
[/Quote]
謝謝你的指點,這個我也能分析出來,遊戲我玩過很多,規則也知道,關鍵是算法實現呀
东门吹雪 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dizuo 的回复:]
http://bbs.vrbrothers.com/viewthread.php?tid=212020
[/Quote]
公司網絡受限,只能回去再看哦
东门吹雪 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 icessl 的回复:]
该问题比较简单,就按楼主的方法做即可,不需要递归.
[/Quote]
是吗,难道我想复杂了?
icessl 2011-07-07
  • 打赏
  • 举报
回复
该问题比较简单,就按楼主的方法做即可,不需要递归.
  • 打赏
  • 举报
回复
同意,就是判断局部就可以了。而且消去检查时要注意,可能不一定只消去“一”或“1”型,还可能消去“T”型。

而且消去以后,所有在消去方块上方的都会向下动,这些也都是新的发生变化的,可能掉下来后会继续消去方块。而且要注意可能每个状态可能同时消去多种方块,然后剩下的一起掉落。

可以用个队列来储存待检查的位置。

[Quote=引用 5 楼 yaoweijq 的回复:]

不用全搜索,只判断有变化的行与列及其相邻的就行
如果有相同的再进行扩展
类似于flood fill的变种吧
[/Quote]
快溜 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dizuo 的回复:]
http://bbs.vrbrothers.com/viewthread.php?tid=212020
[/Quote]不会玩
yaoweijq 2011-07-07
  • 打赏
  • 举报
回复
不用全搜索,只判断有变化的行与列及其相邻的就行
如果有相同的再进行扩展
类似于flood fill的变种吧

33,007

社区成员

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

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