1. Bilder kann man auch in den Python Quellcode einbetten, aber bei dem Bild war es so nat. besser, dennoch hätte man den Quellcode seperate in das pastebin hochladen können, denn für die Kritiken oben, brauchte es die Bilder nicht
4. Klar gerne doch, hierzu muss ich dich allerdings fragen, weißt du was Parameter sind ? Wenn nicht solltest du das dringend nachholen. Theoretisch muss deine Funktion nur so ausehen:
Code: Alles auswählen
def move(heading, forward):
seth(heading)
forward(forward)
Mehr braucht man im Grunde nicht. Nun aber möchte die Turtle-Funktion "onkey" aber eine Funktion und keinen Wert dieser, dafür gibt es einen einfachen Trick per "lambda"-Funktionen.
5. hier gibt es gleich die Funktion "hypot".
7. Bist hier nicht gut beraten, da "global" dann halt wirklich global ist und wenn die häufig genug genutzt wird, wirst du bald feststellen das du nicht mehr mitbekommst wo sie geändert wird, in diesem kleinen Script natürlich egal. Zugegeben ist das hier nicht ganz einfach, da man keinen Rückgabewert erhält. Ich habe hier mal eine Klasse dafür missbraucht(siehe unten), ist AFAIK immer noch besser als global, aber auch nicht hübsch. Vieleicht fällt jemand anderem noch was besseres ein.
9. Ok ich habe mal deinen Script umgeschrieben, sieh ihn dir genau an.
Code: Alles auswählen
#! /usr/bin/env python
"""
02.02.2011
"""
# importiert das Mathe und Turtle Modul
import math
import turtle
# Definitionen zum Bewegen
def move(forward, heading):
turtle.seth(heading)
turtle.forward(forward)
# Hilfe an/aus
# Hier noch mal der Hinweis, das ist auch nicht schön, aber für Turtle fällt mir nichst besseres ein
# Vieleicht hat ja noch jemand eine Idee
class Background(object):
help_pic = True
# Definition zum Wechseln des Hintergrundbildes
def changebg():
turtle.bgpic('bg.gif' if Background.help_pic else 'bg2.gif')
Background.help_pic = not Background.help_pic
if __name__ == "__main__":
# bestimmt Fenstergroesse
turtle.setup(width=800, height=600)
# Titelzeile des Fensters
turtle.title('Einfaches Zeichenprogramm')
# Stiftfarbe und Hintergrundbild
turtle.color('black')
changebg()
# Schrittgeschwindigkeit der Schildkroete
step = 100
# Tastensteuerung
turtle.listen()
# Richtungen
turtle.onkey(lambda: move(step, 0), 'd')
turtle.onkey(lambda: move(math.hypot(step, step), 45), 'o')
turtle.onkey(lambda: move(step, 90), 'w')
turtle.onkey(lambda: move(math.hypot(step, step), 135), 'i')
turtle.onkey(lambda: move(step, 180), 'a')
turtle.onkey(lambda: move(math.hypot(step, step), 225), 'k')
turtle.onkey(lambda: move(step, 270), 's')
turtle.onkey(lambda: move(math.hypot(step, step), 315), 'l')
# Taste c um einen Kreis zu zeichnen
turtle.onkey(lambda: turtle.circle(step), 'c')
# Leertaste zum Loeschen der Zeichnung
turtle.onkey(turtle.reset, 'space')
# Taste h um den Hintergrund zu wechseln
turtle.onkey(changebg, 'h')
turtle.mainloop()
Edit: Auf Wunsch vom OP seinen Namen aus dem Programmcode entfernt.
frecker hat geschrieben:Programmierung ist für mich völliges Neuland. Daher bin ich auf meinen geringen Wissensstand und Hilfe von anderen angewisen
Wollte dich nicht verschrecken
