Guest User

Untitled

a guest
Jun 17th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. /* Trabalho - The Walking Dead
  4. Algoritmos e Lógica de Programação e Matemática Discreta
  5. Desenvolvedores:
  6. Thainnara dos Santos RA: 2760481811013
  7. Vitor Gonçalves RA: 2760481811016 */
  8.  
  9. int main (){
  10. int m,n,i,j,dias,y;
  11. int hum=0,zomb=0,vazio=0;/*contadores*/
  12.  
  13. printf("Quantidade de linhas da matriz: ");
  14. scanf("%d",&m);
  15. printf("Quantidade de colunas da matriz: ");
  16. scanf("%d",&n);
  17. printf("Quantidade de dias: ");
  18. scanf("%d",&dias);
  19.  
  20. //vc precisa declarar o tamanho da matriz depois de perguntar o tamanho ok? ok
  21. int M[m][n];
  22.  
  23. //rand() % (max_number + 1 - minimum_number) + minimum_number
  24.  
  25. int num_aleatorio;
  26.  
  27. printf("Configuracao Inicial da Populacao: \n");
  28. for(i=0;i<m;i++){
  29. for(j=0;j<n;j++){
  30. num_aleatorio = rand() % (2 + 1 - 0) + 0; //gera um numero aleatorio entre 0 < n < 3
  31. M[i][j] = num_aleatorio;
  32. // scanf("%d",&M[i][j]);
  33. }
  34. }
  35.  
  36. // 0 = limpo
  37. // 1 = humano
  38. // 2 = zumbi
  39.  
  40.  
  41.  
  42. printf("\n\n");
  43. printf("Estado Inicial da Populacao\n\n");
  44. for(i=0;i<m;i++){
  45. for(j=0;j<n;j++){
  46. printf("%d ", M[i][j]);
  47. }
  48. printf("\n");
  49. }
  50.  
  51. printf("\n\n");
  52.  
  53. //faz uma iteração simples em todos os elementos da matriz, como vc fez lá em cima pra printar
  54. int linha, coluna;
  55. int ii, jj;
  56. int vizinho_atual;
  57. for(i=0;i<m;i++){
  58. for(j=0;j<n;j++){
  59. //checando os vizinhos
  60.  
  61. printf("Checking element %d,%d ....\n", i, j);
  62.  
  63. for(ii=-1; ii<2; ii++){
  64. for(jj=-1; jj<2; jj++){
  65.  
  66. if ((ii == 0) && (jj == 0)){ //nao checar ele mesmo
  67. continue;
  68. }
  69.  
  70. if((i == 0) && (ii == -1)){ //caso seja nao tenha linha acima, usar a ultima
  71. linha = m - 1;
  72. } else if ((i == m-1) && (ii == 1)){ // caso nao tenha linha abaixo, usar a primeira
  73. linha = 0;
  74. } else {
  75. linha = i + ii;
  76. }
  77.  
  78. if((j == 0) && (jj == -1)){ //caso nao tenha coluna à esquerda, usar a ultima
  79. coluna = n - 1;
  80. } else if ((j == n-1) && (jj == 1)){ // caso nao tenha coluna à direita, usar a primeira
  81. coluna = 0;
  82. } else {
  83. coluna = j + jj;
  84. }
  85.  
  86. //para debuggar
  87. // printf("position %d , %d\n", linha, coluna);
  88. vizinho_atual = M[linha][coluna];
  89. // printf("%d\n",vizinho_atual);
  90.  
  91. if(vizinho_atual == 0){
  92. vazio++;
  93. } else if (vizinho_atual == 1){
  94. hum++;
  95. } else {
  96. zomb++;
  97. }
  98. }
  99. }
  100.  
  101. printf("h: %d z:%d v:%d\n\n",hum,zomb,vazio);
  102. hum = 0; zomb = 0; vazio = 0;
  103. }
  104. }
  105.  
  106. return 0;
  107. }
Add Comment
Please, Sign In to add comment