как бросить кубик и монетку в python? хочу симуляцию для настолки
Играем с братом в настолки, хочу сделать на питоне виртуальный кубик и монетку, чтобы не искать настоящие. И ещё интересно: если бросить кубик 1000 раз, правда ли все грани выпадают примерно поровну? Как это посчитать?
2 ответа
Кубик и монетка — это просто случайный выбор. Вот тебе обе штуки плюс симуляция 1000 бросков:
import random
# один бросок кубика
print("Кубик:", random.randint(1, 6))
# монетка
print("Монетка:", random.choice(["Орёл", "Решка"]))
# симуляция: бросаем кубик 1000 раз и считаем грани
counts = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}
for _ in range(1000):
roll = random.randint(1, 6)
counts[roll] += 1
print("Сколько раз выпала каждая грань:")
for face, n in counts.items():
print(f" {face}: {n} раз")
Как работает: random.randint(1, 6) даёт число от 1 до 6 — это кубик. random.choice выбирает из списка — монетка. В симуляции заводим словарь-счётчик, бросаем 1000 раз и для каждой грани прибавляем. В конце увидишь, что все грани выпадают примерно по 166 раз — да, поровну (с небольшим разбросом, это нормально).
Как улучшить: попробуй кубик на 20 граней randint(1, 20) как в D&D, или нарисуй грани символами точек — будет как настоящий.
Прикольно ещё сделать «два кубика» и смотреть сумму — там 7 выпадает чаще всего, можешь проверить симуляцией:
d = random.randint(1, 6) + random.randint(1, 6)
print("Сумма двух кубиков:", d)
Брату зайдёт, если добавить паузу time.sleep(0.5) и текст «кручу-верчу...» перед результатом.