所以我正在用Python制作一个游戏,你可以在其中回答数学问题。我添加了 3 个运算:加法、减法和乘法。他们有5种模式。每个都比另一个更难。现在我想添加部门。但简单、普通和困难模式的随机数并不总是可整除的。我怎样才能让它们整除?
我使用了
%
,但我不知道如何在随机数生成器中使用它。我的代码:
# 'd' for division
elif response == "d":
# this function asks the user for the mode
mode_opt = input(ask_mode_opt)
if mode_opt == 'E'.lower():
no2 = random.randint(1, 10)
math_func(guesses=10, no1=random.randint(1, 10), no2=no2, data_type=int, operator=3, str_op='÷', full_op_text='e')
replay_or_exit()
elif mode_opt == 'N'.lower():
no2=random.randint(2, 20)
math_func(guesses=5, no1=random.randint(2, no2), no2=no2, data_type=int, operator=3, str_op='÷', full_op_text='n')
replay_or_exit()
elif mode_opt == 'H'.lower():
no2=random.randint(2, 50)
math_func(guesses=4, no1=random.randint(2, no2), no2=no2, data_type=int, operator=3, str_op='÷', full_op_text='h')
replay_or_exit()
elif mode_opt == 'I'.lower():
math_func(guesses=4, no1=random.randint(2, 100), no2=random.randint(2, 100), data_type=int, operator=3, str_op='÷', full_op_text='i')
replay_or_exit()
elif mode_opt == 'C'.lower():
math_func(guesses=5, no1=round(random.uniform(2, 100), 2), no2=round(random.uniform(2, 100), 2), data_type=float, operator=3, str_op='÷', full_op_text='c')
replay_or_exit()
我建议,不要生成两个随机数,直到它们可整除,而是生成两个数字 a 和 b 并将它们相乘,这样结果 c 将始终可以被 a 和 整除b。然后,您可以将
no1
和 no2
(如果我理解正确的话,这是玩家应该除的数字)设置为例如c 和 a,并期望结果为 b。