# [KI] Ressourcen suchen



## JavAdept (19. Jul 2012)

Hallo Community,

dass hier ist mein erster Post in eurem Forum. Habe mich hier vor wenigen Tagen registriert.
Ich bin gerade dabei ein kleines "Spiel" zu programmieren. Dabei geht es aber eigentlich erstmal nur um die Beobachtung und nicht um das direkte Eingreifen in die Szenerie.

Zur Idee:
Ich möchte so etwas ähnliches programmieren, wie AntMe!. Es gibt Käfer, welche als Pflanzenfresser eingestuft sind, Käfer, welche als Fleischfresser eingestuft sind und kleinere Tierchen und Objekte, wie z.B. Blattläuse, Blätter, Eicheln etc. (Der Sinn in wie weit hier was wie wo gegessen wird, ist erstmal egal.)
Die Käfer legen nach einer bestimmten Zeit Larven, die wieder nach einer bestimmten Zeit schlüpfen. Das Spiel startet mit einem Käfer jeder Sorte.

Zur Problematik:
Die Käfer sollen sich jetzt auf die Suche nach Ressourcen machen, allerdings möchte ich nicht, dass die Käfer wissen, wo eine Ressource liegt, sondern sie müssen diese finden. Also quasi zufällig das Spielfeld ablaufen und sobald sie in den (ich nenne es mal) Geruchsbereich kommen, können sie direkt zur Ressource laufen. Ich möchte hier also keinen A*-Algorithmus o.ä. verwenden.

Zur möglichen Lösung:
Nun, eigntl. wollte ich fragen, wie ihr das lösen würdet. Ich hätte mir jetzt gedacht, eine zufällige Zahl zu bestimmten, die erstmal die Richtung (im Groben) vorgibt. Dann evtl. eine zufällige Zahl, die für die Laufzeit in diese Richtung genutzt wird. (Timer)
Damit der Käfer nicht im Kreis läuft, würde ich dem Käfer die Fähigkeit verleihen, sich ein paar der letzten Züge zu merken.

Meine Frage:
Könnte man das so umsetzen? In wie weit ist das Effizient?
Sollte ich vllt. jedem Käfer eine "Geruchsspur" hinterlassen, die erst seit einer bestimmten Zeit verfliegt, so dass der Käfer weis, dass er bereits dort war? Soll ich die "zufällige" Bewegung über das Spielbrett wie o.g. realisieren, oder gibt es einen alternativen, besseren Weg?

Grüße
JavAdept


----------



## Luk10 (19. Jul 2012)

Hab mich auch eine Weile mit "zufälligen" aber dennoch einigermaßen "ansehnlichen" Wegen von Objekten im 2D Raum beschäftigt.

Man einfachsten ist es natürlich du bestimmst zufälligen Punkt auf deinem Spielfeld und lässt dein Käfer sich da hinbewegen. Sobald er angekommen ist wieder einen neuen Punkt.
Dabei können jedoch sehr spitze Winkel im Bewebungspfad entstehen, was unnatürlich aussieht. Deshalb habe ich bei mir nur Punkt zugelassen, bei welchen die Bewegungspfade (Letzter - Neuer Pfad) in einem stumpfen Winkel (> 90°) stehen.

Hatte auch mal versucht Parabeln "nachlaufen" zu lassen, aber hatte große Rundungsprobleme und hab das dann wieder aufgegeben.

Vielleicht kannst du damit aus anfangen oder daraus eigene Ideen entwickeln.


----------



## JavAdept (19. Jul 2012)

Hey Luk10,

vielen Dank für deine Antwort! Das finde ich eine super Idee. Ich könnte also einfach die Käfer zu diesen zufällig bestimmten Punkten laufen lassen. Wenn ich dann einen neuen Punkt bestimme, könnte ich, wie du sagtest bestimmte Bedingungen einführen. Das mit dem stumpfen Winkel ist derzeit (noch) nicht wichtig, da ich die Käfer nur als kleine gefüllte Kreise darstelle.



			
				Luk10 hat gesagt.:
			
		

> Hatte auch mal versucht Parabeln "nachlaufen" zu lassen, aber hatte große Rundungsprobleme und hab das dann wieder aufgegeben.



Notiert, werde mal daran rumfriemeln und die Tage nochmal bescheid geben, was ich so gebastelt habe mit deinen Ideen.


----------



## Marco13 (21. Jul 2012)

Vielleicht kannst du dich von Ant colony optimization algorithms - Wikipedia, the free encyclopedia inspirieren lassen...


----------

