Para os fins desta pergunta, um baralho de cartas é formatado da seguinte maneira:
[
"AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "JS", "QS", "KS",
"AD", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "10D", "JD", "QD", "KD",
"AH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "10H", "JH", "QH", "KH",
"AC", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "10C", "JC", "QC", "KC",
"J", "J"
]
Os cartões são sempre formatados como valor, seguidos por naipes. Por exemplo, AS
é o ás de espadas. Os dois J's únicos são Jokers. Queremos embaralhar este baralho de cartas, mas o baralhamento deve ser Superb ™.
Um Superb Shuffle ™ é aquele em que:
- Não há duas cartas (exceto Jokers) do mesmo naipe adjacentes.
- Nenhum cartão (exceto Jokers) é adjacente a um mesmo valor.
- Nenhuma carta (exceto Jokers) é adjacente a um valor adjacente (um mais alto ou outro mais baixo nesta ordem, A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A. Observe que o Ace não pode ser adjacente a um 2 ou a um rei).
- Os curingas podem estar em qualquer posição.
- A definição de um Superb Shuffle ™ não exige que os cartões estejam em uma ordem diferente cada vez que são embaralhados. O que não é muito bom, mas é o Superb ™.
Porque isso é Superb ™.
Um exemplo pode ser:
[
"AS", "5D", "9H", "KC", "2D", "6H", "10C", "QS", "3H", "7C", "9S",
"KD", "4C", "6S", "10D", "AC", "3S", "7D", "JH", "J", "4D", "8H",
"QC", "AD", "5H", "9C", "JS", "2H", "6C", "8S", "QD", "3C", "5S",
"9D", "KH", "2S", "6D", "10H", "J", "3D", "7H", "JC", "KS", "4H",
"8C", "10S", "AH", "5C", "7S", "JD", "2C", "4S", "8D", "QH"
]
O desafio:
- Escreva um código para executar um excelente shuffle
- Use qualquer idioma.
- A entrada pode ser quer :
- um baralho de cartas como descrito acima na mesma ordem , como uma matriz ou outra estrutura de lista.
- Nenhuma entrada (o código gera um baralho de cartas nessa ordem)
- A saída deve ser um baralho completo de cartas em um Superb Shuffle ™, conforme descrito acima.
- Tente executar seu Superb Shuffle ™ no menor número de bytes.
- É preferível um link para um intérprete online, como o Try It Online , mas opcional.
Baralhar feliz!
T
vez de 10
?