UNO игра в выпуске ранних стадий Java - PullRequest
0 голосов
/ 11 ноября 2019

Как часть моего задания на этой неделе (компьютерное программирование I), я должен работать над игрой UNO, над которой мы работаем на протяжении всего класса. Игра будет вестись между ТОЛЬКО компьютерами, поэтому не нужно вводить с клавиатуры, кроме случайного ввода, чтобы игра продолжалась (вроде скучно, правда?). На этой неделе мы должны сделать несколько классов для каждой части игры (например, класс CARD и класс HAND). Я смог это сделать, но вторая часть моего задания - иметь программу для водителя, которая: «создает колоду карт UNO, раздает карты двум или более игрокам и отображает содержимое руки каждого игрока». - застрял я. Я пробовал несколько методов печати, которые я знаю, с моими невероятно ограниченными навыками, но я ничего не придумал. Есть идеи?

Вот код:

public class CARD
{
    public String color;
    public int value;
    private Random random;
    private String face;

    public CARD(int v, String c)
    {
        value = v;
        color = c; 
    }

public CARD()
{
    random = new Random();
    value = random.nextInt(28); // 108 cards in a deck and it Can be reduced to 27 which ignores colors
    // Assigns value
    if (value >= 14) // Some cards show up more often (numbers)
        value -= 14;
    // Assigns color
    random = new Random();
    switch(random.nextInt(4) ) //learned about switches here: https://www.youtube.com/watch?v=RVRPmeccFT0
    {
        case 0: color = "Red"; 
            break;
        case 1: color = "Green"; 
            break;
        case 2: color = "Blue"; 
            break;
        case 3: color = "Yellow"; 
            break;
    }
    // If the card is wild 
    if (value >= 13)
        color = "none";
    }
}

1 Ответ

0 голосов
/ 11 ноября 2019

Исходя из предоставленного вами кода, я бы порекомендовал использовать цикл for для создания карточек:

public class DriverProgram {
    static final int players = 2, numberOfCards = 7;
    public static void main (String[] args){
         java.util.ArrayList<CARD> c = new java.util.ArrayList<CARD>();
         for(int i=0; i<numberOfCards; i++){
             c.add(new CARD()); // The previous example used a fixed size array
         } // Arrays.fill() would make all the cards identical
         System.out.println(c); 
         // Note: ArrayLists print themselves nicely with their toString method.
         // If you'd like, you could do String.replace("[", "").replace... to remove
         // certain characters.
    }
}

Как напечатать мой Java-объект, не получая "SomeType @ 2f92e0f4"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...