KI: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Vogty (Diskussion | Beiträge) graphviz Bilder ersetzt |
|||
| (Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{review}} | {{review}} | ||
== Endliche Automaten == | == Einfaches Verhalten durch Endliche Automaten == | ||
Eine einfache Möglichkeit in einem Computerspiel eine nicht vom Spieler gesteuerte Einheit mit 'Intelligenz' auszustatten führt über [http://de.wikipedia.org/wiki/Endlicher_Automat Endliche Automaten (FSM)]. Hierbei werden verschiedene Zustände definiert und Bedingungen für Übergänge zwischen diesen Zuständen. | Eine einfache Möglichkeit in einem Computerspiel eine nicht vom Spieler gesteuerte Einheit mit 'Intelligenz' auszustatten führt über [http://de.wikipedia.org/wiki/Endlicher_Automat Endliche Automaten (FSM)]. Hierbei werden verschiedene Zustände definiert und Bedingungen für Übergänge zwischen diesen Zuständen. | ||
Ein einfaches Beispiel wäre ein Monster, dass solange patrouilliert bis ein Spieler zu nahe kommt und anschliessend in den Angriff übergeht. Sollte der Spieler zuviel Schaden anrichten soll es dann fliehen. Hierfür wären folgende Zustände und Übergänge nötig: | Ein einfaches Beispiel wäre ein Monster, dass solange patrouilliert bis ein Spieler zu nahe kommt und anschliessend in den Angriff übergeht. Sollte der Spieler zuviel Schaden anrichten soll es dann fliehen. Hierfür wären folgende Zustände und Übergänge nötig: | ||
| Zeile 28: | Zeile 28: | ||
Der zugehörige Endliche Automat würde folgendermassen aussehen: | Der zugehörige Endliche Automat würde folgendermassen aussehen: | ||
<center> | <center> | ||
[[Datei:KI FSM.png]] | |||
<!-- | |||
<graphviz> | <graphviz> | ||
digraph FSMMonster { | digraph FSMMonster { | ||
| Zeile 42: | Zeile 45: | ||
} | } | ||
</graphviz> | </graphviz> | ||
--> | |||
</center> | </center> | ||
Es gibt viele Architekturen für Endliche Automaten, im Folgenden wird ein [[Objektorientierung|objektorientierter]] Ansatz aufgezeigt der leicht umsetzbar und flexibel ist. | Es gibt viele Architekturen für Endliche Automaten, im Folgenden wird ein [[Objektorientierung|objektorientierter]] Ansatz aufgezeigt der leicht umsetzbar und flexibel ist. | ||
<center> | <center> | ||
<graphviz> | [[Datei:KI Vererbung.png]] | ||
<!--<graphviz> | |||
digraph Vererbung { | digraph Vererbung { | ||
rankdir = BT | rankdir = BT | ||
| Zeile 93: | Zeile 98: | ||
} | } | ||
</graphviz> | </graphviz> | ||
--> | |||
</center> | </center> | ||
