3 #include "ComputerPlayer.h"
5 #include "GarbageQueue.h"
6 #include "ComputerPlayerAI.h"
8 //#define WAIT_TIME ( GC_STEPS_PER_SECOND * 10 )
10 bool ComputerPlayer::lost
;
11 ComputerPlayerAI
*ComputerPlayer::ai
;
13 void ComputerPlayer::gameStart()
15 //queue = new GarbageQueue();
17 if ((MetaState::mode
& CM_AI_EASY
))
19 if ((MetaState::mode
& CM_AI_MEDIUM
))
21 if ((MetaState::mode
& CM_AI_HARD
))
25 ai->garbageQueue(queue);
32 static void show_element (GarbageQueueElement
*e
) {
33 printf("Element: %p h %d w %d f %d\n",
40 void show_element_foreach (gpointer e
, gpointer unused
)
42 show_element((GarbageQueueElement
*)e
);
45 int ComputerPlayer::gameFinish()
47 return lost
? GS_WON
: GS_LOST
;
50 void ComputerPlayer::timeStep()
55 ComputerPlayerAI
&localAi
= *ai
;
56 if (Game::time_step
>= localAi
.alarm()) {
57 //localAi.garbageQueue(queue);
58 GarbageQueue
*tmp
= localAi
.garbageAmount();//garbage_queue);
59 tmp
->sendToGenerator();
60 cout
<< "init pop: " << GC_INITIAL_POP_DELAY
<< endl
;
61 cout
<< "steps per second: " << GC_STEPS_PER_SECOND
<< endl
;
62 cout
<< "Height: " << ai
->garbageQueue()->height() << endl
;
66 MESSAGE("AI will drop again in " << ((localAi
.alarm() - Game::time_step
) / GC_STEPS_PER_SECOND
));
67 LOG("AI will drop again in " << ((localAi
.alarm() - Game::time_step
) / GC_STEPS_PER_SECOND
));
69 if(localAi
.determineLoss()) {
74 void ComputerPlayer::addGarbage ( int height
, int width
, int flavor
) {
76 MESSAGE("Adding garbage to queue");
77 ai
->garbageQueue()->add(height
, width
, flavor
);