- Below are the main steps to develop a Poker Game.
- Know the Poker Rules
- Design and documentation
- Software and hardware specifications
- Coding and implementation
- Regression testing
You need a collection of playing cards & displaying routine, a poker chip & a collection of a poker chip. The game startup code will create a stack of cards & for the player & table.
Poker comes with a pack of 52 cards. The hierarchy is Ace, King, Queen, Jack, 10, 9, 8….2, Ace. Ace can be higher or lower. Four suits spades, hearts, diamond & clubs.
Five of a kind : If anyone has more than 5 in one hand than the higher card wins.
Four of a kind: If someone has four cards of the same rank in that case that person wins
Full House: If someone has 3 cards of same rank & a pair wins.
Flush: If you have all your cards of the same suit such as for example Joker 8…2 & all of the spades that are called flush.
Straight: It’s basically a card in order. Ace can be higher (Ace-King- Queen) or low (5-4-3). In case of tie, the higher hand wins.
Three of a kind: Three cards of any rank, matched with two & not a pair, highest of three of a kind wins.
Two Pair: Two different kinds of pairs with a 5th card, the highest pair wins ties. If both hands have the same pair the 2ns pair wins.
Pair: One pair with 3 district cards, high card breaks ties.
High Card: If above-mentioned situations don’t apply than High card comes into the picture. If no one has a better pair than High card wins.
Betting: Get a dealt card. Players bet into the middle of the pot, at the end the highest hand wins the pot. Betting is typically clocked wise. Below are the options
500 MHz system with 128 MB free RAM, 16 MB free disk space
Intel Dual XEON, minimum 4 GB RAM with 200 MB free space
Additional space for writing game logs
RAID 1 minimum failover
Microsoft SQL Server 2005 Database server standard edition
Custom lobby, room/table design to suit the theme.
Full hand history
Integrated site links in the menu
Regular speed setting
Custom rake tables configurable the requirements
Choice of card back design for players
Full sound with control options
Choice of 2 or 4 color deck
Complete Animation for cards & chips
Lobby game filters
2,4,6,8,9,10 player ring game table configuration option
Tournament scheduler application software
Self-replicating ring tables
Admin tools for real-time monitoring & management for players
In games management tools for administrators
Fully resizable tables
Coding & implementation:
Steps to follow to code & implement Poker game:
- create a Deck of Cards used in a poker game.
- The standard deck of cards is used consisting of 52 cards made up of 4 different Suits Values from TWO to ACE.
- Once you have your Deck of cards set up, the next thing you need to do is be able to:
a. Shuffle your deck
b. Deal cards to Players
c. Need to create Players.
4. These players have two distinct cards from the deck.
5. Need to deal with cards & “community cards” to players. Also “betting” module as per requirement. yet.
6. Once two cards dealt with each player & five community cards, then find out which player has the best cards. To do this, you need to know & compare other player cards
a. Each players cards to be shown in the console window also community cards. Once the winner is disclosed, we need to declare as won and the cards of winner player. Chances of a tie are possible sometimes (i.e. two players may have same winning cards), then determine which of the winning hands has the higher value cards. Then the player having higher value cards wins (i.e. Player 1 having three queens, but Player 2 having three aces, aces > queens, therefore, Player 2 wins).
b. A draw occurs only if the value of the winner hand exactly the same (i.e. two players has three of similar with kings and identical ‘non-winning’ cards)… In this case two players each have the same winning cards, but different non-winning cards (i.e. Player1 having three aces a queen and a ten, Player2 has three aces, a queen and a four), then the player with the higher “kicker” card wins (i.e. Player1 wins because their Ten kicker beats Player2’s Four kickers).
Refer the sample code available here for – Poker Game
Game Regression Testing
Regression testing is a testing existing software application to make sure that a change or addition hasn’t been broken. To check that newly added codes are working error-free. It ensures that old codes are working fine with new codes. Whenever there is a requirement & modified code, a new feature is added in the software, defect fixing, performance fix, etc.
To do software maintenance which includes enhancement, error corrections, optimization & to delete existing feature. Its also called verification testing. Regression testing comes into place when time production code is changed.
- Areas exposed to a high number of users.
- Areas where frequent defects are there
- Highly complex functionality
- Areas that have undergone recent changes.
- Critical integration.
There are two types of test. Automatic & Manual testing. While automated testing takes less time, manpower & efforts. But automated testing can miss out what human can detect. Though automated testing is faster than manual testing. Writing & maintaining automated tests need a good amount of work to ensure they are always up to date.
SPM- The standard performance measure win rate, average number of big blinds won per hundred hands after correction for rake.
PRM- Performance Robustness Measurement defined as the average number of big blinds won per hand after correction for rake divided by the estimated standard error. The estimated standard error is the sample standard deviation of the rake corrected. Wining per hand divided by the square root of the number of hands.
Hands- The natural algorithm of the number of hands played. This variable is a proxy for the experience of players hence a possible indicator of skills.
Aggressiveness- The number of times a player led the batting as a proportion of the total number of times the player voluntarily wagered money. This factor is the other of the two simple playing style measure. Aggressive play is generally thought to yield higher expected performance than passive play. Because increasing the cost of playing at the right times can pressure other players to give up stronger cards or to wager more with weaker ones.
How to convert Poker game into app
Every App you publish must have a version code & a version name.
. Version code is an integer value that will not be visible to google play store users. It defaults to 1 & should be increased by one with every successive change whether it is a major change or a minor change.
It defaults to 1.0. A common structure is a decimal number which is increased by 1 for every major change & 0.1 for every minor change. For example, an initial version name is 1.0 which can be updated to 1.1 after a small change & 2.0 after a large change.
You will need to increase the version code & change the version name of your application when you upload a new version to the play store.
- Go to Home screen of the app you want to download the App Inventor.
- Click the dropdown labeled “package for phone”.
- Click Download to this computer.
Now you will get the save option. Once you have the .apk downloaded you are ready to begin the publishing process.
You can now go to Google Play Publishing Home & follow the steps to publish your app to Google Play.
The small blind is the most difficult position to master. When the action folds around you, you need to beat one player to win the dead money in the pot. Here is an opportunity you can take advantage. Betting provides the small blind a chance to win the pot without seeing a flop & reduces the average number of players in the hand. Betting range from the small blind needs to be tight as a continuing with only strong hands drastically minimizes the difficulty of playing out of position. Trying to paly a wide range of hands with such a positional disadvantage is a recipe for losing sessions. Despite our disadvantageous position, it is still important to balance our small blind 3-betting range with bluffs. If we 3-bet strictly value, our opponents can easily exploit us over-folding against our 3-bets.
Have you ever had a really good, aggressive player sitting on your left? It is an absolute nightmare, especially for blinds vs blind play. Their constant flatting, floating & 3-betting makes it tough to play anything but the strongest of hands.
By contrast, if you have the pleasure of playing blind vs blind vs a nit, you know great it feels to confidentially & consistently steal their blind every orbit.
You need to be mindful of tendencies like these for every player, particularly the one on your left & adjust your strategy to counter him/her.
Winning Odds in Poker
In Poker, the starting hand dictates to a great extent just how well you will do in the hand. Sure you might draw lucky, but then again the better your opening hand the greater your chances at winning. So learn to identify the best starting hands to maximize the odds in your favor.
If you play the same group of people frequently observes their habits so you can maximize your chances at winning. The key here is to identify trends or tells & how when they occur & when they don’t occur. For example, if you observe that when a player wins a hand he/she bets more, then you have more knowledge as to when to fold your hand or keep.