Как сделать карту и систему координат для неё на python
Объясняю что именно я имел ввиду. Я делаю игру на питоне и мне нужна была карта, я её сделал но работает она не так как хотелось. Мне нужно чтобы в начале (в верхнем левом углу) появлялся персонаж и после им можно было управлять. А смысл игры примерно такой: персонаж появляется после ему нужно пройти до выхода, но на пути ему встречаются либо ловушки либо бонусы, (бонусы и ловушки уже сделаны и они уже рандомно выбираются), нужно только это всё применить к карте, а как я не знаю. Подскажите пожалуйста. Вот код карты:
#Создаём вход и выход
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 коментарии здесь не потому что я брал куски кода с интернета, а потому что я сам их ставил для своего приятеля)
Источник: Stack Overflow на русском