Skip to content

Train your blackjack skills by playing against the dealer and learning the expected values of each move you make. Solver trained using Q Learning and Dynamic Programming

Notifications You must be signed in to change notification settings

adammotts/Solvation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Solvation

Train your blackjack skills by playing against the dealer and learning the expected values of each move you make. Solved with closed form Dynamic Programming. Solver trained using Q Learning. Designed using the Curiously Recurring Template Pattern (CRTP), also known as F-bound Polymorphism. See video below for walk through.

Solvation.Walk.Through.mov

It's important to make the best move, even when you are in an unfavorable situation. Even if you make a suboptimal move and end up winning, or the optimal move and end up losing, it's important to refrain from being results-oriented and understand that these outcomes are results of variance, and that in the long term, the EV of the optimal move will always be realized.

Rules

  • Can only split once
  • Player blackjack pushes against dealer blackjack
  • Dealer stands on soft 17
  • No insurance (coming soon)
  • You can only get blackjack on initial deal, not splits
  • Player can double after split
  • Player cannot act after reaching 21, whether soft or hard

Developer Notes

Backend

  • Run dotnet run in /backend to start the backend at localhost:5256
  • If a change was made that affects the logic of player/dealer interactions or probabilities, the command will fail, and you can view changes in /Test/PlayerInteractions.txt or /Test/DealerInteractions.txt

Frontend

  • Run npm start in /frontend to start the frontend at localhost:3000
  • Install linting using npm install eslint --save-dev and npm install --save-dev prettier eslint-config-prettier eslint-plugin-prettier
  • Lint all files using npx eslint . --fix

About

Train your blackjack skills by playing against the dealer and learning the expected values of each move you make. Solver trained using Q Learning and Dynamic Programming

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published