All pastes #242023 Raw Edit

Someone

public text v1 · immutable
·published 2006-11-06 21:20 UTC
rendered paste body
public static void step(){
		int x,y,offsetX,offsetY,row,colm;
		int red=0 ,green = 0;
		Color tempCol;// = Color.gray;
		
		cell [][] newGrid = new cell[size][size]; //temporary array of cells
		for(x = 0; x < size;x++){//row in grid being examined
			for(y = 0; y < size; y++){//column in grid being examined
				//set red and green equal to zero again
				red=0 ;
				green=0;
				for(offsetX=-1; offsetX<2;offsetX++ ){//offsets are -1 to 1 so in the case of x, left centre and right
					for(offsetY=-1; offsetY<2; offsetY++){
						if (!(offsetX==0 && offsetY==0)){//not the square being examined
							row = x + offsetX;//row is the row  of the surrounding cell being examined
							if (row == -1){//catch array out of bounds
								row = 39;
							} else if (row == 40)  {
								row = 0;
							}
							
							colm = y + offsetY;//colm is the column of the surrounding cell being examined
							if (colm == -1){//catch array out of bounds
								colm = 39;
							} else if (colm == 40)  {
								colm = 0;
							}
							tempCol = grid[row][colm].getBackground(); //tempCol refers to the colour of the surrounding cell
							if(tempCol == Color.red){//if it is red increment the amout of reds
								red++;
							}
							if(tempCol == Color.green){//if it is green increment the greens
								green++;
							}
							
							if(red>green){//of there are more reds
								switch(red){//how many reds
								case 2 :  //if tehre are 2 keep the colour the same
									newGrid[x][y] = new cell(grid[x][y].getBackground());
									break;
								case 3 ://if there are 3 create a cell
									newGrid[x][y] = new cell(Color.red);
								default: //else cell dies and is gray
									newGrid[x][y] = new cell(Color.gray);
									break;
								}
							}else if (green>red){//if there are more greens
								switch(green){
								case 2 :  
									newGrid[x][y] = new cell(grid[x][y].getBackground());
									break;
								case 3 :
									newGrid[x][y] = new cell(Color.green);
								default: 
									newGrid[x][y] = new cell(Color.gray);
									break;
								}
							}else{//if tehre are equal amounts keep the cell the same colour
								newGrid[x][y] = new cell(grid[x][y].getBackground());
							}
						}
					}
				}
				
				
			}
		}//update the grid
		for(x = 0; x < size;x++){
			for(y = 0; y < size; y++){
				grid[x][y].setBackground(newGrid[x][y].getBackground());
			}
		}
		stages.setText(Integer.toString(Integer.parseInt(stages.getText())+1));
	}