fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5.  
  6. #define A(i,j) a[y*j+i]
  7. #define T(i,j) temp[y*j+i]
  8. #define M(i,j) maske[y*j+i]
  9. void random_array(int *a, int x, int y)
  10. {
  11. int i, j;
  12. for (i = 0; i < y; i++)
  13. {
  14. for (j = 0; j < x; j++)
  15. {
  16. A(i,j) = rand() & 1;
  17. }
  18. }
  19. }
  20.  
  21. void array_anzeigen(int *a, int x, int y)
  22. {
  23. int i, j;
  24. for (i = 0; i < y; i++)
  25. {
  26. for (j = 0; j < x; j++)
  27. {
  28. printf("%2d", A(i,j));
  29. }
  30. printf("\n");
  31. }
  32. printf("\n");
  33. }
  34.  
  35. void neues_array(int *a, int x, int y)
  36. {
  37. int i, j;
  38. int *temp = calloc(sizeof*a, x*y);
  39. int *maske = calloc(sizeof*a, x*y);
  40. memcpy(temp, a, x*y*sizeof*a);
  41.  
  42. for (i = 0; i < y; i++)
  43. {
  44. for (j = 0; j < x; j++)
  45. {
  46. if (T(i-1,j-1) == 1 && i > 0 && j > 0) ++M(i,j);
  47. if (T(i-0,j-1) == 1 && j > 0) ++M(i,j);
  48. if (T(i-1,j-0) == 1 && i > 0) ++M(i,j);
  49. if (T(i-1,j+1) == 1 && i > 0 && j + 1 < x) ++M(i,j);
  50. if (T(i-0,j+1) == 1 && j + 1 < x) ++M(i,j);
  51. if (T(i+1,j-0) == 1 && i + 1 < y) ++M(i,j);
  52. if (T(i+1,j-1) == 1 && i + 1 < y && j > 0) ++M(i,j);
  53. if (T(i+1,j+1) == 1 && i + 1 < y && j + 1 < x) ++M(i,j);
  54.  
  55. if (M(i,j) > 3 || M(i,j) < 2)
  56. A(i,j) = 0;
  57. else if (M(i,j) == 3)
  58. A(i,j) = 1;
  59. }
  60. }
  61. free(maske), free(temp);
  62. }
  63.  
  64. int main()
  65. {
  66. int runde;
  67. int x = 20;
  68. int y = 20;
  69. int *a = calloc(sizeof*a, x*y);
  70. srand(time(0));
  71. random_array(a,x,y);
  72.  
  73. for (runde = 1; runde < 5; ++runde, getchar())
  74. {
  75. neues_array(a, x, y);
  76. printf(" Runde %i\n", runde);
  77. array_anzeigen(a, x, y);
  78. }
  79.  
  80. free(a);
  81. return 0;
  82. }
  83.  
  84.  
Success #stdin #stdout 0s 2428KB
stdin



stdout
 Runde 1
 0 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1
 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0
 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1
 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0
 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0
 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0
 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0
 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0
 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0
 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0
 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1
 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1
 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1
 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1
 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0
 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1
 1 1 0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1

 Runde 2
 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1
 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0
 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1
 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0
 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0
 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0
 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
 0 1 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0
 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1
 0 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0
 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0
 0 1 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0
 1 1 1 1 0 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0
 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1
 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1

 Runde 3
 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0
 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0
 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0
 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
 0 0 1 1 0 0 0 0 1 0 0 0 1 0 1 0 1 1 0 0
 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
 0 1 1 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0
 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0
 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0
 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0
 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 0
 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0
 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1
 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1

 Runde 4
 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0
 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0
 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0
 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0
 0 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0
 0 1 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0
 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0
 1 0 1 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0
 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1
 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1