Kaktusen

TicTacToe_main

Aug 27th, 2011
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.73 KB | None | 0 0
  1. #include "sdl/sdl.h"
  2. #include "surfaces.h"
  3.  
  4. #include <ctime>
  5. #include <stdlib.h>
  6.  
  7. //Variabler
  8. int xbot;
  9. bool placement[9];
  10.  
  11. //Funktioner
  12. void apply_surface(int x, int y, SDL_Surface *source, SDL_Surface *destination) {
  13.     SDL_Rect rect;
  14.  
  15.     rect.x = x;
  16.     rect.y = y;
  17.  
  18.     SDL_BlitSurface(source, NULL, destination, &rect);
  19. }
  20.  
  21. void keyinput();
  22. void exit();
  23. int place(int choose);
  24. void bot();
  25.  
  26. int main(int argc, char *args[]) {
  27.     SDL_Init(SDL_INIT_EVERYTHING);
  28.  
  29.     apply_surface(0, 0, background, screen);
  30.  
  31.     SDL_Flip(screen);
  32.  
  33.     for(int i = 0; i<10; i++) {
  34.         placement[i] = true;
  35.     }
  36.  
  37.     keyinput();
  38.  
  39.     SDL_Delay(2000);
  40.     SDL_Quit();
  41. }
  42.  
  43. void keyinput() {
  44.     SDL_Event event;
  45.  
  46.  
  47.     while(true) {
  48.         if( SDL_PollEvent (&event)) {
  49.  
  50.                 if(event.type == SDL_KEYDOWN) {
  51.  
  52.                     switch(event.key.keysym.sym) {
  53.  
  54.                         case SDLK_1:
  55.                             if(placement[1] == true) {
  56.                                 place(1);
  57.                             }
  58.                             break;
  59.  
  60.                         case SDLK_2:
  61.                             place(2);
  62.                             break;
  63.  
  64.                         case SDLK_3:
  65.                             place(3);
  66.                             break;
  67.  
  68.                         case SDLK_4:
  69.                             place(4);
  70.                             break;
  71.  
  72.                         case SDLK_5:
  73.                             place(5);
  74.                             break;
  75.  
  76.                         case SDLK_6:
  77.                             place(6);
  78.                             break;
  79.  
  80.                         case SDLK_7:
  81.                             place(7);
  82.                             break;
  83.  
  84.                         case SDLK_8:
  85.                             place(8);
  86.                             break;
  87.  
  88.                         case SDLK_9:
  89.                             place(9);
  90.                             break;
  91.  
  92.                         case SDLK_ESCAPE:
  93.                             exit();
  94.                             break;
  95.                     }
  96.                 }
  97.         }
  98.         bot();
  99.     }
  100. }
  101.  
  102. int place(int choose) {
  103.     switch(choose) {
  104.         case 1:
  105.             if(placement[1] == true) {
  106.                 apply_surface(20, 20, X, screen);
  107.                 placement[1] = false;
  108.             }
  109.             break;
  110.  
  111.         case 2:
  112.             if(placement[2] == true) {
  113.                 apply_surface(235, 20, X, screen);
  114.                 placement[2] = false;
  115.             }
  116.             break;
  117.  
  118.         case 3:
  119.             if(placement[3] == true) {
  120.                 apply_surface(470, 20, X, screen);
  121.                 placement[3] = false;
  122.             }
  123.             break;
  124.  
  125.         case 4:
  126.             if(placement[4] == true) {
  127.                 apply_surface(20, 170, X, screen);
  128.                 placement[4] = false;
  129.             }
  130.             break;
  131.  
  132.         case 5:
  133.             if(placement[5] == true) {
  134.                 apply_surface(235, 170, X, screen);
  135.                 placement[5] = false;
  136.             }
  137.             break;
  138.  
  139.         case 6:
  140.             if(placement[6] == true) {
  141.                 apply_surface(470, 170, X, screen);
  142.                 placement[6] = false;
  143.             }
  144.             break;
  145.  
  146.         case 7:
  147.             if(placement[7] == true) {
  148.                 apply_surface(20, 360, X, screen);
  149.                 placement[7] = false;
  150.             }
  151.             break;
  152.  
  153.         case 8:
  154.             if(placement[8] == true) {
  155.                 apply_surface(235, 360, X, screen);
  156.                 placement[8] = false;
  157.             }
  158.             break;
  159.  
  160.         case 9:
  161.             if(placement[9] == true) {
  162.                 apply_surface(470, 360, X, screen);
  163.                 placement[9] = false;
  164.             }
  165.             break;
  166.     }
  167.     SDL_Flip(screen);
  168. }
  169.  
  170. void bot() {
  171.     srand(time(NULL));
  172.     xbot = rand() % 9 + 1;
  173.     switch(xbot) {
  174.         case 1:
  175.             if(placement[1] == true) {
  176.                 apply_surface(20, 20, O, screen);
  177.                 placement[1] = false;
  178.             }
  179.             break;
  180.  
  181.         case 2:
  182.             if(placement[2] == true) {
  183.                 apply_surface(235, 20, O, screen);
  184.                 placement[2] = false;
  185.             }
  186.             break;
  187.  
  188.         case 3:
  189.             if(placement[3] == true) {
  190.                 apply_surface(470, 20, O, screen);
  191.                 placement[3] = false;
  192.             }
  193.             break;
  194.  
  195.         case 4:
  196.             if(placement[4] == true) {
  197.                 apply_surface(20, 170, O, screen);
  198.                 placement[4] = false;
  199.             }
  200.             break;
  201.  
  202.         case 5:
  203.             if(placement[5] == true) {
  204.                 apply_surface(235, 170, O, screen);
  205.                 placement[5] = false;
  206.             }
  207.             break;
  208.  
  209.         case 6:
  210.             if(placement[6] == true) {
  211.                 apply_surface(470, 170, O, screen);
  212.                 placement[6] = false;
  213.             }
  214.             break;
  215.  
  216.         case 7:
  217.             if(placement[7] == true) {
  218.                 apply_surface(20, 360, O, screen);
  219.                 placement[7] = false;
  220.             }
  221.             break;
  222.  
  223.         case 8:
  224.             if(placement[8] == true) {
  225.                 apply_surface(235, 360, O, screen);
  226.                 placement[8] = false;
  227.             }
  228.             break;
  229.  
  230.         case 9:
  231.             if(placement[9] == true) {
  232.                 apply_surface(470, 360, O, screen);
  233.                 placement[9] = false;
  234.             }
  235.             break;
  236.     }
  237. }
  238.  
  239.  
  240. void exit() {
  241.     SDL_FreeSurface(background);
  242.     SDL_FreeSurface(X);
  243.     SDL_FreeSurface(O);
  244.  
  245.     SDL_Quit();
  246. }
Advertisement
Add Comment
Please, Sign In to add comment