![]()
DU LERNST HIER... |
wie sich Figuren im Gitter, d.h.. von Zelle zur Zelle zum verfolgten Objekt bewegen können. |
MUSTERBEISPIELE |
| Beispiel1: Ein Hai verfolgt Nemo |
Als Parameter erhält diese Methode die Position des verfolgten Objekts. Programm: # Gg7.py from gamegrid import * # --------------------- class Fish --------------------- class Fish(Actor): def __init__(self): Actor.__init__(self, "sprites/snemo.gif") def act(self): self.move() if self.getX() == 9: self.turn(180) self.setHorzMirror(True) if self.getX() == 0: self.turn(180) self.setHorzMirror(False) # --------------------- class Shark --------------------- class Shark(Actor): def __init__(self): Actor.__init__(self, True, "sprites/shark.gif") def act(self): if self.nbCycles % 5 == 0 and not nemo.isRemoved(): self.setDirection(self.getLocation(). getCompassDirectionTo(nemo.getLocation())) self.move() aNemo = getOneActorAt(self.getLocation(), Fish) if aNemo != None: aNemo.removeSelf() makeGameGrid(10, 10, 60, Color.red, "sprites/reef.gif", False) nemo = Fish() addActor(nemo, Location(0, 1)) shark = Shark() addActor(shark, Location(7, 9)) show() doRun() |
MERKE DIR... |
| Der Verfolger kann bei jedem Schritt eine der 8 möglichen benachbarten Zellen wählen. Die optimale Richtung wird mit der Methode getCompassDirectionTo() bestimmt. Um den Verfolger lansamer zu bewegen, kannst du in seiner Methode act() die Bewegung nur in jedem fünften Simulationszyklus ausführen. |
ZUM SELBST LÖSEN |
|
![]()