Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Revised CardList.Java
- import java.util.Arrays;
- import java.util.Random;
- public class CardList {
- private char[] cards;
- private String history = "";
- public CardList(int numberOfCard)
- {
- deck = new char[numberOfCard];
- for (int i = 0; i<numberOfCard;i++)
- {
- Random r = new Random();
- int val = r.nextInt(13)+1;
- deck[i] = cardValue(val);
- }
- history += Arrays.toString(cards) + "\n";
- }
- public char cardValue(int val)
- {
- switch (val)
- {
- case(1):
- return 'A';
- case(2):
- return '2';
- case(3):
- return '3';
- case(4):
- return '4';
- case(5):
- return '5';
- case(6):
- return '6';
- case(7):
- return '7';
- case(8):
- return '8';
- case(9):
- return '9';
- case(10):
- return '0';
- case(11):
- return 'J';
- case(12):
- return 'Q';
- case(13):
- return 'K';
- default:
- return ' ';
- }
- }
- public void flip()
- {
- char[] newCard = new char[cards.length];
- int count = 0;
- for (int i = cards.length-1; i >= 0; i--)
- {
- newCard[count] = cards[i];
- count++;
- }
- history += Arrays.toString(newCard) + ": Flip\n";
- deck = newCard;
- }
- public void shift()
- {
- char[] newCard = new char[cards.length];
- for (int i = 0; i < cards.length; i++)
- {
- if (i == 0)
- {
- newCard[i] = cards[cards.length-1];
- } else {
- newCard[i] = cards[i-1];
- }
- }
- history += Arrays.toString(newCard) + ": Shift\n";
- deck = newCard;
- }
- public void shuffle()
- {
- int[] shuffleOrder = shuffleIndex();
- char[] newCards = new char[cards.length];
- for (int i = 0; i<shuffleOrder.length;i++)
- {
- newCards[i] = cards[shuffleOrder[i]];
- }
- history += Arrays.toString(newCards) + ": Shuffle\n";
- deck = newCards;
- }
- public void change(int num)
- {
- char[] newCards = new char[cards.length];
- for (int i = 0; i<num; i++)
- {
- if (i < cards.length)
- {
- Random r = new Random();
- int val = r.nextInt(13)+1;
- newCards[i] = cardValue(val);
- }
- }
- //size = 7
- //change = 2 (0,1,2)
- //remain = 5 -> (3,4,5,6)
- for (int i = 0; i < cards.length-num; i++)
- {
- newCards[i+num] = cards[i+num];
- }
- history += Arrays.toString(newCards) + ": Change\n";
- deck = newCards;
- }
- private int[] shuffleIndex()
- {
- int[] shuffled = new int[cards.length];
- for (int i = 0; i < cards.length; i++)
- {
- shuffled[i] = -1;
- }
- for (int i = 0; i < cards.length; i++)
- {
- boolean done = false;
- Random r = new Random();
- while (!done)
- {
- boolean contains = false;
- int val = r.nextInt(cards.length);
- for (int j = 0; j < shuffled.length; j++)
- {
- if (shuffled[j] == val)
- {
- contains = true;
- }
- }
- if (!contains)
- {
- if (!(val == i))
- {
- shuffled[i] = val;
- done = true;
- break;
- }
- }
- }
- }
- return shuffled;
- }
- public String getHistory()
- {
- return history;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement