Tic-tac-toe has been a part of almost everyone’s childhood. While the game of tic-tac-toe is really old, dating back to ancient Egyptians at around 1300 B.C., the underlying principles of the game have endured the test of time. The game seems simple enough. Two opponents, one using X and one using O, use a 3 x 3 grid to mark their symbols. The first one to get all three of his/her symbols in a row, whether it’s diagonal, horizontal, or vertical, wins the game.
This project is a simple Tic-Tac-Toe online game developed as a final project for the java course. The game is developed using java and javafx utilizing socket programming, multi-threading and JSON data transmission to allow for a multiplayer online game with other features such as ingame Chat and much more.
- Live list of players status and score.
- Load and logs monitoring through a simple GUI.
- Start and stop the server with a simple click of a button.
- Passwords are encrypted before being saved in the database.
- Play in single mode vs. computer in two levels of difficulty
- A live list of the status and score of other players in the game.
- Save the game to continue playing it later.
- User-friendly GUI.
- A score metrics for each player that is calculated upon winning or losing.
- Play with your friends in multiplayer mode (online).
- Playing again with the same player.
- Quit the game in the middle, but it will result in loosing the game.
You can start and stop the server from the GUI, as well as view the server logs, the database and a live players list.
The players can save the game to continue playing at another time.
For the full demo video refer to the following link: Demo Video
Clone the project in your working directory.
https://github.com/SamarNegm/TicTacToeJavaProject.git
or download the zipped file and unzip it in your working directory.
- Import SQL schema file in any MySQL Server ( Recommended: phpMyAdmin ) or implement SQl statements manually in mySQL Shell as described in tictactoedb.sql in DBSchema directory.
- Edit DBconfig.java file in Database Package to fill your database username ,password ,port number ,and database server url .
Using File Explorer : Navigate to the ServerSide folder then inside dist folder double click ServerSide.jar
Using File Explorer : Navigate to the ClientSide folder then inside dist folder double click ClientSide.jar
Using the Terminal : Navigate to the ClientSide/dist directory and run the following command:
java -jar ClientSide.jar
Using The executable file: Double-click the ClientSide.jar file found in the bin directory
- A potential shortcoming could appear when the database goes down while the server is running.
- The reliability of the Client-Server communication is about 90%; sometimes the requests from the client are not caught by the server.
- Implement a notification system to notify players about others signning in/out.
- To allow the player to share his game result on his social media accounts.
-
- Live chat
We are a team of software enginnering students at ITI intake 42, Menofia branch, Open-source application track.
You can find us on: