Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.Random;
- public class Main {
- static Random r;
- static final String ANSI_WHITE_BACKGROUND = "\u001B[43m";
- static final String ANSI_RED_BACKGROUND= "\u001B[41m";
- static final String ANSI_BLUE_BACKGROUND = "\u001B[44m";
- static final String ANSI_RESET = "\u001B[0m";
- public static void main(String[] args) {
- int [][] skin;
- skin = create(20,20);
- init(skin);
- putout(skin);
- r = new Random();
- for(int step = 1; step <= 11; step++) {
- for(int i = 0; i < skin.length; i++)
- for(int j = 0; j < skin[i].length; j++) {
- if(skin[i][j] == -4){
- skin[i][j] = 6;
- }
- else if(skin[i][j] != 6){
- int cell = r.nextInt(8);
- if(r.nextInt(2) == 1){
- switch(cell){
- case 0: infect(i-1, j-1, skin); break;
- case 1: infect(i-1, j, skin); break;
- case 2: infect(i-1, j+1, skin); break;
- case 3: infect(i, j-1, skin); break;
- case 4: infect(i, j+1, skin); break;
- case 5: infect(i+1, j-1, skin); break;
- case 6: infect(i+1, j, skin); break;
- case 7: infect(i+1, j+1, skin); break;
- }
- }
- skin[i][j]--;
- }
- }
- putout(skin);
- }
- }
- static boolean infect(int i, int j, int[][] skin){
- if(i >= 0 && i < skin.length && j >= 0 && j < skin[i].length)
- if(skin[i][j] == 6) {
- skin[i][j] = 5;
- return true;
- }
- return false;
- }
- static void init(int [][] b) {
- for(int i = 0; i < b.length; i++)
- for(int j = 0; j < b[i].length; j++)
- b[i][j] = 6;
- b[7][4] = 5;
- b[6][15] = 5;
- b[17][10] = 5;
- }
- static int [][] create(int sz1, int sz2) {
- int b[][] = new int[sz1][];
- for (int i = 0; i < sz1; i++)
- b[i] = new int[sz2];
- return b;
- }
- static void putout(int [][]b) {
- int i, j;
- char toPrint;
- String color;
- for(i = 0; i < b.length; i++) {
- for(j = 0; j < b[i].length; j++) {
- switch(b[i][j]){
- case 6: toPrint = 'H'; color = ANSI_BLUE_BACKGROUND; break;
- case -1:;
- case -2:;
- case -3:;
- case -4: toPrint ='W'; color = ANSI_RESET; break;
- default: toPrint ='X'; color = ANSI_RED_BACKGROUND;
- }
- System.out.print(color + " " + toPrint + " ");
- }
- System.out.println(ANSI_RESET);
- }
- System.out.println();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement