Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.98 KB | None | 0 0
  1.  
  2. from random import *
  3. from pprint import *
  4. from admin_pass import *
  5. from function import *
  6.  
  7.  
  8. words = dict()
  9. with open('word.txt', 'r') as file: #открываем файл для считывания
  10.     for line in file:
  11.         key, *value = line.split() # *value - список из слов
  12.         words[key] = ' '.join(value) #cборка списка в 1 строку
  13. print('='*75)
  14. print(' '*25+'Курсовая работа по теме \nРазработка программного обеспечения для компьютерной игры «Поле чудес»')
  15. print(' '*17+'Разработана студентом группы АБ-хх, name')
  16. print('='*75)
  17. status = True
  18.  
  19. answer = input('\n\nВыберите режим Администратор или Игрок (admin/player): \n ->').lower()
  20. if answer == 'admin':
  21.     answer = input('Введите пароль: ')
  22.     if answer == paswd:
  23.         admin_mode = True
  24.         while admin_mode:
  25.             print('\nДоступные функции:')
  26.             print('1) Cоздать список слов')
  27.             print('2) Просмотр списка слов')
  28.             print('3) Корректировка списка слов')
  29.             print('4) ВЫХОД')
  30.             answer = int(input('-> '))
  31.             if answer == 1:
  32.                 words = newWords()
  33.             elif answer == 2:
  34.                 words = updateWords()
  35.                 pprint(words)
  36.             elif answer == 3:
  37.                 print('\n1. Удаление')
  38.                 print('2. Добавление')
  39.                 print('3. Корректировка')
  40.                 answer = int(input('->'))
  41.                 if answer == 1:
  42.                     pprint(words)
  43.                     answer = input('Слово для удаления - ')
  44.                     word = deleteWord(words, answer)
  45.                 elif answer == 2:
  46.                     pprint(words)
  47.                     print('Пара слово/подсказка для добавления - ')
  48.                     new_word = input('Новое слово - ').lower()
  49.                     new_hint = input('Новая подсказка - ').lower()
  50.                     words = newWord(words, new_word, new_hint)
  51.                 elif answer == 3:
  52.                     words = correctWords(words)
  53.             elif answer == 4:
  54.                 admin_mode = False
  55.     else:
  56.         print('Пароль не верен! Переход в режим игрока!')
  57.         answer = 'player'
  58. else:
  59.     print('Команда не распознана. Режим игрока')
  60.     answer = 'player'
  61. if answer == 'player':
  62.     num_of_ppl = int(input('Введите количество игроков: '))
  63.     dict_of_plyrs = dict()
  64.     lst_name = list()
  65.     for i in range(num_of_ppl):
  66.         lst_name.append(input('Ник игрока [{}] - '.format(i+1))) #заводим список с именами
  67.         dict_of_plyrs[i] = 5 #рейтинг игрока (по заданию у них уже есть какое то количество баллов)
  68. # получается такая система
  69. # список имен [masha, sasha, petya]
  70. # словарь с рейтингом
  71. # {0:5,
  72. #  1:5,
  73. #  2:5}
  74. # сопостовляем список и словарь - маша(индекс 0) - 5 очков, саша(индекс 1) - 5 очков тд
  75.     close_word = choice(list(words.keys()))#выбираем случайное слово из списка слов
  76.     hint = words[close_word] #берем подсказку для этого слова
  77.     open_word = ['*' for i in close_word] #скрытое слово для игрока. выглядит как ********
  78.     counter = len(close_word)#счетчик = длинне слова
  79.     history_answer = set() #история, для букв которые уже вводились (без нее можно фармить очки вводя одну и ту же букву)
  80.  
  81.  
  82.     print('\n\nНачинаем игру\nПодсказка - {}!'.format(hint))
  83.     while counter > 0: #пока счетчик(количество скрытых букв больше 0)
  84.         for i in range(num_of_ppl): #прокручиваем игроков
  85.             print('\nХодит игрок - {}!'.format(lst_name[i]))
  86.             print('Слово - ', ''.join(open_word)) #так как у нас открытое слово это список - собераем его в строку (для красоты)
  87.             answer = input('Ваш ответ - ').lower()
  88.             if len(answer) == 1 and answer in close_word: #если ответ это 1 буква и она находится в слове
  89.                 if answer not in history_answer: #защита от фарма
  90.                     history_answer.add(answer) #добавляем эту букву в историю
  91.                     for j in range(len(close_word)):
  92.                         if answer == close_word[j]: #проходимся по всему слову
  93.                             open_word[j] = answer   #и свайпаем буквы
  94.                             counter -= 1
  95.                             dict_of_plyrs[i] += 1 #начисляем очко за каждую букву
  96.                             correctly = True
  97.                 else:
  98.                     print('Такая буква уже есть. Пропускаете ход')
  99.                     break
  100.             elif answer not in close_word: #если буквы нет - отнимаем очко
  101.                 print('Такой буквы нет! -1 очко')
  102.                 dict_of_plyrs[i] -= 1
  103.                 correctly = False
  104.  
  105.             if correctly:
  106.                 answer = input('Вы хотите назвать слово? yes/no >').lower()
  107.                 if answer == 'yes':
  108.                     answer = input('Загаданное слово = ').lower()
  109.                     if answer == close_word:
  110.                         print('!!!! И У НАС ЕСТЬ ПОБЕДИТЕЛЬ - {} !!!!'.format(lst_name[i]))
  111.                         dict_of_plyrs[i] += len(close_word)
  112.                         counter = 0
  113.                         break
  114.                 else:
  115.                     print('Очень жаль. Идем к следующему\n\n')
  116.  
  117.  
  118.             if counter == 0:
  119.                 print('Cлово найдено! - ', ''.join(open_word))
  120.                 break
  121.  
  122.             if answer == close_word: #если игрок ввел слово целиком
  123.                 print('!!!! И У НАС ЕСТЬ ПОБЕДИТЕЛЬ - {} !!!!'.format(lst_name[i]))
  124.                 dict_of_plyrs[i] += len(close_word)
  125.                 counter = 0
  126.                 break
  127.  
  128.  
  129.     print('Имя / Очки')
  130.     for i in range(num_of_ppl):
  131.         print(lst_name[i], dict_of_plyrs[i])
  132. else:
  133.     print('Команда не распознана\nexit.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement