Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // gcc -Wall main.c -o main $(pkg-config --libs allegro-5.0 allegro_image-5.0)
- #define ALLEGRO_STATICLINK
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h>
- #include <allegro5/allegro.h>
- #include <allegro5/allegro_image.h>
- int main() {
- if(!al_init()) {
- return -1;
- }
- int board[9] = {0};
- srand(time(0));
- int setZero = rand() % 10;
- int displayHeight = 800;
- int displayWidth = 1200;
- ALLEGRO_DISPLAY *display = NULL;
- display = al_create_display(displayWidth, displayHeight);
- if(!display) {
- return -1;
- }
- al_install_mouse();
- al_init_image_addon();
- ALLEGRO_EVENT_QUEUE *event_queue = NULL;
- event_queue = al_create_event_queue();
- al_register_event_source(event_queue, al_get_mouse_event_source());
- ALLEGRO_BITMAP *background = NULL;
- background = al_load_bitmap("img/background.png");
- al_draw_bitmap(background, 0, 0, 0);
- /*int FPS = 60;
- ALLEGRO_TIMER *timer = NULL;
- timer = al_create_timer(1.0 / FPS);
- al_register_event_source(event_queue, al_get_timer_event_source(timer));
- al_start_timer(timer);*/
- bool user_exit = false;
- while(!user_exit) {
- ALLEGRO_EVENT event;
- al_wait_for_event(event_queue, &event);
- ALLEGRO_BITMAP *xImage = NULL;
- xImage = al_load_bitmap("img/ximage.png");
- ALLEGRO_BITMAP *oImage = NULL;
- oImage = al_load_bitmap("img/oimage.png");
- bool checkEmptySquare = false;
- bool drawZeroSprite = false;
- if(event.type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN) {
- if(event.mouse.x > 150 && event.mouse.x < 300 && event.mouse.y > 150 && event.mouse.y < 300) {
- al_draw_bitmap(xImage, 150, 150, 0);
- board[1] = 1;
- checkEmptySquare = true;
- drawZeroSprite = true;
- } else if(event.mouse.x > 300 && event.mouse.x < 450 && event.mouse.y > 150 && event.mouse.y < 300) {
- al_draw_bitmap(xImage, 300, 150, 0);
- board[2] = 1;
- checkEmptySquare = true;
- drawZeroSprite = true;
- } else if (event.mouse.x > 450 && event.mouse.x < 600 && event.mouse.y > 150 && event.mouse.y < 300) {
- al_draw_bitmap(xImage, 450, 150, 0);
- board[3] = 1;
- checkEmptySquare = true;
- drawZeroSprite = true;
- } else if(event.mouse.x > 150 && event.mouse.x < 300 && event.mouse.y > 300 && event.mouse.y < 450) {
- al_draw_bitmap(xImage, 150, 300, 0);
- board[4] = 1;
- checkEmptySquare = true;
- drawZeroSprite = true;
- } else if(event.mouse.x > 300 && event.mouse.x < 450 && event.mouse.y > 300 && event.mouse.y < 450) {
- al_draw_bitmap(xImage, 300, 300, 0);
- board[5] = 1;
- checkEmptySquare = true;
- drawZeroSprite = true;
- } else if(event.mouse.x > 450 && event.mouse.x < 600 && event.mouse.y > 300 && event.mouse.y < 450) {
- al_draw_bitmap(xImage, 450, 300, 0);
- board[6] = 1;
- checkEmptySquare = true;
- drawZeroSprite = true;
- } else if(event.mouse.x > 150 && event.mouse.x < 300 && event.mouse.y > 450 && event.mouse.y < 600) {
- al_draw_bitmap(xImage, 150, 450, 0);
- board[7] = 1;
- checkEmptySquare = true;
- drawZeroSprite = true;
- } else if(event.mouse.x > 300 && event.mouse.x < 450 && event.mouse.y > 450 && event.mouse.y < 600) {
- al_draw_bitmap(xImage, 300, 450, 0);
- board[8] = 1;
- checkEmptySquare = true;
- drawZeroSprite = true;
- } else if(event.mouse.x > 45 && event.mouse.x < 600 && event.mouse.y > 450 && event.mouse.y < 600) {
- al_draw_bitmap(xImage, 450, 450, 0);
- board[9] = 1;
- checkEmptySquare = true;
- drawZeroSprite = true;
- }
- }
- if(drawZeroSprite) {
- if(setZero == 1) {
- al_draw_bitmap(oImage, 150, 150, 0);
- } else if(setZero == 2) {
- al_draw_bitmap(oImage, 300, 150, 0);
- } else if(setZero == 3) {
- al_draw_bitmap(oImage, 450, 150, 0);
- } else if(setZero == 4) {
- al_draw_bitmap(oImage, 150, 300, 0);
- } else if(setZero == 5) {
- al_draw_bitmap(oImage, 300, 300, 0);
- } else if(setZero == 6) {
- al_draw_bitmap(oImage, 450, 300, 0);
- } else if(setZero == 7) {
- al_draw_bitmap(oImage, 150, 450, 0);
- } else if(setZero == 8) {
- al_draw_bitmap(oImage, 300, 450, 0);
- } else if(setZero == 9) {
- al_draw_bitmap(oImage, 450, 450, 0);
- }
- }
- if(checkEmptySquare) {
- if(board[setZero] == 1 || board[setZero] == 2) {
- setZero = rand() % 10;
- board[setZero] = 2;
- } //else if(board[setZero] = 2);
- }
- /*
- //---------------------------------------------------------------------------
- // Player win!
- if(board[1] == 1 && board[4] == 1 && board[7] == 1) {
- printf("You win!\n");
- } else if(board[2] == 1 && board[5] == 1 && board[8] == 1) {
- printf("You win!\n");
- } else if(board[3] == 1 && board[6] == 1 && board[9] == 1) {
- printf("You win!");
- } else if(board[1] == 1 && board[2] == 1 && board[3] == 1) {
- printf("win\n");
- } else if(board[4] == 1 && board[5] == 1 && board[6] == 1) {
- printf("win\n");
- } else if(board[7] == 1 && board[8] == 1 && board[9] == 1) {
- printf("win\n");
- } else if(board[1] == 1 && board[5] == 1 && board[9] == 1) {
- printf("win\n");
- } else if(board[3] == 1 && board[5] == 1 && board[7] == 1) {
- printf("win!\n");
- }
- // Computer win!
- else if(board[1] = 2 && board[4] = 2 && board[7] = 2) {
- printf("You win!\n");
- } else if(board[2] = 2 && board[5] = 2 && board[8] = 2) {
- printf("You win!\n", );
- } else if(board[3] = 2 && board[6] = 2 && board[9] = 2) {
- printf("You win!");
- } else if(board[1] = 2 && board[2] = 2 && board[3] = 2) {
- printf("win\n", );
- } else if(board[4] = 2 && board[5] = 2 && board[6] = 2) {
- printf("win\n");
- } else if(board[7] = 2 && board[8] = 2 && board[9] = 2) {
- printf("win\n");
- } else if(board[1] = 2 && board[5] = 2 && board[9] = 2) {
- printf("win\n");
- } else if(board[3] = 2 && board[5] = 2 && board[7] = 2) {
- printf("win!\n");
- }
- // Draw!
- else {
- printf("Draw!\n");
- }
- //--------------------------------------------------------------------------
- */
- al_flip_display();
- }
- al_destroy_bitmap(background);
- al_destroy_display(display);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement