Probleme mit Pacman

R

Rexinator

Hi,
ich bin grad ein Pacman-Programm am schreiben was auch so ganz gut funktioniert....
Zur Zeit bewegen sich meine Geister aber per Zufallsprinzip nur blöd vor sich hin.
Was ich jetzt gerne hätte ist dass sich die Geister genau zu der Position des Pacman bewegen sollen.....

Hoffe ihr könnt mir ein paar gute Tipps und/oder Lösungsansätze geben

Gruss
 
Ach ich hab vergessen:
Mein Spielfeld ist eine JTable und ich lese das Feld aus einer normalen Datei ein wo z.B Pacman ein p und ein Geist ein g ist.

Gruss
 
Moin,

meine Idee für dieses Problem wäre folgende:

Du hast Deinen PacMan, der sich in der Position x und y befindet.
Dieser bildet das "Zentrum", alle Geister bewegen sich also relativ zu seiner Position.
Und deren Position ist ebenso durch eine x- und y-Koordinate bestimmt.
Nun würde ich relativ zur Position von PacMan die Geister um einen bestimmten Wert in Ihrer Position "verschieben", logischerweise zu PacMan hin.
Wenn dabei eine Mauer im Weg ist, muss halt eine Kollisionsabfrage gemacht werden.

Gibt sicher noch andere Lösungen.

Gruß,
Xan
 
Ja ich hatte auch schon mal drüber nachgedacht über eine if- else- Verschachtelung an die schache ranzugehen... nur wenn jetzt der Geist in einer ecke steht (ungefähr so |_ ) und der Pacman unten links wäre dann würde der Geist nicht zum Pacman kommen da, wenn er hoch gehen würde im nächsten Durchlauf wieder runter gehen weil das der schnellste weg ist.... oder aus der Kollisionsabfrage würde eine endlosschleife weil sie sich immer selbst aufrufen würde.
 
Ich weiß nicht, ob es dir hilft, aber ich habe ein Buch, indem es um Algorithmen geht. Dort ist beschrieben, auf welche Weise man an ein solches Problem rangehen könnte. Es ist am Beispiel eines Labyrinthes erklärt, wo man den kürzesten Weg zum Ziel erhalten möchte. Eine Beispieldarstellung findest du im Anhang.
Du gehst von deinem Startpunkt (Grün) aus uns verteilst nach jedem Schritt die nächst höhere ganze Zahl in jedes begehbare Feld, welches noch keine Zahl erhalten hat. Bist du beim Ziel angekommen, so kannst du diesen Weg zurückverfolgen, indem du die nächst kleinere Zahl in den umgebenden Felden suchst. Ich muss dazu sagen, dass ich keine Ahnung habe, wie die ganze Sache performancemäßig aussieht.
 

Anhänge

  • Neues Bild.bmp
    30,9 KB · Aufrufe: 47
Zuletzt bearbeitet:
Hmmm das Buch find eich auch super. WOllte nur mal danke sagen, denn mir hat es geholfen bbei meinen Programmierversuchen von Pacman :).

LG
 
Zurück