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!

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top