1. Willkommen im Forum!
2. Im Prinzip macht dein Programm, was es soll. Allerdings wird beim Füllen so "kräftig" gefüllt, dass ein Teil des Randes mit "weggefüllt" wird. Wenn du vorher die Stiftdicke heraufsetzt, dann klappt es.
Konkret: Als erste Zeile in der Funktionsdefinition ergänzen:
3. Dein Code ist verbesserungsbedürftig.
Die Laufvariable in der for-Schleife sollte einen anderen Namen
bekommen als die Funktion selbst!
Die Variable
seite scheint eine globale Variable zu sein. Es ist nicht gut, diese einfach so in der Funktion zu verwenden. Übergib sie als Parameter an die Funktion, das ist sauberer.
4. Grafik mit dem turtle-Modul macht keinen Spaß. Es gibt bessere und wesentlich leistungsfähigere Alternativen. Erzähl doch deinem Informatiklehrer mal davon
Das gleiche mit xturtle:
http://xturtle.rg16.at/
Code: Alles auswählen
from xturtle import *
def achteck(d):
width(3)
color('black')
fillcolor('green')
fill(True)
for n in range(8):
forward(d)
left(45)
fill(False)
achteck(30)
mainloop()
Das gleiche mit frog:
http://www.viktorianer.de/info/info-python-frog.html
Code: Alles auswählen
from frog import *
def achteck(d):
frog.width = 3
frog.color = "black"
frog.fillcolor = "green"
frog.fill = True
for n in range(8):
frog.move(d)
frog.turn(45)
pool = Pool()
frog = Frog(pool)
achteck(30)
pool.ready()
Zu xturtle gibt es sogar ein gedrucktes Buch ("Python für Kids"), zu frog eine ziemlich ausführliche Dokumentation (deutsch!).
Für beide Module gilt übrigens, dass sie das Achteck auch ohne vorherige Stiftverbreiterung richtig zeichnen können und die entsprechende Festlegung über "width" verzichtbar wäre.