如何创建一个循环,每轮将投掷5个骰子,直到所有5个骰子的数字一样?(语言-python)




```###### 
创建一个循环,每轮将投掷5个骰子,直到所有5个骰子的数字一样。 
创建一个名为played_rounds的变量。 
在每个循环中,首先创建一个名为round的空列表,并将played_rounds计数器变量增加一。 
连续调用throw_dice( )函数5次,并将5次投掷的结果逐个保存到列表中。 
掷骰子5次后,检查列表上的5个数字是否一样。 
如果数字都不一样,则再次启动循环。 
如果所有数字都一样,使用show_roll()函数来打印5个获胜的骰子。
打印出需要多少轮才能得到所有五个骰子一样。

```python
#Import libraries
from PIL import Image
import requests
from io import BytesIO
import random
```python
#Dice side image URLs
roll1_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011091.png"
roll2_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011093.png"
roll3_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011095.png"
roll4_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011097.png"
roll5_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011099.png"
roll6_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011104.png"

#Get images from URLs
roll1 = requests.get(roll1_url)
roll2 = requests.get(roll2_url)
roll3 = requests.get(roll3_url)
roll4 = requests.get(roll4_url)
roll5 = requests.get(roll5_url)
roll6 = requests.get(roll6_url)


num = random.randint(1,6)
roll_images=[roll1,roll2,roll3,roll4,roll5,roll6]

show_roll = roll_images[num-1] 
img = Image.open(BytesIO(show_roll.content)) 
img.thumbnail([50,50]) 
display(img)

def throw_dice():
num = random.randint(1,6)
return num
def show_roll(num):
show = roll_images[num-1]
img = Image.open(BytesIO(show.content))
img.thumbnail([50,50])
display(img)
played_rounds=0
while True:
round = []
for _ in range(5):
round.append(throw_dice())
played_rounds+=1
if len(set(round))==1:
break
show_roll(list(set(round))[0])
print(played_rounds)

测试了一下, 407 次出现。还挺快

img

from PIL import Image
import requests
from io import BytesIO
import random


# Dice side image URLs
roll1_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011091.png"
roll2_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011093.png"
roll3_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011095.png"
roll4_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011097.png"
roll5_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011099.png"
roll6_url = r"https://cdn-icons-png.flaticon.com/128/7011/7011104.png"

# Get images from URLs
roll1 = requests.get(roll1_url)
roll2 = requests.get(roll2_url)
roll3 = requests.get(roll3_url)
roll4 = requests.get(roll4_url)
roll5 = requests.get(roll5_url)
roll6 = requests.get(roll6_url)

def throw_dice():
    num = random.randint(1, 6)
    return num

played_rounds = 0
die_num = 0
while True:
    round = []
    played_rounds += 1
    for i in range(6):
        round.append(throw_dice())
    if round[0] == round[1] ==  round[2] == round[3] ==  round[4]:
        die_num = round[0]
        print(played_rounds)
        break

roll_images = [roll1, roll2, roll3, roll4, roll5, roll6]

show_roll = roll_images[die_num - 1]

img = Image.open(BytesIO(show_roll.content))
img.thumbnail([50, 50])
img.show()