Introdução
Doppelkopf é um jogo de cartas tradicional alemão para 4 jogadores. O baralho é composto por 48 cartas (9, 10, Valete, Dama, Rei, Ás de cada naipe, enquanto todas as cartas estão no jogo duas vezes), para que cada jogador receba 12 no início de uma rodada.
Sempre existem duas equipes que são determinadas pela distribuição do Queens of Clubs. Os 2 jogadores que estão segurando o Queens formam um time e jogam contra os outros 2 jogadores. A equipe do Queens of Clubs é chamada de "Re", a equipe que não tem é a "Contra".
No início da rodada, ninguém sabe quem está em qual time. A distribuição da equipe será revelada no andamento da rodada, o que adiciona muita estratégia ao jogo.
O jogo consiste em 12 truques. Os jogadores que vencem um truque recebem todas as 4 cartas. Cada carta tem um certo valor (o rei conta 4, o ás conta 11, por exemplo), todas as cartas somam 240 pontos, que é o resultado mais alto possível.
No final de uma rodada, os pontos são contados e a equipe com a maior quantidade de pontos vence a rodada. Então começa a próxima rodada ...
O desafio
Cada rodada tem uma certa pontuação, que é determinada pela quantidade de pontos que a equipe vencedora obteve e possíveis anúncios. Você terá que escrever um programa que considere a distribuição de pontos e os anúncios em potencial (veja a explicação abaixo) como entrada e saída da pontuação da rodada e do vencedor.
O cálculo da pontuação
Como mencionado, há uma equipe de Re e Contra. Também há um máximo de 240 pontos possíveis em uma rodada. A Re-equipe tem 121 pontos para vencer, enquanto a Contra-equipe precisa apenas de 120. Há também a possibilidade de anunciar "Re" ou "Contra" no início da rodada, se você acha que vai ganhar o jogo. . Ao fazer isso, você está aumentando a pontuação.
Aqui estão as regras de pontuação:
- +1 para ganhar o jogo
- +1 se o time perdedor tiver menos de 90 pontos ("Keine 90")
- +1 se o time perdedor tiver menos de 60 pontos ("Keine 60")
- +1 se o time perdedor tiver menos de 30 pontos ("Keine 30")
- +1 se o time perdedor tiver 0 pontos ("Schwarz")
- +2 para um anúncio de Contra
- +2 para um anúncio de Re
- +1 se a equipe Contra vencer ("Gegen die Alten")
Nota: Re / Contra-anúncios sempre se aplicam, independentemente do vencedor. Veja exemplos nas caixas de teste abaixo.
Entrada e saída
A contribuição para o programa será a pontuação da Re-equipe e os possíveis anúncios de Re ou Contra. Como sempre existem 240 pontos no jogo, você pode facilmente calcular a pontuação do Contra-time.
A entrada será uma única sequência que terá a pontuação do Re-time primeiro, seguida pelos anúncios em potencial, enquanto "R" é para Re e "C" é para Contra. Se ambos foram anunciados, Re sempre virá em primeiro lugar.
A saída será a pontuação do jogo seguida pela equipe vencedora ("C" para Contra, "R" para Re)
Regras
- Seu envio pode ser um programa completo ou uma função. Se você escolher o último, inclua um exemplo de como invocá-lo.
- A entrada pode ser fornecida por argumentos de função ou de linha de comando ou entrada do usuário.
- A saída pode ser fornecida como valor de retorno ou impressa na tela.
- Brechas padrão se aplicam.
- O menor número de bytes vence!
Casos de teste
Input -> Output (Explanation)
145R -> 3R (Re won, +1 for winning, +2 for Re-Announcement)
120 -> 2C (Contra won, +1 for winning, +1 for winning as Contra)
80C -> 5C (Contra won, +1 for winning, +1 for no 90, +1 for winning as Contra, +2 for Contra-Announcement)
240R -> 7R (Re won, +1 for winning, +1 for no 90, +1 for no 60, +1 for no 30, +1 for no points for the losing team, +2 for Re-announcedment)
90 -> 2C (Contra won, +1 for winning, +1 for winning as Contra)
110RC -> 6C (Contra won, +1 for winning, +1 for winning as Contra, +2 for Re-Announcement, +2 for Contra-Announcement)
110R -> 4C (Contra won, +1 for winning, +1 for winnins as Contra, +2 for Re-Announcement)
184C -> 5R (Re won, +1 for winning, +1 for no 90, +1 for no 60, +2 for Contra-Announcement)
Nota curta: deixei de fora algumas regras (como solos e pontos de bônus) de propósito para manter o desafio simples. Então, se você já está familiarizado com o jogo, não fique confuso :)
Feliz codificação!