我制作了一个随机生成迷宫的游戏,迷宫存储在二维数组中。 数组中的每个整数代表单元格的墙数。
它基于此处的 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/