Advertisement
Guest User

Untitled

a guest
Mar 27th, 2015
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. void tick(Field *f)
  2. {
  3. Field *matrix = createField(f->xsize, f->ysize);
  4. matrix=f;
  5. int j,i;
  6. int a=f->xsize-1;
  7. int b=f->ysize-1;
  8. int k;
  9. for (j=0; j<=b; j++){
  10. for (i=0; i<=a; i++){
  11. k=0;
  12. if ((i-1)>=0 && (j-1)>=0 && matrix->cells[j-1][i-1]==ALIVE) //vasen ylä
  13. k++;
  14. if ((i-1)>=0 && (j+1)<=b && matrix->cells[j+1][i-1]==ALIVE) //vasen ala
  15. k++;
  16. if ((i+1)<=a && (j-1)>=0 && matrix->cells[j-1][i+1]==ALIVE) //oikea ylä
  17. k++;
  18. if ((i+1)<=a && (j+1<=b) && matrix->cells[j+1][i+1]==ALIVE) //oikea ala
  19. k++;
  20. if (i-1>=0 && matrix->cells[j][i-1]==ALIVE) //vasen
  21. k++;
  22. if (j-1>=0 && matrix->cells[j-1][i]==ALIVE) //ylä
  23. k++;
  24. if (i+1<=a && matrix->cells[j][i+1]==ALIVE) //oikea
  25. k++;
  26. if (j+1<=b && matrix->cells[j+1][i]==ALIVE) //ala
  27. k++;
  28.  
  29. if (matrix->cells[j][i]==ALIVE){
  30. if (k<2)
  31. f->cells[j][i]=DEAD;
  32. if (k==2 || k==3)
  33. f->cells[j][i]=ALIVE;
  34. if (k>3)
  35. f->cells[j][i]=DEAD;
  36. }
  37. if (matrix->cells[j][i]==DEAD)
  38. if (k==3)
  39. f->cells[j][i]=ALIVE;
  40.  
  41. }
  42. }
  43. releaseField(matrix);
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement