我需要帮助解决这个问题:
在roll_dice中实现hog.py函数。它有两个参数:一个名为num_rolls的正整数,表示要滚动的骰子数和一个骰子函数。它返回的点数,通过滚动骰子的次数在一个回合:结果之和或1(母猪悲伤)。
母猪伤心的规则:
播种悲伤。如果任何骰子结果为1,则当前玩家的回合得分为1。
要获得骰子点名的单个结果,请调用dice()。您应该在num_rolls的主体中精确地调用dice()。记住,即使母猪悲伤发生在滚动过程中,也要准确地调用dice() num_rolls次数。通过这种方式,您可以正确地模拟将所有骰子一起滚动。
from random import randint
def roll_dice():
final_sum = 0
numrolls = 0
while numrolls > 0 and numrolls <=10:
final_sum= numrolls.dice()
numrolls+=1
return numrolls
if numrolls.dice==1:
numrolls=1
print("SOW SAD, score for this turn is 1")
final_sum+=numrolls
return final_sum
print(final_sum)
def dice():
value = 0
while value > 0:
return randint(1,6)
return dice发布于 2022-01-20 06:21:47
在hog.py中实现了roll_dice函数。它有两个参数:一个名为num_rolls的正整数,表示要滚动的骰子数和一个骰子函数。
按照指示,您的函数需要参数。
,它返回在一个回合中滚动骰子次数所获得的点数。
假设您使用的是更新版本的Python3,则可以将类型提示添加到函数中
或结果之和或1.在num_rolls的主体中调用dice()正好是roll_dice的时间。记住,即使母猪悲伤发生在滚动过程中,也要准确地调用dice() num_rolls次数。
列表理解可以用于运行函数以滚动多个骰子,然后您可以检查其中的骰子或与列表之和。
import random
def dice() -> int:
return random.randint(1, 6) # assumed to be 6 sided die
def roll_dice(num_rolls, dice_fn) -> int:
# roll a number of times, and store the results
rolls = [dice_fn() for _ in range(num_rolls)]
# if there's a 1, that's the score, else add all roll values
return 1 if any(r == 1 for r in rolls) else sum(rolls)
if __name__ == "__main__":
num_rolls = input("rolls: ")
# pass in the dice function, don't call it
print(roll_dice(int(num_rolls), dice)) 与你的尝试相比..。
理想情况下,
return语句,用于将值返回到其他地方,在这些语句之后,任何内容都不会在相同的functionrandomhttps://stackoverflow.com/questions/70779248
复制相似问题