123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- #Linda Napieralski
- #Andre Giesbrecht
- #Alexa Tschernitschek
- #Modul importieren
- import Tkinter as tk
- import turtle
- import time
- #Groesse des Fensters
- BREITE= 600 #Hauptfensterbreite
- HOEHE = 400 #Hauptfensterhoehe
- #Gartenflaeche=240.000Pixel
- #global
- #global
- class Roboter(object):
- def __init__(self, Hauptfenster, canvas, BREITE, HOEHE, Roboter_width, Farbe, Geschwindigkeit, start_x, start_y, tag):
- self.width = BREITE #Einfuegen Hauptfensterbreite in Klasse
- self.height = HOEHE #Einfuegen Hauptfensterhoehe in Klasse
- self.canvas = canvas
- self.Geschwindigkeit = Geschwindigkeit
- self.Richtung_x = 0.5 #Geschwindigkeit in x_Richtung
- self.Richtung_y = 0.5 #Geschwindigkeit in y_Richtung
- self.tag = tag #Neuzeichnen
- #Roboter erstellen
- self.canvas.create_oval(start_x, start_y, start_x + Roboter_width, start_y + Roboter_width, fill=Farbe, tag=tag)
- #Funktion "Fahren" des Roboters
- def maehen(self):
- self.canvas.move(self.tag, self.Richtung_x, self.Richtung_y)
- position = self.canvas.coords(self.tag) #Koordinaten der Roboterpositionen
- if position[0] == 0:
- self.Richtung_x = 0.5 #fahre weiter Richtung x_Achse, (=Ausgangskoord.+0.5)
- if position[1] == 0:
- self.Richtung_y = 0.5 #fahr weiter Richtung y_Achse, (=Ausgangskoord.+0.5)
- if position[2] == self.width:
- self.Richtung_x = -0.5 #bei Kollision (seitliche Wand) drehe um (90°)
- if position[3] == self.height:
- self.Richtung_y = -0.5 #bei Kollision (obere/untere Wand) drehe um (90°)
- self.canvas.after(self.Geschwindigkeit, self.maehen)
- x0= position[0]
- y0= position[1]
- x1= position[2]
- y1= position[3]
- self.canvas.create_oval(x0, y0,x1, y1, fill="red") #Markierung des Maehweges mit Neuzeichnung des Roboters
- #Idee: Abbruch der Fahr-Schleife, wenn Rob an Endkoordinaten ist--> break
- #Koordinaten-Datei erzeugen
- # input=open("Koordinaten.py").readlines()
- start_x=30
- Liste=[] #Hauptliste
- x0_Koordinate=[] #4 Unterlisten in Hauptliste, Darst. als 4 Spalten
- y0_Koordinate=[]
- x1_Koordinate=[]
- y1_Koordinate=[]
- x0_Koordinate.append(x0) #Daten in entsprechende Unterlisten hinzufuegen
- y0_Koordinate.append(y0)
- x1_Koordinate.append(x1)
- y1_Koordinate.append(y1)
- input=open("Koordinaten.py") #Hauptliste und Unterlisten in Koordinaten-Programm hinzufuegen
- linenr=0
- while True:
- line=input.readline()
- if not line: break
- Liste.append(line.split()) #zeilenweises Hinzufuegen
- Liste.append(x0_Koordinate)
- Liste.append(y0_Koordinate)
- Liste.append(x1_Koordinate)
- Liste.append(y1_Koordinate)
- laenge= len(Liste) #Laenge der Liste
- # print laenge
- input.close()
- output=open("Koordinaten.py", "w")
- for i in range (0,start_x)
-
- #print x0_Koordinate[0], y0_Koordinate[0], x1_Koordinate[0], y1_Koordinate[0]
- # print x0
- # print y0
- # print x1
- # print y1
- # def maehen(self):
- # line1= self.canvas.create_line(self.Richtung_x,self.Richtung_y ,width=1, fill="#000")
- # self.canvas.move(self.tag, self.Richtung_x, self.Richtung_y)
- # position = self.canvas.coords(self.tag)
- # if position[0] == 0:
- # self.Richtung_x = 0.5 #Geschwindigkeit nach Kollision
- # if position[1] == 0:
- # self.Richtung_y = 0.5
- # if position[2] == self.width:
- # self.Richtung_x = -0.5
- # if position[3] == self.height:
- # self.Richtung_y = -0.5
- # self.canvas.after(self.Geschwindigkeit, self.fahren)
- #Zeitmessung Maehvorgang
- #Startzeit
- start_zeit = time.time()
- #Koordinaten zwischenspeichern in Extradatei
- #input=open("Koordinaten.py").readlines()
- #x_Koordinate=[]
- #y_Koordinate=[]
- Hauptfenster=tk.Tk()
- Hauptfenster.title("Maehroboter")
- Garten = tk.Canvas(Hauptfenster, bg='green', width=BREITE, height=HOEHE)
- Garten.pack()
- Roboter = Roboter(Hauptfenster, Garten, BREITE, HOEHE, 50, "Red", 2,30, 10,"Roboter")
- #Roboter.fahren()
- Roboter.maehen()
- Hauptfenster.mainloop()
- #Endzeit
- end_zeit=time.time()
- print ("%.1f seconds" %(end_zeit - start_zeit))
|