This program is based on a prior version written for UNIX (and Curses) by Johann Ruegg. The Windows interface was implemented by Tony Andrews. The program is designed to simulate the kind of action you'd find in a typical casino game. The eight players may be configured to be either human or "house" players supplied by the program. The game may be played conveniently with either keyboard or mouse control. A number of options are supported to facilitate practice play and the structure of the game can be controlled somewhat, although the bet amounts are fixed. A house rake of 10% (up to a $3 cap) is taken from each pot, by default. (In a live game, you're playing against the rake as well as the other players.) The rake percentage and cap are configurable.
The program is freely distributable. Send comments or bug reports to:
aandrews@nyx.cs.du.edu
or
hruegg@nyx.cs.du.edu
Installation
The program uses the Borland custom control library (bwcc.dll) which should be installed somewhere in your path, or in your windows system directory, or in the directory where you installed "7crdstud.exe". If you wish, you can create a program item for the game in the program manager. If you use the "Save Settings" command, a file named "poker.ini" will be created in your Windows directory. The options are restored each time the program is started.
Rules of the Game
To start the hand, each player is dealt two cards face down and one card face up. The player with the lowest card showing makes a forced bet to start the action. Players may then call, raise, or fold. A maximum of three raises are permitted in each round of betting. When all players have either folded or contributed equal amounts to the pot, another card is dealt face up to each active player. Betting begins with the player showing the best hand. A total of four cards are dealt face up with a round of betting after each. A seventh and final card is dealt face down and the final round of betting begins.
If, on any round, a bet is made and there are no callers, the player making the bet wins the pot. If multiple players remain through the final round of betting, the pot is won by the player who can make the best five-card hand using their seven cards. The order of the hands is as follows:
no pairs
one pair
two pair
three of a kind
straight (ace may be high or low)
flush (five of the same suit)
full house
four of a kind
straight flush
If a showdown is reached, the computer indicates the five cards used from each hand by displaying the two unused cards slightly lower on the screen.
The House Players
The characteristics of the house players are determined, in part, randomly. When a player is initialized, their general optimism related to the game is determined. Over the course of a game you should be able to detect different styles of play. This helps to simulate a live game better. It's up to you to find the "loose" players and exploit their weaknesses.
The house players are configured to be slightly loose on the average. We could make the game harder to beat by keeping the house players tighter, but we'd be creating just the kind of table we try to avoid in real life.
Single and Multi-Player Use
By default, the program begins with one human and seven "house" players. You may change the name of any player at any time and you may change players between human and computer control. If you wish to play the game with two or more people seated in front of the computer, you can shield the screen from view while looking at your hole cards. When there are multiple human players, the program will only show the hole cards for the player whose turn it is to act. If you are playing alone you can move the cursor over your cards and press the left mouse button (or press the space bar) to see your down cards at any time.
Playing the Game
The program is designed for convenient play using either the keyboard or the mouse. The following two sections summarize the features of each.
Using the Keyboard
All player actions may be made by pressing a single key (upper or lower case is accepted). To deal a hand, press 'd'. To pass, bet, raise, or fold, press 'p', 'b', 'r', or 'f'. You can view your hole cards by pressing the space bar. If there is only one human player, you can press the space bar to see your cards at any time during the hand. If there are multiple human players, you must wait until it's your turn. Pressing the space bar again conceals your cards as will any other action you take. Type-ahead is supported. If you press one of the "action" keys, the action will be applied to the next human player's turn.
Using the Mouse
The game may also be played entirely with the mouse without having to move to the menu bar. To deal a hand, press the right mouse button. To view your hole cards, move the cursor to the area where your cards are displayed and press the left mouse button. The cards will remain visible for as long as you hold the button down. When it is your turn to bet, you can display a pop-up menu with your current options by moving the cursor to the text lines just above or below your cards and pressing the left mouse button. Select an option and release the button to proceed.
Menu Commands
File Menu
Save Settings
Saves game options (but not the player configuration) to "poker.ini".
Exit
You may exit the game at any time.
Actions
The actions related to betting will be enabled or disabled depending on what is legal for you to do. You can only call or fold after a bet has been made; no more than three raises are allowed, etc. Your play is further restricted if your bankroll goes negative. You are allowed to finish the hand, but you can only pass, call, or fold. No bets or raises are permitted.
Deal
Deals a new hand. You must complete each hand before dealing another.
Pass
(i.e. Check) Make no bet.
Bet
Bet the appropriate amount for the current round.
Raise
Three raises are permitted in each round.
Fold
Fold your hand. Play continues for the other players.
Show Hole Cards
Examine your down cards.
Game
Restart Game
Reset all player bankrolls.
Structure
Configure the betting structure.
Players
Set player names and program vs. human control.
Options
Configure various options related to the program.
Structure
The "structure" dialog box allows you to set the amount of the forced bet and the other betting rounds. The first two rounds use a fixed bet which is doubled for the final three rounds of betting. The rake is set to 10% with a cap of 3, by default. These figures may also be changed in this dialog box. All of these options are saved by the "Save Settings" command and restored each time the program starts.
Players
In the "players" dialog box, use the scroll bar to select a seat. You may change the name of the player and how they are controlled. The player configuration is not saved.
Options
The "options" dialog box controls several other game features. The initial bankroll for each player may be set. When a computer player goes broke, the seat is filled with a new house player, by default. You may also choose to leave the seat empty, allowing a crude sort of tournament play. (In a true tournament, the bet amounts would increase over time.) When a human player goes broke, they have the option of either pulling out more money or quitting. If the last human player in the game goes broke and decides to quit, the program exits.
Several options are provided for the terminally curious (and for debugging). You can instruct the program to display all of the cards it deals; either after the hand is completed or at all times. You can also set an option that allows you to peek at everyone's hole cards using the mouse.
By default, the program sorts everyone's hole cards before a showdown. This helps simulate live play since many players will shuffle their hole cards at the end of a hand. This option can be turned off here.
There are three delays that help regulate the pace of the game. Adjust these until the flow of the game is feels comfortable. One delay determines that rate at which the cards are dealt. The second delay determines the amount of time between the start of a player's turn and the time at which they announce their action. If you set this to zero, the program will announce each house player's action as soon as it determines what that will be. The final delay sets the time between a player's action and the start of the next player's turn. This gives you time to absorb a player's move before the action moves on.
All of the settings in this dialog box are retained when you use the "Save Settings" command.
Future Plans
Look for other poker games in the future. We already have UNIX versions of Texas Holdem, Omaha Hi-Lo Split, and Seven Card Stud Hi-Lo. These will be ported to Windows as time allows. The following features are being considered for future versions of this program:
Better support for tournament play
Online help
More configurable house players
If you have other suggestions or complaints, let us know.