public class DeckOfCards {
private static String[] suits = {"S", "H", "D", "C"};
private static String[] ranks = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
public static void main(String[] args) {
int[] deck = new int[52];
deal(deck);
}
//Method for shuffling cards
public static void shuffle(int[]deck) {
//Initialize cards
for (int i = 0; i < deck.length; i++)
deck[i] = i;
//Shuffle the cards for 2-51
for (int i = 51; i > 2; i--) {
//Generate and index randomly
int index = (int)(Math.random() * deck.length);
int temp = deck[i];
deck [i] = deck[index];
deck[index] = temp;
}
//Shuffle card for 0-1
for (int i = 1; i < 2; i++) {
int index = 0 + (int)(Math.random() * 2);
int temp = deck[i];
deck [i] = deck[index];
deck[index] = temp;
}
}
//Deal the cards
public static void deal(int[] deck) {
int[] handOne = new int[13];
int[] handTwo = new int[13];
int[] handThree = new int[13];
int[] handFour = new int[13];
shuffle(deck);
for (int i = 0; i < deck.length; i++) {
//System.out.print(deck[i] + " \n" );
handOne[i] = deck[i];
handTwo[i] = deck[i] + 1;
handThree[i] = deck[i + 2];
handFour[i] = deck[i + 3];
System.out.print(handOne[i] + " " );
System.out.print(handTwo[i] + " " );
// System.out.print(handThree[i] + " " );
// System.out.print(handFour[i] + " " );
//String suit = suits[deck[i] / 13];
//String rank = ranks[deck[i] % 13];
}
}
}
This is the error I'm getting, and also the cards don't seem to be shuffled anymore.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 13
at DeckOfCards.deal(DeckOfCards.java:54)
at DeckOfCards.main(DeckOfCards.java:11)
This post has been edited by alex71385: 09 October 2012 - 11:17 AM

New Topic/Question
Reply



MultiQuote






|