xturtle problem mit y-wert

Fragen zu Tkinter.
Antworten
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

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)]
Zuletzt geändert von Py-Prog am Dienstag 6. Juli 2010, 18:53, insgesamt 3-mal geändert.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

- 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.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

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)
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

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...
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Nein 2.5.2.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

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