Подсчет количества костюмов в руке - PullRequest
0 голосов
/ 13 октября 2019

это вопрос задания, и я пытался искать в Интернете, но, похоже, никто другой не делает этого. Учитывая следующее, каждая строка представляет карточную руку:

SQ S7 S4 HT H9 DQ D7 D6 CT CA C8 C7 C2
ST SJ S2 HK HJ HA H7 H5 H4 H3 DJ D2 C6
SK S8 S6 S5 H2 DK DA D9 D8 D4 CQ C9 C3
SA S9 S3 HQ H8 H6 DT D5 D3 CK CJ C5 C4

Мне нужно посчитать количество пиков, сердец, алмазов и булав в каждом ряду. В моей программе у меня есть класс перечисления Suit and Rank, объект Card, созданный и сохраненный в ArrayList. Конечный результат должен выглядеть следующим образом:

SQ S7 S4 HT H9 DQ D7 D6 CT CA C8 C7 C2
3 2 3 5
ST SJ S2 HK HJ HA H7 H5 H4 H3 DJ D2 C6
3 7 2 1
SK S8 S6 S5 H2 DK DA D9 D8 D4 CQ C9 C3
4 1 5 3
SA S9 S3 HQ H8 H6 DT D5 D3 CK CJ C5 C4
3 3 3 4

Задание хочет, чтобы мы исследовали использование класса MyInt для поиска (или, я полагаю, хранения) числа:

class MyInt
{
   private int n;

   public int getInt()
   {
       return n;
   }

   public void setInt(int n)
   {
       this.n = n;
   }
}

Метод handInfo находится в основном методе, и я полагаю, что я должен заполнить его здесь, чтобы подсчитать количество мастей в ряду:

private static void handInfo(String [] aHand, MyInt s, MyInt h, MyInt d, MyInt c)
{
    // count of suit per row here?
}

Если я подумаю об этом, вполне вероятно, что мне нужно посчитатьАзбука каждой карточки для подсчета количества мастей. Я понятия не имею, с чего начать. Меня также смущает назначение массива aHand.

Буду признателен за некоторые советы или помощь.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

Вам дан массив строк, и вам нужно проверить, с какой буквы начинается каждая строка, и обновить соответствующие MyInt.

Каждая строка может начинаться с S для лопаты, Cдля клуба, D для алмаза или H для сердца.

private static void handInfo(String [] hand, MyInt spadeCount, MyInt heartCount, MyInt diamondCount, MyInt clubCount)
{
    // count of suit per row here?
}

Вы должны написать код внутри вышеупомянутого метода, который заполняет эту информацию.

Вы можете проверить каждыйкарту в hand с помощью цикла:

for (String card: hand) {
    ... // Do something with the card
}

В месте, где говорится сделать что-то , вы должны проверить, с какой буквы начинается карта, а затем получитьколичество для соответствующего MyInt и обновите его.

Например, , если карта начинается с S, вы должны получить счет от MyInt spadeCount и обновить егочисло, добавив 1 к нему.

int countSpade = spadeCount.getInt();
countSpade += 1;
spadeCount.setInt(countSpade);
0 голосов
/ 13 октября 2019

SQ S7 S4 HT H9 DQ D7 D6 CT CA C8 C7 C2

Мне нужно сосчитать количество пик, сердец, алмазов и булав в каждом ряду.

Так что вам просто нужно узнать количество 'S', 'H', 'D' и 'C' в данной строке.

Простым способом было бы просто объединить все символы встрока. Если это «S», увеличьте число пик, если это «H», увеличьте количество сердца и т. Д.

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