void qGoBoardLocalInterface::checkComputersTurn()
{
    bool blackToPlay = getBlackTurn();
    if (blackToPlay && !(boardwindow->getMyColorIsBlack()))
        playComputer();
    else if (!blackToPlay && !(boardwindow->getMyColorIsWhite()))
        playComputer();
}
Exemple #2
0
void loopGame()
{
    bool fin = true;
    bool key[KEY_MAX]={0};

    while(fin) {
        ALLEGRO_EVENT event = {0};

        al_wait_for_event(queue, &event);

        switch (event.type) {
            case ALLEGRO_EVENT_DISPLAY_CLOSE:
                fin = false;
                break;
            case ALLEGRO_EVENT_KEY_DOWN:
                switch (event.keyboard.keycode) {
                    case ALLEGRO_KEY_UP:
                        key[KEY_UP] = true;
                        break;
                    case ALLEGRO_KEY_DOWN:
                        key[KEY_DOWN] = true;
                        break;
                    case ALLEGRO_KEY_A:
                        key[KEY_A] = true;
                        break;
                    case ALLEGRO_KEY_Q:
                        key[KEY_Q] = true;
                        break;
                }
                break;
            case ALLEGRO_EVENT_KEY_UP:
                switch (event.keyboard.keycode) {
                    case ALLEGRO_KEY_UP:
                        key[KEY_UP] = false;
                        break;
                    case ALLEGRO_KEY_DOWN:
                        key[KEY_DOWN] = false;
                        break;
                    case ALLEGRO_KEY_A:
                        key[KEY_A] = false;
                        break;
                    case ALLEGRO_KEY_Q:
                        key[KEY_Q] = false;
                        break;
                }
                break;
            case ALLEGRO_EVENT_TIMER:
                player1.y -= key[KEY_UP] * 10;
                player1.y += key[KEY_DOWN] * 10;
                if(mode == MULTI)
                {
                    player2.y -= key[KEY_A] * 10;
                    player2.y += key[KEY_Q] * 10;
                }
                ball.x += ball.dx;
                ball.y += ball.dy;
                if(mode == SOLO)
                    playComputer();
                if(al_is_event_queue_empty(queue))
                    drawWorld();
                break;
        }
    }
}