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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top