A melhor maneira de atribuir história para localização em um jogo?
-
20-12-2019 - |
Pergunta
Eu tenho uma pergunta simples.Aqui é a minha história do jogo até agora:
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")
Eu sei que eu poderia fazer uma instrução if para cada conjunto de coordenadas, mas eu estou me sentindo pythonic, e eu gostaria de encontrar uma maneira rápida e eficiente para fazer isso.Obrigado antecipadamente pela ajuda!
Solução
Como @isedev disse em um comentário, eu recomendo o uso de um dicionário que mapeia a localização de tuplas de dados sobre o que é encontrado no local.
Eu gostaria de fazer uma classe chamada Room
ou Area
que define o que existe no local.Em seguida, fazer um dicionário chamado world
ou algo que mapeia todos os locais é um jogador pode ir.Se não há Area
objeto em um determinado local, então é impossível ir para lá (talvez impassible floresta, rocha sólida, ou o que faz sentido no seu jogo).
Eu sugiro que você leia um tutorial sobre como gravar um jogo de aventura em Python.O livro Aprender Python, a Maneira mais Difícil tem um capítulo dedicado a isso, e você pode começar o livro de graça na Internet:
http://learnpythonthehardway.org/book/ex43.html
Pode fazer mais sentido se você ler o livro todo em ordem.
Se você não gostar, tente uma pesquisa no Google por "jogo de aventura tutorial Python" e você vai encontrar os outros.
Boa sorte e divirta-se.