Advertisement
Guest User

Untitled

a guest
May 22nd, 2012
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <SFML/System.hpp>
  3. #include <SFML/Graphics.hpp>
  4. #include <SFML/Window.hpp>
  5.  
  6. //Created by Kh[a]os
  7.  
  8. void checkX();
  9. void checkO();
  10. void checkTurn();
  11. int checkWin();
  12. int a = 0;
  13.  
  14. int turn = true;
  15. bool wait = true;
  16.  
  17. int grid [3][3] = {{2, 2, 2},{2, 2, 2},{2, 2, 2}};
  18. int gridCount = 0;
  19.  
  20. //Create blank window
  21. sf::VideoMode VMode(600, 600, 32);
  22. sf::RenderWindow window(VMode, "Tic Tac Toe");
  23.  
  24. sf::Texture bg;
  25. sf::Texture x;
  26. sf::Texture o;
  27. sf::Texture xwins;
  28. sf::Texture owins;
  29. sf::Texture tie;
  30.  
  31.  
  32. sf::Sprite bgs;
  33. sf::Sprite X;
  34. sf::Sprite O;
  35. sf::Sprite Xwins;
  36. sf::Sprite Owins;
  37. sf::Sprite Tie;
  38.  
  39. int resources()
  40. {
  41.  
  42.     if(!bg.loadFromFile("grfx/bg.bmp") || !o.loadFromFile("grfx/o.png") || !x.loadFromFile("grfx/x.png") || !xwins.loadFromFile("grfx/xwins.png") || !owins.loadFromFile("grfx/owins.png") || !tie.loadFromFile("grfx/tie.png"))
  43.         return EXIT_FAILURE;
  44.  
  45.     bgs.setTexture(bg);
  46.     X.setTexture(x);
  47.     O.setTexture(o);
  48.     Xwins.setTexture(xwins);
  49.     Owins.setTexture(owins);
  50.     Tie.setTexture(tie);
  51. }
  52.  
  53.  
  54. int main()
  55. {
  56.     resources();
  57.  
  58.     window.draw(bgs);
  59.     window.display();
  60.  
  61.     //Main game loop
  62.     while (window.isOpen())
  63.     {
  64.         //Processes events
  65.         sf::Event event;
  66.  
  67.         //Fills Event with data
  68.         while(window.pollEvent(event))
  69.         {
  70.             switch(event.type)
  71.             {
  72.             case sf::Event::Closed:
  73.                 window.close();
  74.                 break;
  75.             default:
  76.                 break;
  77.             }
  78.         }
  79. if (!wait)
  80. {
  81.     if (a == 1)
  82.     {
  83.     window.clear();
  84.     window.draw(Xwins);
  85.     window.display();
  86.     }
  87.     if (a == 2)
  88.     {
  89.     window.clear();
  90.     window.draw(Owins);
  91.     window.display();
  92.     }
  93.     if (gridCount == 9)
  94.     {
  95.     window.clear();
  96.     window.draw(Tie);
  97.     window.display();
  98.     }
  99. }
  100. if (wait)
  101. {
  102.         window.clear();
  103.         window.draw(bgs);
  104.  
  105. if (sf::Mouse::isButtonPressed(sf::Mouse::Left) && turn == true)
  106.         {
  107.             sf::Vector2i mousePosition = sf::Mouse::getPosition(window);
  108.  
  109.             if((mousePosition.x < 200 && mousePosition.y < 200))
  110.             {
  111.                 if (grid[0][0] != 0 && grid[0][0] != 1)
  112.                 {
  113.                 grid[0][0] = 0;
  114.                 turn = false;
  115.                 }
  116.             }
  117.             else if(((mousePosition.x > 200 && mousePosition.x < 400)
  118.                      && mousePosition.y < 200))
  119.             {
  120.                 if (grid[1][0] != 0 && grid[1][0] != 1)
  121.                 {
  122.                 grid[1][0] = 0;
  123.                 turn = false;
  124.                 }
  125.             }
  126.  
  127.             else if(((mousePosition.x > 400 && mousePosition.x < 600)
  128.                      && mousePosition.y < 200))
  129.             {
  130.                 if (grid[2][0] != 0 && grid[2][0] != 1)
  131.                 {
  132.                 grid[2][0] = 0;
  133.                 turn = false;
  134.                 }
  135.             }
  136.  
  137.             else if((mousePosition.x < 200 && (mousePosition.y > 200 && mousePosition.y < 400)))
  138.             {
  139.  
  140.                 if (grid[0][1] != 0 && grid[0][1] != 1)
  141.                 {
  142.                 grid[0][1] = 0;
  143.                 turn = false;
  144.                 }
  145.             }
  146.  
  147.             else if(((mousePosition.x > 200 && mousePosition.x < 400)
  148.                      && (mousePosition.y > 200 && mousePosition.y < 400)))
  149.             {
  150.  
  151.                    if (grid[1][1] != 0 && grid[1][1] != 1)
  152.                 {
  153.                 grid[1][1] = 0;
  154.                 turn = false;
  155.                 }
  156.             }
  157.  
  158.             else if(((mousePosition.x > 400 && mousePosition.x < 600)
  159.                      && (mousePosition.y > 200 && mousePosition.y < 400)))
  160.             {
  161.                 if (grid[2][1] != 0 && grid[2][1] != 1)
  162.                 {
  163.                 grid[2][1] = 0;
  164.                 turn = false;
  165.                 }
  166.  
  167.             }
  168.  
  169.             else if((mousePosition.x < 200 && (mousePosition.y > 400 && mousePosition.y < 600)))
  170.             {
  171.  
  172.                 if (grid[0][2] != 0 && grid[0][2] != 1)
  173.                 {
  174.                 grid[0][2] = 0;
  175.                 turn = false;
  176.                 }
  177.             }
  178.  
  179.             else if(((mousePosition.x > 200 && mousePosition.x < 400)
  180.                      && (mousePosition.y > 400 && mousePosition.y < 600)))
  181.             {
  182.  
  183.                 if (grid[1][2] != 0 && grid[1][2] != 1)
  184.                 {
  185.                 grid[1][2] = 0;
  186.                 turn = false;
  187.                 }
  188.  
  189.             }
  190.  
  191.             else if(((mousePosition.x > 400 && mousePosition.x < 600)
  192.                      && (mousePosition.y > 400 && mousePosition.y < 600)))
  193.             {
  194.                 if (grid[2][2] != 0 && grid[2][2] != 1)
  195.                 {
  196.                 grid[2][2] = 0;
  197.                 turn = false;
  198.                 }
  199.  
  200.             }
  201.         }
  202.  
  203. if (sf::Mouse::isButtonPressed(sf::Mouse::Left) && turn == false)
  204.         {
  205.             sf::Vector2i mousePosition = sf::Mouse::getPosition(window);
  206.  
  207.             if((mousePosition.x < 200 && mousePosition.y < 200))
  208.             {
  209.                 if (grid[0][0] != 0 && grid[0][0] != 1)
  210.                 {
  211.                 grid[0][0] = 1;
  212.                 turn = true;
  213.                 }
  214.             }
  215.             else if(((mousePosition.x > 200 && mousePosition.x < 400)
  216.                      && mousePosition.y < 200))
  217.             {
  218.                 if (grid[1][0] != 0 && grid[1][0] != 1)
  219.                 {
  220.                 grid[1][0] = 1;
  221.                 turn = true;
  222.                 }
  223.             }
  224.  
  225.             else if(((mousePosition.x > 400 && mousePosition.x < 600)
  226.                      && mousePosition.y < 200))
  227.             {
  228.                 if (grid[2][0] != 0 && grid[2][0] != 1)
  229.                 {
  230.                 grid[2][0] = 1;
  231.                 turn = true;
  232.                 }
  233.             }
  234.  
  235.             else if((mousePosition.x < 200 && (mousePosition.y > 200 && mousePosition.y < 400)))
  236.             {
  237.                 if (grid[0][1] != 0 && grid[0][1] != 1)
  238.                 {
  239.                 grid[0][1] = 1;
  240.                 turn = true;
  241.                 }
  242.             }
  243.  
  244.             else if(((mousePosition.x > 200 && mousePosition.x < 400)
  245.                      && (mousePosition.y > 200 && mousePosition.y < 400)))
  246.             {
  247.  
  248.                    if (grid[1][1] != 0 && grid[1][1] != 1)
  249.                 {
  250.                 grid[1][1] = 1;
  251.                 turn = true;
  252.                 }
  253.             }
  254.  
  255.             else if(((mousePosition.x > 400 && mousePosition.x < 600)
  256.                      && (mousePosition.y > 200 && mousePosition.y < 400)))
  257.             {
  258.                 if (grid[2][1] != 0 && grid[2][1] != 1)
  259.                 {
  260.                 grid[2][1] = 1;
  261.                 turn = true;
  262.                 }
  263.  
  264.             }
  265.  
  266.             else if((mousePosition.x < 200 && (mousePosition.y > 400 && mousePosition.y < 600)))
  267.             {
  268.  
  269.                 if (grid[0][2] != 0 && grid[0][2] != 1)
  270.                 {
  271.                 grid[0][2] = 1;
  272.                 turn = true;
  273.                 }
  274.             }
  275.  
  276.             else if(((mousePosition.x > 200 && mousePosition.x < 400)
  277.                      && (mousePosition.y > 400 && mousePosition.y < 600)))
  278.             {
  279.  
  280.                 if (grid[1][2] != 0 && grid[1][2] != 1)
  281.                 {
  282.                 grid[1][2] = 1;
  283.                 turn = true;
  284.                 }
  285.  
  286.             }
  287.  
  288.             else if(((mousePosition.x > 400 && mousePosition.x < 600)
  289.                      && (mousePosition.y > 400 && mousePosition.y < 600)))
  290.             {
  291.                 if (grid[2][2] != 0 && grid[2][2] != 1)
  292.                 {
  293.                 grid[2][2] = 1;
  294.                 turn = true;
  295.                 }
  296.  
  297.             }
  298.         }
  299.  
  300.         checkX();
  301.         checkO();
  302.         window.display();
  303.         a = checkWin();
  304.         if (a == 1)
  305.         wait = false;
  306.         if (a == 2)
  307.         wait = false;
  308.         if (gridCount == 9)
  309.         wait = false;
  310.  
  311.     }
  312.     }
  313.  
  314. }
  315.  
  316. int checkWin()
  317. {
  318.     if(grid[0][0] == 0 && grid[0][1] == 0 && grid[0][2] == 0)
  319.     {
  320.     return 1;
  321.     }
  322.     if(grid[0][0] == 0 && grid[1][0] == 0 && grid[2][0] == 0)
  323.     {
  324.     return 1;
  325.     }
  326.     if(grid[1][0] == 0 && grid[1][1] == 0 && grid[1][2] == 0)
  327.     {
  328.     return 1;
  329.     }
  330.     if(grid[2][0] == 0 && grid[2][1] == 0 && grid[2][2] == 0)
  331.     {
  332.     return 1;
  333.     }
  334.     if(grid[0][1] == 0 && grid[1][1] == 0 && grid[2][1] == 0)
  335.     {
  336.     return 1;
  337.     }
  338.     if(grid[0][2] == 0 && grid[1][2] == 0 && grid[2][2] == 0)
  339.     {
  340.     return 1;
  341.     }
  342.     if(grid[0][0] == 0 && grid[1][1] == 0 && grid[2][2] == 0)
  343.     {
  344.     return 1;
  345.     }
  346.     if(grid[0][2] == 0 && grid[1][1] == 0 && grid[2][0] == 0)
  347.     {
  348.     return 1;
  349.     }
  350.  
  351.     if(grid[0][0] == 1 && grid[0][1] == 1 && grid[0][2] == 1)
  352.     {
  353.     return 2;
  354.     }
  355.     if(grid[0][0] == 1 && grid[1][0] == 1 && grid[2][0] == 1)
  356.     {
  357.     return 2;
  358.     }
  359.     if(grid[1][0] == 1 && grid[1][1] == 1 && grid[1][2] == 1)
  360.     {
  361.     return 2;
  362.     }
  363.     if(grid[2][0] == 1 && grid[2][1] == 1 && grid[2][2] == 1)
  364.     {
  365.     return 2;
  366.     }
  367.     if(grid[0][1] == 1 && grid[1][1] == 1 && grid[2][1] == 1)
  368.     {
  369.     return 2;
  370.     }
  371.         if(grid[0][2] == 1 && grid[1][2] == 1 && grid[2][2] == 1)
  372.     {
  373.     return 2;
  374.     }
  375.     if(grid[0][0] == 1 && grid[1][1] == 1 && grid[2][2] == 1)
  376.     {
  377.     return 2;
  378.     }
  379.     if(grid[0][2] == 1 && grid[1][1] == 1 && grid[2][0] == 1)
  380.     {
  381.     return 2;
  382.     }
  383.  
  384.     for (int i = 0; i<3; i++)
  385.     {
  386.         for (int f = 0; f<3; f++)
  387.         {
  388.             if (grid[i][f] == 0 || grid[i][f] == 1)
  389.             gridCount++;
  390.         }
  391.     }
  392.     if (gridCount<9)
  393.     gridCount = 0;
  394.  
  395. return 0;
  396.  
  397. }
  398.  
  399.  
  400. void checkX()
  401. {
  402.     if (grid[0][0] == 0)
  403.     {
  404.         X.setPosition(25, 20);
  405.         window.draw(X);
  406.     }
  407.     if (grid[1][0] == 0)
  408.     {
  409.         X.setPosition(227, 20);
  410.         window.draw(X);
  411.     }
  412.     if (grid[2][0] == 0)
  413.     {
  414.         X.setPosition(427, 20);
  415.         window.draw(X);
  416.     }
  417.     if (grid[0][1] == 0)
  418.     {
  419.         X.setPosition(25, 224);
  420.         window.draw(X);
  421.     }
  422.     if (grid[1][1] == 0)
  423.     {
  424.         X.setPosition(227, 224);
  425.         window.draw(X);
  426.     }
  427.     if (grid[2][1] == 0)
  428.     {
  429.         X.setPosition(427, 224);
  430.         window.draw(X);
  431.     }
  432.     if (grid[0][2] == 0)
  433.     {
  434.  
  435.         X.setPosition(25, 425);
  436.         window.draw(X);
  437.     }
  438.     if (grid[1][2] == 0)
  439.     {
  440.         X.setPosition(227, 425);
  441.         window.draw(X);
  442.     }
  443.     if (grid[2][2] == 0)
  444.     {
  445.         X.setPosition(427, 425);
  446.         window.draw(X);
  447.     }
  448. }
  449. void checkO()
  450. {
  451.     if (grid[0][0] == 1)
  452.     {
  453.         O.setPosition(25, 20);
  454.         window.draw(O);
  455.     }
  456.     if (grid[1][0] == 1)
  457.     {
  458.         O.setPosition(227, 20);
  459.         window.draw(O);
  460.     }
  461.     if (grid[2][0] == 1)
  462.     {
  463.         O.setPosition(427, 20);
  464.         window.draw(O);
  465.     }
  466.     if (grid[0][1] == 1)
  467.     {
  468.         O.setPosition(25, 224);
  469.         window.draw(O);
  470.     }
  471.     if (grid[1][1] == 1)
  472.     {
  473.         O.setPosition(227, 224);
  474.         window.draw(O);
  475.     }
  476.     if (grid[2][1] == 1)
  477.     {
  478.         O.setPosition(427, 224);
  479.         window.draw(O);
  480.     }
  481.     if (grid[0][2] == 1)
  482.     {
  483.  
  484.         O.setPosition(25, 425);
  485.         window.draw(O);
  486.     }
  487.     if (grid[1][2] == 1)
  488.     {
  489.         O.setPosition(227, 425);
  490.         window.draw(O);
  491.     }
  492.     if (grid[2][2] == 1)
  493.     {
  494.         O.setPosition(427, 425);
  495.         window.draw(O);
  496.     }
  497. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement