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. "aBoss":[3, 70, 24, 3],
  26. "Consigliere":[3, 9, 3, 85],
  27. "aConsigliere":[3, 3, 24, 70],
  28. "Spy":[9, 3, 85, 3],
  29. "Killer":[85, 3, 3, 9],
  30. "aKiller":[70, 3, 24, 3],
  31. "Commie":[9, 3, 85, 3],
  32. "Doctor":[3, 85, 9, 3],
  33. "Vigi":[85, 3, 3, 9],
  34. "Cop":[3, 9, 3, 85],
  35. "Civilian":[25, 25, 25, 25]
  36. }
  37.  
  38. current_role = "aBoss"
  39.  
  40. def random_card():
  41. chance = chances[current_role]
  42. distr = [str(x)*chance[x] for x in [0,1,2,3]]
  43. flat = [y for x in distr for y in x]
  44. color = cards[int(random.choice(flat))]
  45. card = random.choice(color)
  46. return card
  47.  
  48. def random_round():
  49. round = [random_card(),random_card(),random_card()]
  50. if len(set(round)) != 3: return random_round()
  51. else: return round
  52.  
  53. def random_draw():
  54. return [random_round() for x in range(15)]
  55.  
  56. for round in random_draw():
  57. print(round)
Success #stdin #stdout 0.14s 14328KB
stdin
Standard input is empty
stdout
['Осечка', 'План побега', 'Шипы']
['Обыск', 'План побега', 'Телохранитель']
['RSVP', 'За вами придут!', 'Служба безопасности']
['Пентестинг', 'Начать расследование', 'Телохранитель']
['Запрет', 'RSVP', 'Хулиганство']
['Совет', 'Телохранитель', 'Большой Брат']
['Куратор спецслужб', 'Mana Burn', 'Супергерой']
['Алиби', 'Хулиганство', 'Супергерой']
['Столовая', 'Город может спать спокойно', 'Патрулирование улиц']
['Под защитой', 'Отравленный клинок', 'Кровотечение']
['Кровотечение', 'Mana Burn', 'Свидетель']
['Nightmare', 'Мозговой штурм', 'Эксгумация']
['Камера наблюдения', 'Ловкость рук', 'Досмотр']
['Город может спать спокойно', 'Телохранитель', 'Супергерой']
['Перехват', 'Смертная казнь', 'Дактилоскопия']