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.