@vitya_brodov
Студент

Как из массива случайным образом выбрать элементы?

Здравствуйте!
Есть класс, в котором есть два массива (масть карты и значение)
Не могу сделать так, чтобы случайным образом выбрать масти и значение и ввести на экран
примерно так должно быть:
K ♠, 2 ♦, Q♥, A♣
Подскажите пожалуйста что я делаю не так?


Мой код:
public  class Card {

    private  String[] values  = {"2", "3", "4", "5", "6", "7", "8", "9", "10",
    "J", "Q", "K", "A"};

    private String[] suit = {"\u2660", "\u2665", "\u2666", "\u2663"};


    // метод для подбора масти
    public  void getSuit(){
        int randomSuit = new Random().nextInt(suit.length);
        switch (randomSuit){
            case 0: System.out.print("\u2660" );
            break;
            case 1: System.out.print("\u2665");
            break;
            case 2: System.out.print("\u2666");
break;
            case 3: System.out.print("\u2663");
break;
        }
    }

    // метод для подбора 4 случайных значений из массива values
    void getValues(){
        Random random = new Random();
        int numberOfElements = 4;
        for (int i = 0; i < numberOfElements; i++){
            int randomIndex = random.nextInt(values.length);
            System.out.print(randomIndex);
        }

    }

    void displayCard(){
        getSuit();
        getValues();
    }
}
  • Вопрос задан
  • 74 просмотра
Решения вопроса 2
xez
@xez Куратор тега Java
Senior Junior Roo
1. Массивы объявлены, но их значения не используются.
2. Четыре случайные числа вы получаете и их же просто выводите на экран, опять же не используя значения из массива.
3. Не ясна бизнес-логика класса, но понятно что он должен выводить, карту? Масть? Значение?
4. Вам нужен цикл, в котором будет получена одна масть и одно значение.

Ну и ответ на вопрос. Случайные элементы из массивы получаются примерно так:
private void getSuit() {
        int randomSuit = new Random().nextInt(suit.length);
        System.out.print(suit[randomSuit]);
    }
Ответ написан
Bavashi
@Bavashi
public class Card {

    private  String[] values  = {"2", "3", "4", "5", "6", "7", "8", "9", "10",
    "J", "Q", "K", "A"};

    private String[] suit = {"\u2660", "\u2665", "\u2666", "\u2663"};


    // метод для подбора масти
    public  void getSuit(){
        int randomSuit = new Random().nextInt(suit.length);
        System.out.print(suit[randomSuit]);
    }

    // метод для подбора 4 случайных значений из массива values
    void getValues(){
        Random random = new Random();
        int numberOfElements = 4;
        for (int i = 0; i < numberOfElements; i++){
            int randomIndex = random.nextInt(values.length);
            System.out.print(values[randomIndex]);
            getSuit();
            System.out.print(", ");
        }

    }

    void displayCard(){
        getValues();
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы