Guest User

Untitled

a guest
Feb 19th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.57 KB | None | 0 0
  1. //Video Poker
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5. import java.util.Random;
  6. import java.util.Scanner;
  7.  
  8. public class VideoPoker {
  9.  
  10. int number;
  11. String suit,card;
  12. Scanner sc = new Scanner(System.in);
  13. Random rand = new Random();
  14.  
  15. public static void main(String args[]) {
  16.  
  17. int flag = 0, holdamt;
  18. String currentCard;
  19.  
  20. VideoPoker poker = new VideoPoker();
  21. Scanner s = new Scanner(System.in);
  22.  
  23. ArrayList<Integer> holdNumber = new ArrayList<Integer>(); //holding number
  24. ArrayList<Integer> holdSuit = new ArrayList<Integer>(); //holding suit
  25. ArrayList<String> suits = new ArrayList<String>(); //suit
  26. ArrayList<String> cards = new ArrayList<String>(); //full cards
  27. ArrayList<String> holds = new ArrayList<String>(); //hold
  28.  
  29. //declaring suits
  30. suits.add("♥");
  31. suits.add("♦");
  32. suits.add("♣");
  33. suits.add("♠");
  34. /*
  35. //checking process //remove multiline comment of this block for manual checking
  36. cards.add("A♥"); //fill your own cards
  37. cards.add("7♦"); //remember to multiline comment the 'while' block while manual checking
  38. cards.add("A♣");
  39. cards.add("A♦");
  40. cards.add("A♠");
  41. */
  42.  
  43. //create card space
  44. cards.add("");
  45. cards.add("");
  46. cards.add("");
  47. cards.add("");
  48. cards.add("");
  49.  
  50. //unique card generation
  51. while(flag < 5) { //multiline comment this block while manual checking
  52.  
  53. currentCard = poker.generateCard(suits);
  54. if(currentCard.equalsIgnoreCase(cards.get(0)) || currentCard.equalsIgnoreCase(cards.get(1)) || currentCard.equalsIgnoreCase(cards.get(2)) || currentCard.equalsIgnoreCase(cards.get(3)) || currentCard.equalsIgnoreCase(cards.get(4))) {
  55. } else {
  56. cards.set(flag, currentCard);
  57. flag++;
  58. }
  59. }
  60.  
  61. //printing unique cards
  62. System.out.print("Dispenced cards: ");
  63. for(int i = 0; i < 5;i++) {
  64. System.out.print(cards.get(i) + " ");
  65. }
  66.  
  67. //holding cards
  68. System.out.print("\n\nEnter the number of cards to hold: ");
  69. holdamt = s.nextInt();
  70. System.out.print("\n\nEnter the position of cards to hold: ");
  71. for(int i = 0; i < holdamt; i++) {
  72. holds.add(cards.get(s.nextInt() - 1));
  73. holdNumber.add(poker.getHoldNumber(holds, i));
  74. holdSuit.add(poker.getHoldSuit(holds, i));
  75. }
  76.  
  77. //generating remaining cards
  78. for(int i = holdamt; i < 5; i++) {
  79. holds.add("");
  80. }
  81.  
  82. while(holdamt < 5) {
  83. currentCard = poker.generateCard(suits);
  84. if(currentCard.equalsIgnoreCase(holds.get(0)) || currentCard.equalsIgnoreCase(holds.get(1)) || currentCard.equalsIgnoreCase(holds.get(2)) || currentCard.equalsIgnoreCase(holds.get(3)) || currentCard.equalsIgnoreCase(holds.get(4))) {
  85. } else {
  86. holds.set(holdamt, currentCard);
  87. holdNumber.add(poker.getHoldNumber(holds, holdamt));
  88. holdSuit.add(poker.getHoldSuit(holds, holdamt));
  89. holdamt++;
  90. }
  91. }
  92.  
  93. //print final card
  94. System.out.print("\n\nFinal Cards: ");
  95. for(int i = 0; i < holdamt; i++) {
  96. System.out.print(holds.get(i) + " ");
  97. }
  98.  
  99.  
  100. //result
  101. if(poker.isSuitSimilar(holdSuit)) {
  102.  
  103. if(poker.isRoyalFlush(holdNumber)) { //Royal Flush
  104. System.out.print("\n\n\nRoyal Flush!...");
  105. } else if(poker.isStraightFlush(holdNumber)) { //Straight Flush
  106. System.out.print("\n\n\nStraight Flush!...");
  107. } else { //Flush
  108. System.out.print("\n\n\nFlush!...");
  109. }
  110.  
  111. } else {
  112.  
  113. if(poker.isFourOfAKind(holdNumber, holdSuit)) { //Four of a Kind
  114. System.out.print("\n\n\nFour of a Kind!...");
  115. }
  116. }
  117.  
  118. }
  119.  
  120. public String generateCard(ArrayList suits) {
  121.  
  122. number = rand.nextInt(13) + 1;
  123. suit = (String) suits.get(rand.nextInt(4));
  124.  
  125. if(number == 11) {
  126. card = 'J' + suit;
  127. } else if(number == 12) {
  128. card = 'Q' + suit;
  129. } else if(number == 13) {
  130. card = 'K' + suit;
  131. } else if(number == 1) {
  132. card = 'A' + suit;
  133. } else {
  134. card = number + suit;
  135. }
  136.  
  137. return card;
  138.  
  139. }
  140.  
  141. public int getHoldNumber(ArrayList holds, int i) {
  142.  
  143. int number = 0,in;
  144. in = i;
  145. if(((String) holds.get(in)).charAt(0) == 'K') {
  146. number = 13;
  147. } else if(((String) holds.get(in)).charAt(0) == 'Q') {
  148. number = 12;
  149. } else if(((String) holds.get(in)).charAt(0) == 'J') {
  150. number = 11;
  151. } else if(((String) holds.get(in)).charAt(0) == 'A') {
  152. number = 1;
  153. } else if(((String) holds.get(in)).charAt(0) == '1') {
  154. number = 10;
  155. } else {
  156. number = ((String) holds.get(in)).charAt(0) - 48;
  157. }
  158.  
  159. return number;
  160.  
  161. }
  162.  
  163. public int getHoldSuit(ArrayList holds, int i) {
  164.  
  165. int suit = 0;
  166. if(((String) holds.get(i)).charAt(1) == '♥') {
  167. suit = 1;
  168. } else if(((String) holds.get(i)).charAt(1) == '♦') {
  169. suit = 2;
  170. } else if(((String) holds.get(i)).charAt(1) == '♣') {
  171. suit = 3;
  172. } else if(((String) holds.get(i)).charAt(1) == '♠') {
  173. suit = 4;
  174. } else if(((String) holds.get(i)).charAt(1) == '0') {
  175. if(((String) holds.get(i)).charAt(2) == '♥') {
  176. suit = 1;
  177. } else if(((String) holds.get(i)).charAt(2) == '♦') {
  178. suit = 2;
  179. } else if(((String) holds.get(i)).charAt(2) == '♣') {
  180. suit = 3;
  181. } else if(((String) holds.get(i)).charAt(2) == '♠') {
  182. suit = 4;
  183. }
  184. }
  185.  
  186. return suit;
  187.  
  188. }
  189.  
  190. public boolean isSuitSimilar(ArrayList holdSuit) {
  191.  
  192. boolean isSimilar = false;
  193. if(holdSuit.get(0) == holdSuit.get(1) && holdSuit.get(1) == holdSuit.get(2) && holdSuit.get(2) == holdSuit.get(3) ) {
  194. isSimilar = true;
  195. }
  196.  
  197. return isSimilar;
  198. }
  199.  
  200. public boolean isRoyalFlush(ArrayList holdNumber) {
  201.  
  202. boolean isRoyal = false;
  203.  
  204. //reverse sorting
  205. Collections.sort(holdNumber, Collections.reverseOrder());
  206.  
  207. if((int) holdNumber.get(0) == 13 && (int) holdNumber.get(1) == 12 && (int) holdNumber.get(2) == 11 && (int) holdNumber.get(3) == 10 && (int) holdNumber.get(4) == 1 ) {
  208. isRoyal = true;
  209. }
  210.  
  211. return isRoyal;
  212. }
  213.  
  214. public boolean isStraightFlush(ArrayList holdNumber) {
  215.  
  216. boolean isStraight = false;
  217.  
  218. //reverse sorting
  219. Collections.sort(holdNumber, Collections.reverseOrder());
  220.  
  221. if((int) holdNumber.get(0) == (int) holdNumber.get(1) + 1 && (int) holdNumber.get(1) == (int) holdNumber.get(2) + 1 && (int) holdNumber.get(2) == (int) holdNumber.get(3) + 1 && (int) holdNumber.get(3) == (int) holdNumber.get(4) + 1) {
  222. isStraight = true;
  223. }
  224.  
  225. return isStraight;
  226. }
  227.  
  228. public boolean isFourOfAKind(ArrayList holdNumber, ArrayList holdSuit) {
  229.  
  230. boolean isTrue = false;
  231.  
  232. if(holdNumber.get(0) == holdNumber.get(1) && holdNumber.get(1) == holdNumber.get(2) && holdNumber.get(2) == holdNumber.get(3) && holdSuit.get(0) != holdSuit.get(1) && holdSuit.get(1) != holdSuit.get(2) && holdSuit.get(2) != holdSuit.get(3)) {
  233. isTrue = true;
  234. } else if(holdNumber.get(0) == holdNumber.get(1) && holdNumber.get(1) == holdNumber.get(2) && holdNumber.get(2) == holdNumber.get(4) && holdSuit.get(0) != holdSuit.get(1) && holdSuit.get(1) != holdSuit.get(2) && holdSuit.get(2) != holdSuit.get(4)) {
  235. isTrue = true;
  236. } else if(holdNumber.get(0) == holdNumber.get(1) && holdNumber.get(1) == holdNumber.get(3) && holdNumber.get(3) == holdNumber.get(4) && holdSuit.get(0) != holdSuit.get(1) && holdSuit.get(1) != holdSuit.get(3) && holdSuit.get(3) != holdSuit.get(4)) {
  237. isTrue = true;
  238. } else if(holdNumber.get(0) == holdNumber.get(2) && holdNumber.get(2) == holdNumber.get(3) && holdNumber.get(3) == holdNumber.get(4) && holdSuit.get(0) != holdSuit.get(2) && holdSuit.get(2) != holdSuit.get(3) && holdSuit.get(3) != holdSuit.get(4)) {
  239. isTrue = true;
  240. } else if(holdNumber.get(1) == holdNumber.get(2) && holdNumber.get(2) == holdNumber.get(3) && holdNumber.get(3) == holdNumber.get(4) && holdSuit.get(1) != holdSuit.get(2) && holdSuit.get(2) != holdSuit.get(3) && holdSuit.get(3) != holdSuit.get(4)) {
  241. isTrue = true;
  242. }
  243.  
  244. return isTrue;
  245.  
  246. }
  247.  
  248. }
Add Comment
Please, Sign In to add comment