Briscola! (Parte I)

Briscola é um jogo de cartas italiano, jogado com um baralho de 40 cartas que tem quatro naipes (copas, ouros, paus e espadas), portanto há dez cartas por naipe: o ás, as cartas numeradas de 2 a 7 e as três cartas com figura (valete, dama e rei). Neste desafio, a notação usada para as cartas é uma string contendo o valor da carta (com a inicial maiúscula para as cartas com figura) e a inicial minúscula dos naipes, como nos exemplos abaixo:

Ah = Ace of Hearts
2s = Two of Spades
Jc = Jack of Clubs
Kd = King of Diamonds

O número total de pontos disponíveis é 120. Ao contar os pontos obtidos no final de uma partida, as cartas têm os seguintes valores:

  • Ás: 11 pontos
  • Três: 10 pontos
  • Rei: 4 pontos
  • Dama: 3 pontos
  • Valete: 2 pontos
  • Qualquer outra carta não tem valor (0 pontos).

Cada partida de Briscola é composta por duas rodadas. Depois da primeira rodada, os pontos são contados tanto para você quanto para o seu oponente, e essas pontuações (mais 1) definirão o objetivo para vencer a partida; depois disso, a segunda rodada é jogada.

- First Round -
Player score: 80
Opponent score: 40
- Second Round -
Player wins scoring 41 points or more.
Opponent wins scoring 81 points or more.

Se, depois da segunda rodada, a pontuação total for igual para você e para o seu oponente, haverá um empate.

- First Round -
Player score: 80
Opponent score: 40
- Second Round -
Player score: 40
Opponent score: 80

It's a tie! 120 points for both players.

Você recebe duas listas como parâmetros:

  • my_deck1 contém as cartas que você coletou durante a primeira rodada.
  • my_deck2 contém as cartas que você coletou durante a segunda rodada.

Você deve implementar uma função que retorne:

  • "You Win!" se, na segunda rodada, você totalizar uma pontuação maior que a pontuação do seu oponente na primeira rodada.
  • "You Lose!" se, na segunda rodada, você totalizar uma pontuação menor que a pontuação do seu oponente na primeira rodada.
  • "Draw!" se, depois da segunda rodada, os pontos totais forem iguais para você e para o seu oponente.

Exemplos

briscola_score(
  ["3c", "3s", "Qd", "Jh", "5d", "Jc", "6d", "Ad", "Js", "Qc"],
  ["Jd", "Kd", "4c", "6s", "Ks", "5c", "3d", "As", "Jh", "6h"]
) ➞ "You Lose!"

# You score 43 points in the first round.
# You need to score at least 78 points in the second round.
# You score 33 points in the second round.

briscola_score(
  ["Ac", "As", "3d", "3h", "3s", "Ah", "Kd"],
  ["3d", "Ad", "Ac", "As", "Ah"]
) ➞ "You Win!"

# You score 67 points in the first round.
# You need to score at least 54 points in the second round.
# You score 54 points in the second round.

briscola_score(
  ["Ac", "As", "3d", "3h", "3s", "Ah", "Kd"],
  ["3d", "Ad", "Ac", "As", "3h"]
) ➞ "Draw!"

# You score 67 points in the first round.
# You need to score at least 54 points in the second round.
# You score 53 points in the second round.
# Your total score is 120, and so is for your opponent.

Observações

  • Você não precisa contar os pontos obtidos pelo seu oponente, porque sabe o número máximo de pontos disponíveis em uma rodada (120).
  • Embora os naipes sejam importantes durante a partida, eles não influenciam a pontuação na contagem dos pontos.
  • Os naipes e as cartas com figura originais de um baralho italiano são diferentes dos usados internacionalmente no pôquer. Se quiser saber mais, consulte a aba Recursos.