Java poker implementation
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FiveCardStud.java 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*
  2. * Copyright (c) Chris 'MD87' Smith, 2007. All rights reserved.
  3. *
  4. * This code may not be redistributed without prior permission from the
  5. * aforementioned copyright holder(s).
  6. */
  7. package com.md87.cardgame.games;
  8. import com.md87.cardgame.Deck;
  9. import com.md87.cardgame.Player;
  10. /**
  11. *
  12. * @author Chris
  13. */
  14. public class FiveCardStud extends AbstractGame {
  15. public FiveCardStud(final int numplayers, final int bigblind, final int ante,
  16. final int raises) {
  17. super(numplayers, bigblind, ante, raises);
  18. }
  19. /** {@inheritDoc} */
  20. public int holeCardCount() {
  21. return 5;
  22. }
  23. /** {@inheritDoc} */
  24. public Deck getCommunityCards() {
  25. return new Deck();
  26. }
  27. protected void startGame() {
  28. notifyNewGame();
  29. discardCards();
  30. shuffle();
  31. doAntes();
  32. doBlinds();
  33. dealCard(players.get((dealer + 1) % numplayers), false);
  34. dealCard(players.get((dealer + 1) % numplayers), true);
  35. waitForBets();
  36. if (countPlayers(true, true, false) > 1) {
  37. dealCard(players.get((dealer + 1) % numplayers), true);
  38. doBettingRound();
  39. }
  40. if (countPlayers(true, true, false) > 1) {
  41. dealCard(players.get((dealer + 1) % numplayers), true);
  42. doBettingRound();
  43. }
  44. if (countPlayers(true, true, false) > 1) {
  45. dealCard(players.get((dealer + 1) % numplayers), true);
  46. doBettingRound();
  47. }
  48. if (countPlayers(true, true, false) > 1) {
  49. doShowDown();
  50. } else {
  51. doWinner();
  52. }
  53. for (Player player : players) {
  54. if (player.getCash() <= 0) {
  55. player.setOut();
  56. }
  57. }
  58. notifyEndGame();
  59. doDealerAdvance();
  60. }
  61. protected boolean canDoBringIns() {
  62. return true;
  63. }
  64. }