Как сделать карту и систему координат для неё на python

Рейтинг: 0Ответов: 0Опубликовано: 23.06.2023

Объясняю что именно я имел ввиду. Я делаю игру на питоне и мне нужна была карта, я её сделал но работает она не так как хотелось. Мне нужно чтобы в начале (в верхнем левом углу) появлялся персонаж и после им можно было управлять. А смысл игры примерно такой: персонаж появляется после ему нужно пройти до выхода, но на пути ему встречаются либо ловушки либо бонусы, (бонусы и ловушки уже сделаны и они уже рандомно выбираются), нужно только это всё применить к карте, а как я не знаю. Подскажите пожалуйста. Вот код карты:

#Создаём вход и выход
enter = '🚪'
exit = '🚪'
#Создаём карту
map = [
['■', '■', '■', '■', '■', '■', '■', '■', '■', '■'], 
['  ■', '■', '■', '■', '■', '■', '■', '■', '■', '■'],
['  ■', '■', '■', '■', '■', '■', '■', '■', '■', '■'],
['  ■', '■', '■', '■', '■', '■', '■', '■', '■', '■'],
['  ■', '■', '■', '■', '■', '■', '■', '■', '■', '■'],
['  ■', '■', '■', '■', '■', '■', '■', '■', '■', '■'],
['  ■', '■', '■', '■', '■', '■', '■', '■', '■', '■'],
['  ■', '■', '■', '■', '■', '■', '■', '■', '■', '■'],
['  ■', '■', '■', '■', '■', '■', '■', '■', '■', '■'],
['  ■', '■', '■', '■', '■', '■', '■', '■', '■', '■']
]
#Выводим всё на экран
def mapa():
    global x, y
    print(enter, end='')
    for i in map[0]:
        print(i, end='')
    if i == map[0][9]:
        print(map[0][9])
    for i in map[1]:
        print(i, end='')
    if i == map[1][9]:
        print(map[1][9])
    for i in map[2]:
        print(i, end='')
    if i == map[2][9]:
        print(map[2][9])
    for i in map[3]:
        print(i, end='')
    if i == map[3][9]:
        print(map[3][9])
    for i in map[4]:
        print(i, end='')
    if i == map[4][9]:
        print(map[4][9])
    for i in map[5]:
        print(i, end='')
    if i == map[5][9]:
        print(map[5][9])
    for i in map[6]:
        print(i, end='')
    if i == map[6][9]:
        print(map[6][9])
    for i in map[7]:
        print(i, end='')
    if i == map[7][9]:
        print(map[7][9])
    for i in map[8]:
        print(i, end='')
    if i == map[8][9]:
        print(map[8][9])
    for i in map[9]:
        print(i, end='')
    if i == map[9][9]:
        print(map[9][9], end='')
    print(exit)
mapa()

Вот код персонажа:

#Импортируем карту
from map import*
#Создаём персонажа и ставим его
character = '🧍‍♂️'
map.pop([0][0])
map.append(character)
#Устанавливаем здоровье и жизни
xp = 100
lives = 3
#Делаем x и y координаты
x = 0
y = 0
map[y][x]
#Управление
print('Управление:\n/w - Вверх\n/s - Вниз\n/a - Влево\n/d - Вправо')
choice = ''
while len(choice.strip()) < 1:
    choice = input('Ваш ход:/')
if choice == 'w':
    if y == 0:
        print('Туда нельзя походить')
    else:
        y += 1
        mapa()
elif choice == 's':
    if y == 9:
        print('Туда нельзя походить')
    else:
        y -= 1
        mapa()
elif choice == 'a':
    if x == 0:
        print('Туда нельзя походить')
    else:
        x -= 1
        mapa()
elif choice == 'd':
    if x == 9:
        print('Туда нельзя походить')
    else:
        x += 1
        mapa()
else:
    print('Команда не распознана повторите попытку')

И вот код бонусов и ловушек:

#Импортируем нужные модули
import time
import random
#Устанавливаем здоровье, жизни и координаты
xp = 100
lives = 3
x = 0
y = 0
#Рандомный выбор блока
def funcs():
     if True :
        f = [bad_funcs, good_funcs]
        rand_func = random.choice(f)
        rand_func()
#Блоки с уроном
def bad_funcs():
     if True :
        f = [bomb, poison, down, wind, radiation]
        rand_func = random.choice(f)
        rand_func()
def bomb():
    global nxp
    print('💣')
    nxp = xp - 50
    time.sleep(1)
    print('💥')
    return nxp
def poison():
    global nxp
    print('🧪 ')
    nxp = xp - 30
    return nxp
def poisondinamoxp():
    global nxp
    nxp = xp - 40
    for i in range(xp, nxp, -10):
        print(i)
        time.sleep(0.5)
    return nxp
def down():
    global nxp
    print('⚠️')
    time.sleep(0.3)
    print('■')
    time.sleep(0.3)
    print('⚠️')
    time.sleep(0.3)
    print('■')
    time.sleep(0.3)
    print('⚠️')
    time.sleep(0.3)
    print('🕳')
    nxp = xp - 100
    return nxp
def wind():
    global nxp
    print('🌪')
    nxp = xp - 10
    return nxp
def radiation():
    global nxp
    print('☣')
    nxp = xp - 60
def radiationdinamoxp():
    global nxp
    for i in range(xp, nxp, -10):
        print(i)
        time.sleep(0.5)
    return nxp
#Блоки с бонусами
def good_funcs():
     if True :
        f = [apteka, live, helicopter, teleport, eyes]
        rand_func = random.choice(f)
        rand_func()
def apteka():
    global nxp
    print('💊')
    nxp = xp + 20
    return nxp
def live():
    global nlive
    print('❤')
    nlive = lives + 1
    return nlive
def helicopter():
    global x, y
    print('🚁')
    nxp = xp + 0
    return x, y
def teleport():
    global x, y
    print('☸')
    return x, y
def eyes():
    global x, y
    print('🔍')
funcs()

(P.S коментарии здесь не потому что я брал куски кода с интернета, а потому что я сам их ставил для своего приятеля)

Ответы

Ответов пока нет.