Estrutura de dados
Programação Procedimental
2009/1
Implemente um programa para o jogo de cartas cujas regras são especificadas abaixo. O jogo pode envolver no mínimo dois e no máximo dez jogadores. O jogo é composto de n jogadas consecutivas, e m jogadores.
Regras do jogo:
Um jogador é sorteado para ser o primeiro a receber as cartas. Nas próximas jogadas, o primeiro jogador a receber as cartas será aquele que está a sua direita.
No inicio de cada jogada o baralho com as 52 cartas é embaralhado e cortado. Se o número de jogadas for maior que 52/(m*3), então o baralho precisa ser re-embaralhado para que o jogo continue.
A cada jogada são distribuídas 3 cartas a cada jogador.
Vence a jogada o jogador que tiver a maior soma de cartas. Em caso de empate, vence o jogador que jogou primeiro.
Vence o jogo o jogador que tiver o maior número de vitórias.
A forma como o programa vai receber os dados de entrada (numero de jogadas e o numero de jogadores) e como será a interação com o usuário fica a critério de cada aluno. Use a sua criatividade.
O acesso às estruturas deve ser rigorosamente respeitado. Se eventualmente você precisar de um acesso a uma estrutura que não foi previsto, crie a função para a estrutura e especifique a nova função.
Para implementar o programa deverão ser declaradas as estruturas listadas abaixo associadas a um conjunto de funções que têm acesso exclusivo a cada estrutura especificada. O conjunto de funções para uma dada estrutura deverá ser colocado em um único arquivo.c e a definição das estruturas em declarações.h.
Exemplo: No arquivo cartas.c deverão estar contidas apenas as funções referentes a estrutura de dados CARTAS No arquivo baralho.c deverão estar contidas as funções referentes à estrutura de dados BARALHO No arquivo jogadores.c deverão estar contidas as funções referentes à estrutura d e dados JOGADOR. No arquivo declarações.h deverão