我想制作一个基于文本的游戏,你可以在python中挖掘矿石和宝石,我想让它随机选择当你输入“我的”时你得到的东西,你怎么样?这样一些随机选择比另一个更稀有吗?
这是我目前的代码:`
part
答案 0 :(得分:0)
class Label
{
private:
std::string text;
int color;
public:
Label(string text, string color);
~Label();
// display the label on the `canvas`
void display(Canvas* canvas);
};
您可以使用numpy的选择功能。看看probability_distribution是一个与矿石顺序相同的序列。
答案 1 :(得分:0)
如果您不想使用除已有的进口产品以外的其他任何产品,那么简单的解决方案就是通过以下方式替换矿石:
ores = ["emerald"]*3+["ruby"]*7+["silver"]*10+["gold"]*20+["diamods"]*20+["nothing"]*40
,乘数越大,项目越少。然而,这不是一个好的解决方案。建立一个函数可以更好地解决分布问题:
dist = [3,10,20,40,60,100]
ores = ["emerald", "ruby", "silver", "gold", "diamods", "nothing"]
,你可以生成一个随机整数并检索正确的项目:
for i in range(1,len(ores)):
r = random.randint(0,100)
if dist[i-1]<=r<dist[i]:
break
print "you found %s!" % ores[i]
显然,如果您愿意使用像numpy这样的库,那么您将获得性能提升。