首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >随机生成3x3x3 "block“大结构

随机生成3x3x3 "block“大结构
EN

Stack Overflow用户
提问于 2011-10-04 02:31:14
回答 3查看 257关注 0票数 2

我正在制作我的第一个3D游戏,但我坚持了一个部分。我从来都不擅长算法,甚至数学,所以我有点困难:(

无论如何,我想生成3x3x3 (当然,如果算法可以生成任何大小的算法,那就太好了!)“结构”或任何它应该被称为的东西。1个单元是一个块/立方体。我不想让它充满块,而是随机生成形状,这样一些部分会有块,一些会是空的。所有的积木应该至少连接到另一个积木(不是对角线,而是“直”的)。

我希望您能理解我所追求的:)

我很快地用颜料画了一张小画,如果它真的有用的话。然而,我希望它是更空的,如果上面的部分比下半部分更经常是空的,那就太好了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-04 02:45:23

为什么你不创建一些结构,然后使用随机数来确定其中的一个。如果你制作了7个不同的游戏,用户/玩家几乎不会注意到任何形式的重复。顺便说一句:如果你忽略所有旋转对称的结构,那么不应该有这么多不同的结构符合你的标准。

票数 3
EN

Stack Overflow用户

发布于 2011-10-04 03:50:58

作为@FlyOn评论的延伸,我建议你把这个问题看作是一个规则系统。写出/用图表表示出规则。像这样问自己一些问题:

  • 生成相邻位置时,到达该位置的有效3空间移动是什么?

(实体中的每个坐标块都有6个面相邻的坐标块、8个点相邻的坐标块和12个边相邻的坐标块。6+8+12+1=27=3^3)

  • How您是否可以将随机生成限制为仅生成面相邻坐标本身,以便您不必在随机之后应用该规则?

  • 如果您处于(0,0,0)位置,并且选择的随机相邻块为(0,0,-1),则需要进行哪些测试来确定这是否有效?

编写逻辑,并编写一些单元测试样式的方法,这些方法通过测试调用逻辑方法。当您使用不同的输入测试它们时,看看它们是否如您所期望的那样工作。

3-space中的逻辑难题非常有趣,:)

票数 1
EN

Stack Overflow用户

发布于 2011-10-04 02:54:54

您可以实现的一个示例算法:

  • 在3x3x3
  • 中随机选择一个方向从可能的直线选项中选择一个随机方向(删除会将您带出立方体的选项)
  • 转到该位置(因此在3x3x3数组中将其设置为'1‘或类似的值)
  • start over

可选:

*同时删除您已经使用过的选项

*首先为你想要填充的点的数量生成一个随机数,然后一旦你有了那么多的点,就停止算法。

*允许所有方向,只需进入立方体的‘另一边’(这可能会导致部件无法连接到其他部件)

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

https://stackoverflow.com/questions/7639121

复制
相关文章

相似问题

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