Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.30 KB | None | 0 0
  1. package Engine;
  2.  
  3. public class Engine {
  4.     private int sizeX;
  5.     private int sizeY;
  6.     private int iterations;
  7.     private boolean[][] game;
  8.    
  9.     public Engine(int k, int l){
  10.         this.sizeX = k;
  11.         this.sizeY = l;
  12.         this.iterations = 1;
  13.        
  14.         game = new boolean[k][l];
  15.         for(int i = 0; i<k; i++){
  16.             for(int j = 0; j<l; j++){
  17.                 game[i][j] = false;
  18.             }
  19.         }
  20.        
  21.         game[1][0] = true;
  22.         game[2][1] = true;
  23.         game[0][2] = true;
  24.         game[1][2] = true;
  25.         game[2][2] = true;
  26.     }
  27.    
  28.     private boolean isAlive(int x, int y){
  29.         int celAlive = 0;
  30.         for(int i=(x-1); i<=(x+1); i++){
  31.             for(int j=(y-1); j<=(y+1); j++){
  32.                 if(i<sizeX && i>=0 && j<sizeY && j>=0){
  33.                     if(game[i][j] && !(i==x && j==y)){
  34.                         celAlive++;
  35.                         //System.out.println(">"+i+"."+j+"<\n");
  36.                     }
  37.                 }
  38.             }
  39.         }
  40.        
  41.         if(game[x][y]){
  42.             /* Cellule vivante */
  43.             if(celAlive==2 || celAlive==3)
  44.                 return true;
  45.             else
  46.                 return false;
  47.         } else {
  48.             /* Cellule morte */
  49.             if(celAlive==3)
  50.                 return true;
  51.             else
  52.                 return false;
  53.         }
  54.     }
  55.    
  56.     public void printGame(){
  57.         for(int j=0; j<sizeY; j++){
  58.             for(int i=0; i<sizeX; i++){
  59.                 //System.out.print(i+"."+j);
  60.                 if(game[i][j])
  61.                     System.out.print("\033[1;31mO\033[0m");
  62.                 else
  63.                     System.out.print(".");
  64.             }
  65.             System.out.println();
  66.         }
  67.     }
  68.    
  69.     public void nextSlide(){
  70.         boolean[][] gameb = new boolean[sizeX][sizeY];
  71.         for(int i=0; i<sizeX; i++){
  72.             for(int j=0; j<sizeY; j++){
  73.                 //System.out.print(i+"."+j+" ");
  74.                 if(isAlive(i, j))
  75.                     gameb[i][j] = true;
  76.                 else
  77.                     gameb[i][j] = false;
  78.             }
  79.         }
  80.         this.game = gameb;
  81.     }
  82.    
  83.     public void wait(int secs)
  84.     {
  85.         try {
  86.             Thread.sleep(secs);
  87.         } catch (InterruptedException e) {
  88.             e.printStackTrace();
  89.         }
  90.     }
  91.    
  92.     public void clear(){
  93.         char esc = 27;
  94.         String clear = esc + "[2J";
  95.         System.out.print(clear);
  96.     }
  97.    
  98.     private void printInformations(){
  99.         System.out.print("\033[40m\033[1;37m");
  100.         String text = ("GameOfLife      ["+this.iterations+"]");
  101.         System.out.print(text);
  102.         for(int i=0; i<(sizeX-text.length()); i++){
  103.             System.out.print(" ");
  104.         }
  105.         System.out.println("\033[0m");
  106.     }
  107.    
  108.     public void launch(int ms, int iterations){
  109.         for(int i=0;i<iterations;i++){
  110.             clear();
  111.             printGame();
  112.             printInformations();
  113.             wait(ms);
  114.             nextSlide();
  115.             this.iterations++;
  116.         }
  117.     }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement