fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. char map[5][5];
  4. void next_turn(void)
  5. {
  6. int i,j;
  7. char k;
  8. for(i=0;i<5;i++) {
  9. for(j=0;j<5;j++) {
  10. k=0;
  11. k+=map[((i+1)%5)][j];
  12. k+=map[((i+4)%5)][j];
  13. k+=map[i][((j+1)%5)];
  14. k+=map[i][((j+4)%5)];
  15.  
  16. if(k==2 || k==3) {
  17. /* 1 xor 1 = 0 , 0 xor 0 = 0 */
  18. map[i][j]^=map[i][j];
  19. }
  20. }
  21. }
  22. }
  23.  
  24. int main(void)
  25. {
  26. int i,j;
  27.  
  28. /* creat map */
  29. for(j=0;j<5;j++) {
  30. i=(int)(((double)rand() / ((double)RAND_MAX+1.0)) * 32);
  31. map[j][0]= 0x01 & i;
  32. map[j][1]= 0x01 & (i>>1);
  33. map[j][2]= 0x01 & (i>>2);
  34. map[j][3]= 0x01 & (i>>3);
  35. map[j][4]= 0x01 & (i>>4);
  36. }
  37. for(j=0;j<10;j++) {
  38. next_turn();
  39. }
  40. for(j=0;j<5;j++) {
  41. printf("%d%d%d%d%d\n",map[j][0],map[j][1],map[j][2],map[j][3],map[j][4]);
  42. }
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 1832KB
stdin
Standard input is empty
stdout
01001
00100
00001
00000
10100