Найти самую высокую пару костей в списке - PullRequest
0 голосов
/ 29 января 2019

Я пишу простое приложение на Yatzy с использованием Python, и я немного застрял в поиске лучшей пары костей.Вот схема функции:

Input: list containing five dice.
Output: highest sum of two dice with the same number. If no pairs found, then -1.

Каков оптимальный способ написания этой функции с использованием Python?Как я могу увеличить его, скажем, до двух пар или фулл-хауса?

Заранее спасибо.

1 Ответ

0 голосов
/ 29 января 2019

Вот решение Python3, которое использует модуль коллекций.

from collections import Counter
from random import randint
roll = [randint(1, 6) for x in range(5)]

result = max([x for x, cnt in Counter(roll).items() if cnt==2] or [-1])

print(roll, '->', result)

Кстати, здесь есть крайний случай (4 вида = 2 пары), в зависимости от желаемого результата, который вы можете пожелатьсравнивать как cnt > 1 вместо

...