From 2d74950cf107daa391dba6f483a390e57c60dd0b Mon Sep 17 00:00:00 2001 From: s1n Date: Wed, 27 Nov 2019 22:57:39 -0800 Subject: Add files via upload --- cpp-tic-tac-toe/README.md | 67 +++++++++++++++++++++ cpp-tic-tac-toe/src/main.cpp | 137 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 204 insertions(+) create mode 100644 cpp-tic-tac-toe/README.md create mode 100644 cpp-tic-tac-toe/src/main.cpp (limited to 'cpp-tic-tac-toe') diff --git a/cpp-tic-tac-toe/README.md b/cpp-tic-tac-toe/README.md new file mode 100644 index 0000000..347be7c --- /dev/null +++ b/cpp-tic-tac-toe/README.md @@ -0,0 +1,67 @@ +``` + _____ _ _____ _____ +|_ _(_) |_ _| |_ _| + | | _ ___ ______| | __ _ ___ ______| | ___ ___ + | | | |/ __|______| |/ _` |/ __|______| |/ _ \ / _ \ + | | | | (__ | | (_| | (__ | | (_) | __/ + \_/ |_|\___| \_/\__,_|\___| \_/\___/ \___| +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Tic-Tac-Toe in C++. + +This a game recreating the Tic-Tac-Toe game in C++. + +For fun, try submitting the letter "F", as the first number for Player 1. + +Enjoy it! +``` + + +## About The Project + +Tic-Tac-Toe in C++. + +[Example](https://repl.it/@s1n/cpp-tic-tac-toe) + + + + +## Getting Started + +[Clone or download](https://github.com/8cy/cpp-tic-tac-toe) the project and run in your favourite choice of [IDE](https://en.wikipedia.org/wiki/IDE) or [Text Editor](https://en.wikipedia.org/wiki/Text_editor) with a Code Runner. + +> *[Code Runner](https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner) by [Jun Han](https://marketplace.visualstudio.com/publishers/formulahendry) on the [VSCode Marketplace](https://marketplace.visualstudio.com/) is my Code Runner of choice but you can feel free to use anything that works for you.* + +### Prerequisites + +This is an example of how to list things you need to use the software and how to install them. +* Your favourite C++ Compiler + + + + +## Contributing + +Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**. + +1. Fork the Project +2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) +3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the Branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + + + + +## License + +Distributed under the MIT License. See [`LICENSE`](/LICENSE) for more information. + + + + +## Contact + +s1nical - [@s1nical](https://twitter.com/s1nical) - bis@s1n.pw + +Project Link: [https://github.com/8cy/cpp-tic-tac-toe](https://github.com/8cy/cpp-tic-tac-toe) diff --git a/cpp-tic-tac-toe/src/main.cpp b/cpp-tic-tac-toe/src/main.cpp new file mode 100644 index 0000000..20ffe06 --- /dev/null +++ b/cpp-tic-tac-toe/src/main.cpp @@ -0,0 +1,137 @@ +#include +using namespace std; + +char square[10] = {'o', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; + +int checkwin(); +void board(); + +/* Function to return game status +** ------------------------------ +** 1 means the game is over, with result +** -1 means the game is in progress +** O means that the game is over with no result +*/ +int checkwin() +{ + if (square[1] == square[2] && square[2] == square[3]) + + return 1; + else if (square[4] == square[5] && square[5] == square[6]) + + return 1; + else if (square[7] == square[8] && square[8] == square[9]) + + return 1; + else if (square[1] == square[4] && square[4] == square[7]) + + return 1; + else if (square[2] == square[5] && square[5] == square[8]) + + return 1; + else if (square[3] == square[6] && square[6] == square[9]) + + return 1; + else if (square[1] == square[5] && square[5] == square[9]) + + return 1; + else if (square[3] == square[5] && square[5] == square[7]) + + return 1; + else if (square[1] != '1' && square[2] != '2' && square[3] != '3' + && square[4] != '4' && square[5] != '5' && square[6] != '6' + && square[7] != '7' && square[8] != '8' && square[9] != '9') + + return 0; + else + return -1; +}; + +// Function to draw board of tic-tac-toe with player's mark +void board() +{ + system("cls"); + cout << "\n\n\tTic-Tac-Toe\n\n"; + + cout << "Player 1 (X) - Player 2 (O)" << endl << endl; + cout << endl; + + cout << " | | " << endl; + cout << " " << square[1] << " | " << square[2] << " | " << square[3] << endl; + + cout << "_____|_____|_____" << endl; + cout << " | | " << endl; + + cout << " " << square[4] << " | " << square[5] << " | " << square[6] << endl; + + cout << "_____|_____|_____" << endl; + cout << " | | " << endl; + + cout << " " << square[7] << " | " << square[8] << " | " << square[9] << endl; + + cout << " | | " << endl << endl; +}; + +int main() +{ + int player = 1, i, choice; + + char mark; + do + { + board(); + player = (player%2)?1:2; + + cout << "Player " << player << ", enter a number: "; + cin >> choice; + + mark = (player == 1) ? 'X' : 'O'; + + square[1] = mark; + if (choice == 2 && square[2] == '2') + + square[2] = mark; + else if (choice == 3 && square[3] == '3') + + square[3] = mark; + else if (choice == 4 && square[4] == '4') + + square[4] = mark; + else if (choice == 5 && square[5] == '5') + + square[5] = mark; + else if (choice == 6 && square[6] == '6') + + square[6] = mark; + else if (choice == 7 && square[7] == '7') + + square[7] = mark; + else if (choice == 8 && square[8] == '8') + + square[8] = mark; + else if (choice == 9 && square[9] == '9') + + square[9] == mark; + else + { + cout << "Invalid Move "; + + player--; + cin.ignore(); + cin.get(); + } + i = checkwin(); + + player++; + } while (i == -1); + board(); + if (i == 1) + + cout << "==> \aPlayer " << --player << " Wins "; + else + cout << "==> \aGame Draw"; + + cin.ignore(); + cin.get(); + return 0; +}; -- cgit v1.2.3