Back to Portfolio

Texas Hold'em Trainer Hackathon

The gameplay screen with the wallets, bet amounts, active player (yellow), dealer chip, cards and move options all displayed!

Texas Hold'em Trainer Hackathon main image

Launch screen letting you start a new save or load a save (left), selecting how many NPCs to play against (right)

Texas Hold'em Trainer Hackathon screenshot 1

A standard game round where NPCs are raising, calling and folding with the player based on the game state

Texas Hold'em Trainer Hackathon screenshot 2

The player gets a straight, and game figures out (and is printed to the console) the best 5 card hands each player has along with their hand name, and shows who wins!

Texas Hold'em Trainer Hackathon screenshot 3

Sped-up gameplay loop showing the winning and the dealer chip being passed around

Texas Hold'em Trainer Hackathon screenshot 4

Interior data structure of the players (cyclic linked list), where each node has a "Player" pointer and a "next" pointer pointing to the next node at the table

Texas Hold'em Trainer Hackathon screenshot 5

After the "Active" Player makes a move, the "Active" pointer is moved to the node's "next" pointer

Texas Hold'em Trainer Hackathon screenshot 6

Simulating the next move being made...

Texas Hold'em Trainer Hackathon screenshot 7

...until the "Active" pointer is back at "Under the Gun" and the game knows the round of betting is complete!

Texas Hold'em Trainer Hackathon screenshot 8

A Java-based poker simulation game developed during a 30-hour hackathon led by me with 3 other groupmates. This trainer programs allows users to play against intelligent NPCs while analyzing game states and outcomes. Each round of Texas Hold'em is handled by a custom engine that models realistic poker behavior, including betting, raising, folding, and hand evaluation. The program uses a cyclic linked list to represent players at the table, supporting circular rotation of turns and custom pointer logic:

  • dealer: rotates after each round

  • underGun: tracks the first player to act in each betting phase

  • active: tracks whose turn it is during the round

Each action updates the internal structure, and once the betting round completes, the game calculates the best 5-card hand for each remaining player and determines the winner. A launch menu allows players to start new games, load saves, and choose the number of NPC opponents.

Console text provides real-time breakdowns of hand rankings, decision flow, and internal structure transitions—offering players insights into poker mechanics and the data structures that drive them.

Sep 23 - Sep 24, 2023

Technologies Used:

Java Core:

Used for game logic, structure implementation, and user interaction through Java Swing GUI.

Java Swing GUI:

Built with JFrame, JPanel, JButton, JLabel, JTextArea + JScrollPane, and JOptionPane for real-time interaction and visualization.

Data Structures:

Implements a cyclic linked list to manage player order with rotating pointers: dealer, underGun, and active.

Hackathon Rapid Prototyping:

Designed and built within 30 hours, emphasizing quick iteration, console feedback, and robust structure-first design.