/*****************************************************************************
**** ****
**** Wie mache ich eine FF - KI ? ****
**** ****
**** ****
**** Authors: Camal 30.09.02 ****
**** ****
**** [email protected] ****
**** ****
*****************************************************************************/
+------------------------------+
+ Vorwort +
+------------------------------+
Dieses TUT zeigt nur WIE man ein FF-KI machen könnte. Es gibt bestimmt noch
mehr wegen, aber dieser ist einfach. Es handelt sich um ein Runden KI. Das
heißt er du dann der Gegner u.s.w. Es soll nur euch einen denkanstoß
gegeben.
+---------------------------+
+ Kapitel 1 -> Der Gegner +
+---------------------------+
Der Normale Gegner in FF besitzt immer dieser Variablen :
HP (Energie)
MP (Magiekraft)
Diese Variable sind bei jedem Gegner Typ anders
(Leichter - Schwerer Gegner, Endgegner). Man könnte nun für ein bistimmten
Typ von Gegner, als Klasse deklarieren. Hier ein Beispiel :
class gegner1 //Die Klasse gegner1
{
public :
void angriff() //Funtkionsblock
...
...
...
...
private :
unsigned int hp, mp; //Die Variablen
};
Eine Gegner Klasse bietet sich immer gut an für Gegner die
hoft drankommen.
+---------------------------+
+ Kapitel 2 -> Die KI +
+---------------------------+
Jetzt kommen wir zu KI :
Stellen wir uns vor wir haben einen Int der einen Wert in sich speichert
(klar!), dieser Wert wird so genutzt :
Wenn eine Zahl zwischen 1 - 3 im Int gespeichert ist, dann : Angriffs-Funtkion
Wenn die Zahl 4 im Int gespeichert ist, dann : Magie-Funtkion
Klingt einfach...ist es auch ;-)
Man braucht also eine random Funtkion, die gibt es!!
{ rand() aus cstdlib.h }
+---------------------------+
+ Kapitel 3 -> Paar Extra´s +
+---------------------------+
Man kann auch noch Extra´s einbauen, wie : "Wenn der Gegner nur noch 10 HP hat
soll er seinen stärksten Zauber einsetzen u.s.w. Man könnte nählich vor der
Random-Funk, eine if abfrage machen :
if (gegnerenergie < 10)
megaattacke();
Das ist nur ne Beispiel.
+---------------------------+
+ Schlußwort +
+---------------------------+
Ich hoffe ihr habt nun ein bisschen gelernt...;-)
Falls es Rechtschreib - Source Fehler gibt bitte mailen!
Viel Spaß beim Coden!!!
See Ya
Camal
Du kannst ja eine generelle Gegner Klasse bauen, die dir HP, MP und noch weiter Funktionalitäten zur verfügung steht (evtl. ein Array an Zaubern).
Schwierig wird's nur bei Zwischen-/Endgegnern, die mehrere Angriffspunkte haben (z.B. Arme und Kopf), welche auch angreifen können - soll jeder Teil eine einzelne Klasse sein?
Zu Kapitel 2:
Wenn du das per Zufallsprinzip machen willst und unter 250 verschiedene Modi zur Verfügung hast, würde ich Byte anstatt Integer empfehlen um Speicher zu sparen (braucht man Heute zwar kaum noch, aber man sollte nicht unnötig Speicher verschwenden).
Das mit dem Zufallsprinzip ist eine Möglichkeit, allerdings solltest du evtl. andere Dinge noch mit einbeziehen. Wie stark sind die Attacken des Gegners, lohnt es sich z.B. zu fliehen ? Wäre komisch wenn ein Gegner mit 80% HP flieht und er den ""Gegner"" (Spieler) schon 10x getroffen hat (dieses _kann_ also nicht mehr so viel Energie haben).
Je nach ""Intelligenz"" des Gegners sollte dieser evtl. noch überprüfen, wann und ob der Spieler irgendwelche Heilmittel verwendet hat (wenn der Spieler z.B. 200 HP aufgefüllt hat, ""weiß"" der Gegner schließlich, daß er (meistens) nicht viel mehr als 200HP haben kann).
Soll der Gegner zaubern? Hat er Zauber? Wenn ja, welche? Lohnt es sich, die eigene Energie aufzufüllen (falls er so einen Zauber kennt)? Kann der Spieler evtl. bestimmte Zauber absorbieren? - Lerneffekt. Auch hier mußt du gucken, wie start bzw. ""intelligent"" der Gegner sein soll. Wenn der Standardgegner schon zu stark ist, ist dies nicht Sinn der Sache, sondern wohl eher für ""Endgegner"" oder ""Zwischengegner"" gedacht.
Es gibt noch mehr Dinge zu beachten, aber daß sind die, die mir gerade so eingefallen sind
Katana, ich glaube er meint eher mich ... mein Post war auch daraufhin bezogen, das fall wer ein gutes kennt, einfach mal eine URL Posten soll damit ich's (und andere) DLen können, wenn niemand was kennt mach ich mich natürlich selber auf die Suche