Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. //Revised CardList.Java
  2.  
  3.  
  4. import java.util.Arrays;
  5. import java.util.Random;
  6.  
  7. public class CardList {
  8.  
  9. private char[] cards;
  10. private String history = "";
  11.  
  12. public CardList(int numberOfCard)
  13. {
  14. deck = new char[numberOfCard];
  15. for (int i = 0; i<numberOfCard;i++)
  16. {
  17. Random r = new Random();
  18. int val = r.nextInt(13)+1;
  19. deck[i] = cardValue(val);
  20. }
  21. history += Arrays.toString(cards) + "\n";
  22. }
  23.  
  24. public char cardValue(int val)
  25. {
  26. switch (val)
  27. {
  28. case(1):
  29. return 'A';
  30. case(2):
  31. return '2';
  32. case(3):
  33. return '3';
  34. case(4):
  35. return '4';
  36. case(5):
  37. return '5';
  38. case(6):
  39. return '6';
  40. case(7):
  41. return '7';
  42. case(8):
  43. return '8';
  44. case(9):
  45. return '9';
  46. case(10):
  47. return '0';
  48. case(11):
  49. return 'J';
  50. case(12):
  51. return 'Q';
  52. case(13):
  53. return 'K';
  54. default:
  55. return ' ';
  56. }
  57. }
  58.  
  59. public void flip()
  60. {
  61. char[] newCard = new char[cards.length];
  62.  
  63. int count = 0;
  64. for (int i = cards.length-1; i >= 0; i--)
  65. {
  66. newCard[count] = cards[i];
  67. count++;
  68. }
  69.  
  70. history += Arrays.toString(newCard) + ": Flip\n";
  71. deck = newCard;
  72. }
  73.  
  74.  
  75. public void shift()
  76. {
  77. char[] newCard = new char[cards.length];
  78.  
  79. for (int i = 0; i < cards.length; i++)
  80. {
  81. if (i == 0)
  82. {
  83. newCard[i] = cards[cards.length-1];
  84. } else {
  85. newCard[i] = cards[i-1];
  86. }
  87. }
  88.  
  89. history += Arrays.toString(newCard) + ": Shift\n";
  90. deck = newCard;
  91. }
  92.  
  93. public void shuffle()
  94. {
  95. int[] shuffleOrder = shuffleIndex();
  96. char[] newCards = new char[cards.length];
  97.  
  98. for (int i = 0; i<shuffleOrder.length;i++)
  99. {
  100. newCards[i] = cards[shuffleOrder[i]];
  101. }
  102.  
  103. history += Arrays.toString(newCards) + ": Shuffle\n";
  104. deck = newCards;
  105. }
  106.  
  107. public void change(int num)
  108. {
  109. char[] newCards = new char[cards.length];
  110. for (int i = 0; i<num; i++)
  111. {
  112. if (i < cards.length)
  113. {
  114. Random r = new Random();
  115. int val = r.nextInt(13)+1;
  116. newCards[i] = cardValue(val);
  117. }
  118. }
  119.  
  120. //size = 7
  121. //change = 2 (0,1,2)
  122. //remain = 5 -> (3,4,5,6)
  123. for (int i = 0; i < cards.length-num; i++)
  124. {
  125. newCards[i+num] = cards[i+num];
  126. }
  127.  
  128. history += Arrays.toString(newCards) + ": Change\n";
  129. deck = newCards;
  130. }
  131.  
  132. private int[] shuffleIndex()
  133. {
  134. int[] shuffled = new int[cards.length];
  135. for (int i = 0; i < cards.length; i++)
  136. {
  137. shuffled[i] = -1;
  138. }
  139.  
  140. for (int i = 0; i < cards.length; i++)
  141. {
  142. boolean done = false;
  143. Random r = new Random();
  144. while (!done)
  145. {
  146. boolean contains = false;
  147. int val = r.nextInt(cards.length);
  148. for (int j = 0; j < shuffled.length; j++)
  149. {
  150. if (shuffled[j] == val)
  151. {
  152. contains = true;
  153. }
  154. }
  155.  
  156. if (!contains)
  157. {
  158. if (!(val == i))
  159. {
  160. shuffled[i] = val;
  161. done = true;
  162. break;
  163. }
  164. }
  165. }
  166. }
  167. return shuffled;
  168. }
  169.  
  170. public String getHistory()
  171. {
  172. return history;
  173. }
  174.  
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement