Advertisement
tourniquet

Tic Tac Toe

Feb 12th, 2013
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.02 KB | None | 0 0
  1. // gcc -Wall main.c -o main $(pkg-config --libs allegro-5.0 allegro_image-5.0)
  2.  
  3. #define ALLEGRO_STATICLINK
  4.  
  5. #include <stdlib.h>
  6. #include <stdio.h>
  7. #include <time.h>
  8.  
  9. #include <allegro5/allegro.h>
  10. #include <allegro5/allegro_image.h>
  11.  
  12. int main() {
  13.  
  14.     if(!al_init()) {
  15.         return -1;
  16.     }
  17.  
  18.     int board[9] = {0};
  19.  
  20.     srand(time(0));
  21.     int setZero = rand() % 10;
  22.    
  23.     int displayHeight = 800;
  24.     int displayWidth = 1200;
  25.  
  26.     ALLEGRO_DISPLAY *display = NULL;
  27.     display = al_create_display(displayWidth, displayHeight);
  28.     if(!display) {
  29.         return -1;
  30.     }
  31.  
  32.  
  33.     al_install_mouse();
  34.     al_init_image_addon();
  35.  
  36.    
  37.     ALLEGRO_EVENT_QUEUE *event_queue = NULL;
  38.     event_queue = al_create_event_queue();
  39.     al_register_event_source(event_queue, al_get_mouse_event_source());
  40.    
  41.    
  42.  
  43.     ALLEGRO_BITMAP *background = NULL;
  44.     background = al_load_bitmap("img/background.png");
  45.     al_draw_bitmap(background, 0, 0, 0);
  46.  
  47.  
  48.     /*int FPS = 60;
  49.  
  50.     ALLEGRO_TIMER *timer = NULL;
  51.     timer = al_create_timer(1.0 / FPS);
  52.     al_register_event_source(event_queue, al_get_timer_event_source(timer));
  53.     al_start_timer(timer);*/
  54.  
  55.  
  56.     bool user_exit = false;
  57.  
  58.     while(!user_exit) {
  59.  
  60.         ALLEGRO_EVENT event;
  61.         al_wait_for_event(event_queue, &event);
  62.  
  63.  
  64.         ALLEGRO_BITMAP *xImage = NULL;
  65.         xImage = al_load_bitmap("img/ximage.png");
  66.  
  67.  
  68.         ALLEGRO_BITMAP *oImage = NULL;
  69.         oImage = al_load_bitmap("img/oimage.png");
  70.  
  71.  
  72.         bool checkEmptySquare = false;
  73.  
  74.            
  75.         bool drawZeroSprite = false;
  76.  
  77.    
  78.         if(event.type == ALLEGRO_EVENT_MOUSE_BUTTON_DOWN) {
  79.             if(event.mouse.x > 150 && event.mouse.x < 300 && event.mouse.y > 150 && event.mouse.y < 300) {
  80.                 al_draw_bitmap(xImage, 150, 150, 0);
  81.                 board[1] = 1;
  82.                 checkEmptySquare = true;
  83.                 drawZeroSprite = true;
  84.             } else if(event.mouse.x > 300 && event.mouse.x < 450 && event.mouse.y > 150 && event.mouse.y < 300) {
  85.                 al_draw_bitmap(xImage, 300, 150, 0);
  86.                 board[2] = 1;
  87.                 checkEmptySquare = true;
  88.                 drawZeroSprite = true;
  89.             } else if (event.mouse.x > 450 && event.mouse.x < 600 && event.mouse.y > 150 && event.mouse.y < 300) {
  90.                 al_draw_bitmap(xImage, 450, 150, 0);
  91.                 board[3] = 1;
  92.                 checkEmptySquare = true;
  93.                 drawZeroSprite = true;
  94.             } else if(event.mouse.x > 150 && event.mouse.x < 300 && event.mouse.y > 300 && event.mouse.y < 450) {
  95.                 al_draw_bitmap(xImage, 150, 300, 0);
  96.                 board[4] = 1;
  97.                 checkEmptySquare = true;
  98.                 drawZeroSprite = true;         
  99.             } else if(event.mouse.x > 300 && event.mouse.x < 450 && event.mouse.y > 300 && event.mouse.y < 450) {
  100.                 al_draw_bitmap(xImage, 300, 300, 0);
  101.                 board[5] = 1;
  102.                 checkEmptySquare = true;
  103.                 drawZeroSprite = true;
  104.             } else if(event.mouse.x > 450 && event.mouse.x < 600 && event.mouse.y > 300 && event.mouse.y < 450) {
  105.                 al_draw_bitmap(xImage, 450, 300, 0);
  106.                 board[6] = 1;
  107.                 checkEmptySquare = true;
  108.                 drawZeroSprite = true;
  109.             } else if(event.mouse.x > 150 && event.mouse.x < 300 && event.mouse.y > 450 && event.mouse.y < 600) {
  110.                 al_draw_bitmap(xImage, 150, 450, 0);
  111.                 board[7] = 1;
  112.                 checkEmptySquare = true;
  113.                 drawZeroSprite = true;
  114.             } else if(event.mouse.x > 300 && event.mouse.x < 450 && event.mouse.y > 450 && event.mouse.y < 600) {
  115.                 al_draw_bitmap(xImage, 300, 450, 0);
  116.                 board[8] = 1;
  117.                 checkEmptySquare = true;
  118.                 drawZeroSprite = true;
  119.             } else if(event.mouse.x > 45 && event.mouse.x < 600 && event.mouse.y > 450 && event.mouse.y < 600) {
  120.                 al_draw_bitmap(xImage, 450, 450, 0);
  121.                 board[9] = 1;
  122.                 checkEmptySquare = true;
  123.                 drawZeroSprite = true;
  124.             }
  125.  
  126.         }
  127.  
  128.        
  129.         if(drawZeroSprite) {
  130.             if(setZero == 1) {
  131.                 al_draw_bitmap(oImage, 150, 150, 0);
  132.             } else if(setZero == 2) {
  133.                 al_draw_bitmap(oImage, 300, 150, 0);
  134.             } else if(setZero == 3) {
  135.                 al_draw_bitmap(oImage, 450, 150, 0);
  136.             } else if(setZero == 4) {
  137.                 al_draw_bitmap(oImage, 150, 300, 0);
  138.             } else if(setZero == 5) {
  139.                 al_draw_bitmap(oImage, 300, 300, 0);
  140.             } else if(setZero == 6) {
  141.                 al_draw_bitmap(oImage, 450, 300, 0);
  142.             } else if(setZero == 7) {
  143.                 al_draw_bitmap(oImage, 150, 450, 0);
  144.             } else if(setZero == 8) {
  145.                 al_draw_bitmap(oImage, 300, 450, 0);
  146.             } else if(setZero == 9) {
  147.                 al_draw_bitmap(oImage, 450, 450, 0);
  148.             }
  149.         }
  150.        
  151.        
  152.         if(checkEmptySquare) {
  153.             if(board[setZero] == 1 || board[setZero] == 2) {
  154.                 setZero = rand() % 10;
  155.                 board[setZero] = 2;
  156.             } //else if(board[setZero] = 2);
  157.         }
  158.  
  159.  
  160. /*     
  161. //---------------------------------------------------------------------------
  162. // Player win!
  163.         if(board[1] == 1 && board[4] == 1 && board[7] == 1) {
  164.             printf("You win!\n");
  165.         } else if(board[2] == 1 && board[5] == 1 && board[8] == 1) {
  166.             printf("You win!\n");
  167.         } else if(board[3] == 1 && board[6] == 1 && board[9] == 1) {
  168.             printf("You win!");
  169.         } else if(board[1] == 1 && board[2] == 1 && board[3] == 1) {
  170.             printf("win\n");
  171.         } else if(board[4] == 1 && board[5] == 1 && board[6] == 1) {
  172.             printf("win\n");
  173.         } else if(board[7] == 1 && board[8] == 1 && board[9] == 1) {
  174.             printf("win\n");
  175.         } else if(board[1] == 1 && board[5] == 1 && board[9] == 1) {
  176.             printf("win\n");
  177.         } else if(board[3] == 1 && board[5] == 1 && board[7] == 1) {
  178.             printf("win!\n");
  179.         }
  180.  
  181.  
  182. // Computer win!
  183.         else if(board[1] = 2 && board[4] = 2 && board[7] = 2) {
  184.             printf("You win!\n");
  185.         } else if(board[2] = 2 && board[5] = 2 && board[8] = 2) {
  186.             printf("You win!\n", );
  187.         } else if(board[3] = 2 && board[6] = 2 && board[9] = 2) {
  188.             printf("You win!");
  189.         } else if(board[1] = 2 && board[2] = 2 && board[3] = 2) {
  190.             printf("win\n", );
  191.         } else if(board[4] = 2 && board[5] = 2 && board[6] = 2) {
  192.             printf("win\n");
  193.         } else if(board[7] = 2 && board[8] = 2 && board[9] = 2) {
  194.             printf("win\n");
  195.         } else if(board[1] = 2 && board[5] = 2 && board[9] = 2) {
  196.             printf("win\n");
  197.         } else if(board[3] = 2 && board[5] = 2 && board[7] = 2) {
  198.             printf("win!\n");
  199.         }
  200.  
  201. // Draw!
  202.         else {
  203.             printf("Draw!\n");
  204.         }
  205.  
  206. //--------------------------------------------------------------------------
  207. */
  208.         al_flip_display();
  209.  
  210.     }
  211.  
  212.  
  213.     al_destroy_bitmap(background);
  214.     al_destroy_display(display);
  215.  
  216.     return 0;
  217. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement