¿Mejor manera de asignar historia a la ubicación en un juego?
-
20-12-2019 - |
Pregunta
Tengo una pregunta simple. Aquí está mi juego de historia hasta ahora:
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")
Sé que podría hacer una declaración de IF para cada conjunto de coordenadas, pero me siento Pythonic, y me gustaría encontrar una forma rápida y eficiente de hacer esto.¡Gracias de antemano por la ayuda!
Solución
Al igual que @isedev dijo en un comentario, recomiendo usar un diccionario que mapea ubicación ubicación tuplas a datos sobre lo que se encuentra en esa ubicación.
Haría una clase llamada Room
o Area
que define lo que existe en esa ubicación. Luego, haga un diccionario llamado world
o algo que asige todas las ubicaciones que un jugador puede ir. Si no hay un objeto Area
en una ubicación determinada, entonces es imposible ir allí (tal vez sea un bosque impasible, roca sólida o lo que tenga sentido en su juego).
Le sugiero que lea a través de un tutorial sobre cómo escribir un juego de aventuras en Python. El libro aprende Python de la manera difícil tiene un capítulo dedicado a esto, y puede obtener ese libro gratis en Internet:
http://learnpythontthonthehardway.org/book/ex43.html
Puede tener más sentido si lees todo el libro en orden.
Si no te gusta, intente una búsqueda de Google de "Aventura Game Tutorial Python" y encontrará a otros.
buena suerte y diviértete.