我正在尝试模仿赌博游戏“Crash”的一个非常简单的版本,其中有一个数字每秒都在增加,它也是你的学分的乘数。因此,如果您输入50个积分并且乘数达到3.30,您将得到50 * 3.30 = 165个积分。这个数字会随机崩溃,如果你没有提取你的钱,就会失去它们。
from random import randrange, randint
crash_max_range = 50
crash_min_range = 0
multiplier_crash = list(range(crash_min_range, crash_max_range))
multiplier_crash = [float(i) for i in multiplier_crash]
print(*multiplier_crash, sep="\n")
我正在努力的主要事情是打印应该看起来像
的浮动列表0
0.01
0.02
0.03
等..(新行上的每个号码) 我不知道如何在低范围内增加70%的时间崩溃的可能性,因为显然玩家不能总是赢。 你能帮帮我吗?
答案 0 :(得分:0)
我不清楚这个崩溃的故事,但是如果你想让浮动列表以.01的增量打印到这样,你可以做的一件事就是改变这两行:< / p>
multiplier_crash = list(range(crash_min_range, crash_max_range * 100))
multiplier_crash = [float(i) / 100 for i in multiplier_crash]
这会将初始0打印为0.0,但是......如果你想要像0和1这样的数字打印,而不像你的例子那样打印.0,你可以做的一种方法是更换上面的第二行是这样的:
multiplier_crash = ["{:,g}".format(float(i) / 100) for i in multiplier_crash]
答案 1 :(得分:0)
对于模拟,您通常会使用一次执行一步的循环。我建议在随机条件下使用无限循环和break语句。
在此循环中,您只需要在每个打印中打印一个值。您应该对任何新代码使用str.format()方法。
代码可能如下所示:
import random
multiplier = 1.00
while True:
print('{:.2f}'.format(multiplier))
if random.random() < 0.1:
break
multiplier += 0.01
print('CRASH')
以上示例并不完美,因为浮点运算长时间运行会累积错误。使用整数并将其缩放为输出可能更好。
使用itertools你可以这样做。
import itertools
import random
for i in itertools.count(100):
multiplier = float(i) / 100.0
print('{:.2f}'.format(multiplier))
if random.random() < 0.1:
break
print('CRASH')
这可以使用生成器表达式进一步简化。但是,当您刚开始使用pyhton时,代码可能不太清楚。
import itertools
import random
for multiplier in (float(i) / 100.0 for i in itertools.count(100)):
print('{:.2f}'.format(multiplier))
if random.random() < 0.1:
break
print('CRASH')