java - 表示二维数组的唯一 'code'

标签 java

我制作了一个随机生成迷宫的游戏,迷宫存储在二维数组中。 数组中的每个整数代表单元格的墙数。

它基于此处的 java 示例:http://rosettacode.org/wiki/Maze

为了允许人们共享一个独特的迷宫,我正在尝试找到一种方法将数组转换为字符串或整数,这些字符串或整数可以由一个用户生成,复制然后粘贴到另一个游戏中,然后该游戏将加载相同的迷宫迷宫。

用户可以选择迷宫的大小,最大为 25x25,因此简单地打印每个值 (2|16|4|20...) 会非常长。

如果不可能将其转换为“代码”,是否有其他方法可以在不使用文件的情况下完成?

最佳答案

存储随机数生成器的种子。种子完全决定了随机数生成器的输出。

假设您使用java.util.Random来生成随机数,而不是使用默认构造函数new Random()使用

long seed = System.currentTimeMillis();
// store the seed somewhere
// so you can generate the same sequence of random numbers again
Random rng = new Random(seed);

要制作一个可以提供给用户共享的简短“代码”,您可以将数字转换为十六进制或基数 36:

String code = Long.toString(seed, 36); // codes like heeho82h

关于java - 表示二维数组的唯一 'code',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463790/

相关文章:

java - 在MyBatis for IBM DB2中执行多个INSERT语句

java - 如何在 IntelliJ 插件中使用 "register"新模块类型?

java - 打开 zip 文件时出错或缺少 : build/tmp/expandedArchives/org. jacoco.agent 的 JAR list

java - 成功执行安全关机后,服务器会频繁启动/停止。怎么了?

java - 如何在 jni 中链接 prebuild

java - 如何读取文本文件中除最后一行之外的整个文本?

java - 从命令行运行 Java 3D 程序

java - 如何使用 ANTLR 4 实现逻辑运算符(and、or)?

java - 找到随机国家,但选择人口较多国家的概率应该更高

Java - 能够交错来自多个 Reader 的行的 Reader 类