Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<locale.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5.  
  6. typedef struct
  7. {
  8. char nome[99];
  9. } Entidade;
  10.  
  11. typedef struct
  12. {
  13. char nome[99];
  14. } Posicao;
  15.  
  16. typedef struct
  17. {
  18. Posicao posicao;
  19. Entidade entidade;
  20. int quantidadeMaxima;
  21. int quantidadeAtual;
  22. } Limite;
  23.  
  24. Entidade entidadeEscolhida;
  25. Posicao posicaoEscolhida;
  26.  
  27. int main()
  28. {
  29. setlocale(LC_ALL, "Portuguese");
  30.  
  31. printf("Inicializando variáveis...\n");
  32.  
  33. Entidade missionario;
  34. strcpy(missionario.nome, "Missionário");
  35. Entidade canibal;
  36. strcpy(canibal.nome, "Canibal");
  37.  
  38. Entidade entidades[] =
  39. {
  40. missionario,
  41. canibal
  42. };
  43.  
  44. Posicao direita;
  45. strcpy(direita.nome, "Direita");
  46. Posicao esquerda;
  47. strcpy(esquerda.nome, "Esquerda");
  48. Posicao canoa;
  49. strcpy(canoa.nome, "Canoa");
  50.  
  51. Posicao posicoes[] =
  52. {
  53. direita,
  54. esquerda,
  55. canoa
  56. };
  57.  
  58. Limite limite00;
  59. limite00.posicao = direita;
  60. limite00.entidade = missionario;
  61. limite00.quantidadeMaxima = 3;
  62. Limite limite01;
  63. limite01.posicao = esquerda;
  64. limite01.entidade = missionario;
  65. limite01.quantidadeMaxima = 3;
  66. Limite limite02;
  67. limite02.posicao = canoa;
  68. limite02.entidade = missionario;
  69. limite02.quantidadeMaxima = 2;
  70.  
  71. Limite limite10;
  72. limite10.posicao = direita;
  73. limite10.entidade = canibal;
  74. limite10.quantidadeMaxima = 3;
  75. Limite limite11;
  76. limite11.posicao = esquerda;
  77. limite11.entidade = canibal;
  78. limite11.quantidadeMaxima = 3;
  79. Limite limite12;
  80. limite12.posicao = canoa;
  81. limite12.entidade = canibal;
  82. limite12.quantidadeMaxima = 2;
  83.  
  84. Limite limites[] =
  85. {
  86. limite00,
  87. limite01,
  88. limite02,
  89. limite10,
  90. limite11,
  91. limite12
  92. };
  93.  
  94. printf("Executando métodos...\n\n");
  95. mostrarLimites(limites, 6);
  96. //escolherEntidade(entidades, 2);
  97. //escolherPosicao(posicoes, 3);
  98.  
  99. return 0;
  100. }
  101.  
  102.  
  103. Entidade escolherEntidade(Entidade entidades[], int tamanhoArray)
  104. {
  105. int index, numeroEntidadeEscolhida;
  106. char texto[100];
  107.  
  108. strcpy(texto, "Escolha uma Entidade(");
  109. for (index = 0; index < tamanhoArray ; index++)
  110. {
  111. char numero[2];
  112. sprintf(numero, "%d", index + 1);
  113.  
  114. strcat(texto, numero);
  115. strcat(texto, " = ");
  116. strcat(texto, entidades[index].nome);
  117. strcat(texto, index != tamanhoArray - 1 ? ", " : "): ");
  118. }
  119.  
  120. printf(texto);
  121. scanf("%i", &numeroEntidadeEscolhida);
  122. if(numeroEntidadeEscolhida <= 0 || numeroEntidadeEscolhida > tamanhoArray)
  123. {
  124. printf("Valor incorreto!\n");
  125. return escolherEntidade(entidades, tamanhoArray);
  126. }
  127. return entidades[numeroEntidadeEscolhida];
  128. }
  129.  
  130. Posicao escolherPosicao(Posicao posicoes[], int tamanhoArray)
  131. {
  132. int index, numeroPosicaoEscolhida;
  133. char texto[100];
  134.  
  135. strcpy(texto, "Escolha uma Posição(");
  136. for (index = 0; index < tamanhoArray ; index++)
  137. {
  138. char numero[2];
  139. sprintf(numero, "%d", index + 1);
  140.  
  141. strcat(texto, numero);
  142. strcat(texto, " = ");
  143. strcat(texto, posicoes[index].nome);
  144. strcat(texto, index != tamanhoArray - 1 ? ", " : "): ");
  145. }
  146.  
  147. printf(texto);
  148. scanf("%i", &numeroPosicaoEscolhida);
  149. if(numeroPosicaoEscolhida <= 0 || numeroPosicaoEscolhida > tamanhoArray)
  150. {
  151. printf("Valor incorreto!\n");
  152. return escolherPosicao(posicoes, tamanhoArray);
  153. }
  154. return posicoes[numeroPosicaoEscolhida];
  155. }
  156.  
  157. void mostrarLimites(Limite limites[], int tamanhoArray)
  158. {
  159. int index;
  160.  
  161. for (index = 0; index < tamanhoArray; index++)
  162. {
  163. printf("Entidade: %s - ", limites[index].entidade.nome);
  164. printf("Posição: %s - ", limites[index].posicao.nome);
  165. printf("Quantidade Máxima: %i - ", limites[index].quantidadeMaxima);
  166. printf("Quantidade Atual: %i\n", limites[index].quantidadeAtual);
  167. }
  168. }
  169.  
  170. void calcularQuantidadeDisponivelEntidade(Limite limite)
  171. {
  172.  
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement