我想用micropython制作一个实现python 3.4的游戏。我希望我的怪物受到随机数发生器的控制。我正在考虑将当前的网格参考作为种子和今天的日期传递,因此该怪物将始终在今天出现。明天玩游戏,会有新的怪物。
问题是我需要对骰子和其他真正随机的事件使用random.randint
和random.randchoice
。
如果我在c中执行此操作,我将使用erand48
中的<stdlib.h>
并保留并维护多个种子。
我在python中有什么解决方案?
我可能需要一个混沌功能来控制怪物。几年前,一位数学教授给了我一个,但是它很简单,并且由于浮点舍入而趋向于0.0
答案 0 :(得分:1)
您可以使用python的random模块为每个独立组件创建随机对象。示例:
monster_x = monster_locations.randInt(0,10)
trap_type = traps.randInt(0,4)
这些随机对象各自具有各自独立的种子,可以像常规随机类一样被调用:
import java.awt.image.BufferedImage;
import java.io.File;
public class SystemIconMac {
public static BufferedImage getIconImage(File file, int size) {
return ch.randelshofer.quaqua.osx.OSXFile.getIconImage(file, size);
}
}
答案 1 :(得分:0)
此模块提供的功能实际上是
random.Random
类的隐藏实例的绑定方法。您可以实例化自己的Random
实例,以获取不共享状态的生成器。
答案 2 :(得分:0)
似乎只有 个随机种子。
您使用getstate
和setstate
保存和恢复以前的随机位置。
import random
random.seed(1)
for _ in range(5):
print(random.randrange(10), end = ' ')
print('')
save = random.getstate()
random.seed(1)
for _ in range(10):
print(random.randrange(10), end = ' ')
print('')
random.setstate(save)
for _ in range(5):
print(random.randrange(10), end = ' ')
print('')
产生以下输出
2 9 1 4 1
2 9 1 4 1 7 7 7 6 3
7 7 7 6 3