Seite 1 von 1

xturtle problem mit y-wert

Verfasst: Donnerstag 18. Februar 2010, 15:27
von Py-Prog
Hallo, ich hab schon wieder ein problem, ich hab ein Programm geschrieben das einen weg zeichnet aufdem die Turtles später einmal "laufen" sollen.

Die funktion stand die ich geschrieben hab funktioniert aber leider nur wenn der y-wert (in der menge a) >0 ist.

hier der Code:

Code: Alles auswählen

def stehen(karte):
    speed(0)
    pu()
    showturtle()
    x = xcor()      #Gibt den aktuellen x-wert der Turtle zurück
    y = 0
    goto(x,-300)  #setzt die Turtle auf den unteren fenster rand (gleiche x-position)
    while ("true"):
        if (xcor(),ycor()) in karte:
            break
        else:
            y = y + 1
            goto(x, y)
und eine Beispiemenge :

Code: Alles auswählen

a = [(-399,50),(-398,49),(-397,-48),(-396,-50)]

Verfasst: Donnerstag 18. Februar 2010, 15:58
von mkesper
- Bitte Code-Tags benutzen, ist so unlesbar
- "stand" ist kein Name für eine Funktion (was "tut" die Funktion?)

Code: Alles auswählen

while True:
sollte so verwendet werden. Die Klammern sind unnötig und es würde auch

Code: Alles auswählen

while "False":
funktionieren, daher den builtin True verwenden.

Verfasst: Donnerstag 18. Februar 2010, 16:08
von Py-Prog
Also nochmal in klartext:

stand ermittelt den aktuellen x-wert der turtle
setzt den y-wert auf -300 (und so die turtle auf dem unter Fenster rand)
<schleife unendlich>
wenn die Position in a enthalten ist:
schleife abbrechen
ansonst:
setze erhöhe y-wert um 1
gehe zu (x,y)
</schleife>
(der rest ist nicht so wichtig)
ich hoffe du hast jetzt verstanden was stand macht.

(Und noch wegen der schleife: ich hab ein älteres Python)

Verfasst: Donnerstag 18. Februar 2010, 17:06
von mkesper
Py-Prog hat geschrieben: ich hoffe du hast jetzt verstanden was stand macht.
Das sollte sich halt im Namen der Funktion wiederspiegeln (ich habe noch nicht ganz den Sinn verstanden, vielleicht so etwas wie gehe_zu oder Ähnliches).
(Und noch wegen der schleife: ich hab ein älteres Python)
Älter als Python 2.3? Autsch...

Verfasst: Freitag 19. Februar 2010, 13:43
von Py-Prog
Nein 2.5.2.

Verfasst: Freitag 19. Februar 2010, 13:47
von Py-Prog

Code: Alles auswählen

from xturtle import *

a = [(-400,80),(-399,50),(-398,49),(-397,-60),(-396,-80)]

def hintergrund(bild, startpoint):
    winsize(800, 600)
    penup()
    hideturtle()
    speed(0)
    goto(startpoint)
    pensize(5)
    pencolor("green3")
    pendown()
    for i in bild:
        goto(i)
    pencolor("black")
    pu()


def stand(karte):
    speed(0)
    pu()
    showturtle()
    x = xcor()      #Gibt den aktuellen x-wert der Turtle zurück
    y = 0
    goto(x,-300)  #setzt die Turtle auf den unteren fenster rand (gleiche x-position)
    while ("true"):
        if (xcor(),ycor()) in karte:
            break
        else:
            y = y + 1
            goto(x, y)

hintergrund(a)
goto(-399,50) #ändere den wert dannach so um das y in a negativ ist
stand(a)

mainloop()
probire das mal aus (ich habs etwas gekürtzt besonders a)