0

我试图想出一种从种子生成网格/级别的方法。

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

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

关于我如何实现这一目标的任何想法?

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

感谢您的时间,

约旦

4

1 回答 1

0

做空种子。

好吧,108个字符有点过头了。您有 6 x 6 个单元格,因此总共有 36 个单元格。每个单元格有 3 个不同的状态,但一个 char 至少有 64 个不同的状态(AZ、az、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怎么办?

于 2015-11-01T03:24:19.680 回答