Esempio n. 1
0
# Обратите внимание, что строки - это список символов.
#
# В текущем модуле реализовать логику работы с пользователем:
#   модуль движка загадывает число
#   в цикле, пока число не отгадано
#       у пользователя запрашивается вариант числа
#       модуль движка проверяет число и выдает быков/коров
#       результат быков/коров выводится на консоль
#  когда игрок угадал таки число - показать количество ходов и вопрос "Хотите еще партию?"
#
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
Esempio n. 3
0
#   в цикле, пока число не отгадано
#       у пользователя запрашивается вариант числа
#       модуль движка проверяет число и выдает быков/коров
#       результат быков/коров выводится на консоль
#  когда игрок угадал таки число - показать количество ходов и вопрос "Хотите еще партию?"
#
# При написании кода учитывайте, что движок игры никак не должен взаимодействовать с пользователем.
# Все общение с пользователем делать в текущем модуле. Представьте, что движок игры могут использовать
# разные клиенты - веб, чатбот, приложение, етс - они знают как спрашивать и отвечать пользователю.
# Движок игры реализует только саму функциональность игры.
# Это пример применения 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('Хотите попробовать еще раз?(Да/Нет)')
Esempio n. 4
0
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():
Esempio n. 5
0
#       модуль движка проверяет число и выдает быков/коров
#       результат быков/коров выводится на консоль
#  когда игрок угадал таки число - показать количество ходов и вопрос "Хотите еще партию?"
#
# При написании кода учитывайте, что движок игры никак не должен взаимодействовать с пользователем.
# Все общение с пользователем делать в текущем модуле. Представьте, что движок игры могут использовать
# разные клиенты - веб, чатбот, приложение, етс - они знают как спрашивать и отвечать пользователю.
# Движок игры реализует только саму функциональность игры.
# Это пример применения 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
Esempio n. 6
0
# Это пример применения 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