Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Engine;
- public class Engine {
- private int sizeX;
- private int sizeY;
- private int iterations;
- private boolean[][] game;
- public Engine(int k, int l){
- this.sizeX = k;
- this.sizeY = l;
- this.iterations = 1;
- game = new boolean[k][l];
- for(int i = 0; i<k; i++){
- for(int j = 0; j<l; j++){
- game[i][j] = false;
- }
- }
- game[1][0] = true;
- game[2][1] = true;
- game[0][2] = true;
- game[1][2] = true;
- game[2][2] = true;
- }
- private boolean isAlive(int x, int y){
- int celAlive = 0;
- for(int i=(x-1); i<=(x+1); i++){
- for(int j=(y-1); j<=(y+1); j++){
- if(i<sizeX && i>=0 && j<sizeY && j>=0){
- if(game[i][j] && !(i==x && j==y)){
- celAlive++;
- //System.out.println(">"+i+"."+j+"<\n");
- }
- }
- }
- }
- if(game[x][y]){
- /* Cellule vivante */
- if(celAlive==2 || celAlive==3)
- return true;
- else
- return false;
- } else {
- /* Cellule morte */
- if(celAlive==3)
- return true;
- else
- return false;
- }
- }
- public void printGame(){
- for(int j=0; j<sizeY; j++){
- for(int i=0; i<sizeX; i++){
- //System.out.print(i+"."+j);
- if(game[i][j])
- System.out.print("\033[1;31mO\033[0m");
- else
- System.out.print(".");
- }
- System.out.println();
- }
- }
- public void nextSlide(){
- boolean[][] gameb = new boolean[sizeX][sizeY];
- for(int i=0; i<sizeX; i++){
- for(int j=0; j<sizeY; j++){
- //System.out.print(i+"."+j+" ");
- if(isAlive(i, j))
- gameb[i][j] = true;
- else
- gameb[i][j] = false;
- }
- }
- this.game = gameb;
- }
- public void wait(int secs)
- {
- try {
- Thread.sleep(secs);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- public void clear(){
- char esc = 27;
- String clear = esc + "[2J";
- System.out.print(clear);
- }
- private void printInformations(){
- System.out.print("\033[40m\033[1;37m");
- String text = ("GameOfLife ["+this.iterations+"]");
- System.out.print(text);
- for(int i=0; i<(sizeX-text.length()); i++){
- System.out.print(" ");
- }
- System.out.println("\033[0m");
- }
- public void launch(int ms, int iterations){
- for(int i=0;i<iterations;i++){
- clear();
- printGame();
- printInformations();
- wait(ms);
- nextSlide();
- this.iterations++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement