Ошибка возникает в последней строке этого класса, где я пытаюсь напечатать номер первой карты в колоде, и я не совсем уверен, почему.
public class CardTricks {
public static void main (String[] args){
Deck newdeck = new Deck();
newdeck.construct();
newdeck.shuffle();
System.out.println(newdeck.deck[0].Number);
}
}
Этокласс для карты с основным назначением для карты атрибута набора и числового атрибута.
public class Card {
String Suite;
int Number;
}
Это класс колоды, функции этого класса используются для создания колоды и ее перемешивания.
public class Deck {
Card[] deck;
public void construct(){
deck = new Card[52];
String[] possuite = new String[4];
possuite[0] = "Hearts";
possuite[1] = "Diamonds";
possuite[2] = "Clubs";
possuite[3] = "Spades";
int x = 0;
while (x < 4){
String suite = possuite[x];
x++;
int number = 1;
System.out.println(suite);
while (number < 14){
deck[number-1] = new Card();
deck[number-1].Suite = suite;
deck[number-1].Number = number;
number++;
}
}
}
public void shuffle(){
int x;
int y;
int z = 0;
while (z < 10000){
x = (int)(Math.random()*52);
y = (int)(Math.random()*52);
Card a = deck[y];
Card b = deck[x];
deck[x] = a;
deck[y] = b;
z++;
}
}
}