首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何建立一个可解决的水平相同的游戏(也就是。连环射击,又名。点击狂症)

如何建立一个可解决的水平相同的游戏(也就是。连环射击,又名。点击狂症)
EN

Stack Overflow用户
提问于 2009-06-10 14:52:05
回答 5查看 1.2K关注 0票数 7

我正在构建一个像Same Game这样的游戏,当我必须创建一个新的关卡时,我刚刚运行了一个算法来用N种颜色填充棋盘,这个算法随机填充棋盘,但显然这种方式产生的关卡并不都有解决方案。

我必须做一个函数来解决这个问题,这样游戏就可以永远由一个完美的玩家来玩了。

我有最大的6种颜色和最小的2和板有一个合理的大小(14x12),但可以修改。

语言是无关紧要的。

编辑:我不需要解决这个难题,我需要创建至少有一个解决方案的关卡。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-06-10 16:10:54

我刚刚在Ubuntu上查看了这个游戏的五个不同版本,我找到了一个答案,你可以从中掠夺!

Simon Tatham's Portable Puzzle Collection

我一直在玩他的五个游戏,但我更喜欢同一个GNOME。我刚刚加载了他的同一个游戏,它有一个选项,以确保创建自定义游戏时的溶解度。甚至有一个可定制的评分系统。这一切都非常先进。

上面的链接提供了可执行文件和源代码。

许可证是麻省理工学院的(这意味着你可以在商业游戏中免费使用它-但如果你能负担得起的话,请捐赠一些给他)

票数 3
EN

Stack Overflow用户

发布于 2009-06-10 15:02:50

有一种方法,我会补充说,很少是最有效的,就是反向构建关卡。

不过,在这种情况下,这是相当简单的。你只需要从零开始,然后添加一些随机性的可点击组...我说的是一些随机性,因为您可能需要添加额外的块,以确保所有列都被填充。

但考虑到这一点,即使是这样,你添加的两个可点击的群组也有可能相互接触,导致不可预见的崩溃,导致无法完成的游戏。因此,这种方法并不能保证博弈是可解的。

您可以查看Same GNOME等开源版本的源代码,看看他们是如何做到这一点的(如果他们真的做到了!)

票数 3
EN

Stack Overflow用户

发布于 2009-06-10 15:03:03

创建一个“已解决”的棋盘,然后使用N个有效但随机的向后移动来更改它。在添加每个向后移动之后,您可以运行向前移动(在temp board上)来验证可解决的难题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/976084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档