Advertisement
JadeVater

'Mafia' Randomizer 1.1™

Dec 25th, 2014
398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.38 KB | None | 0 0
  1. """
  2. ==============================================================================
  3. Project work about 'Mafia' game.
  4. Developer - JadeVater.
  5. Copyright - Semi.On Team, 2014.
  6. ------------------------------------------------------------------------------
  7. Programm is developed for creating logs of every game, simplizing of random
  8. defining of roles, etc.
  9. ------------------------------------------------------------------------------
  10. P.S. I very like apostrofs.
  11. ==============================================================================
  12. Проектная работа на основе игры "Мафия".
  13. Разработчик - JadeVater.
  14. Права разработки - Semi.On Team, 2014.
  15. ------------------------------------------------------------------------------
  16. Программа предназначена для создания логовой записи игры, упрощения случайного
  17. распределения ролей, ведения счёта и пр.
  18. ------------------------------------------------------------------------------
  19. P.S. Я очень люблю апострофы.
  20. ==============================================================================
  21. """
  22.  
  23. """
  24. Importing library 'random'. It's neccesary for
  25. randomizing the proccess of defining the roles for players.
  26. ===========================================================
  27. Импорт библиотеки 'random', необходимой для реализации
  28. случайного распределения ролей среди игроков.
  29. """
  30.  
  31. import random
  32.  
  33. def copyrights():
  34.     """
  35.    This function is writed to increase self-esteem of developer.
  36.    ==============================================================
  37.    Эта функция необходима для демонстрации важности разработчика.
  38.    """
  39.     print('====================================================================\n')
  40.  
  41.     print('\tRandomizer for \'Mafia\' 1.1\n\tDeveloped by JadeVater, Semi.On Team, 2014.\n\tAll rights reserved.\n\tSpecial thanks to Guido Van Rossum for Python language.\n\n')
  42.    
  43.     print('====================================================================\n')
  44.    
  45.     pr_language()
  46.  
  47. def pr_language():
  48.  
  49.     """
  50.    Function 'pr_language' is used to selecting of user's interface language.
  51.    It's returns variable 'lang', used to selected language of phrases.
  52.    ==================================================================================
  53.    Функция 'pr_language' предназначена для выбора пользовательского языка интерфейса.
  54.    Возвращаемая ей переменная 'lang' используется для определения языка фраз.
  55.    """
  56.    
  57.     print('Select the program interface language: (eng/rus)\n')
  58.     lang = input()
  59.    
  60.     if lang == 'eng':
  61.         print('\nEnglish language selected.\n')
  62.     elif lang == 'rus':
  63.         print('\nВыбран русский язык.\n')
  64.     else:
  65.         print('\nUnknown language! English language selected by default.\n')
  66.         lang = 'eng'
  67.        
  68.     print('====================================================================\n')
  69.    
  70.     listed(lang)
  71.        
  72. def listed(lang):
  73.  
  74.     """
  75.    Function 'listed' is used to create tuple of players and their roles.
  76.    It's returns lists 'player_list' and 'roles', what displays game's config.
  77.    =======================================================================================
  78.    Функция 'listed' предназначена для создания списков игроков и определения их ролей.
  79.    Возвращаемые ей кортежи 'player_list' и 'roles' позволяют определить игровое положение.
  80.    """
  81.  
  82.  
  83.     # Defining number of players.
  84.     # Определение количества игроков.
  85.     if lang == 'eng':
  86.         print('Select number of players:\n')
  87.     else:
  88.         print('Введите количество игроков:\n')
  89.     num = int(input())
  90.    
  91.     # Defining number of mafia.
  92.     # Определение количества мафии.
  93.     if lang == 'eng':
  94.         print('\nSelect number of mafias:\n')
  95.     else:
  96.         print('\nВведите количество мафиози:\n')
  97.     maf_number = int(input())
  98.    
  99.     print('\n====================================================================\n')
  100.    
  101.     # Defining variables of function.
  102.     # Определение переменных функции.
  103.     iter = 0
  104.     player_list = []
  105.    
  106.     # Realizing of fulfilling tuple of players and defining their roles.
  107.     # Реализация заполнения массива с игроками и определение их ролей.
  108.     while iter < num:
  109.         if lang == 'eng':
  110.             print('\nEnter name of player #', iter + 1, ':\n')
  111.         else:
  112.             print('\nВведите имя игрока №', iter + 1, ':\n')
  113.         player_cash = input()
  114.         player_list.append(player_cash)
  115.         iter += 1
  116.        
  117.     print('====================================================================\n')
  118.  
  119.     # Defining of roles.
  120.     # Распределение ролей.
  121.     iter = 0
  122.    
  123.     if lang == 'eng':
  124.         roles = ['commissar', 'doctor', 'night\'s butterfly']
  125.        
  126.         while iter < maf_number:
  127.             roles.append('mafia')
  128.             iter += 1
  129.        
  130.         while len(roles) < len(player_list):
  131.             roles.append('citizen')
  132.            
  133.     else:
  134.         roles = ['комиссар', 'доктор', 'ночная бабочка']  
  135.  
  136.         while iter < maf_number:
  137.             roles.append('мафия')
  138.             iter += 1
  139.        
  140.         while len(roles) < len(player_list):
  141.             roles.append('горожанин')
  142.    
  143.     """    
  144.    List is fulfillng by main game scheme.
  145.    Function 'random.shuffle' is using to pseudorandomize
  146.    process of defining the roles.
  147.    ======================================================
  148.    Кортеж заполняется согласно стандартной игровой схеме.
  149.    Функция 'random.shuffle' используется для введения
  150.    псевдослучайности при распределении ролей.
  151.    """
  152.    
  153.     random.shuffle(roles)
  154.    
  155.     # Printing of player's list and roles
  156.     # Вывод на экран игроков и ролей
  157.     if lang == 'eng':
  158.         print('Player\t\tRole\n')
  159.     else:
  160.         print('Игрок\t\tРоль\n')
  161.     print('====================================================================\n')
  162.  
  163.     iter = 0
  164.    
  165.     while iter < len(player_list):
  166.         print('\n', player_list[iter], '\t\t', roles[iter])
  167.         iter += 1
  168.        
  169.     print('\n====================================================================\n')
  170.    
  171.     game(lang, player_list, roles)
  172.                        
  173. def game(lang, player_list, roles):
  174.    
  175.     """
  176.    Today it's the cap, 'cause this
  177.    part of code isn't completed.
  178.    ================================
  179.    Пока здесь всего лишь заглушка,
  180.    т.к. эта часть кода не написана.
  181.    """
  182.     if lang == 'eng':
  183.         print('Good luck \'n\' have fun!')
  184.         moar = input('\n\nWant to randomize one more time? (y/n) ')
  185.     else:
  186.         print('Удачной и весёлой игры!')
  187.         moar = input('\n\nХотите воспользоваться программой ещё раз? (y/n) ')
  188.        
  189.     if moar == 'y':
  190.         print('\n====================================================================\n')
  191.         listed(lang)
  192.  
  193. """
  194. Планировка развития кода:
  195.    1. Написать функции игрового процесса
  196.    2. Написать функцию написания лога игрового процесса в текстовый документ
  197.    3. Задокументировать все функции кода
  198.    4. Внедрить try-except для обработки исключений при выборах.
  199.    5. ---
  200. 22.12.2014, 15:28
  201. """
  202.  
  203. def start():
  204.     copyrights()
  205.  
  206.  
  207. # Start point of script.
  208. # Точка старта скрипта.
  209. copyrights()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement