[英]Yahtzee dice roll loop
我需要帮助来压缩我的 Yahtzee 代码。 我对循环很熟悉,但似乎无法弄清楚如何在不擦拭每一圈的情况下做到这一点。 它设置为随机掷 5 个骰子,然后您选择要保留的骰子,然后它会掷出剩下的骰子,总共掷 3 次。 我想过制作一个占位符列表,但也不能让它这样工作。 请帮忙
骰子 = ['⚀','⚁','⚂','⚃','⚄','⚅']
转数 = 3
first_roll = []
对于范围内的_(5):
roll = random.choice(dice)
first_roll.append(roll)
打印(first_roll)
转 -= 1
print(f'你有 {turns} 向左转。')
keep = input("你想保留哪个骰子?1 - 5:").split()
清除()
#这是第二卷
second_roll = []
因为我保持:
x = int(i)
j = first_roll[x-1]
second_roll.append(j)
余数 = 5 - len(second_roll)
对于 _ 在范围内(余数):
roll = random.choice(dice)
second_roll.append(roll)
打印(第二卷)
转 -= 1
print(f'这是你的最后一回合。')
keep = input("你想保留哪个骰子?1 - 5:").split()
清除()
#这是第三卷
第三卷= []
因为我保持:
x = int(i)
j = second_roll[x-1]
third_roll.append(j)
余数 = 5 - len(third_roll)
对于 _ 在范围内(余数):
roll = random.choice(dice)
third_roll.append(roll)
打印(第三卷)
所以我不确定这是否正是你要找的,但我创建了一个 function,它可以让你连续滚动 X 圈,并且骰子池会逐渐变小,就像你的代码显示的那样。 我彻底评论了代码,希望能给你一个很好的解释我在做什么。
import random
#Dice characters
dice = ['1','2','3','4','5','6']
#Number of turns player has
turns = 3
#This is the group of dice kept by the player
kept_dice = []
def roll():
#This is the group of dice randomly chosen
rolled_dice = []
#Generate up to 5 random dice based on how many have been kept so far
for _ in range(5 - len(kept_dice)):
#Append random dice value to rolled_dice array
rolled_dice.append(random.choice(dice))
#Print roll group
print(rolled_dice)
dice_to_keep = int(input("Which dice would you like to keep? 1 - 5: "))
kept_dice.append(rolled_dice[dice_to_keep-1])
while turns != 0:
#Let the user know how many turns they have left
print(f'You have {turns} turns left.')
#Roll dice
roll()
#Subtract 1 turn
turns -= 1
#After all turns, show the kept dice:
print("Kept dice:")
print(kept_dice)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.