Pacman - Künstliche Intelligenz



  • Hallo ihr,

    ich muss ein Pacman-Spiel anpassen (in C++, kein CLI).. leider komme ich aus dem .NET-Bereich (Was aber vermutlich irrelevant ist)

    In meinem Spiel gibt es einen Pacman, eine Frucht und ein Monster.

    Wichtig:

    Ich arbeite mit SHAPES... habe also kein Gitter oder 1x1-Kacheln oder sowas. Habe also entweder vertikale oder horizontale Shapes, die einen gesamten Weg repräsentieren. Es muss auch bei Shapes bleiben!

    Nun möchte ich die künstliche Intelligenz des Monsters so gestalten, dass dieser die Frucht auch sucht, nicht unbedingt auf dem schnellsten Weg, jedoch zielführend dorthin. Ist das mit den Shapes überhaupt möglich?

    Leider weiß ich nicht, wie ich solch einen Algorithmus herleiten kann. Vermutlich fehlt mir dazu das analytische/logische Denken... zumindest versagt es hier!

    Habe schon was von diversen Algorithmen gehört.. jedoch finde ich diese sehr komplex umzusetzen.

    Wäre jemand so freundlich, mir Tipps zu geben, oder mir bestimmte Algorithmen "für Dummies" zu erklären?

    Vielen vielen Dank schonmal! 🙂

    LG



  • Also du hast Shapes als Hindernisse in der 2D-Ebene. Nun gibt es eine Frucht, deren Position dem Monster bekannt ist. Das Monster soll selbststaending zur Frucht. Wie waere es mit: Gehe in Richtung Frucht. Trifft man auf ein Hindernis, so umgehe es entweder rechts oder links herum.



  • Das Problem ist ja das entweder/oder.

    Ich habe circa 52 Wegshapes, ungefähr gleich aufgeteilt in horizontale und vertikale Wege. Mein Pacman läuft also AUF den Shapes. Also keine Hindernisse... 🙂

    In einem Timer caste ich jedes Shape, um herauszufinden, in welchem Shape das Monster sich befindet. Ist dann die Art des Shapes bekannt (also, ob horizontal oder vertikal) dann hat das Monster nurnoch 2 Möglichkeiten. Es geht entweder nach oben, oder nach unten (bzw. nach links/rechts). Ich überprüfe dann, ob sich die Frucht weiter oben/unten bzw. weiter rechts/links vom Monster befindet. Dementsprechend soll er die Shapes ablaufen. So ganz funktioniert das aber nicht, weil er merkwürdige Umwege geht, manchmal garnicht die Frucht findet und auch ein Problem mit der Mitte hat, wenn also das Monster auf gleicher Höhe wie die Frucht ist...

    Danke schonmal!





  • Was bitte meinst du genau mit "Shapes"?
    Und wie hängen die zusammen?

    Aber egal...

    Im Prinzip ist Wegfindung: du bastelst einen Graphen (also Knoten und die Verbindungen zwischen den Knoten), weist jeder Verbindung einen "Kostenfaktor" zu (z.B. die Länge der Strecke zwischen zwei Punkten), und dann suchst du den "billigsten" (kürzesten) Weg.

    z.B. damit: http://de.wikipedia.org/wiki/Algorithmus_von_Dijkstra

    Wenn es bestimmte Regelmässigkeiten im Graphen gibt, die man kennt, kann man weiter optimieren. Bei den wenigen Knoten/Verbindungen die man bei Pacman hat, sollte das aber nicht wirklich nötig sein.


Anmelden zum Antworten