Frage

Ich habe eine einfache Frage.Hier ist mein bisheriges Story-Spiel:

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

Ich weiß, dass ich für jeden Koordinatensatz eine if-Anweisung machen könnte, aber ich fühle mich pythonisch und würde gerne einen schnellen und effizienten Weg finden, dies zu tun.Vielen Dank im Voraus für die Hilfe!

War es hilfreich?

Lösung

Wie @isedev in einem Kommentar sagte, empfehle ich die Verwendung eines Wörterbuchs, das Standorttupel Daten darüber zuordnet, was an diesem Standort gefunden wird.

Ich würde eine Klasse namens erstellen Room oder Area das definiert, was an diesem Ort existiert.Dann erstellen Sie ein Wörterbuch mit dem Namen world oder etwas, das alle Orte kartiert, die ein Spieler besuchen kann.Wenn nein Area Wenn Sie ein Objekt an einem bestimmten Ort haben, ist es unmöglich, dorthin zu gelangen (vielleicht ist es ein unpassierbarer Wald, fester Fels oder was auch immer in Ihrem Spiel Sinn macht).

Ich empfehle Ihnen, ein Tutorial zum Schreiben eines Abenteuerspiels in Python durchzulesen.Das Buch Lernen Sie Python auf die harte Tour hat diesem Thema ein eigenes Kapitel gewidmet, und Sie können dieses Buch kostenlos im Internet erhalten:

http://learnpythonthehardway.org/book/ex43.html

Es könnte sinnvoller sein, wenn Sie das ganze Buch der Reihe nach durchlesen.

Wenn Ihnen das nicht gefällt, versuchen Sie es mit einer Google-Suche nach „Abenteuerspiel-Tutorial Python“ und Sie werden andere finden.

Viel Glück und hab Spaß.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top