63 lines
1.3 KiB
Java
63 lines
1.3 KiB
Java
import java.util.Arrays;
|
|
|
|
public class Shuffler {
|
|
|
|
private int seed;
|
|
|
|
private String[] deck = {
|
|
"AC", "AD", "AH", "AS",
|
|
"2C", "2D", "2H", "2S",
|
|
"3C", "3D", "3H", "3S",
|
|
"4C", "4D", "4H", "4S",
|
|
"5C", "5D", "5H", "5S",
|
|
"6C", "6D", "6H", "6S",
|
|
"7C", "7D", "7H", "7S",
|
|
"8C", "8D", "8H", "8S",
|
|
"9C", "9D", "9H", "9S",
|
|
"TC", "TD", "TH", "TS",
|
|
"JC", "JD", "JH", "JS",
|
|
"QC", "QD", "QH", "QS",
|
|
"KC", "KD", "KH", "KS",
|
|
};
|
|
|
|
private int random() {
|
|
seed = (214013 * seed + 2531011) & Integer.MAX_VALUE;
|
|
return seed >> 16;
|
|
}
|
|
|
|
//shuffled cards go to the end
|
|
private String[] getShuffledDeck() {
|
|
String[] deck = Arrays.copyOf(this.deck, this.deck.length);
|
|
for(int i = deck.length - 1; i > 0; i--) {
|
|
int r = random() % (i + 1);
|
|
String card = deck[r];
|
|
deck[r] = deck[i];
|
|
deck[i] = card;
|
|
}
|
|
return deck;
|
|
}
|
|
|
|
//deal from end first
|
|
public void dealGame(int seed) {
|
|
this.seed = seed;
|
|
String[] shuffledDeck = getShuffledDeck();
|
|
for(int count = 1, i = shuffledDeck.length - 1; i >= 0; count++, i--) {
|
|
System.out.print(shuffledDeck[i]);
|
|
if(count % 8 == 0) {
|
|
System.out.println();
|
|
} else {
|
|
System.out.print(" ");
|
|
}
|
|
}
|
|
System.out.println();
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
Shuffler s = new Shuffler();
|
|
s.dealGame(1);
|
|
System.out.println();
|
|
s.dealGame(617);
|
|
}
|
|
|
|
}
|