Advertisement
Guest User

pole

a guest
Nov 22nd, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.12 KB | None | 0 0
  1. import random as r
  2. import time
  3.  
  4. # создаем словарь с вопросами и ответами
  5. question = {'Третий президент России': 'МЕДВЕДЕВ',
  6.             'Один из континентов на Земле': 'АНТАРКТИДА',
  7.             'Страна Европы( Ван Дейк:) ):': 'НИДЕРЛАНДЫ',
  8.             'Марка машины': 'МЕРСЕДЕС',
  9.             'Страна в Центр Америке': 'ГОНДУРАС',
  10.             'Чья нога была на ЧМ 2018?': 'АКИНФЕЕВ',
  11.             'Столица одного из регионов России': 'МАХАЧКАЛА',
  12.             'Прибор для измерения температуры ': 'ТЕРМОМЕТР',
  13.             'Электронно Вычислительная Машина': 'КОМПЬЮТЕР',
  14.             'То, чье имя нельзя называть))': 'ВОЛДЕМОРТ'}
  15. # создаем список чтобы сравнить вопрос с ответом
  16. question1 = ['Третий президент России', 'Один из континентов на Земле', 'Страна Европы( Ван Дейк:) ):', 'Марка машины',
  17.              'Страна в Центр Америке', 'Чья нога была на ЧМ 2018?', 'Столица одного из регионов России',
  18.              'Прибор для измерения температуры ', 'Электронно Вычислительная Машина', 'То, чье имя нельзя называть))']
  19.  
  20. question2 = r.choice(question1)  # выбираем рандомный вопрос из списка
  21. new_q = question.get(question2)  # получает ответ  , сверяя с вопросом
  22. # print(new_q)
  23. print(question2)  # Выводит на экран вопрос
  24.  
  25. print('В слове ' + str(len(new_q)) + ' букв ')  # подсказывает пользователю сколько букв в слове
  26. # говорит сколбко букв он может загадать (число букв * 2)
  27. full = []
  28. igroki = ['David', 'Anya', 'Maks']
  29. for i in new_q:
  30.     full.append('*')
  31. chit1 = 0
  32.  
  33. print('У каждого по 3 попытки на ошибку!')
  34. try:
  35.     class Bukva():
  36.         def __init__(self):  # объявляем конструктор классов
  37.             self.chit1 = 0
  38.             self.yak = ['Такая буква есть, открываем...', 'Харошш!... ', 'Так и быть, открываю...',
  39.                          'Ммм, откройте БуКвУ']
  40.             self.name1 = 0
  41.             self.name2 = 0
  42.             self.name3 = 0
  43.         def buk(self):
  44.             while True:
  45.                 self.num = input('Ход {}: \nВведите букву или слово:\n'.format(igroki[self.chit1]))
  46.                 self.num = self.num.strip()  # если введет пробел или таб перед буквой стирает ее
  47.                 self.num = self.num.upper()  # преобразовывает в верхний регистр
  48.                 if len(self.num) == 1 and self.num.isalpha():  # проверяет есть ли только 1 символ и яв-ся ли она буквой
  49.                     break
  50.                 elif len(self.num) == len(new_q) and self.num.isalpha():
  51.                     break
  52.                 else:
  53.                     print('Введите 1 букву или слово полностью :)')
  54.  
  55.  
  56.     class Slovo(Bukva):
  57.  
  58.         def spisok(self):
  59.             while True:
  60.                 lot = 0
  61.                 self.buk()  # вызываем функцию buk из класса Bukva
  62.                 print('')
  63.                 for i in new_q:
  64.                     if self.num == i:  # проверяет совпадает ли введенная буква с буквами в слове
  65.                         print(r.choice(self.yak)) # рандомный ответ на угаданную букву
  66.                         time.sleep(1.5)  # ожидание
  67.                         full.insert(lot, self.num)  # если буква есть то ставит букву num на индекс lot
  68.                         full.pop(lot + 1)  # удаляет индекс след элемента(т.к. в предыдущем пункте мы добавили букву)
  69.                     lot = lot + 1
  70.                     if self.num not in new_q and len(self.num) == 1:
  71.                         print('Такой буквы нет :(')
  72.                         break
  73.                 if self.num in new_q and len(self.num) == len(new_q):  # есл загадали слово то проверяет его
  74.                     print('Верно!Выиграл(а){} Ваше слово'.format(igroki[self.chit1]), new_q)
  75.                     break
  76.                 elif len(self.num) > 1:
  77.                     print('Неправильно !, Слеееедующий, Крутите барабан))')
  78.                 spis = ''
  79.  
  80.                 for i in full:  # чтобы более понятливее был вывод
  81.                     spis = spis + i
  82.                 print(spis)  # выводит слово с звездочками , и по мере пополнения также выводит где какая буква стоит
  83.                 if not '*' in full:  # если нет символа * (а это значит что слово угадано) то говорит нам о победе
  84.                     print('Выиграл(а)  {} '.format(igroki[self.chit1]), '\nВаше слово', spis)
  85.                     break
  86.                     # меняем игроков
  87.                 if self.num not in new_q:
  88.                     if igroki[self.chit1] == 'David': # тут считаем ошибочные попытки игроков
  89.                         self.name1 = self.name1 + 1
  90.                         if self.name1 > 2:
  91.                             print('Ты выходишь из игры! ')
  92.                             igroki.remove('David')
  93.                     if igroki[self.chit1] == 'Anya': # тут считаем ошибочные попытки игроков
  94.                         self.name2 = self.name2 + 1
  95.                         if self.name2 > 3:
  96.                             print('Ты выходишь из игры! ')
  97.                             igroki.remove('Anya')
  98.                     if igroki[self.chit1] == 'Maks': # тут считаем ошибочные попытки игроков
  99.                         self.name3 = self.name3 + 1
  100.                         if self.name3 > 3:
  101.                             print('Ты выходишь из игры! ')
  102.                             igroki.remove('Maks')
  103.                     self.chit1 = self.chit1 + 1
  104.                 if self.chit1 == 2: # для смены игроков
  105.                     self.chit1 = -1
  106.  
  107.  
  108.  
  109.     my_slovo = Slovo()
  110.     my_slovo.spisok()
  111. except IndexError:
  112.     print('Все проиграли: Правильное слово:', new_q )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement