Здравствуйте @SaltyGaben и добро пожаловать в SO. Вы заявили, что проблема
Создайте программу, которая имитирует бросок кубика. Пусть программа несколько раз выдает броски шести кубиков, пока по крайней мере четыре кубика не бросят одинаковое число.
Вы можете думать об этом, как о неоднократном бросании 6 кубиков одновременно, пока как минимум 4 из них не бросят одинаковое число.
Я протестировал следующий код, который использует один цикл while
. Обратите внимание, что dice_output[i]
- это бросок i
го кубика.
import random
output_count = [0,0,0,0,0,0] # A list to keep track of occurrences of each number between 1 to 6
dice_output = []
while True:
roll = random.randint(1, 6)
dice_output.append(roll)
output_count[roll - 1] += 1
l = len(dice_output)
if (l == 6) and (4 in output_count):
print("Dice :", dice_output)
print("Count:", output_count)
break
if l == 6:
print("Dice :", dice_output)
output_count = [0,0,0,0,0,0] # Resetting the counts
dice_output = [] # Resetting the dice_output
Вот один из выводов, которые я получил:
Output:
Dice : [3, 5, 2, 3, 6, 5]
Dice : [5, 6, 2, 4, 2, 4]
Dice : [6, 6, 3, 1, 1, 5]
Dice : [3, 1, 4, 5, 3, 3]
Dice : [3, 6, 4, 2, 4, 6]
Dice : [1, 5, 5, 2, 6, 3]
Dice : [4, 2, 1, 4, 1, 6]
Dice : [5, 5, 6, 6, 3, 4]
Dice : [2, 1, 4, 2, 3, 6]
Dice : [2, 4, 5, 6, 3, 1]
Dice : [6, 3, 3, 3, 2, 1]
Dice : [5, 5, 6, 6, 4, 2]
Dice : [5, 4, 3, 5, 4, 2]
Dice : [1, 5, 1, 1, 1, 5]
Count: [4, 0, 0, 0, 2, 0]
Надеюсь, это поможет.