Maehroboter.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #Linda Napieralski
  2. #Andre Giesbrecht
  3. #Alexa Tschernitschek
  4. #Modul importieren
  5. import Tkinter as tk
  6. import turtle
  7. import time
  8. import sys
  9. import tkMessageBox
  10. #Groesse des Fensters
  11. BREITE= 600 #Hauptfensterbreite
  12. HOEHE = 400 #Hauptfensterhoehe
  13. #Gartenflaeche=240.000Pixel
  14. #global
  15. #global
  16. class Roboter(object):
  17. def __init__(self, Hauptfenster, canvas, BREITE, HOEHE, Roboter_width, Farbe, Geschwindigkeit, start_x, start_y, tag):
  18. self.width = BREITE #Einfuegen Hauptfensterbreite in Klasse
  19. self.height = HOEHE #Einfuegen Hauptfensterhoehe in Klasse
  20. self.canvas = canvas
  21. self.Geschwindigkeit = Geschwindigkeit
  22. self.Richtung_x = 0.5 #Geschwindigkeit in x_Richtung
  23. self.Richtung_y = 0.5 #Geschwindigkeit in y_Richtung
  24. self.tag = tag #Neuzeichnen
  25. #Roboter erstellen
  26. self.canvas.create_oval(start_x, start_y, start_x + Roboter_width, start_y + Roboter_width, fill=Farbe, tag=tag)
  27. #Funktion "Fahren" des Roboters
  28. def maehen(self):
  29. self.canvas.move(self.tag, self.Richtung_x, self.Richtung_y)
  30. position = self.canvas.coords(self.tag) #Koordinaten der Roboterpositionen
  31. if position[0] == 0:
  32. self.Richtung_x = 0.5 #fahre weiter Richtung x_Achse, (=Ausgangskoord.+0.5)
  33. if position[1] == 0:
  34. self.Richtung_y = 0.5 #fahr weiter Richtung y_Achse, (=Ausgangskoord.+0.5)
  35. if position[2] == self.width:
  36. self.Richtung_x = -0.5 #bei Kollision (seitliche Wand) drehe um (90 Grad)
  37. if position[3] == self.height:
  38. self.Richtung_y = -0.5 #bei Kollision (obere/untere Wand) drehe um (90 Grad)
  39. self.canvas.after(self.Geschwindigkeit, self.maehen)
  40. x0= position[0]
  41. y0= position[1]
  42. x1= position[2]
  43. y1= position[3]
  44. self.canvas.create_oval(x0, y0,x1, y1, fill="#FF0000") #Markierung des Maehweges mit Neuzeichnung des Roboters
  45. #Idee: Abbruch der Fahr-Schleife, wenn Rob an Endkoordinaten ist--> break
  46. #Koordinaten-Datei erzeugen
  47. # input=open("Koordinaten.py").readlines()
  48. start_x=30
  49. start_y=10
  50. Liste=[] #Hauptliste
  51. Liste.append(x0) #Daten in entsprechende Unterlisten hinzufuegen
  52. Liste.append(y0)
  53. Liste.append(x1)
  54. Liste.append(y1)
  55. input=open("Koordinaten.txt") #Hauptliste und Unterlisten in Koordinaten-Programm hinzufuegen
  56. linenr=0
  57. while True:
  58. line=input.readline()
  59. if not line: break
  60. Liste.append(line) #zeilenweises Hinzufuege
  61. laenge= len(Liste) #Laenge der Liste
  62. # print laenge
  63. input.close()
  64. output=open("Koordinaten.txt", "w")
  65. #for i in range (0,)
  66. # print Liste[0], Liste[1], Liste[2], Liste[3]
  67. if (start_x==x0) and (start_y==y0):
  68. tkMessageBox.showinfo(title="Hinweis", message="Der Rasen wurde gemaeht!")
  69. sys.exit()
  70. start_zeit = time.time()
  71. Hauptfenster=tk.Tk()
  72. Hauptfenster.title("Maehroboter")
  73. Garten = tk.Canvas(Hauptfenster, bg='green', width=BREITE, height=HOEHE)
  74. Garten.pack()
  75. Roboter = Roboter(Hauptfenster, Garten, BREITE, HOEHE,50 , "Red", 2,30, 10,"Roboter")
  76. Roboter.maehen()
  77. Hauptfenster.mainloop()
  78. #Endzeit
  79. end_zeit=time.time()
  80. print "Die Maehdauer betraegt:"
  81. print ("%.1f seconds" %(end_zeit - start_zeit))