Ich sehe da mehrere Ansatzmöglichkeiten. Mein erster Gedanke war,
einfach X- und Y-Koordinaten zu verwalten, und per Zufallsgenerator die
jeweilige Bewegung (-1/0/+1) zu ermitteln. Hat aber den Nachteil, dass
die beiden Richtungen miteinander verknüpft werden müssten.
Mein zweiter Gedanke war, um die Kuh ein virtuelles Raster von 3x3
Feldern zu legen, und per Zufallszahl zu entscheiden, in welches Feld
(1-9) sich die Kuh bewegt. Hat den Vorteil dass auch stehenbleiben eine
Option ist. Das wäre vermutlich die einfachste unter den praktikablen
Lösungen.
Wenn Du es aber realitätsnäher möchtest, dann würde ich einen
vektorbasierten Ansatz vorschlagen. Der Kuh sind nämlich nämlich X- und
Y-Koordinaten o. ä. völlig egal. Die geht in /irgend/ eine Richtung,
360°; und beliebig /schnell/. Und die steht auch nicht immer mittig in
einem Feld, sondern auch da ganz beliebig. Um das mathematisch zu
beschreiben, brauchst Du eine Auflösung, die wesentlich feiner ist als 1
Feld. Die bewegung wird dann durch ein Zufallszahlenpaar für 1) die
Richtung (0°-359°) und 2) die Entfernung beschrieben (z. B. 0,1-1,5
Kästchen; für einen passenden Bereich wirst Du da vermutlich etwas
experimentieren müssen). Dieser Punkt, übertragen in ein
X/Y-Koorsdinatensystem, würde dann die Position der Kuh auf dem
Rasterfeld beschreiben.
Btw. halte ich es für eher unrealistisch, dass sich eine Kuh wirklich
gleichermaßen in jede /beliebige/ Richtung bewegen soll; IMHO bewegt die
sich vorrangig vorwärts, ggf. in einer kreisförmigen Bewegungsrichtung,
mit einer geringeren Wahrscheinlichkeit auch rückwärts, aber kaum[tm]
genau seitlich. Und sie sucht auch nicht unbedingt die Nähe der Zuschauer.
Für ein Beutetier stellt so eine Einkesselung eine potentielle
Gefahrensituation dar. Da bewegt man sich nicht auch noch freiwillig
auf die Räuber zu. Für ein 'noch realistischer' müsste das alles auch
noch irgendwie berücksichtigt werden.
Wolfgang