# Обратите внимание, что строки - это список символов. # # В текущем модуле реализовать логику работы с пользователем: # модуль движка загадывает число # в цикле, пока число не отгадано # у пользователя запрашивается вариант числа # модуль движка проверяет число и выдает быков/коров # результат быков/коров выводится на консоль # когда игрок угадал таки число - показать количество ходов и вопрос "Хотите еще партию?" # import mastermind_engine as me from termcolor import cprint from pprint import pprint me.guess_number() while True: cprint('Введите число ', color='green') num = input() if len(num) != 4: print('Вы ввели не четырехзначное число') continue dict_animal = me.check_number(answer=num) if dict_animal['bulls'] == 4: cprint('Winner!!!', color='red') cprint(me.get_count_try(), color='red')
# Это пример применения SOLID принципа (см https://goo.gl/GFMoaI) в архитектуре программ. # Точнее, в этом случае важен принцип единственной ответственности - https://goo.gl/rYb3hT from termcolor import cprint import mastermind_engine cprint('------------------------', color='green') cprint(' Игра «Быки и коровы»', color='green') cprint('------------------------', color='green') yes = ['Да', 'да', 'д', 'Yes', 'yes', 'y'] count = 0 while True: user_number = int(input('Введите число: ')) mastermind_engine.check_number(user_number=user_number) count += 1 if user_number == mastermind_engine.secret_number: print('Успех') print('Количество ходов -', count) solution = input('Хотите еще партию(Да/Нет)? ') if solution in yes: mastermind_engine.guess_number() count = 0 continue else: print('Удачного дня!') break
# в цикле, пока число не отгадано # у пользователя запрашивается вариант числа # модуль движка проверяет число и выдает быков/коров # результат быков/коров выводится на консоль # когда игрок угадал таки число - показать количество ходов и вопрос "Хотите еще партию?" # # При написании кода учитывайте, что движок игры никак не должен взаимодействовать с пользователем. # Все общение с пользователем делать в текущем модуле. Представьте, что движок игры могут использовать # разные клиенты - веб, чатбот, приложение, етс - они знают как спрашивать и отвечать пользователю. # Движок игры реализует только саму функциональность игры. # Это пример применения SOLID принципа (см https://goo.gl/GFMoaI) в архитектуре программ. # Точнее, в этом случае важен принцип единственной ответственности - https://goo.gl/rYb3hT from mastermind_engine import rand_4_number, guess_number, game_over from termcolor import cprint while True: rand_4_number() while True: user_input = input('Введите 4х значное число: ') cprint(guess_number(user_number=user_input), color='green') if game_over(user_number=user_input): break one_more = input() if one_more == 'Нет' or one_more == 'нет' or one_more == 'No' or one_more == 'no' or one_more == 'n': break elif one_more == 'Да' or one_more == 'да' or one_more == 'Yes' or one_more == 'yes' or one_more == 'y': continue else: one_more = input('Хотите попробовать еще раз?(Да/Нет)')
def check_length(guess_checking): guess_array = set(guess_checking) if guess_checking[0] == '0': print('Список начинается с 0') return False elif len(guess_checking) != 4: print('В списке некорректное количество значений') return False elif len(guess_array) != len(guess_checking): print('Есть одинаковые значения') return False else: return True guess_number() print(guess_number()) while True: print( 'Я загадал 4-х значное число.Все числа разные и начинается не с 0.Твой вариант?' ) guess = input() step_length_success = check_length(guess_checking=guess) if step_length_success: print_result_check_number = check_number(guess) print('быки - ', print_result_check_number['bulls'], 'коровы - ', print_result_check_number['cows']) if game_over():
# модуль движка проверяет число и выдает быков/коров # результат быков/коров выводится на консоль # когда игрок угадал таки число - показать количество ходов и вопрос "Хотите еще партию?" # # При написании кода учитывайте, что движок игры никак не должен взаимодействовать с пользователем. # Все общение с пользователем делать в текущем модуле. Представьте, что движок игры могут использовать # разные клиенты - веб, чатбот, приложение, етс - они знают как спрашивать и отвечать пользователю. # Движок игры реализует только саму функциональность игры. # Это пример применения SOLID принципа (см https://goo.gl/GFMoaI) в архитектуре программ. # Точнее, в этом случае важен принцип единственной ответственности - https://goo.gl/rYb3hT # TODO здесь ваш код... import mastermind_engine as mm mm.guess_number() counter = 0 while True: counter += 1 user_num = input("Введите ваш вариант:") res = mm.check_number(int(user_num)) if res["bulls"] == 4: print(mm.HIDDEN_NUMBER) res = input(f"Вы угадали число за {counter} попыток! Еще партию? (y/n)") if res == "y": counter = 0 mm.guess_number() else: break
# Это пример применения SOLID принципа (см https://goo.gl/GFMoaI) в архитектуре программ. # Точнее, в этом случае важен принцип единственной ответственности - https://goo.gl/rYb3hT from termcolor import colored def is_number_correct(_number): _length = len(_number) _set_num = set(_number) if _number.isdigit(): if (_length == 4) and (_length == len(_set_num)): return True return False iteration = 0 guess_number() print('Загаданное число пока нам неизвестно )') number = input(colored('Введите число ', color='blue')) while True: iteration += 1 if is_number_correct(number): answer = check_number(number) print(f"Быков - {answer['bulls']}; коров - {answer['cows']}") if answer['bulls'] == 4: new_game = input( colored( f'Вы отгадали число! Затрачено {iteration} хода(ов)!\nХотите еще партию? (y/n) ', color='magenta')) while True: if (new_game == 'y') or (new_game == 'Y'): iteration = 0