from random import randint 
#Из модуля random импортируем модуль randit
#global означает, что работаем в глобальной переменной 

print("Добро пожаловать в  игру!")
print("Тебе нужно незаметно обойти охранника.")
print("Хватай ключи в центре правой стороны комнаты, затем, нужно дойти до двери в центральной нижней стороне комнаты чтобы сбежать!")

def is_game_over():
    if x == X_ and y == Y_:
        print("Игра завершена, вас поймали.")
        exit()

def bot_move ():
    global X_, Y_
    print("Ход бота")
    n = randint(1, 4) #Бросок кубиков для бота, выбрасывая от 1 до 4, бот делает свой ход
    if n == 1:
        Y_ += 1
    elif n == 2:
        X_ += 1
    elif n == 3:
        Y_ -= 1
    else:
        X_ -= 1

    #Проверяем, не вышел ли бот за границы поля, если вышел, возвращаем его обратно
    if X_ > w - 1:
        X_ = w - 1
    elif X_ < 0:
        X_ = 0
    if Y_ > h - 1:
        Y_ = h - 1
    elif Y_ < 0:
        Y_ = 0

def up ():
    global y
    if y < h - 1:
        y += 1
        print("Иду вверх")
    else:
        print("Не могу идти вверх: достигнут верхний край карты")

def right():
    global x
    if x < w - 1:
        x += 1
        print("Иду направо")
    else:
        print("Не могу идти направо: достигнут правый край карты")
    
def left():
    global x
    if x > 0:
        x -= 1
        print("Иду налево")
    else:
        print("Не могу идти налево: достигнут левый край карты")

def down():
    global y
    if y > 0:
        y -= 1
        print("Иду вниз")
    else:
        print("Не могу идти вниз: достигнут нижний край карты")

#Отображение игрового поля командой "pos"
def pos():
    print(f"X = {x}, Y = {y}")
    #row это ряд и col это колонка
    for row in range(h):
        for col in range(w):
            if row == y and col == x:
                print("P", end=" ")
            elif row == Y_ and col == X_:
                print("B", end=" ")
            else:
                print(".", end=" ")
        print()

#Координаты спавна игрока
x = 1
y = 5

#Координаты игрового поля (ширина и высота)
w = 10 
h = 15

#Координаты спавна бота
X_ = 5
Y_ = 5

def check_victory():
    global x, y
    if x == w // 2 and y == h - 1:  #Если игрок находится в середине правого края, он берет ключ, а потом сбегает от бота, в середине карты внизу. (X = 5, Y = 14)
        print("Вы взяли ключ!")
        x = 0
        y = 0
        print("Вы успешно сбежали!")
        print("Поздравляю, вы победили!")
        exit()
        
while True:
    print("Введите команду [up], [right], [down], [left], [pos], [exit]")
    command = input()

    if command == "up":
        up()
        check_victory()
        bot_move()
        pos()
        is_game_over()

    elif command == "right":
        right()
        check_victory()
        bot_move()
        pos()
        is_game_over()

    elif command == "left":
        left()
        check_victory()
        bot_move()
        pos()
        is_game_over()

    elif command == "down":
        down()
        check_victory()
        bot_move()
        pos()
        is_game_over()

    elif command == "pos":
        pos()

    elif command == "exit":
        print("Пока!")
        break

    else:
        print("Невозможно.")

print("МЁРТВ")