Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <SFML/System.hpp>
- #include <SFML/Graphics.hpp>
- #include <SFML/Window.hpp>
- //Created by Kh[a]os
- void checkX();
- void checkO();
- void checkTurn();
- int checkWin();
- int a = 0;
- int turn = true;
- bool wait = true;
- int grid [3][3] = {{2, 2, 2},{2, 2, 2},{2, 2, 2}};
- int gridCount = 0;
- //Create blank window
- sf::VideoMode VMode(600, 600, 32);
- sf::RenderWindow window(VMode, "Tic Tac Toe");
- sf::Texture bg;
- sf::Texture x;
- sf::Texture o;
- sf::Texture xwins;
- sf::Texture owins;
- sf::Texture tie;
- sf::Sprite bgs;
- sf::Sprite X;
- sf::Sprite O;
- sf::Sprite Xwins;
- sf::Sprite Owins;
- sf::Sprite Tie;
- int resources()
- {
- 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"))
- return EXIT_FAILURE;
- bgs.setTexture(bg);
- X.setTexture(x);
- O.setTexture(o);
- Xwins.setTexture(xwins);
- Owins.setTexture(owins);
- Tie.setTexture(tie);
- }
- int main()
- {
- resources();
- window.draw(bgs);
- window.display();
- //Main game loop
- while (window.isOpen())
- {
- //Processes events
- sf::Event event;
- //Fills Event with data
- while(window.pollEvent(event))
- {
- switch(event.type)
- {
- case sf::Event::Closed:
- window.close();
- break;
- default:
- break;
- }
- }
- if (!wait)
- {
- if (a == 1)
- {
- window.clear();
- window.draw(Xwins);
- window.display();
- }
- if (a == 2)
- {
- window.clear();
- window.draw(Owins);
- window.display();
- }
- if (gridCount == 9)
- {
- window.clear();
- window.draw(Tie);
- window.display();
- }
- }
- if (wait)
- {
- window.clear();
- window.draw(bgs);
- if (sf::Mouse::isButtonPressed(sf::Mouse::Left) && turn == true)
- {
- sf::Vector2i mousePosition = sf::Mouse::getPosition(window);
- if((mousePosition.x < 200 && mousePosition.y < 200))
- {
- if (grid[0][0] != 0 && grid[0][0] != 1)
- {
- grid[0][0] = 0;
- turn = false;
- }
- }
- else if(((mousePosition.x > 200 && mousePosition.x < 400)
- && mousePosition.y < 200))
- {
- if (grid[1][0] != 0 && grid[1][0] != 1)
- {
- grid[1][0] = 0;
- turn = false;
- }
- }
- else if(((mousePosition.x > 400 && mousePosition.x < 600)
- && mousePosition.y < 200))
- {
- if (grid[2][0] != 0 && grid[2][0] != 1)
- {
- grid[2][0] = 0;
- turn = false;
- }
- }
- else if((mousePosition.x < 200 && (mousePosition.y > 200 && mousePosition.y < 400)))
- {
- if (grid[0][1] != 0 && grid[0][1] != 1)
- {
- grid[0][1] = 0;
- turn = false;
- }
- }
- else if(((mousePosition.x > 200 && mousePosition.x < 400)
- && (mousePosition.y > 200 && mousePosition.y < 400)))
- {
- if (grid[1][1] != 0 && grid[1][1] != 1)
- {
- grid[1][1] = 0;
- turn = false;
- }
- }
- else if(((mousePosition.x > 400 && mousePosition.x < 600)
- && (mousePosition.y > 200 && mousePosition.y < 400)))
- {
- if (grid[2][1] != 0 && grid[2][1] != 1)
- {
- grid[2][1] = 0;
- turn = false;
- }
- }
- else if((mousePosition.x < 200 && (mousePosition.y > 400 && mousePosition.y < 600)))
- {
- if (grid[0][2] != 0 && grid[0][2] != 1)
- {
- grid[0][2] = 0;
- turn = false;
- }
- }
- else if(((mousePosition.x > 200 && mousePosition.x < 400)
- && (mousePosition.y > 400 && mousePosition.y < 600)))
- {
- if (grid[1][2] != 0 && grid[1][2] != 1)
- {
- grid[1][2] = 0;
- turn = false;
- }
- }
- else if(((mousePosition.x > 400 && mousePosition.x < 600)
- && (mousePosition.y > 400 && mousePosition.y < 600)))
- {
- if (grid[2][2] != 0 && grid[2][2] != 1)
- {
- grid[2][2] = 0;
- turn = false;
- }
- }
- }
- if (sf::Mouse::isButtonPressed(sf::Mouse::Left) && turn == false)
- {
- sf::Vector2i mousePosition = sf::Mouse::getPosition(window);
- if((mousePosition.x < 200 && mousePosition.y < 200))
- {
- if (grid[0][0] != 0 && grid[0][0] != 1)
- {
- grid[0][0] = 1;
- turn = true;
- }
- }
- else if(((mousePosition.x > 200 && mousePosition.x < 400)
- && mousePosition.y < 200))
- {
- if (grid[1][0] != 0 && grid[1][0] != 1)
- {
- grid[1][0] = 1;
- turn = true;
- }
- }
- else if(((mousePosition.x > 400 && mousePosition.x < 600)
- && mousePosition.y < 200))
- {
- if (grid[2][0] != 0 && grid[2][0] != 1)
- {
- grid[2][0] = 1;
- turn = true;
- }
- }
- else if((mousePosition.x < 200 && (mousePosition.y > 200 && mousePosition.y < 400)))
- {
- if (grid[0][1] != 0 && grid[0][1] != 1)
- {
- grid[0][1] = 1;
- turn = true;
- }
- }
- else if(((mousePosition.x > 200 && mousePosition.x < 400)
- && (mousePosition.y > 200 && mousePosition.y < 400)))
- {
- if (grid[1][1] != 0 && grid[1][1] != 1)
- {
- grid[1][1] = 1;
- turn = true;
- }
- }
- else if(((mousePosition.x > 400 && mousePosition.x < 600)
- && (mousePosition.y > 200 && mousePosition.y < 400)))
- {
- if (grid[2][1] != 0 && grid[2][1] != 1)
- {
- grid[2][1] = 1;
- turn = true;
- }
- }
- else if((mousePosition.x < 200 && (mousePosition.y > 400 && mousePosition.y < 600)))
- {
- if (grid[0][2] != 0 && grid[0][2] != 1)
- {
- grid[0][2] = 1;
- turn = true;
- }
- }
- else if(((mousePosition.x > 200 && mousePosition.x < 400)
- && (mousePosition.y > 400 && mousePosition.y < 600)))
- {
- if (grid[1][2] != 0 && grid[1][2] != 1)
- {
- grid[1][2] = 1;
- turn = true;
- }
- }
- else if(((mousePosition.x > 400 && mousePosition.x < 600)
- && (mousePosition.y > 400 && mousePosition.y < 600)))
- {
- if (grid[2][2] != 0 && grid[2][2] != 1)
- {
- grid[2][2] = 1;
- turn = true;
- }
- }
- }
- checkX();
- checkO();
- window.display();
- a = checkWin();
- if (a == 1)
- wait = false;
- if (a == 2)
- wait = false;
- if (gridCount == 9)
- wait = false;
- }
- }
- }
- int checkWin()
- {
- if(grid[0][0] == 0 && grid[0][1] == 0 && grid[0][2] == 0)
- {
- return 1;
- }
- if(grid[0][0] == 0 && grid[1][0] == 0 && grid[2][0] == 0)
- {
- return 1;
- }
- if(grid[1][0] == 0 && grid[1][1] == 0 && grid[1][2] == 0)
- {
- return 1;
- }
- if(grid[2][0] == 0 && grid[2][1] == 0 && grid[2][2] == 0)
- {
- return 1;
- }
- if(grid[0][1] == 0 && grid[1][1] == 0 && grid[2][1] == 0)
- {
- return 1;
- }
- if(grid[0][2] == 0 && grid[1][2] == 0 && grid[2][2] == 0)
- {
- return 1;
- }
- if(grid[0][0] == 0 && grid[1][1] == 0 && grid[2][2] == 0)
- {
- return 1;
- }
- if(grid[0][2] == 0 && grid[1][1] == 0 && grid[2][0] == 0)
- {
- return 1;
- }
- if(grid[0][0] == 1 && grid[0][1] == 1 && grid[0][2] == 1)
- {
- return 2;
- }
- if(grid[0][0] == 1 && grid[1][0] == 1 && grid[2][0] == 1)
- {
- return 2;
- }
- if(grid[1][0] == 1 && grid[1][1] == 1 && grid[1][2] == 1)
- {
- return 2;
- }
- if(grid[2][0] == 1 && grid[2][1] == 1 && grid[2][2] == 1)
- {
- return 2;
- }
- if(grid[0][1] == 1 && grid[1][1] == 1 && grid[2][1] == 1)
- {
- return 2;
- }
- if(grid[0][2] == 1 && grid[1][2] == 1 && grid[2][2] == 1)
- {
- return 2;
- }
- if(grid[0][0] == 1 && grid[1][1] == 1 && grid[2][2] == 1)
- {
- return 2;
- }
- if(grid[0][2] == 1 && grid[1][1] == 1 && grid[2][0] == 1)
- {
- return 2;
- }
- for (int i = 0; i<3; i++)
- {
- for (int f = 0; f<3; f++)
- {
- if (grid[i][f] == 0 || grid[i][f] == 1)
- gridCount++;
- }
- }
- if (gridCount<9)
- gridCount = 0;
- return 0;
- }
- void checkX()
- {
- if (grid[0][0] == 0)
- {
- X.setPosition(25, 20);
- window.draw(X);
- }
- if (grid[1][0] == 0)
- {
- X.setPosition(227, 20);
- window.draw(X);
- }
- if (grid[2][0] == 0)
- {
- X.setPosition(427, 20);
- window.draw(X);
- }
- if (grid[0][1] == 0)
- {
- X.setPosition(25, 224);
- window.draw(X);
- }
- if (grid[1][1] == 0)
- {
- X.setPosition(227, 224);
- window.draw(X);
- }
- if (grid[2][1] == 0)
- {
- X.setPosition(427, 224);
- window.draw(X);
- }
- if (grid[0][2] == 0)
- {
- X.setPosition(25, 425);
- window.draw(X);
- }
- if (grid[1][2] == 0)
- {
- X.setPosition(227, 425);
- window.draw(X);
- }
- if (grid[2][2] == 0)
- {
- X.setPosition(427, 425);
- window.draw(X);
- }
- }
- void checkO()
- {
- if (grid[0][0] == 1)
- {
- O.setPosition(25, 20);
- window.draw(O);
- }
- if (grid[1][0] == 1)
- {
- O.setPosition(227, 20);
- window.draw(O);
- }
- if (grid[2][0] == 1)
- {
- O.setPosition(427, 20);
- window.draw(O);
- }
- if (grid[0][1] == 1)
- {
- O.setPosition(25, 224);
- window.draw(O);
- }
- if (grid[1][1] == 1)
- {
- O.setPosition(227, 224);
- window.draw(O);
- }
- if (grid[2][1] == 1)
- {
- O.setPosition(427, 224);
- window.draw(O);
- }
- if (grid[0][2] == 1)
- {
- O.setPosition(25, 425);
- window.draw(O);
- }
- if (grid[1][2] == 1)
- {
- O.setPosition(227, 425);
- window.draw(O);
- }
- if (grid[2][2] == 1)
- {
- O.setPosition(427, 425);
- window.draw(O);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement