Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.45 KB | None | 0 0
  1. package ConwaysLife;
  2.  
  3. public class main {
  4.  
  5.     public static void main(String[] args) {
  6.         int n = 17, i, j;
  7.         cell arr1[][] = new cell[n][n];
  8.         cell arr2[][] = new cell[n][n];
  9.  
  10.         for (i = 0; i < arr1.length; i++)
  11.             for (j = 0; j < arr1[0].length; j++) {
  12.                 arr1[i][j] = new white(i, j);
  13.             }
  14.  
  15.         for (i = 0; i < arr2.length; i++)
  16.             for (j = 0; j < arr2[0].length; j++) {
  17.                 arr2[i][j] = new white(i, j);
  18.             }
  19.  
  20.         arr1[3][8] = new black(3, 8);
  21.         arr1[4][7] = new black(4, 7);
  22.         arr1[5][7] = new black(5, 7);
  23.         arr1[5][8] = new black(5, 8);
  24.         arr1[5][9] = new black(5, 9);
  25.         arr1[10][7] = new black(10, 7);
  26.         arr1[10][8] = new black(10, 8);
  27.         arr1[10][9] = new black(10, 9);
  28.         arr1[11][7] = new black(11, 7);
  29.         arr1[12][8] = new black(12, 8);
  30.         arr1[3][2] = new black(3, 2);
  31.         arr1[4][3] = new black(4, 3);
  32.         arr1[5][1] = new black(5, 1);
  33.         arr1[5][2] = new black(5, 2);
  34.         arr1[5][3] = new black(5, 3);
  35.         arr1[9][1] = new black(9, 1);
  36.         arr1[9][2] = new black(9, 2);
  37.         arr1[9][3] = new black(9, 3);
  38.         arr1[10][3] = new black(10, 3);
  39.         arr1[11][2] = new black(11, 2);
  40.         print(arr1);
  41.  
  42.         System.out.println();
  43.         for (int k = 1; k < 5; k++) {
  44.             if (k % 2 != 0) {
  45.                 WhatNext(arr1, arr2);
  46.                 print(arr2);
  47.             } else {
  48.                 WhatNext(arr2, arr1);
  49.                 print(arr1);
  50.             }
  51.         }
  52.     }
  53.  
  54.  
  55.     public static void WhatNext(cell[][] arr1, cell[][] s) {
  56.         int n = 17, i, j;
  57.         for (i = 1; i < n - 1; i++) {
  58.             for (j = 1; j < n - 1; j++) {
  59.                 s[i][j] = arr1[i][j].NextColor(arr1);
  60.             }
  61.         }
  62.     }
  63.  
  64.     static void print(cell[][] b) {
  65.         for (int i=1; i<16; i++) {
  66.             for (int j=1; j<16; j++)
  67.                 if(b[i][j].who() == 1)
  68.                     System.out.print("X" + " ");
  69.                 else
  70.                     System.out.print("-" + " ");
  71.             System.out.println();
  72.         }
  73.         System.out.println();
  74.     }
  75.  
  76. }
  77.  
  78. /////
  79.  
  80. package ConwaysLife;
  81.  
  82. public abstract class cell {
  83.     public int x, y;
  84.  
  85.     public cell(int x, int y) {
  86.         this.x = x;
  87.         this.y = y;
  88.     }
  89.     abstract int who();
  90.     abstract cell NextColor(cell[][] a);
  91.  
  92.     public int neighbours(cell[][] a) {
  93.         int i, j, count;
  94.         count = 0;
  95.         for (i = -1; i < 2; i++) {
  96.             for (j = -1; j < 2; j++) {
  97.                 count += a[x + i][y + j].who();
  98.             }
  99.         }
  100.         count -= a[x][y].who();
  101.         return count;
  102.     }
  103.  
  104. }
  105.  
  106. /////
  107.  
  108. package ConwaysLife;
  109.  
  110. public class white extends cell {
  111.     public white(int x, int y) {
  112.         super(x,y);
  113.     }
  114.     public int who() {
  115.     return 0;
  116.     }
  117.     cell NextColor(cell[][] arr1)
  118.     {
  119.         int count = neighbours(arr1);
  120.         if (count==3)
  121.             return new black(x,y);
  122.         return this;
  123.     }
  124. }
  125.  
  126. /////
  127.  
  128. package ConwaysLife;
  129.  
  130. public class black extends cell {
  131.  
  132.     public black(int x, int y) {
  133.         super(x, y);
  134.     }
  135.     public int who() {
  136.     return 1;
  137.     }
  138.     cell NextColor(cell[][] arr1)
  139.     {
  140.         int count = neighbours(arr1);
  141.         if (count == 2 || count == 3)
  142.             return this;
  143.         return new white(x, y);
  144.     }
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement