Advertisement
Guest User

Untitled

a guest
Oct 2nd, 2018
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import flash.display.Sprite;
  2. import flash.events.Event;
  3.  
  4. //Create grid sets
  5. function CreateGridArray(input_col, input_row) {
  6.   var arr = new Array(input_col);
  7.   for (var i = 0; i < arr.length; i++) {
  8.     arr[i] = new Array(input_row);
  9.   }
  10.   return arr;
  11. }
  12.  
  13. //Set-up 1st grid image
  14. var StartGrid:Array = new Array();
  15.  
  16. var grid_size = 10;
  17. var col = Math.round(stage.stageWidth/grid_size);
  18. var row = Math.round(stage.stageHeight/grid_size);
  19.  
  20. StartGrid = CreateGridArray(col, row);
  21.  
  22. for (var i = 0; i < col; i++) {
  23.     for (var j = 0; j < row; j++) {
  24.         var r:Number = Math.random();
  25.         if (r < 0.2){
  26.             StartGrid[i][j] = 1;
  27.         }
  28.         else{
  29.             StartGrid[i][j] = 0;
  30.         }      
  31.     }
  32. }
  33.  
  34. var sp:Sprite = new Sprite();
  35. stage.addChild(sp);
  36.  
  37. //Frame Enter Start
  38. stage.addEventListener(Event.ENTER_FRAME, onLoop);
  39.  
  40. function onLoop(e:Event){
  41.     var NewGrid:Array =  new Array();
  42.  
  43.     //Print grid pattern
  44.     for (var i = 0; i < col; i++){
  45.         for (var j = 0; j < row; j++){
  46.             if(StartGrid[i][j] == 1){
  47.                 sp.graphics.beginFill(0x000000, 1);
  48.                 sp.graphics.drawRect(i*grid_size, j*grid_size, grid_size, grid_size);
  49.                 sp.graphics.endFill();
  50.             }
  51.         }
  52.     }
  53.    
  54.     //Setup & simulate 2nd grid
  55.     NewGrid = CreateGridArray(col, row);
  56.    
  57.     for (i = 0; i < col; i++){
  58.         for (j = 0; j < row; j++){
  59.             //exception for edge
  60.             var cell_state = StartGrid[i][j];
  61.                        
  62.             //check for 1 cell
  63.             var nearbySumUp = NearbyCount(i,j,StartGrid);
  64.            
  65.               if (cell_state == 0 && nearbySumUp == 3) {
  66.                 NewGrid[i][j] = 1;
  67.               } else if (cell_state == 1 && (nearbySumUp < 2 || nearbySumUp > 3)) {
  68.                 NewGrid[i][j] = 0;
  69.               } else {
  70.                 NewGrid[i][j] = cell_state;
  71.               }
  72.         }
  73.     }  
  74.    
  75.     StartGrid = NewGrid;
  76. }
  77.  
  78. function NearbyCount(i,j,GridName){
  79.   var sum = 0;
  80.  
  81.  //Sum up all nearby cells (with egde prevent)
  82.   for (var i = -1; i < 2; i++) {
  83.     for (var j = -1; j < 2; j++) {
  84.         var col= (col + x + i) % col;
  85.         var row = (row + y + j) % row;
  86.       sum += GridName[col][row];
  87.     }
  88.   }
  89.  
  90.   sum -= GridName[x][y]; //remove itself
  91.  
  92.   return sum;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement