Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import flash.display.Sprite;
- import flash.events.Event;
- //Create grid sets
- function CreateGridArray(input_col, input_row) {
- var arr = new Array(input_col);
- for (var i = 0; i < arr.length; i++) {
- arr[i] = new Array(input_row);
- }
- return arr;
- }
- //Set-up 1st grid image
- var StartGrid:Array = new Array();
- var grid_size = 10;
- var col = Math.round(stage.stageWidth/grid_size);
- var row = Math.round(stage.stageHeight/grid_size);
- StartGrid = CreateGridArray(col, row);
- for (var i = 0; i < col; i++) {
- for (var j = 0; j < row; j++) {
- var r:Number = Math.random();
- if (r < 0.2){
- StartGrid[i][j] = 1;
- }
- else{
- StartGrid[i][j] = 0;
- }
- }
- }
- var sp:Sprite = new Sprite();
- stage.addChild(sp);
- //Frame Enter Start
- stage.addEventListener(Event.ENTER_FRAME, onLoop);
- function onLoop(e:Event){
- var NewGrid:Array = new Array();
- //Print grid pattern
- for (var i = 0; i < col; i++){
- for (var j = 0; j < row; j++){
- if(StartGrid[i][j] == 1){
- sp.graphics.beginFill(0x000000, 1);
- sp.graphics.drawRect(i*grid_size, j*grid_size, grid_size, grid_size);
- sp.graphics.endFill();
- }
- }
- }
- //Setup & simulate 2nd grid
- NewGrid = CreateGridArray(col, row);
- for (i = 0; i < col; i++){
- for (j = 0; j < row; j++){
- //exception for edge
- var cell_state = StartGrid[i][j];
- //check for 1 cell
- var nearbySumUp = NearbyCount(i,j,StartGrid);
- if (cell_state == 0 && nearbySumUp == 3) {
- NewGrid[i][j] = 1;
- } else if (cell_state == 1 && (nearbySumUp < 2 || nearbySumUp > 3)) {
- NewGrid[i][j] = 0;
- } else {
- NewGrid[i][j] = cell_state;
- }
- }
- }
- StartGrid = NewGrid;
- }
- function NearbyCount(i,j,GridName){
- var sum = 0;
- //Sum up all nearby cells (with egde prevent)
- for (var i = -1; i < 2; i++) {
- for (var j = -1; j < 2; j++) {
- var col= (col + x + i) % col;
- var row = (row + y + j) % row;
- sum += GridName[col][row];
- }
- }
- sum -= GridName[x][y]; //remove itself
- return sum;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement