Как вы обработку костюмов на палубе? Если вы представляете карты как простые ints, то я предполагаю, что действительные значения карт равны 0 - 51. Если это так, то, я думаю, карты 0 - 12 - все один костюм, 13 - 25 - другой, и т. Д. Присвоение костюмов может быть произвольным, пока вам не понадобятся очки, которые учитывают его.
С помощью этой схемы вы можете обнаружить пару так же, как и samoz, с модификацией операции сравнения. Вы должны убедиться, что карты являются сравнимыми по модулю 13. Просто измените строку
if(hand[i] == hand[j])
в
if((hand[i] % 13) == (hand[j] % 13))
модуля оператора (%) возвращает остаток после деления, так
0 % 13 = 0
1 % 13 = 1
2 % 13 = 2
...
12 % 13 = 12
13 % 13 = 0
14 % 14 = 1
и т. Д. Это позволяет вам рассказать, когда последовательность обтекает определенное значение, модуль в этом случае 13, поскольку в каждом из четырех костюмов имеется 13 разных карт.
Скажем, например, что в вашей колоде из 52 карт с номером 0 - 51, что карты 0 - 12 представляют туз через король клубов, карты 13-25 представляют собой сердца, 26 - 38 представляют собой пики и 39 - 51 представляют собой бриллианты.
Теперь вы нанесли руку: 0, 12, 32, 21, 47
Принимая остаток модулю 13 каждой карты вы остаетесь с 0, 12, 6, 8, 8
Вы можете видеть, что две последние карты - это пара, 9 сердец и 9 бриллиантов (помните, что нумерация начинается с 0, так что она отключена одним).
О, хороший звонок. Я отредактирую. – samoz
Ударьте меня тоже :-D – overstood
Однако это не учитывает тройки и четыре типа, а также несколько пар. – Smashery