Inspiration

We are two beginner programmers, and we set out on the ambitious quest to create a Blackjack AI that learns to play on its own with deep learning..... We thought this would be a good problem to tackle, because there is a "known" mathematically optimal strategy so we could easily evaluate the effectiveness of our AI. Turns out, creating a game, and implementing a deep learning algorithm in 24 hrs for two newbies was really complicated! But, we wound up with a functional blackjack game, and it's pretty fun!

What it does

You start with 1000 chips, and you can play blackjack! The only feature missing is the ability to Split a hand. We almost completed it, but this feature still has some bugs. Otherwise, you can try to beat the casino to your heart's content!

How we built it

We built this game from scratch, using only a single python library, Random. Otherwise, the game is completely written in base Python3.

Challenges we ran into

Our original goal was to create a deep learning algorithm to help us solve Blackjack. This proved quite difficult, as neither of us had any experience with deep learning! So, we instead switched focus to try to implement a Metaheuristic to help us solve (or approximately solve, in reasonable computational time) Blackjack. We wanted to implement a Evolutionary Algorithm, but decided we should start simple and simply implement a First-Accept Hill Climb. We got so, so, SO close to finishing our basic hill climb... but we got stumped by a bug in the last few hours of the Hackathon. Next time!

Accomplishments that we're proud of

We are proud to have built a full, working, (fun!) game within 24 hours! Especially for a team of two novice programmers.

What we learned

We learned a lot about github, and just how magical and easy it is to use (by and large) when sharing code. We also learned a LOT about writing programs in Python. We also learned that staying up all night coding is... tough. Next time we will get more sleep.

What's next for Blackjack

Finish all the features of the game (Split), then finish our basic hill-climb, to generate a locally-optimal game strategy. Then, once that is complete, implement a genetic algorithm, or a taboo search, or a Simulated Annealing metaheuristic to help us solve Blackjack. Once all of that is complete, we could start thinking about trying our hands at Deep Learning.

Built With

Share this project:

Updates