Uno (Parte 1)
Esta questão é inspirada no popular jogo de cartas Uno.
Escreva uma função que receba dois argumentos: (1) a mão atual de um jogador e (2) a carta virada para cima na mesa, indicada pelo parâmetro face. A função retornará true se o jogador puder fazer uma jogada, ou false se tiver que comprar uma carta do baralho.
Um jogador pode fazer uma jogada se uma destas condições for atendida:
- Ele tem uma carta da mesma cor que a carta virada para cima, indicada por face.
- Ele tem uma carta com o mesmo número que a carta virada para cima, indicada por face.
canPlay(["yellow 3", "yellow 7", "blue 8", "red 9", "red 2"], "red 1") => true
// Como o jogador tem duas cartas vermelhas e a carta virada para cima, face, é vermelha.
canPlay(["yellow 3", "yellow 7"], "blue 7") => true
// Como o jogador tem um 7 e a carta virada para cima, face, é um 7.Exemplos
canPlay(["yellow 3", "yellow 5", "red 8"], "red 2") ➞ true
canPlay(["yellow 3", "yellow 5", "red 8"], "blue 5") ➞ true
canPlay(["yellow 3", "blue 5", "red 8", "red 9"], "green 4") ➞ false
canPlay(["yellow 3", "red 8"], "green 2") ➞ falseObservações
- Retorne
falsese o jogador não tiver nenhuma carta na mão (um array vazio). - Este baralho não contém cartas especiais nem curingas.