Inspiration
We were inspired by a class taught at MIT about Poker Theory. The class inspired some of the strategies we used today.
What it does
It's a poker bot that splits its functionality into two parts: a hand strength evaluator and a decision tree. The hand strength evaluator computes an equity representing the relative strength of our hands, represented [0, 1). We compute this using a Monte Carlo simulation of simulated game states. The decision tree is structured to evaluate this hand strength in a number of categories: very strong, strong, medium, and weak, for both pre- and post-flop. In each of these categories, we evaluate actions based on the odds (risk/reward tradeoff) of the pot.
How we built it
Going in, we knew we needed a proper evaluation and decision tree strategy. Over the course of the day, we refined multiple versions of both, testing and incrementing code, and had strategies play each other for testing.
Challenges we ran into
Our first implementation was to use a bandit strategy, where the bot would select a random strategy to play 20% of the time, and would choose the highest performing bot otherwise. Given the amount of information present in this poker version, this strategy wasn't very effective. However, this guided us into the correct direction.
Accomplishments that we're proud of
We're very proud of the fact that we built a comprehensive testing suite, which helped us evaluate quickly and rigorously tune our code.
What we learned
We learned how to develop an iterative process such that we were making quick progress to an optimal solution. Utilizing manpower is important given the time constraint of the competition, and we learned how to distribute the work so that the team worked most effectively.
What's next for John Street Pokerbot
Domination of the Las Vegas Strip.
Log in or sign up for Devpost to join the conversation.