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

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

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

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

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

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-03 18:45:23

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

票数 3
EN

Stack Overflow用户

发布于 2011-10-03 19: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-03 18:54:54

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

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

可选:

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

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

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

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

https://stackoverflow.com/questions/7639121

复制
相关文章
利用Block_layout结构获取Block方法签名利用Block_layout结构获取Block方法签名
废话不多说直接上代码: #define BLOCK_DESCRIPTOR_1 1 struct HR_Block_descriptor_1 { uintptr_t reserved; uintptr_t size; }; #define BLOCK_DESCRIPTOR_2 1 struct HR_Block_descriptor_2 { // requires BLOCK_HAS_COPY_DISPOSE HR_BlockCopyFunction copy; HR
用户8893176
2021/08/09
8030
利用Block_layout结构获取Block方法签名利用Block_layout结构获取Block方法签名
Block RAM的基本结构
以UltraScale芯片为例,每个Block RAM为36Kb,由两个独立的18Kb Block RAM构成,如下图所示。
Lauren的FPGA
2019/10/31
3.6K0
PHP生成随机数(昵称随机生成器)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128397.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/28
6.1K1
excel随机生成区间随机数
既然,这个函数只能生成随机整数,那么可不可以生成随机小数了?可以的,本次以随机生成小数点后一位小数为例,先输入公式=RANDBETWEEN(1,9),生成1~9的随机数,再除以10,即可得到这一结果,完整公式如下:=RANDBETWEEN(1,9)/10
似水的流年
2019/12/06
2.5K0
随机ID生成工具
程序员朱永胜
2023/09/26
1790
生成随机数
Python能够很简单地实现随机数的生成 1.生成指数分布的随机数 2.生成随机分布的随机数
福贵
2019/03/06
3.9K0
生成随机数
生成随机数
有时候我们需要在程序中生成随机数。 但是Objective-C并没有提供相关函数,好在C提供了rand(), srand(), random(), srandom(), arc4random()几个函数
EltonZheng
2021/01/26
2.8K0
Python随机生成密码
废话不说,直贴代码 ---- # coding:utf-8 """ Author : han Email : oaixnah@163.com Time : 2019-07-27 17:12 Home Team : Golden State Warriors 随机生成 密码 6位 ~ 20位 三个等级 """ import sys import random import string def main(d=
py3study
2020/01/09
2.4K0
随机生成数字
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <style> html{ height: 100%; background: linear-gradie
天天Lotay
2022/12/02
2.4K0
随机生成数字
python生成随机数、随机字符、随机字符串
本文是基于Windows 10系统环境,实现python生成随机数、随机字符、随机字符串:
用户7886150
2020/12/22
2.6K0
随机数生成 python_python生成多个随机数
seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。。
全栈程序员站长
2022/11/09
2.6K0
python如何生成随机数_Python生成50个随机数
可以生成 均匀分布, 高斯分布,(包括正态分布) 指数分布,(与泊松分布有区别:泊松分布表示一段时间发生多少次,而指数分布表示两次发生的时间间隔) 贝塔分布, 韦布尔分布的随机数
全栈程序员站长
2022/11/10
3.2K0
C#生成随机数或随机字母
public class Rand { /// <summary> /// 生成随机数字 /// </summary> /// <param name="length">生成长度</param> /// <returns></returns> public static string Number(int Length) { return Number(Length
小语雀网
2022/05/06
1.3K0
python随机产生数字_随机数生成excel
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
1.5K0
如何生成随机数
扔色子就是一个随机过程,得到的结果就是随机数。再比如对生产线的同一种产品称重,单个产品的重量也是不一样的,得到的结果也是随机数。
fem178
2019/08/19
3.6K0
如何生成随机数
mkpasswd - 生成随机密码
生成一个随机密码 mkpasswd -l 12 -d 3 -c 4 -C 3 -s 2
陳斯托洛夫斯記
2022/10/27
1.1K0
Oracle生成随机日期时间
/*  * 分析:2015年内的任意日期,即日期范围是(2015-01-01, 2015-12-31)  * 可以转化为 2015-01-01 + (0, 365),  * 其中,2015-01-01 就是'指定日期’; (0, 365) 就是'指定范围’ */
艳艳代码杂货店
2021/10/27
1.7K0
Random生成随机数
/* * Random:用于产生随机数 * * 使用步骤: * A:导包 * import java.util.Random; * B:创建对象 * Random r = new Random(); * C:获取随机数 * int number = r.nextInt(10); * 获取数据的范围:[0,10) 包括0,不包括10 */ package com.pku.wuyu.io; import java.util.Random; publ
葆宁
2019/04/18
2.7K0
点击加载更多

相似问题

大随机数生成

47

关于大维随机矩阵的图像生成

13

生成非常大的随机数

521

生成非常大的随机数

30

随机生成无限大的图像网格

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文