【问题标题】:Seed for grid based game基于网格的游戏的种子
【发布时间】:2015-10-22 01:18:35
【问题描述】:

我正在尝试想出一种从种子生成网格/关卡的方法。

我正在考虑使用 6 x 6 的网格,每个网格中包含 3 个可能的图块。 种子长度为 108 个字符,我怀疑有人会想要复制 108 个字符长的种子。 (游戏可能会在 iPhone 上,所以种子将通过键盘输入) 无论如何要缩短它?

我认为一个有趣的方法是使用单词。 将网格分成三个 2 x 6 行。并让每一行由一个英文单词表示。 然后玩家只需输入 3 个单词,这更容易并为关卡命名。

对我如何实现这一点有什么想法吗?

(我目前正在使用游戏沙拉)

感谢您的宝贵时间,

约旦

【问题讨论】:

  • 也许创建一个将单词映射到图块的数据库?此外,您可能需要展示到目前为止您已经尝试过的内容。

标签: 2d-games random-seed gamesalad


【解决方案1】:

缩短种子。

好吧,108 个字符有点过头了。您有 6 x 6 个单元格,因此总共有 36 个单元格。每个单元格有 3 个不同的状态,但一个字符至少有 64 个不同的状态(A-Z、a-z、0-9 和一些标点符号以保持简单)所以即使有 36 个字符,我们也有比我们需要的更多的东西。

所以让我们再分解一下。计算机以二进制工作。位是它可以使用的最小信息位。一位可以打开或关闭,因此它有 2 种可能的状态。 2 位可以是关闭、关闭或关闭、打开或打开、关闭或打开、打开,因此有 4 种不同的状态。如果我们添加另一个位,我们会为每个先前的状态获得两个状态,因此 4*2 = 8 个状态用于 3 位。第 4 位再次乘以 2,我们得到 16 个状态,再次为 32,再次为 64,这恰好是我们想要使用的字符数。所以需要 6 位来存储 64 种可能的状态。

现在让我们看看网格。每个单元格都有 3 个状态。所以两个细胞有 9 种可能的组合 3*3,对于 3 个细胞,它的 3*3*3 = 27 接下来是 3*3*3*3 = 81 或 3 的 4 个细胞或 3^4 = 81 的幂。我们可以利用这个趋势计算出所有 36 个单元格有多少种可能的组合。 3 的 36 次方。这是一个很大的数字 150,094,635,296,999,121 或 1.5 亿个组合。

那么我们需要多少位来存储这个数字。我可以作弊并问计算器,但这太容易了,

让我们看看,3 个单元有 27 个组合,5 位有 32 个。所以 3 个单元进入 36 个单元 12 次,每 3 个单元有 5 位,所以 5*12 是 60 位。这是一个很好的整数,因为我们的字符是每个 6 位,我们可以将每个可能的网格组合推入 10 个字符,并留出一些。我们每 3 个单元格有 5 个备用组合,所以我们有 60 个组合备用 12*5。该死的,如果我们还有 4 个组合,那就是 64,即 2^6 或 6 位或一个字符。我们不能带走半个字符,所以它必须是 10 个字符。顺便说一句,4 组合是两位,所以从我们的 60 个字符位中取出,存储网格的最小位数是 58。2 的 58 次方应该大于 3 的 36 次方。

因此您的网格需要 10 个字符。每个都是ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789:) 中的任何一个(8 字节 4 备用位)

我选择我的前 10 个字符种子 BLINDMAN67 现在呢?

【讨论】:

  • 哇。我不是最擅长数学,但我理解其中的一部分。仍然不完全确定 id 如何实现它。这个想法是玩家将在编辑器中制作“关卡”并获得种子以分享或玩自己。所以种子很可能是随机的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
相关资源
最近更新 更多