import java.awt.Color;
import javax.swing.JFrame;
public class Main{
static int[][] a=new int[16][16];
static public int colormask=1;
private MyPanel mp=null;
private JFrame f=new JFrame("棋盘覆盖演示-15121856刘知昊");
public static void main(String[] args) {
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
a[i][j]=0;
a[1][1]=2;
new Main().HuiZhi();
}
public void HuiZhi() {
f.setSize(500,400);
f.setLocation(30,30);
f.setBackground(Color.WHITE);
f.setVisible(true);
ChessBoard(0,0,1,1,16);
}
public void ChessBoard(int tr,int tc,int dr,int dc,int size){
if(size==1)
return;
int s=size/2;
try {
if(dr<tr+s&&dc<tc+s){
ChessBoard(tr,tc,dr,dc,s);
}
else{
a[tr+s-1][tc+s-1]=1;
mp=new MyPanel();
f.add(mp);
f.repaint();
Thread.sleep(100);
ChessBoard(tr,tc,tr+s-1,tc+s-1,s);
}
if(dr<tr+s&&dc>=tc+s)
ChessBoard(tr,tc+s,dr,dc,s);
else{
a[tr+s-1][tc+s]=1;
mp=new MyPanel();
f.add(mp);
f.repaint();
Thread.sleep(100);
ChessBoard(tr,tc+s,tr+s-1,tc+s,s);
}
if(dr>=tr+s&&dc<tc+s)
ChessBoard(tr+s,tc,dr,dc,s);
else{
a[tr+s][tc+s-1]=1;
mp=new MyPanel();
f.add(mp);
f.repaint();
Thread.sleep(100);
ChessBoard(tr+s,tc,tr+s,tc+s-1,s);
}
if(dr>=tr+s&&dc>=tc+s)
ChessBoard(tr+s,tc+s,dr,dc,s);
else{
a[tr+s][tc+s]=1;
mp=new MyPanel();
f.add(mp);
f.repaint();
Thread.sleep(100);
ChessBoard(tr+s,tc+s,tr+s,tc+s,s);
}
}catch(Exception e)
{System.out.println("出现异常");}
}
}
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
class MyPanel extends JPanel {
@Override
public void paint(Graphics g) {
super.paint(g);
for(int i=0;i<17;i++)
{
g.drawLine(80+i*20, 20, 80+i*20, 20+16*20);
g.drawLine(80, 20+i*20, 80+16*20, 20+i*20);
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
if(Main.a[i][j]==2)
{
g.setColor(Color.RED);
g.fillRect(80+i*20, 20+j*20, 20, 20);
}
else if(Main.a[i][j]==1)
{
g.setColor(new Color(0xffAA00+Main.colormask));
Main.colormask+=0x000FFF;
g.fillRect(80+i*20, 20+j*20, 20, 20);
}
}
}