wollte euch nur kurz darauf aufmerksam machen, dass ich zur Zeit einen kleinen KI Contest hier veranstalte:
https://www.spieleprogrammierer.de/32-p ... 015-23-59/
Es geht um eine KI für ein einfaches Spiel. Die Beispiel KI sieht so aus:
Code: Alles auswählen
class AngsthaseKI : public KI
{
// Die KI muss deterministisch sein. Wir benutzen also
// einen standardisierten Zufallsgenerator (Ist in BlobbyVolleyKI.h)
MTRand rand;
public:
AngsthaseKI()
{
Reset();
}
virtual const char* GetKIName() const
{
return "Angsthase";
}
virtual void Reset()
{
//Hier müssen alle Member zurückgesetzt werden
rand.seed(0);
}
virtual int CalculateNextStep(const GameState& GS)
{
if(TryDirection(0, GS)) return 0;
if(TryDirection(K_Left, GS)) return K_Left;
if(TryDirection(K_Right, GS)) return K_Right;
return rand()%2 == 0 ? K_Left : K_Right;
}
bool TryDirection(int Keys, GameState GS)
{
//Wir kopieren den Spielzustand und simulieren eine Richtung
int MyScore = GS.Players[0].Score;
int EnemyScore = GS.Players[1].Score;
for(int i = 0; i < 5 * FramesPerSecond; i++)//5 Sekunden vorausberechnen
{
GS.Move(Keys, 0, true);//Für den Gegner geben wir 0 an. Wir hoffen mal, dass er stehen bleiben wird.
if(GS.Players[1].Score > EnemyScore)
return false;//Gegner wird einen Punkt machen. So besser nicht bewegen
if(GS.Players[0].Score > MyScore)
return true;//Wir werden einen Punkt machen
}
return false;
}
};