Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ConwaysLife;
- public class main {
- public static void main(String[] args) {
- int n = 17, i, j;
- cell arr1[][] = new cell[n][n];
- cell arr2[][] = new cell[n][n];
- for (i = 0; i < arr1.length; i++)
- for (j = 0; j < arr1[0].length; j++) {
- arr1[i][j] = new white(i, j);
- }
- for (i = 0; i < arr2.length; i++)
- for (j = 0; j < arr2[0].length; j++) {
- arr2[i][j] = new white(i, j);
- }
- arr1[3][8] = new black(3, 8);
- arr1[4][7] = new black(4, 7);
- arr1[5][7] = new black(5, 7);
- arr1[5][8] = new black(5, 8);
- arr1[5][9] = new black(5, 9);
- arr1[10][7] = new black(10, 7);
- arr1[10][8] = new black(10, 8);
- arr1[10][9] = new black(10, 9);
- arr1[11][7] = new black(11, 7);
- arr1[12][8] = new black(12, 8);
- arr1[3][2] = new black(3, 2);
- arr1[4][3] = new black(4, 3);
- arr1[5][1] = new black(5, 1);
- arr1[5][2] = new black(5, 2);
- arr1[5][3] = new black(5, 3);
- arr1[9][1] = new black(9, 1);
- arr1[9][2] = new black(9, 2);
- arr1[9][3] = new black(9, 3);
- arr1[10][3] = new black(10, 3);
- arr1[11][2] = new black(11, 2);
- print(arr1);
- System.out.println();
- for (int k = 1; k < 5; k++) {
- if (k % 2 != 0) {
- WhatNext(arr1, arr2);
- print(arr2);
- } else {
- WhatNext(arr2, arr1);
- print(arr1);
- }
- }
- }
- public static void WhatNext(cell[][] arr1, cell[][] s) {
- int n = 17, i, j;
- for (i = 1; i < n - 1; i++) {
- for (j = 1; j < n - 1; j++) {
- s[i][j] = arr1[i][j].NextColor(arr1);
- }
- }
- }
- static void print(cell[][] b) {
- for (int i=1; i<16; i++) {
- for (int j=1; j<16; j++)
- if(b[i][j].who() == 1)
- System.out.print("X" + " ");
- else
- System.out.print("-" + " ");
- System.out.println();
- }
- System.out.println();
- }
- }
- /////
- package ConwaysLife;
- public abstract class cell {
- public int x, y;
- public cell(int x, int y) {
- this.x = x;
- this.y = y;
- }
- abstract int who();
- abstract cell NextColor(cell[][] a);
- public int neighbours(cell[][] a) {
- int i, j, count;
- count = 0;
- for (i = -1; i < 2; i++) {
- for (j = -1; j < 2; j++) {
- count += a[x + i][y + j].who();
- }
- }
- count -= a[x][y].who();
- return count;
- }
- }
- /////
- package ConwaysLife;
- public class white extends cell {
- public white(int x, int y) {
- super(x,y);
- }
- public int who() {
- return 0;
- }
- cell NextColor(cell[][] arr1)
- {
- int count = neighbours(arr1);
- if (count==3)
- return new black(x,y);
- return this;
- }
- }
- /////
- package ConwaysLife;
- public class black extends cell {
- public black(int x, int y) {
- super(x, y);
- }
- public int who() {
- return 1;
- }
- cell NextColor(cell[][] arr1)
- {
- int count = neighbours(arr1);
- if (count == 2 || count == 3)
- return this;
- return new white(x, y);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement