Turtle Fuktionen

Fragen zu Tkinter.
BlackJack

Mittwoch 14. Februar 2007, 19:13

Das mit der ``while``-Schleife ist recht kompliziert. ``for``-Schleifen wurden hier doch schon gezeigt:

Code: Alles auswählen

from turtle import forward, right, width

def viereck(size):
    for dummy in xrange(4):
        forward(size)
        right(90)

def main():
    width(2)
    viereck(100)

if __name__ == '__main__':
    main()
Ausserdem sollte man in Funktionen möglichst nicht auf Werte im Modulnamensraum zugreifen, die man besser als Argument übergeben kann. Dann lassen sich Funktionen nicht mehr benutzen oder testen ohne dass man im gesamten Programm suchen muss, wo die benötigten Werte eigentlich herkommen.

Für ein Rechteck musst Du zwei Seiten in der einen Länge zeichnen und zwei in der anderen. Jeweils abwechselnd. Wenn man eine Schleife über die Zahlen 0 bis 3 hat, wie im Beispiel oben, kann man beispielsweise unter Verwendung des Modulo-Operators (``%``) testen, ob die Nummer der aktuellen Seite gerade oder ungerade ist, und entsprechend die erste oder zweite Längenangabe benutzen.
guter_hund
User
Beiträge: 19
Registriert: Montag 4. Dezember 2006, 13:25

Mittwoch 14. Februar 2007, 20:44

Ich habe es jetzt erst mal so gemacht:

Code: Alles auswählen

from turtle import *
def quadrilateral(side_a, side_b):
    next_side = side_a
    for i in range(4):
        forward(next_side)
        right(90)

        if next_side == side_a:
            next_side = side_b
        else:
            next_side = side_a        
width(2)
quadrilateral(100, 100)
up()
goto(40, -100)
left(90)
down()
quadrilateral(40, 20)             
up()
goto(20, -40)
down()
quadrilateral(20, 20)
up()
goto(60, -40)
down()
quadrilateral(20, 20)
up()
goto(0, 0)
down()
right(45)
forward(71)
left(90)
up()
goto(100, 0)
down()
forward(71)
right(45)
up()
goto(30, 40)

Aber ich versuche es mal mit deiner Variante wenn ich ein bisschen mehr Zeit habe...

MFG.

Edit (Leonidas): Code-Highlighting eingeschaltet.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 14. Februar 2007, 20:46

Könntest du das mit dem *-Import lassen? Das ist schon Absicht, dass weder BlackJack noch ich *-Imports benutzt haben.

Infos gibts unter [wiki]Module[/wiki].
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten