contact shih-ru.sheng@sjsu.edu if you have any problems, edit permission are only open to SJSU accounts
Project Detail :
Class Relation Diagram :
Group BackLog : https://docs.google.com/spreadsheets/d/1HoEkCLQPnJMT0byzuBFewir19dSWsc0M4cQS3lu45dM/edit?usp=sharing
Our CS 151 Group Project #2. We built a Game Launcher/Manager as well as Blackjack and Snake in JavaFX. Our Game manager login uses hashed and salted passwords for secure storage (using bcrypt). We've even added AES encryption for loading and saving game state. Snake is snake, not much to talk about there.
UML Diagram of our Codebase
There's a lot of code, but its largely split into 3 categories:
Snake Game, BlackJack, and GameManager/Login.
AccountManager/HighScoreManager/MainMenuController: Aggregated details from games and displays them in the menu
Player/HumanPlayer: Class defines what a player does/operates
Deck: Class initializes all the cards in a full deck
Card: Class holds properties of a playing card + getters/setters
BlackJackManager: Handles saving and loading states as well as applying encryption/decryption
BlackJackGame: Handles Blackjack game logic and UI rendering
BlackjackController: Handles Blackjack menu options
AESEncryption: A wrapper around the javax crpyto library/package to implement AES
Open the image in a new tab and zoom in if you want to see more details.
Pre-requisites:
- Java 9+ (Our pom.xml file is at Java 24, you can change based on whichever SDK version you have installed)
- Windows/Mac: https://www.oracle.com/java/technologies/downloads/
- Linux: Download the OpenJDK from your distro's package manager
- Maven 3.9.9
- Earlier Versions may work, but we are currently using this one.
- Git Installed
- (Optional, but better) SSH Key setup w/ Github (Tutorial here - https://docs.github.com/en/authentication/connecting-to-github-with-ssh)
- (The easy way) Have GitHub Desktop installed and sign in.
Step 1: Clone Project from Github
Step 2: Change directory to the project folder (CS151_Sp_Sec6_Proj2_GamesInJavaFX)
Step 3: Run mvn clean javafx:run
Step 4: Profit!
Ryan: This README, Encrypting/Decrypting Game state, Hashing passwords, and some other small contributions
Sean: Snake game, MainMenu, HighScore for Black Jack
Efe: I have added snake movement, highscore storing and displaying on snake game, and adding songs to both games.
Kanan: Implemented full Blackjack game logic with betting, balance handling, other features, and UI updates.