У моего класса CompSci есть задание, которое мы делаем, в котором мы должны распечатать колоду карт как двухмерный массив из 6 строк по 8 столбцов. Каждая «карта» - это в основном случайное число (1-12) и случайный выбор (Diamonds, Hearts, Spades, & Clubs); никакая карта не может быть повторена в любом месте массива. Вот мой код:Как распечатать случайный двумерный массив без дубликатов?
static Random random = new Random(1234567);
static int i = 1;
static int a;
static int d;
static List<String> suits = new LinkedList<String>();
static List<String> cards = new LinkedList<String>();
static int[][] grid = new int[6][8];
public static void main(String[]args)
{
suits.add("Diamonds");
suits.add("Clubs");
suits.add("Hearts");
suits.add("Spades");
cards.add("1");
cards.add("2");
cards.add("3");
cards.add("4");
cards.add("5");
cards.add("6");
cards.add("7");
cards.add("8");
cards.add("9");
cards.add("10");
cards.add("11");
cards.add("12");
drawGrid();
}
private static void drawGrid()
{
for(int b = 0; b < grid.length; b++)
{
for(int c = 0; c < grid[i].length; c++)
{
a = (int)(Math.floor(suits.size() * Math.random()));
d = (int)(Math.floor(suits.size() * Math.random()));
System.out.print(" |" + cards.get(d) + " " + suits.get(a) + "|");
Collections.shuffle(suits);
Collections.shuffle(cards);
}
System.out.println();
}
}
В чем проблема с текущим кодом? Это работает или нет? – SMA
Просто так вы знаете, что есть 13 каждого костюма. Ace -> 10 Jack Queen King –
Почему у вас есть статический объект «Random», а затем использовать 'Math.random()' всюду? –