# Figur soll sich selbständig Bewegen



## lmaster (21. Mai 2008)

Hallo zusammen,

weis jemand von euch wie ich programmieren kann, dass sich Spielfiguren (halbtransparente Gif-Bilder) selbständig in einem bestimmten Gangsystem bewegen (ebenfalls ein Gif-Bild). Sie sollen aber nicht immer die selben Wege einschlagen sondern rein zufällig in den Gängen umherwandern. da ich aber ein Anfänger bin habe ich keinen Plan wie ich diese Art von KI realisieren soll.

Wäre euch sehr dankbar wenn ihr mir helfen könntet.

mfG
lmaster


----------



## Marco13 (21. Mai 2008)

Die treffendste Antwort (die du aber nicht hören willst) : Man kann das realisieren, indem man so lange Dinge realisiert, von denen man zumindest grob weiß, wie man sie realisieren könnte, bis man grob weiß, wie man das gewünschte realisieren könnte.

Die scheinbar (nicht anscheinend, sondern nur scheinbar!) hilfreichere Antwort: Du könntest die möglichen Wege als Graph speichern, und bei jedem Knoten (d.h. bei jeder Kreuzung) einen zufälligen Weg (d.h. eine zufällig ausgewählte Kante) wählen, wo die Figur dann langläuft.


----------



## lmaster (21. Mai 2008)

Und wie soll das dann im Quelltext aussehen ich bin Anfänger und kein Genie. Ich weiß ja noch nich einmal wie ich das Bild bewegen soll ich weiß lediglich wie man einen Ball bewegt mehr ham wir noch nicht gelernt


----------



## MiDniGG (21. Mai 2008)

width++
und
height++



bzw. x und y ^^


----------



## Marco13 (21. Mai 2008)

Anfänger und Genie schließen sich nicht gegenseitig aus. Poste eine konkrete Frage, und du bekommst eine konkrete Antwort. Du solltest nicht erwarten, dass jemand auf Basis irgendeiner wischi-waschi-Beschreibung irgendein tolles Programm schreibt und hier postet. Du solltes es nicht erwarten, kannst das aber, wenn du willst, und vielleicht schreibt dann auch jemand so ein Programm für dich. Das ist dann aber i.a. jemand, der noch nicht weiß, wo solche Threads hinführen: "Ja, das gepostete Programm funktioniert, aber ich will da-und-da dies-und-das so-und-so haben - wie geht DAS denn jetzt?" (es hört nicht auf und sorgt für Frust). 
Nochmal (das war nicht als Witz oder so gemeint) : _Man kann das realisieren, indem man so lange Dinge realisiert, von denen man zumindest grob weiß, wie man sie realisieren könnte, bis man grob weiß, wie man das gewünschte realisieren könnte. _ Anders gesagt: Programmieren lernt man nur durch Programmieren.


----------



## Evil-Devil (21. Mai 2008)

Ohne jetzt Marcos geile Metapher zerstören zu wollen, du könntest sämtliche Knotenpunkte in einer LinkedList speichern.

An einer T Kreuzung hätte die Figur dann zwei Möglichkeiten abzuzweigen, welche das sein wird könnte ein Zufallsgenerator bestimmen.

So, den Rest machst selbst und beherzigst Marcos Metapher ^^


----------



## AlArenal (21. Mai 2008)

Die Anfrage ist wirklich derart wischiwaschi, dass selbst die Antworten bisher noch über das (nicht genau bekannte) Ziel hinausschießen 

Er hat ja nicht geschrieben, dass seine Figuren ein bestimmtes Ziel selbstständig und fehlerlos auf zufällig wechselnden Strecken erreichen sollen. Im einfachsten Fall reicht es erstmal aus, an jeder Abzweigung per Zufall zu entscheiden, in welche Richtung man sich weiterbewegt. Schon muss man sich weder um die Erzeugung, noch die Ablage und das Durchlaufen gestgelegter Pfade kümmern.

Ihr seid wohl alle zu jung um noch Pacman zu kennen, was?


----------



## lmaster (21. Mai 2008)

okay danke, ich hab des mit den Knotenpunkten kapiert und des mit dem x++ und y++ is ja auch klar aber so flitzen die Figuren unheimlich schnell durch die Gegend und des Bild fängt an zu flimmer. Dies sollte aber eigentlich genau andersherum sein die Figuren sollen langsam unterwegs sein und das Bild soll nicht flimmer.

Ich hoffe diese Antwort ist jetzt präzise genug 

P.s.: Natürlich kenne ich pacmann


----------



## Marco13 (21. Mai 2008)

Das Bewegen der Figuren sollte von (mindestens) einem eigenen Thread erledigt werden - und wenn das so ist, kann man den auch kleine Pausen machen lassen

```
Thread t = new Thread(new Runnable()
{
    public void run()
    {
        bewegeFigur();
        try { Thread.sleep(50); }
        catch (InterruptedException e) { e.printStackTrace(); }
    }
});
```


----------



## Evil-Devil (21. Mai 2008)

AlArenal hat gesagt.:
			
		

> Ihr seid wohl alle zu jung um noch Pacman zu kennen, was?


Nö  Aber gerade weil es nicht festgelegt ist würde ich eine lose verkettete Liste nehmen. Die kann sich doch auch selbst in den Schwanz beißen


----------



## lmaster (21. Mai 2008)

So einen Thread hab ich schon mal benutzt aber was genau bewirkt der eigentlich?


----------



## Marco13 (21. Mai 2008)

Dazu steht hier ein bißchen was: http://www.galileocomputing.de/open...10_001.htm#mj492cc74ea623bacbf44060ae96fdcf36


----------



## Quaxli (25. Mai 2008)

AlArenal hat gesagt.:
			
		

> Die Anfrage ist wirklich derart wischiwaschi, dass selbst die Antworten bisher noch über das (nicht genau bekannte) Ziel hinausschießen
> 
> Er hat ja nicht geschrieben, dass seine Figuren ein bestimmtes Ziel selbstständig und fehlerlos auf zufällig wechselnden Strecken erreichen sollen. Im einfachsten Fall reicht es erstmal aus, an jeder Abzweigung per Zufall zu entscheiden, in welche Richtung man sich weiterbewegt. Schon muss man sich weder um die Erzeugung, noch die Ablage und das Durchlaufen gestgelegter Pfade kümmern.
> 
> Ihr seid wohl alle zu jung um noch Pacman zu kennen, was?



Dazu sei noch angmerkt, daß gerade bei Pacman nicht alles dem Zufall überlassen ist.  Und die Monster schon unterschiedlicher Logik folgen. :wink:


----------

