Uno (Parte 1)

Esta pregunta está inspirada en el popular juego de cartas Uno.

Escribe una función que reciba dos argumentos: (1) la mano actual de un jugador y (2) la carta que está boca arriba sobre la mesa (face). La función devolverá True si el jugador puede hacer una jugada, o False si tiene que robar una carta del mazo.

Un jugador puede hacer una jugada si se cumple al menos una de estas condiciones:

  • Tiene una carta del mismo color que la carta boca arriba (face).
  • Tiene una carta con el mismo número que la carta boca arriba (face).
can_play(["yellow 3", "yellow 7", "blue 8", "red 9", "red 2"], "red 1") ➞ True
# Esto se debe a que el jugador tiene dos cartas rojas y la carta boca arriba (face) es roja.

can_play(["yellow 3", "yellow 7"], "blue 7") ➞ True
# Esto se debe a que el jugador tiene un 7 y la carta boca arriba (face) es un 7.

Ejemplos

can_play(["yellow 3", "yellow 5", "red 8"], "red 2") ➞ True

can_play(["yellow 3", "yellow 5", "red 8"], "blue 5") ➞ True

can_play(["yellow 3", "blue 5", "red 8", "red 9"], "green 4") ➞ False

can_play(["yellow 3", "red 8"], "green 2") ➞ False

Notas

  • Devuelve False si el jugador no tiene ninguna carta en la mano (una lista vacía).
  • Este mazo no contiene cartas especiales ni comodines.