Domanda

Ho una semplice domanda. Ecco il mio gioco della storia finora:

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")
.

So che potrei fare una dichiarazione se per ogni serie di coordinate, ma mi sento Pythic, e mi piacerebbe trovare un modo veloce ed efficiente per farlo.Grazie in anticipo per l'aiuto!

È stato utile?

Soluzione

Come @iseyev ha detto in un commento, consiglio di utilizzare un dizionario che mappa le taglie di posizione a dati su ciò che viene trovato in quella posizione.

Farei una classe chiamata Room o Area che definisce ciò che esiste in quella posizione. Quindi crea un dizionario chiamato world o qualcosa che mappa tutte le località che un giocatore può andare. Se non esiste un oggetto Area in una determinata posizione, allora è impossibile andare lì (forse è una foresta impassibile, solida roccia o qualsiasi altra cosa abbia senso nel tuo gioco).

Ti suggerisco di leggere un tutorial su come scrivere un gioco di avventura a Python. Il libro impara Python il modo difficile ha un capitolo dedicato a questo, e puoi ottenere quel libro gratuitamente su Internet:

http://learnythonthehardway.org/board/ex43.html

Potrebbe avere più senso se leggi attraverso l'intero libro in ordine.

Se non ti piace quello, prova una ricerca su Google per "Avventura Game Tutorial Python" e troverai gli altri.

Buona fortuna e divertiti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top