Seite 1 von 1

Wie findet ihr das TUT ?

Verfasst: Mo Sep 30, 2002 6:20 pm
von Bossface
Hier ich hab mal aus Spaß ne TUT zu ner Rundenbasierenden KI geschrieben :

Code: Alles auswählen

/*****************************************************************************
****                                                                      ****
****   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

Verfasst: Mo Sep 30, 2002 6:40 pm
von Katana
Kapitel 1:
  • 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 ;)

Verfasst: Mi Okt 02, 2002 4:20 pm
von Cr4ck
Ich such ein Tut zur KI Programmierung, aber in Delphi und nicht in C++ kennt wer ein gutes ?

Verfasst: Mi Okt 02, 2002 5:35 pm
von fangorrn
Denkt euch selber wat aus.

Verfasst: Mi Okt 02, 2002 6:30 pm
von Katana
fangorrn hat geschrieben:Denkt euch selber wat aus.
Fangorrn, du schreibst in letzter Zeit immer so 1-Satz-Posts, hast du keine Zeit ?

Wodrauf beziehst du deine Aussage? Dadrauf, daß Bossface versucht hat, das FF-KI-System zu analysieren ?

Verfasst: Mi Okt 02, 2002 7:20 pm
von Cr4ck
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 :)

Das oben genannte Tut find ich net mal schlecht :)

Verfasst: Do Okt 03, 2002 2:06 pm
von Katana
Und zu meinen Anmerkungen sagt mal wieder keiner was :'(

Verfasst: Do Okt 03, 2002 4:37 pm
von fangorrn
Ich ab auch Posts mit zwei Sätzen.

Öhh ich meinte; ""Denkt Euch selber ne KI aus!"" Kann doch (logisches Denken und Programmierfähigkeit vorrausgesetzt) nicht so schwer sein.