Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<locale.h>
- #include<stdlib.h>
- #include<string.h>
- typedef struct
- {
- char nome[99];
- } Entidade;
- typedef struct
- {
- char nome[99];
- } Posicao;
- typedef struct
- {
- Posicao posicao;
- Entidade entidade;
- int quantidadeMaxima;
- int quantidadeAtual;
- } Limite;
- Entidade entidadeEscolhida;
- Posicao posicaoEscolhida;
- int main()
- {
- setlocale(LC_ALL, "Portuguese");
- printf("Inicializando variáveis...\n");
- Entidade missionario;
- strcpy(missionario.nome, "Missionário");
- Entidade canibal;
- strcpy(canibal.nome, "Canibal");
- Entidade entidades[] =
- {
- missionario,
- canibal
- };
- Posicao direita;
- strcpy(direita.nome, "Direita");
- Posicao esquerda;
- strcpy(esquerda.nome, "Esquerda");
- Posicao canoa;
- strcpy(canoa.nome, "Canoa");
- Posicao posicoes[] =
- {
- direita,
- esquerda,
- canoa
- };
- Limite limite00;
- limite00.posicao = direita;
- limite00.entidade = missionario;
- limite00.quantidadeMaxima = 3;
- Limite limite01;
- limite01.posicao = esquerda;
- limite01.entidade = missionario;
- limite01.quantidadeMaxima = 3;
- Limite limite02;
- limite02.posicao = canoa;
- limite02.entidade = missionario;
- limite02.quantidadeMaxima = 2;
- Limite limite10;
- limite10.posicao = direita;
- limite10.entidade = canibal;
- limite10.quantidadeMaxima = 3;
- Limite limite11;
- limite11.posicao = esquerda;
- limite11.entidade = canibal;
- limite11.quantidadeMaxima = 3;
- Limite limite12;
- limite12.posicao = canoa;
- limite12.entidade = canibal;
- limite12.quantidadeMaxima = 2;
- Limite limites[] =
- {
- limite00,
- limite01,
- limite02,
- limite10,
- limite11,
- limite12
- };
- printf("Executando métodos...\n\n");
- mostrarLimites(limites, 6);
- //escolherEntidade(entidades, 2);
- //escolherPosicao(posicoes, 3);
- return 0;
- }
- Entidade escolherEntidade(Entidade entidades[], int tamanhoArray)
- {
- int index, numeroEntidadeEscolhida;
- char texto[100];
- strcpy(texto, "Escolha uma Entidade(");
- for (index = 0; index < tamanhoArray ; index++)
- {
- char numero[2];
- sprintf(numero, "%d", index + 1);
- strcat(texto, numero);
- strcat(texto, " = ");
- strcat(texto, entidades[index].nome);
- strcat(texto, index != tamanhoArray - 1 ? ", " : "): ");
- }
- printf(texto);
- scanf("%i", &numeroEntidadeEscolhida);
- if(numeroEntidadeEscolhida <= 0 || numeroEntidadeEscolhida > tamanhoArray)
- {
- printf("Valor incorreto!\n");
- return escolherEntidade(entidades, tamanhoArray);
- }
- return entidades[numeroEntidadeEscolhida];
- }
- Posicao escolherPosicao(Posicao posicoes[], int tamanhoArray)
- {
- int index, numeroPosicaoEscolhida;
- char texto[100];
- strcpy(texto, "Escolha uma Posição(");
- for (index = 0; index < tamanhoArray ; index++)
- {
- char numero[2];
- sprintf(numero, "%d", index + 1);
- strcat(texto, numero);
- strcat(texto, " = ");
- strcat(texto, posicoes[index].nome);
- strcat(texto, index != tamanhoArray - 1 ? ", " : "): ");
- }
- printf(texto);
- scanf("%i", &numeroPosicaoEscolhida);
- if(numeroPosicaoEscolhida <= 0 || numeroPosicaoEscolhida > tamanhoArray)
- {
- printf("Valor incorreto!\n");
- return escolherPosicao(posicoes, tamanhoArray);
- }
- return posicoes[numeroPosicaoEscolhida];
- }
- void mostrarLimites(Limite limites[], int tamanhoArray)
- {
- int index;
- for (index = 0; index < tamanhoArray; index++)
- {
- printf("Entidade: %s - ", limites[index].entidade.nome);
- printf("Posição: %s - ", limites[index].posicao.nome);
- printf("Quantidade Máxima: %i - ", limites[index].quantidadeMaxima);
- printf("Quantidade Atual: %i\n", limites[index].quantidadeAtual);
- }
- }
- void calcularQuantidadeDisponivelEntidade(Limite limite)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement