← К задачам
Тяжело · +4ИгрыМассивы

UNO (Часть 1)

Эта задача основана на популярной карточной игре UNO.

Напишите функцию, которая принимает два аргумента: цвета и числа на карточках у игрока в руке hand и карточку, которая лежит на столе, face.

Функция должна вернуть True, если игроку есть, чем ходить, и False, если игроку придется брать карточку из колоды.

Правила UNO

Игрок может походить, если выполняется хотя бы одно условие:

  • на руках есть карточка одного цвета с карточкой, которая лежит на столе;
  • на руках есть карточка с таким же числом, как и на карточке, которая лежит на столе.
can_play(["желтый 3", "желтый 7", "синий 8", "красный 9", "красный 2"], "красный 1") ➞ True
# У игрока есть две красные карты, одной из них можно покрыть красную карточку на столе. 

can_play(["желтый 3", "желтый 7"], "синий7") ➞ True
# У игрока есть карточка с цифрой 7, ей можно покрыть синюю карточку с цифрой 7, которая лежит на столе. 

Примеры

can_play(["желтый 3", "желтый 5", "красный 8"], "красный 2") ➞ True

can_play(["желтый 3", "желтый 5", "красный 8"], "синий 5") ➞ True

can_play(["желтый 3", "синий 5", "red 8", "красный 9"], "зеленый 4") ➞ False

can_play(["желтый 3", "красный 8"], "зеленый 2") ➞ False

Примечание

  • Если у игрока вообще нет карт на руках, функция должна вернуть False.
  • В рамках этой задачи пользователю не попадаются специальные карточки (+2, +4, смена направления и т.д.)
def can_play(hand, face):
	
Для запуска тестов необходима авторизация.
Поддержать проект