Estrutura de dados

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1051 palavras )
  • Download(s) : 0
  • Publicado : 12 de abril de 2012
Ler documento completo
Amostra do texto
Projeto de conclusão de curso
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 primeirojogador 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 acessoa 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 emdeclaraçõ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ãoestar contidas as definições de todas as estruturas de dados a serem utilizadas.


O programa principal deverá fazer a inclusão destes arquivos. No arquivo do programa principal só deverão estar os comandos referentes à aplicação e às chamadas às funções de cada estrutura de dados a ser utilizada.

Tipos Abstratos de Dados:

a) carta

estrutura carta – cada carta é composta de duasinformações (valor e naipe). Os valores das cartas são 1 (As), 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 (valete), 12 (dama) e 13 (rei) e os naipes são ouro, espada, copas e paus.

typedef enum{ouro, espada, copas, paus} NAIPE;

typedef struct {
NAIPE naipe;
int valor;
} CARTA;



Funções a serem executadas sobre a estrutura de dados CARTA:

a1) CARTA* Cria_Carta(NAIPE naipe, int valor);

Esta função cria dinamicamente uma carta de acordo com os parâmetros da função. A função retorna o endereço da carta ou NULL caso não tenha sido possível criar a carta;

b) baralho

estrutura baralho – o baralho é composto por 52 cartas diferentes (como o baralho completo que vocês costumam usar para jogar, sem considerar os coringas).



typedefstruct {
CARTA *cartas[52];
int atual; /*indica próxima carta a ser retirada do baralho */
} BARALHO;



Funções a serem executadas sobre a estrutura baralho:

b1) int Cria_Baralho( BARALHO *baralho);

Esta função cria um baralho completo com 52 cartas diferentes (conforme o baralho vendido nas lojasespecializadas, sem os coringas). Use a função Cria_Carta() na implementação desta função. A função retorna 0 para indicar fracasso na criação do baralho ou 1 em caso de sucesso.

b2) void Destrói_Baralho(BARALHO *baralho);

Esta função deve desalocar toda área dinamicamente alocada para a estrutura baralho (isto é, desaloque as cartas).

b3) void Inicializa_Baralho( BARALHO *baralho);...
tracking img