Лучший способ привязать историю к локации в игре?
-
20-12-2019 - |
Вопрос
У меня простой вопрос.Вот моя сюжетная игра на данный момент:
x = 0
y = 0
coords = (x,y)
def move(player) :
while 1 :
global x
global y
global coords
user_in = raw_input()
if user_in == "w":
y += 1
elif user_in == "d":
x += 1
elif user_in == "a":
x -= 1
elif user_in == "s":
y -= 1
else :
print "Thats not an assigned key"
coords = (x,y)
print player, "moved to", coords
move("Mason")
Я знаю, что мог бы сделать оператор if для каждого набора координат, но я чувствую себя питоном и хотел бы найти быстрый и эффективный способ сделать это.Заранее спасибо за помощь!
Решение
Как сказал @isedev в комментарии, я рекомендую использовать словарь, который сопоставляет кортежи местоположений с данными о том, что находится в этом месте.
Я бы создал класс под названием Room
или Area
это определяет, что существует в этом месте.Затем создайте словарь под названием world
или что-то, что отображает все места, куда может пойти игрок.Если нет Area
объект в заданной локации, то туда невозможно пройти (может быть, это непроходимый лес, твердая скала или что-то еще, что имеет смысл в вашей игре).
Я предлагаю вам прочитать руководство о том, как написать приключенческую игру на Python.Книга Изучите Python трудным путем этому есть глава, и вы можете получить эту книгу бесплатно в Интернете:
http://learnpythonthehardway.org/book/ex43.html
Возможно, будет больше смысла, если вы прочитаете всю книгу по порядку.
Если вам не нравится этот вариант, попробуйте поискать в Google «учебник по приключенческим играм Python», и вы найдете другие.
Удачи и получайте удовольствие.