Blackjack is a popular casino game. The rules of the game can be found here. The application is developed for a single-player mode and contains all basic functionalities of the game.
The objective of the project was to go through all steps of project development from planning to deploying, and to obtain practical skills in 3D graphics and state management using modern development tools.
Here is a working live demo: https://ts-bootcamp-blackjack-client.netlify.app/
Debug mode with mocked cards to test insurance and split: https://ts-bootcamp-blackjack-client.netlify.app/?debug=true
🌟 implementation of the game logic in the backend part;
🌟 player's actions: hit, stand, double down, split, surrender;
🌟 possibility to take the insurance;
🌟 score calculations for soft and hard hands;
🌟 opportunity to perform different bet actions: place a bet, undo, reset, rebet, place all.
- Typescript - a strongly typed programming language that builds on JavaScript.
- React - a JavaScript library for building user interfaces.
- MobX - state management tool.
- Babylon.js - a real time 3D engine using a JavaScript library for displaying 3D graphics in a web browser via HTML5.
- Node.js - an open-source and cross-platform JavaScript runtime environment.
- Socket.IO - a library that enables real-time, bidirectional and event-based communication between the browser and the server.
- React Testing Library - a very light-weight solution for testing React components.
- Jest - a JavaScript testing framework.
To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:
# Clone this repository
$ git clone https://github.com/nata-kostina/evolution-ts-bootcamp-blackjack.git
To start the server:
# Go into the repository server
$ cd server
# Install dependencies
$ npm install
# Run the server
$ npm run start
The server will be listening at http://localhost:3000/.
To start the client:
# Go into the repository client
$ cd client
# Install dependencies
$ npm install
# Run the app
$ npm run start
You will then be able to access the application at http://localhost:3001/.
As a player, firstly, you should choose the chips:
Click Bet to place a bet. If you want to edit your bet, choose the appropriate action:
When the cards are dealt, you may make a decision:
While splitting the cards, the arrow is indicating the hand which is currently active:
💡 implement game session storage on the backend
💡 put 3D model of the table
💡 add cameras
💡 implement multiplayer game
- Email: natakostina123@gmail.com
- LinkedIn: https://www.linkedin.com/in/nata-kostsina/
- Telegram: @kostinata