Maehroboter.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #Linda Napieralski
  2. #Andre Giesbrecht
  3. #Alexa Tschernitschek
  4. #Modul importieren
  5. import Tkinter as tk
  6. import turtle
  7. import time
  8. #Groesse des Fensters
  9. BREITE= 600 #Hauptfensterbreite
  10. HOEHE = 400 #Hauptfensterhoehe
  11. #Gartenflaeche=240.000Pixel
  12. #global
  13. #global
  14. class Roboter(object):
  15. def __init__(self, Hauptfenster, canvas, BREITE, HOEHE, Roboter_width, Farbe, Geschwindigkeit, start_x, start_y, tag):
  16. self.width = BREITE #Einfuegen Hauptfensterbreite in Klasse
  17. self.height = HOEHE #Einfuegen Hauptfensterhoehe in Klasse
  18. self.canvas = canvas
  19. self.Geschwindigkeit = Geschwindigkeit
  20. self.Richtung_x = 0.5 #Geschwindigkeit in x_Richtung
  21. self.Richtung_y = 0.5 #Geschwindigkeit in y_Richtung
  22. self.tag = tag #Neuzeichnen
  23. #Roboter erstellen
  24. self.canvas.create_oval(start_x, start_y, start_x + Roboter_width, start_y + Roboter_width, fill=Farbe, tag=tag)
  25. #Funktion "Fahren" des Roboters
  26. def maehen(self):
  27. self.canvas.move(self.tag, self.Richtung_x, self.Richtung_y)
  28. position = self.canvas.coords(self.tag) #Koordinaten der Roboterpositionen
  29. if position[0] == 0:
  30. self.Richtung_x = 0.5 #fahre weiter Richtung x_Achse, (=Ausgangskoord.+0.5)
  31. if position[1] == 0:
  32. self.Richtung_y = 0.5 #fahr weiter Richtung y_Achse, (=Ausgangskoord.+0.5)
  33. if position[2] == self.width:
  34. self.Richtung_x = -0.5 #bei Kollision (seitliche Wand) drehe um (90°)
  35. if position[3] == self.height:
  36. self.Richtung_y = -0.5 #bei Kollision (obere/untere Wand) drehe um (90°)
  37. self.canvas.after(self.Geschwindigkeit, self.maehen)
  38. x0= position[0]
  39. y0= position[1]
  40. x1= position[2]
  41. y1= position[3]
  42. self.canvas.create_oval(x0, y0,x1, y1, fill="red") #Markierung des Maehweges mit Neuzeichnung des Roboters
  43. #Idee: Abbruch der Fahr-Schleife, wenn Rob an Endkoordinaten ist--> break
  44. #Koordinaten-Datei erzeugen
  45. # input=open("Koordinaten.py").readlines()
  46. start_x=30
  47. Liste=[] #Hauptliste
  48. x0_Koordinate=[] #4 Unterlisten in Hauptliste, Darst. als 4 Spalten
  49. y0_Koordinate=[]
  50. x1_Koordinate=[]
  51. y1_Koordinate=[]
  52. x0_Koordinate.append(x0) #Daten in entsprechende Unterlisten hinzufuegen
  53. y0_Koordinate.append(y0)
  54. x1_Koordinate.append(x1)
  55. y1_Koordinate.append(y1)
  56. input=open("Koordinaten.py") #Hauptliste und Unterlisten in Koordinaten-Programm hinzufuegen
  57. linenr=0
  58. while True:
  59. line=input.readline()
  60. if not line: break
  61. Liste.append(line.split()) #zeilenweises Hinzufuegen
  62. Liste.append(x0_Koordinate)
  63. Liste.append(y0_Koordinate)
  64. Liste.append(x1_Koordinate)
  65. Liste.append(y1_Koordinate)
  66. laenge= len(Liste) #Laenge der Liste
  67. # print laenge
  68. input.close()
  69. output=open("Koordinaten.py", "w")
  70. for i in range (0,start_x)
  71. #print x0_Koordinate[0], y0_Koordinate[0], x1_Koordinate[0], y1_Koordinate[0]
  72. # print x0
  73. # print y0
  74. # print x1
  75. # print y1
  76. # def maehen(self):
  77. # line1= self.canvas.create_line(self.Richtung_x,self.Richtung_y ,width=1, fill="#000")
  78. # self.canvas.move(self.tag, self.Richtung_x, self.Richtung_y)
  79. # position = self.canvas.coords(self.tag)
  80. # if position[0] == 0:
  81. # self.Richtung_x = 0.5 #Geschwindigkeit nach Kollision
  82. # if position[1] == 0:
  83. # self.Richtung_y = 0.5
  84. # if position[2] == self.width:
  85. # self.Richtung_x = -0.5
  86. # if position[3] == self.height:
  87. # self.Richtung_y = -0.5
  88. # self.canvas.after(self.Geschwindigkeit, self.fahren)
  89. #Zeitmessung Maehvorgang
  90. #Startzeit
  91. start_zeit = time.time()
  92. #Koordinaten zwischenspeichern in Extradatei
  93. #input=open("Koordinaten.py").readlines()
  94. #x_Koordinate=[]
  95. #y_Koordinate=[]
  96. Hauptfenster=tk.Tk()
  97. Hauptfenster.title("Maehroboter")
  98. Garten = tk.Canvas(Hauptfenster, bg='green', width=BREITE, height=HOEHE)
  99. Garten.pack()
  100. Roboter = Roboter(Hauptfenster, Garten, BREITE, HOEHE, 50, "Red", 2,30, 10,"Roboter")
  101. #Roboter.fahren()
  102. Roboter.maehen()
  103. Hauptfenster.mainloop()
  104. #Endzeit
  105. end_zeit=time.time()
  106. print ("%.1f seconds" %(end_zeit - start_zeit))