Turtle Fuktionen

Fragen zu Tkinter.
BlackJack

Beitragvon 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.
Benutzeravatar
guter_hund
User
Beiträge: 19
Registriert: Montag 4. Dezember 2006, 13:25

Beitragvon guter_hund » 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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » 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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder