A tic-tac-toe game written in Java. Players the game in PvC and PvP modes via an IDE’s console, and/or CLI, and/or a client app. The game helps Java developers to release stress by allowing them to play a simple game, within the developer’s own workspace, against the program itself or against another player, to take a brake from work, engage with fellow teammates and have fun at the same time without ever leaving you workspace at all. The game’s title will be Jic-Jac-Joe.
Overview video is coming soon...
This repo holds the source code of Jic-Jac-Joe project for [C.W. Gonzalez Melendez]'s MET-CS 622 "Advanced Programming Techniques" class of the Software Development Master's degree at Boston University's Metropolitan College.
The purposes of this repo are:
- Providing commit history/changelog of the project, for its evaluation by the instructor.
- Provide versioning control features to the project.
- Use Github's Project, Issues, WIKI and repository management tools.
- Host all the source code remotely on Github as the
remote
repository. - Host the project website with Github Pages.
Term: Spring-O1, 2021
Project: Jic-Jac-Joe
Instructor: Eric J. Braude
Facilitator: Kuang-Jung Huang, "Michael"
Institution: Boston University's Metropolitan College
Course: CS622 - Advanced Programming Techniques
Program: Software Development M.Sc. (MSSD)
Student/Engineer/Developer: Christopher W. Gonzalez Melendez, D.K.A. "@gchriswill"
Website: Jic-Jac-Joe (Website is currently in the works and coming soon...)
Github Repository: Jic-Jac-Joe's Repository
Released v0.0.6 for module 6 requirements
- master: The released source code for grading
- module1: All requirements for 622's Module 1 (Skipped due to late delivery)
- module2: All requirements for 622's Module 2 (Needs recovery from CS622-Module-2 Release v0.2)
- module3: All requirements for 622's Module 3 (GitHub Milestone 3)
- module4: All requirements for 622's Module 4 (GitHub Milestone 4)
- module5: All requirements for 622's Module 5 (GitHub Milestone 5)
- module6: All requirements for 622's Module 6 (GitHub Milestone 6)
- feature/*: Branches with feature prefix will contain specific individual and single feature
- release/*: Branches with release prefix will contain the requirements of a specific module completed and ready for testing
Each branch contains the specific requirements for the state module and completes the designated GitHub Milestone.
Each GitHub Milestone track all the respective GitHub Issues/requirements for the module/branch.
- Travis-CI + Maven + JUnit
- Github Actions coming soon...
- CLI
- IDE's Console
- MacBook Pro (15 Inch, 2017)
- MacBook Pro (15 Inch, 2017)
Jic-Jac-Joe's Documents Folder Location
The project's documents folder includes:
- Requirements/
- Resources/
- Diagrams/
- Flows/
- Jic-Jac-Joe should be able to run in an IDE’s console and/or the CLI
- Jic-Jac-Joe should be able to welcome the players when ran initially
- Jic-Jac-Joe should be able to be played in 1 game mode: PvC (PvP for later)
- Jic-Jac-Joe should be able to start a new game session
- Jic-Jac-Joe should be able to display the game board graphically in the console and/or CLI
- Jic-Jac-Joe should be able to play itself against the player
- Jic-Jac-Joe should be able to determine the winner and looser
- Jic-Jac-Joe should be able to detect unintended input from the user
- Jic-Jac-Joe should be able to handle unintended input from the user
- Jic-Jac-Joe should be able to display error to user if it receives unintended input
- Jic-Jac-Joe should be able to display guidance to user if an error was encountered
Core | Support | Supplemental |
---|---|---|
Start | Menu | Credits |
Play | Save | Restart |
Win/Loose | Load | Exit |
End |
Bellow, here are the Milestone cards on the and schedule for this project. Each milestone represents each module requirements goals for class CS 622. For more information, please visit the Project and Wiki of this repository.
- Milestone 1 (Skipped due to late delivery)
- Milestone 2
- Milestone 3
- Milestone 4
- Milestone 5
- Milestone 6
The project has CI/CD integration already via Travis-CI using Maven build tool, this is for running and validating the project's test with JUnit in every update/commit pushed to the repository.
Basically, the project should run as it is, without any additional configuration, in the CLI or IDE's console.
To run the game in the CLI (a Unix Bash shell), navigate to the working directory and type this command in your unix terminal:
java -cp <LOCAL WORKING DIRECTORY>/out/production/JicJacJoe edu.bu.met.CS622.JicJacJoe.Main
Don't forget to add your local path to the command. Also, don't forget to build the project first...
Please note that player-VS-player PvP
mode is not available right now,
but it will in a future release.
There are 3 convenient commands available at different stages:
Save
Available only during a current game sessionRestart
Available at all time except in the main menuExit
Available during all times