Skip to content

The class project of CS622 Advanced Programing Techniques for Spring-O1 in 2021.

Notifications You must be signed in to change notification settings

gchriswill/JicJacJoe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Boston University's Metropolitan College

CS622 Class Project:

Jic Jac Joe

Version Platform Build Status

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:

Overview video is coming soon...


Repository:

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.

Project Details:

Project Info:

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

Current Status:

Released v0.0.6 for module 6 requirements

Branch Structure/Strategy:

  • 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.

IDE Platform:

CI/CD Platform:

Build Tools:

Dependencies:

Deployment Targets:

  • CLI
  • IDE's Console

Development Devices:

  • MacBook Pro (15 Inch, 2017)

Test Devices:

  • MacBook Pro (15 Inch, 2017)

Google Drive Location:

Jic-Jac-Joe's Documents Folder Location

The project's documents folder includes:

  • Requirements/
  • Resources/
  • Diagrams/
  • Flows/

User Stories:

  • 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

Features Set:

Core Support Supplemental
Start Menu Credits
Play Save Restart
Win/Loose Load Exit
End

Milestones Breakdown for Modules:

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.


Running Jic Jac Joe:

IMPORTANT NOTES

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.

Running

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 session
  • Restart Available at all time except in the main menu
  • Exit Available during all times

About

The class project of CS622 Advanced Programing Techniques for Spring-O1 in 2021.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published