#!/usr/bin/python

"""
/* Wir wollen den vorgegebenen Roboter (Klasse: Roboter) dahingehend 
/* verbessern, dass er auch die Methoden 'rechts' usw. begherrscht!
/* Dazu programmieren wir eine Klasse 'Roboter_V2', die
/* alle Attribute und Methoden der Klasse 'Roboter' übernimmt
/* (erbt), obwohl wir nicht wissen, wie diese programmiert wurden!
/* Wir ergänzen die neue Methode 'rechts' und benutzen die geerbte 
/* Methode 'links' usw.
"""

from nikos_welt import *

class Roboter_V2(Roboter):		# Klammer: erbt von Roboter
   def __init__(self,welt,time):	# hat Parameter welt und time
      Roboter.__init__(self,welt,time)  # initialisiert den Beerbten

   def rechts(self):
      self.links()
      self.links()
      self.links()

   def bis_zur_Wand_laufen(self):
      while self.vorne_frei():
         self.vor()

   def Linkskurve_laufen(self):
      self.links()
      self.vor()
      self.links()

   def Rechtskurve_laufen(self):
      self.rechts()
      self.vor()
      self.rechts()

   def links_frei(self):
      self.links()
      zustand=self.vorne_frei()
      self.rechts()
      return zustand

   def rechts_frei(self):
      self.rechts()
      zustand=self.vorne_frei()
      self.links()
      return zustand


meine_Welt=Welt('welt0.welt',14)
niko=Roboter_V2(meine_Welt,0.1)
niko.bis_zur_Wand_laufen()
while 1:
   if niko.links_frei():
      niko.Linkskurve_laufen()
      niko.bis_zur_Wand_laufen()
      if niko.rechts_frei():
         niko.Rechtskurve_laufen()
         niko.bis_zur_Wand_laufen()
   if not niko.links_frei() or not niko.rechts_frei():
      break     
      
Tkinter.mainloop()
