//<body bgcolor=000000 text=00ff00><pre>
import java.awt.*;
import java.awt.image.*;
import java.applet.*;

public class light extends Applet
{
	int i,j,k;
	int a[][];
	int b[][];
	int size;
	Image left;
	Label label1,label2,label3;
	Choice choice;
	public void init()
	{
		setLayout(new BorderLayout());
		label1=new Label("Select Size:");
		label1.setBackground(Color.black);
		label1.setFont(new Font("Arial",Font.BOLD,12));
		label1.setForeground(Color.green);
		add(label1);
		label1.setBounds(210,30,80,12);
		choice=new Choice();
		choice.add("2");
		choice.add("3");
		choice.add("4");
		choice.add("5");
		choice.add("6");
		add(choice);
		choice.setBounds(230,50,35,12);
		label3 =new Label("Author:");
		label3.setBackground(Color.black);
		label3.setForeground(Color.green);
		label3.setFont(new Font("Arial",Font.BOLD,11));
		add(label3);
		label3.setBounds(200,130,100,20);
		label2 =new Label("xiangdong wen");
		label2.setBackground(Color.black);
		label2.setForeground(Color.green);
		label2.setFont(new Font("Arial",Font.BOLD,11));
		add(label2);
		label2.setBounds(200,150,100,20);
		size=3;
		begin();
		
    }
	public boolean action(Event event,Object obj)
	{
		if(event.target.equals(choice))setsize((String)obj);
		begin();
		return false;
	}	
	private void setsize(String s)
	{
		if(s=="2")size=2;
		else if(s=="3")size=3;
		else if(s=="4")size=4;
		else if(s=="5")size=5;
		else if(s=="6")size=6;
	    else if(s=="7")size=7;
		else size=1;
	}
	public boolean mouseDown(Event event,int x,int y)
	{
		int x0=(x-(200-size*30)/2)/30;
		int y0=(y-(200-size*30)/2)/30;
		if(x0>=0&&x0<size&&y0>=0&&y0<size)
		{
			a[x0][y0]+=1;
			if(x0-1>=0)a[x0-1][y0]+=1;
			if(y0-1>=0)a[x0][y0-1]+=1;
			if(x0+1<size)a[x0+1][y0]+=1;
			if(y0+1<size)a[x0][y0+1]+=1;
		}
		drawleft();
		repaint();
		return false;
	}
	public void update(Graphics g)
	{		
		g.setColor(Color.black);
		g.fillRect(0,0,300,200);
		g.drawImage(left,(200-30*size)/2,(200-30*size)/2,this);
	}
	private void begin()
	{		
		left=createImage(size*30+5,size*30+5);

		a=new int[size][size];
		b=new int[size][size];
		for(i=0;i<size;i++)
			for(j=0;j<size;j++)
			{
				a[i][j]=0;b[i][i]=0;
			}	
		drawleft();
		repaint();
	}
	public void paint(Graphics g)
	{
		g.setColor(Color.black);
		g.fillRect(0,0,300,200);
		drawleft();
		g.drawImage(left,(200-30*size)/2,(200-30*size)/2,this);
	}
	private void drawleft()
	{
		Graphics g=left.getGraphics();
		g.setColor(Color.black);
		g.fillRect(0,0,size*30,size*30);
		for(i=0;i<size;i++)
		{
			for(j=0;j<size;j++)
			{
				if(a[i][j]%2==1)
				{
					g.setColor(Color.yellow);
					g.fillRect(i*30+5,j*30+5,25,25);
				}
				else 
				{
					g.setColor(Color.darkGray);
					g.fillRect(i*30+5,j*30+5,25,25);		
				}
			 
			}
			g.setColor(Color.magenta);
			for(k=0;k<5;k++)
				{
					g.drawLine(0,k+i*30,size*30+5,k+i*30);
					g.drawLine(k+i*30,0,k+i*30,size*30+5);	
				}	
		}
		for(k=0;k<5;k++)
		{
			g.drawLine(0,k+size*30,size*30+5,k+size*30);	
			g.drawLine(k+size*30,0,k+size*30,size*30+5);	
		}
	}
}

