AVANÇADO#

Etapa 1#

Nesta etapa, vamos implementar uma função para registrar a pontuação do jogador na rodada. Para registrar a pontuação dos jogadores vamos utilizar um dicionário similar ao exemplo abaixo:

cartela_de_pontos = {
    'Teresa': {
        'pontos': {
            'regra_simples':  {
                1:0,
                2:0,
                3:0,
                4:0,
                5:0,
                6:0
            },
            'regra_avancada' : {
                'sem_combinacao':0,
                'quadra': 0,
                'full_house': 0,
                'sequencia_baixa': 0,
                'sequencia_alta': 0,
                'cinco_iguais': 0
            }
        }
    }
}

Note que o dicionário acima é apenas um exemplo e esse dicionário pode conter informações de mais jogadores.

Faça a função faz_jogada, que recebe como argumentos o nome do jogador, a lista com os dados rolados, a combinação escolhida pelo jogador e a cartela de pontos e retorna a cartela de pontos com os valores atualizados.

Exemplo:

resultado = faz_jogada("Teresa", [5,5,5,5,5], "quadra", cartela_de_pontos)
print(resultado)

Saída:

{
  'Teresa': {
    'pontos': {
      'regra_simples': {
        1: 0,
        2: 0,
        3: 0,
        4: 0,
        5: 0,
        6: 0
      },
      'regra_avancada': {
        'cinco_iguais': 0,
        'full_house': 0,
        'quadra': 25,
        'sem_combinacao': 0,
        'sequencia_alta': 0,
        'sequencia_baixa': 0
      }
    }
  }
}

Importante

Não é necessário fazer a validação se a jogada escolhida pelo jogador é válida. Assuma que o jogador sempre escolherá jogadas válidas.


Item 2#

Por fim, vamos implementar uma função para encontrar o vencedor da partida. Para isso, faça a função vencedor que recebe o dicionário com a cartela de pontos e retorna o nome do jogador que possui a maior pontuação.

A função deve somar todos os pontos obtidos em cada categoria. Além disso, a função deve considerar uma regra adicional. Se o jogador alcançar a pontuação de 63 ou mais nas categorias de 1 a 6, o jogador ganha um bônus de 35 pontos.

Se houver pelo menos 2 jogadores com a mesma pontuação, a função deve retornar 'empate'.

Exemplo de pontuação bônus.

Exemplo:

cartela_de_pontos = {
    "Teresa": {
        "pontos": {
            "regra_simples":  {
                1:4,
                2:6,
                3:12,
                4:12,
                5:25,
                6:24
            },
            "regra_avancada" : {
                "sem_combinacao":10,
                "quadra": 9,
                "full_house": 11,
                "sequencia_baixa": 15,
                "sequencia_alta": 0,
                "cinco_iguais": 0
            }
        }
    },
    "Jorge": {
        "pontos": {
            "regra_simples":  {
                1:3,
                2:6,
                3:12,
                4:8,
                5:0,
                6:18
            },
            "regra_avancada" : {
                "sem_combinacao":23,
                "quadra": 22,
                "full_house": 21,
                "sequencia_baixa": 15,
                "sequencia_alta": 30,
                "cinco_iguais": 0
            }
        }
    }
}


print(vencedor(cartela_de_pontos))

Saída:

Teresa

Observação: Assuma que a cartela de pontos estará com todas as pontuações preenchidas.