summaryrefslogtreecommitdiff
path: root/cpp-tic-tac-toe
diff options
context:
space:
mode:
Diffstat (limited to 'cpp-tic-tac-toe')
-rw-r--r--cpp-tic-tac-toe/README.md67
-rw-r--r--cpp-tic-tac-toe/src/main.cpp137
2 files changed, 204 insertions, 0 deletions
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 -->
+## About The Project
+
+Tic-Tac-Toe in C++.
+
+[Example](https://repl.it/@s1n/cpp-tic-tac-toe)
+
+
+
+<!-- GETTING STARTED -->
+## 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 -->
+## 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 -->
+## License
+
+Distributed under the MIT License. See [`LICENSE`](/LICENSE) for more information.
+
+
+
+<!-- CONTACT -->
+## Contact
+
+s1nical - [@s1nical](https://twitter.com/s1nical) - [email protected]
+
+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 <iostream>
+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;
+};