Guest User

Untitled

a guest
May 24th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. static int neighbors2 (board b, int i, int j)
  2. {
  3. int n = 0;
  4. int i_left = max(0,i-1);
  5. int i_right = min(HEIGHT, i+2);
  6.  
  7. int j_left = max(0,j-1);
  8. int j_right = min(WIDTH, j+2);
  9. int ii, jj;
  10.  
  11.  
  12. for (jj = j_left; jj < j_right; ++jj) {
  13. for (ii = i_left; ii < i_right; ii++) {
  14. n += b[ii][jj];
  15. }
  16. }
  17.  
  18. return n - b[i][j];
  19. }
  20.  
  21. //Iterates through the first row of the 3x3 area
  22. static int first_row(board b, int i, int j) {
  23. int f = 0;
  24. int i_left = max(0,i-1);
  25.  
  26. int j_left = max(0,j-1);
  27. int j_right = min(WIDTH, j+2);
  28. int jj;
  29.  
  30. for (jj = j_left; jj < j_right; ++jj) {
  31. f += b[i_left][jj];
  32. }
  33.  
  34. return f;
  35. }
  36.  
  37. //Iterates and adds up the second row of the 3x3 area
  38. static int second_row(board b, int i, int j) {
  39. int g = 0;
  40. int i_right = min(HEIGHT, i+2);
  41.  
  42. int j_left = max(0,j-1);
  43. int j_right = min(WIDTH, j+2);
  44. int jj;
  45.  
  46. if (i_right != i) {
  47. for (jj = j_left; jj < j_right; ++jj) {
  48. g += b[i][jj];
  49. }
  50. }
  51.  
  52. return g;
  53. }
  54.  
  55. //iterates and adds up the third row of the 3x3 area.
  56. static int third_row(board b, int i, int j) {
  57. int h = 0;
  58. int i_right = min(HEIGHT, i+2);
  59.  
  60. int j_left = max(0,j-1);
  61. int j_right = min(WIDTH, j+2);
  62. int jj;
  63.  
  64. for (jj = j_left; jj < j_right; ++jj) {
  65. h += b[i_right][jj];
  66. }
  67.  
  68. return h;
  69. }
  70.  
  71. //adds up the surrounding spots
  72. //subtracts the spot we're looking at.
  73. static int addUp(board b, int i, int j) {
  74. int n = first_row(b, i, j) + second_row(b, i, j) + third_row(b, i, j);
  75. return n - b[i][j];
  76. }
Add Comment
Please, Sign In to add comment