Modificação no embaralhamento e na distribui-
ção de cartas. No programa de embaralhar e distribuir cartas da Figura 7.24, usamos intencionalmente um
algoritmo de embaralhamento ineficaz, que oferecia a
possibilidade de adiamento indefinido. Nesse problema,
você criará um algoritmo de embaralhamento de alto desempenho, que evita o adiamento indefinido.
Modifique o programa da Figura 7.24 da seguinte forma.
Comece inicializando o array deck como mostra a Figura 7.29. Modifique a função shuffle para que ela
percorra linha por linha e coluna por coluna pelo array,
tocando cada elemento uma vez. Cada elemento deve ser
trocado por um elemento do array selecionado aleatoriamente. Imprima o array resultante para determinar
se as cartas estão sendo embaralhadas satisfatoriamente
(como na Figura 7.30, por exemplo). Você pode querer
que seu programa chame a função shuffle várias vezes, garantindo assim um embaralhamento satisfatório.
Embora a técnica, nesse problema, aprimore o algoritmo
de embaralhamento, o algoritmo de distribuição ainda
requer a busca no array deck pela carta 1, depois pela
carta 2, depois pela carta 3 e assim por diante. Pior ainda,
mesmo depois de o algoritmo de distribuição localizar
e distribuir a carta, o algoritmo continua pesquisando
o restante do baralho. Modifique o programa da Figura
7.24 de modo que, quando uma carta for distribuída,
nenhuma outra tentativa de combinar essa carta seja
feita, e que o programa prossiga imediatamente com a
distribuição da próxima carta. No Capítulo 10, desenvolveremos um algoritmo de distribuição que exige apenas
uma operação por carta.
Passo 1
Saaaalve, tranquilo? Vamos lá resolver mais uma questão juntos?! 😊
Plano do Programa:
1. Defina as funções para fechar e distribuir as cartas.
2. Exiba o baralho de cartas humilhado e não humilhado
3. Exiba o resultado desejado.
Passo 2

Passo 3

Passo 4

Resposta
Resposta nos passos.