Entrada:
Primeiramente
Um conjunto de três cartas representando as cartas jogadas por cada jogador formatado como
[JD][TH][9S]
Representando
Jack of Diamonds, 10 of Hearts, and Nine of Spades.
Como você sempre se senta em frente ao seu companheiro de equipe no Euchre, o segundo elemento representa o jogo do seu companheiro de equipe. Aqui, o TH
.
Em segundo lugar,
um único caractere, string etc. representando o trunfo formatado como
S, D, C, H
representando
Spades, Diamonds, Clubs, Hearts
Terceiro, uma série de quatro cartas representando sua mão formatada como
[KD][JC][QH][AS]
representando
King of Diamonds, Jack of Clubs, Queen of Hearts, Ace of Spades
Objetivo:
Dadas as três entradas, imprima a melhor placa possível para adicionar às cartas que foram jogadas, de modo que atenda aos seguintes critérios:
- É preciso a mão, se puder, se não emitir o cartão menos valioso
- É preciso a mão, se puder, no entanto, não trunfo o seu companheiro de equipe, a menos que seja inevitável
- Se conseguir pegar a mão, use o cartão menos valioso. (Se você tem um ás e uma dama que pode ganhar a mão, você joga a dama).
- Qualquer jogada deve seguir o exemplo, conforme exigido pelas regras na parte inferior.
Formato de saída como [JD]
Formatação
A - Ace
K - King
Q - Queen
J - Jack
T - Ten
9 - Nine
H - Hearts
D - Diamonds
S - Spades
C - Clubs
TH, 9D, JD, QH, AD, 9C, TC
Exemplos
In: [QD][KD][9C]
, "C"
,[AH][JH][QH][9H]
Fora: 9H
Razão: Como os clubes são trunfos, o 9C está ganhando a mão, não podemos pegá-la, portanto devemos descartar nossa carta mais baixa. 9H
In: [QD][KD][AD]
, "H"
,[AH][JH][QH][9H]
Fora: 9H
Razão: Como os corações são trunfos, o Ás de Diamantes está atualmente ganhando a mão, somos capazes de trunfar a mão, portanto, devemos usar nossa carta mais baixa. 9H
In: [QD][KD][TD]
, "D"
,[AD][JH][QH][9D]
Fora: 9D
Razão: Como os diamantes são trunfos e atualmente estamos ganhando a mão, devemos jogar o 9D porque nosso parceiro está ganhando a mão no momento, então queremos jogar o 9D
overAD
In: [QH][KH][JH]
, "D"
,[AD][JD][QH][9D]
Fora: QH
Razão: Como os diamantes são trunfos, nossos oponentes estão ganhando com o JH
caramanchão esquerdo.QH
In: [QH][KH][JH]
, "D"
,[AD][JD][QC][9D]
Fora: JD
Razão: Como os diamantes são trunfos, nossos oponentes estão ganhando com o JH
caramanchão esquerdo. Nós temos o caramanchão direito e, como não Diamonds
temos, podemos trunfá-lo com oJD
Pontos fortes do cartão Euchre
Se Hearts for trunfo:
JH
JD
AH
KH
QH
TH
9H
Consulte as Regras do Euchre se você não estiver familiarizado com a força de diferentes cartões no Euchre.
Como este é o Code-Golf, o código mais curto vence!
Boa sorte e divirta-se!
fonte
9D
como resultado tem corações definidos como trunfos (embora eu não ache que isso afeta esse resultado).Respostas:
Perl -
557 532 511 490 482 384363Como funciona
Experimente online!
Primeiro, ele lê args e encontra o naipe do bauer esquerdo (macaco da mesma cor que o trunfo) com uma pesquisa de hash:
Em seguida, combina todos os cartões em uma única sequência e faz algumas substituições, fazendo com que os cartões sejam classificados naturalmente na ordem correta para o euchre:
No final deste bloco, a sequência de cartões é dividida entre colchetes, o que cria uma matriz de todos os cartões em que:
índice 0 = cartão principal do oponente
índice 1 = cartão do companheiro
índice 2 = carta do outro oponente
os índices 3-6 representam a mão
O naipe principal é analisado a partir da primeira carta, mas o naipe muda para '0' para representar trunfo se o trunfo foi liderado:
A melhor carta em jogo é encontrada classificando as três primeiras cartas e recuperando a primeira carta:
As cartas jogáveis são encontradas. Se alguma das cartas na mão corresponder ao naipe principal, somente essas cartas permanecerão. Caso contrário, todas as cartas são consideradas jogáveis:
A carta 'descartável' é encontrada retornando a última carta no conjunto ordenado de cartas jogáveis:
A menor carta 'vencedora' que pode vencer o truque é encontrada adicionando a carta mais alta em jogo à matriz de cartas jogáveis, classificando a matriz e repetindo-a até encontrar a carta mais alta em jogo. O cartão 'vencedor' é o cartão da iteração anterior:
A jogada correta é então avaliada. A carta 'descartável' é escolhida se alguma das seguintes situações for verdadeira:
Caso contrário, o cartão 'vencedor' é retornado:
fonte