AI vorbereitet für verschiedene Challenge-Kriterien. (Sucht sich einen Spieler aus)
This commit is contained in:
44
src/AI.cs
44
src/AI.cs
@@ -11,6 +11,7 @@ namespace WorldOfPeacecraft
|
||||
private Random r;
|
||||
private int decision;
|
||||
private Backend Backend;
|
||||
private string sortby;
|
||||
|
||||
public AI (Backend b)
|
||||
{
|
||||
@@ -18,35 +19,64 @@ namespace WorldOfPeacecraft
|
||||
timer = new Timer (5000.0);
|
||||
timer.Elapsed += new ElapsedEventHandler (this.OnTimedEvent);
|
||||
Backend = b;
|
||||
b.Challenge += this.ProcessChallenge;
|
||||
|
||||
timer.Start ();
|
||||
}
|
||||
|
||||
private void OnTimedEvent(object source, ElapsedEventArgs e)
|
||||
{
|
||||
think ();
|
||||
Think ("random");
|
||||
}
|
||||
|
||||
private void think()
|
||||
private void Think(string sortby)
|
||||
{
|
||||
timer.Stop ();
|
||||
if (r.Next (0, 2) == 0) {
|
||||
Console.WriteLine ("Challenging someone");
|
||||
Console.WriteLine ("Another is being challenged");
|
||||
lock (Backend) {
|
||||
Dictionary <int, Player> playerlist;
|
||||
Player player;
|
||||
int x, y;
|
||||
Player player = null;
|
||||
int x, y, count;
|
||||
playerlist = Backend.getPlayerList ();
|
||||
player = playerlist[2235];
|
||||
|
||||
switch (sortby) {
|
||||
case "points":
|
||||
//TODO
|
||||
//Sortiere playerlist nach Anzahl der Punkte aufsteigend
|
||||
break;
|
||||
case "closest":
|
||||
//TODO
|
||||
//Sortiere playerlist nach Distanz
|
||||
break;
|
||||
case "random":
|
||||
count = playerlist.Count; //Zähle Anzahl Spieler und wähle einen zufälligen
|
||||
player = playerlist [r.Next (0, ++count)]; //'++' weil random ist sonst immer kaputt
|
||||
break;
|
||||
default: //Fall-Through in C# nicht erlaubt...!?
|
||||
count = playerlist.Count; //Zähle Anzahl Spieler und wähle einen zufälligen
|
||||
player = playerlist [r.Next (0, ++count)]; //'++' weil random ist sonst immer kaputt
|
||||
break;
|
||||
}
|
||||
|
||||
x = player.GetX ();
|
||||
y = player.GetY ();
|
||||
Backend.MoveTo (x, y);
|
||||
}
|
||||
} else {
|
||||
Console.WriteLine ("Waiting for someone");
|
||||
Console.WriteLine ("Though art making time pass for another");
|
||||
}
|
||||
timer.Start ();
|
||||
}
|
||||
|
||||
private void ProcessChallenge(Challenge c){
|
||||
/* Console.WriteLine ("A challenge hath been proclaimed");
|
||||
IGame game = new Skirmish ();
|
||||
IGame dragonfight = new GameStrategy (Decision.FIGHT, Decision.REST);
|
||||
IGame staghunt = new GameStrategy (Decision.STAG, Decision.BUNNY);
|
||||
game.getFirstMove ();
|
||||
game.getNextMove (letzteEntscheidungDesGegners);*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user