繁体   English   中英

Yahtzee 骰子滚动循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM