Извините, если это долго, но я пишу программу, которая рисует покерную руку (5 разных карт) из стандартной колоды 52. Единственная часть, с которой я все еще борется, - это получение разных карт. Код, который у меня сейчас, такой же простой, как и он, и работает по большей части, но иногда может рисовать одну и ту же карту более одного раза. Я хочу, чтобы карта была удалена из колоды после ее нарисования, и я застрял на этой части.Как получить различные разные случайные объекты в массиве?
Card[] hand = new Card[5];
for (int i = 0; i < 5; i += 1)
{
int index = rand.nextInt(52);
hand[i] = cards[index];
}
return hand;
Поскольку это массив, вы не можете действительно «удалить» его, поскольку индекс все еще существует; вместо этого, как только вы нарисуете его, попробуйте установить для этого индекса значение null. – SomeStudent
Вы можете получить вдохновение от http://stackoverflow.com/questions/8115722/generating-unique-random-numbers-in-java – SomeDude
, как упоминалось в @SomeStudent, разрешено ли вам использовать что-то еще, чем массив? Например, как ArrayList. Затем вы можете удалить объект, как ваш случайный выбор, а затем он не будет доступен для следующих ничьих (если вы это сделаете, не забудьте вызвать nextInt с переменной: rand.nextInt (numberOfCardsRemaining)). – alexbt