fork download
  1. # -*- coding: utf-8 -*-
  2. import random
  3.  
  4. cards_damage = (\
  5. "Пистолет;Метание карты;Coup de Grâce;Faceoff;Арсенал;Прицельный выстрел;Скрытое ношение;Бэт-символ;Смертная казнь;"+\
  6. "Миротворческая операция;Бронебойные патроны;Демоническая форма;Средь бела дня;By our powers combined;Вихрь ножей;Коррозия"+\
  7. ";Обрез под столом;Assassinate;Сообщник;Нападение;Storm of Steel;Планирование;Апгрейд;Вивисекция;Лицензия на убийство").split(";")
  8.  
  9. cards_control = (\
  10. "Столовая;Служба безопасности;План побега;Куратор спецслужб;Досмотр;Расписание охраны;Под защитой;Перехват;Запрет;Телохранитель;Шипы;Хулиганство;Кровотечение;"+\
  11. "За вами придут!;Бронежилет;Супергерой;Der Prozess;Nightmare;Город может спать спокойно;Осечка;Mana Burn;Отравленный клинок;Дружба это магия;RSVP;Большой Брат").split(";")
  12.  
  13. cards_scout = (\
  14. "Социальная инженерия;Свидетель;Обыск;Догадка;Флешбек;Уполномочить;Сеть агентов;Ловкость рук;Соцопрос;Иллюминаты;Эксгумация;Оракул;Пентестинг;Нож-кредитка;"+\
  15. "Маскировка;Дактилоскопия;Мозговой штурм;Начать расследование;Патрулирование улиц;Камера наблюдения;Бандитизм;Черная метка;Под прицелом;Спиритический сеанс;Жучок").split(";")
  16.  
  17. cards_support = (\
  18. "Подготовка;Дед-дроп;Карманные расходы;Независимый доход;Зарплата;Совет;Озарение;Ополчение;Благословление;Прихвостень;Кофе;Карьерный рост;Безлимитный тариф;"+\
  19. "Укол стимулятора;Повестка;RSVP;Налоговый вычет;Что меня не убивает;Подарок;Последняя записка;Фокус;Стохастический терроризм;Я обвиняю!;Сбор ополчения;Алиби;").split(";")
  20.  
  21. cards = [cards_damage, cards_control, cards_scout, cards_support]
  22.  
  23. chances = {
  24. "Boss":[3, 85, 9, 3],
  25. "Consigliere":[3, 9, 3, 85],
  26. "Spy":[9, 3, 85, 3],
  27. "Killer":[85, 3, 3, 9],
  28. "Commie":[9, 3, 85, 3],
  29. "Doctor":[3, 85, 9, 3],
  30. "Vigi":[85, 3, 3, 9],
  31. "Cop":[3, 9, 3, 85],
  32. "Civilian":[25, 25, 25, 25]
  33. }
  34.  
  35. current_role = "Boss"
  36.  
  37. def random_card():
  38. chance = chances[current_role]
  39. distr = [str(x)*chance[x] for x in [0,1,2,3]]
  40. flat = [y for x in distr for y in x]
  41. color = cards[int(random.choice(flat))]
  42. card = random.choice(color)
  43. return card
  44.  
  45. def random_round():
  46. round = [random_card(),random_card(),random_card()]
  47. if len(set(round)) != 3: return random_round()
  48. else: return round
  49.  
  50. def random_draw():
  51. return [random_round() for x in range(15)]
  52.  
  53. for round in random_draw():
  54. print(round)
Success #stdin #stdout 0.09s 14360KB
stdin
Standard input is empty
stdout
['Служба безопасности', 'Mana Burn', 'Большой Брат']
['RSVP', 'Под защитой', 'Coup de Grâce']
['Шипы', 'Расписание охраны', 'Служба безопасности']
['Nightmare', 'Осечка', 'Der Prozess']
['Флешбек', 'Супергерой', 'Mana Burn']
['Осечка', 'Служба безопасности', 'Супергерой']
['Nightmare', 'Под защитой', 'Телохранитель']
['Осечка', 'Хулиганство', 'Отравленный клинок']
['Кровотечение', 'RSVP', 'Телохранитель']
['Запрет', 'Служба безопасности', 'Эксгумация']
['Дружба это магия', 'Отравленный клинок', 'Большой Брат']
['Служба безопасности', 'Шипы', 'Бронежилет']
['Эксгумация', 'Столовая', 'Der Prozess']
['Куратор спецслужб', 'Mana Burn', 'Nightmare']
['Под защитой', 'Телохранитель', 'Mana Burn']