⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 my.java

📁 盘覆盖问题:在一个2k×2k 个方格组成的棋盘中
💻 JAVA
字号:
import java.awt.*;import java.applet.Applet;public class my extends java.applet.Applet {    public int tile=0;    public static int size=8;    public static int m=2,n=2;    public static int Style[]=new int[(size*size-1)/3];    public static int Temp_x[]=new int[(size*size-1)/3];    public static int Temp_y[]=new int[(size*size-1)/3];    public static int first_X,first_Y;    public static int No;    public static boolean FirstTime = true;    public static boolean paintEnable = false;    public static boolean mouseClickEnable = true;    int board[][]=new int[size][size];    /** Initializes the applet my */    public void init() {        initComponents();    }        public void star() {        my c=new my();        int i,j;        int size=8;        int tr=0,tc=0;        int dr=((first_X-20)/40),dc=((first_Y-20)/40);        System.out.println("first_X="+first_X+"  first_Y="+first_Y);        System.out.println("dr="+dr+"  dc="+dc);        for (int a=0;a<size;a++)            for (int b=0;b<size;b++)                board[a][b]=0;        chessBoard(tr,tc,dr,dc,size);        repaint();        System.out.println("chessBoard has finished.");    }            public void paint(Graphics g) {                ////----------------  画线  -----------------------------                g.setColor(Color.BLACK );        for (int xy=0;xy<=size;xy++) {            g.drawLine(20+40*xy, 20, 20+40*xy, 20+40*size);            g.drawLine(20, 20+40*xy, 20+40*size, 20+40*xy);        }        while (!mouseClickEnable) {            System.out.println("Big!mouseClickEnable is around.");            ////----------------  画第一个点  ------------------------------            while (!mouseClickEnable) {                System.out.println("little!mouseClickEnable is around.");                int alpha = 100;                No=20;                while (alpha<255){                    g.setColor(new Color(Color.RED.getRed(),Color.RED.getGreen(),Color.RED.getBlue(),alpha));                    g.fillOval(first_X+1, first_Y+1, 38, 38);                    try{                        Thread.sleep(50);                    }                    catch(InterruptedException e) {                        showStatus(e.toString());                    }                    alpha+=2;                    if (alpha==70)                        alpha=256;                    System.out.println("我也不想死循环啊~~~5555 alpha = "+alpha);                }                                while (paintEnable) {                    System.out.println("paintEnable is around.");                    g.setColor(Color.BLACK );                    FirstTime = false ;                                        No=20;                    System.out.println("I have get there.");                    while(No!=-1) {                        alpha = 0;                        switch(Style[No]) {                            case 1:                                while (alpha<256) {                                    g.setColor(new Color(Color.ORANGE.getRed(),Color.ORANGE.getGreen(),Color.ORANGE.getBlue(),alpha));                                    g.fillRect(21+40*Temp_x[No], 21+40*Temp_y[No], 39, 79);                                    g.fillRect(21+40*(Temp_x[No]-1), 21+40*(Temp_y[No]+1), 79, 39);                                    //                        System.out.println("alpha="+alpha);                                    try{                                        Thread.sleep(50);                                    }                                    catch(InterruptedException e) {                                        showStatus(e.toString());                                    }                                    alpha+=2;                                    if (alpha==70)                                        alpha=256;                                }                                alpha = 0;                                break;                            case 2:                                while (alpha<256) {                                    g.setColor(new Color(Color.GREEN.getRed(),Color.GREEN.getGreen(),Color.GREEN.getBlue(),alpha));                                    g.fillRect(21+40*Temp_x[No], 21+40*Temp_y[No], 79, 39);                                    g.fillRect(21+40*(Temp_x[No]+1), 21+40*(Temp_y[No]), 39, 79);                                    //                    System.out.println("已经画出第二个图,在位置"+Temp_x[No]+","+Temp_y[No]);                                    try{                                        Thread.sleep(50);                                    }                                    catch(InterruptedException e) {                                        showStatus(e.toString());                                    }                                    alpha+=2;                                    if (alpha==70)                                        alpha=256;                                }                                alpha = 0;                                break;                            case 3:                                while (alpha<256) {                                    g.setColor(new Color(Color.BLUE.getRed(),Color.BLUE.getGreen(),Color.BLUE.getBlue(),alpha));                                    g.fillRect(21+40*Temp_x[No], 21+40*Temp_y[No], 39, 79);                                    g.fillRect(21+40*(Temp_x[No]), 21+40*(Temp_y[No]+1), 79, 39);                                    //                    System.out.println("已经画出第三个图,在位置"+Temp_x[No]+","+Temp_y[No]);                                    try{                                        Thread.sleep(50);                                    }                                    catch(InterruptedException e) {                                        showStatus(e.toString());                                    }                                    alpha+=2;                                    if (alpha==70)                                        alpha=256;                                }                                alpha = 0;                                break;                            case 4:                                while (alpha<256) {                                    g.setColor(new Color(Color.MAGENTA.getRed(),Color.MAGENTA.getGreen(),Color.MAGENTA.getBlue(),alpha));                                    g.fillRect(21+40*Temp_x[No], 21+40*Temp_y[No], 79, 39);                                    g.fillRect(21+40*Temp_x[No], 21+40*Temp_y[No], 39, 79);                                    //                    System.out.println("已经画出第四个图,在位置"+Temp_x[No]+","+Temp_y[No]);                                    try{                                        Thread.sleep(50);                                    }                                    catch(InterruptedException e) {                                        showStatus(e.toString());                                    }                                    alpha+=2;                                    if (alpha==70)                                        alpha=256;                                }                                alpha = 0;                                break;                                //            default:                                //                g.setColor(Color.WHITE);                                //                break;                        }                        No--;                    }                    break;                }                try{                    Thread.sleep(50);                }                catch(InterruptedException e) {                    showStatus(e.toString());                }                break;            }            break;        }    }            public void chessBoard(int tr,int tc,int dr,int dc,int size) {        if (size==1) return;        int t = tile++ ;        int s = size/2;        //--------------------------------------------------------左上   1        if (dr<tr+s&&dc<tc+s) {            chessBoard(tr,tc,dr,dc,s);            t=1;        }        else {            //			board[tr+s-1][tc+s-1]=t;            chessBoard(tr,tc,tr+s-1,tc+s-1,s);        }        //--------------------------------------------------------右上   2        if (dr<tr+s&&dc>=tc+s) {            chessBoard(tr,tc+s,dr,dc,s);            t=2;        }        else {            //			board[tr+s-1][tc+s]=t;            chessBoard(tr,tc+s,tr+s-1,tc+s,s);        }        //--------------------------------------------------------左下   3        if (dr>=tr+s&&dc<tc+s) {            chessBoard(tr+s,tc,dr,dc,s);            t=3;        }        else {            //			board[tr+s][tc+s-1]=t;            chessBoard(tr+s,tc,tr+s,tc+s-1,s);        }        //--------------------------------------------------------右下   4        if (dr>=tr+s&&dc>=tc+s) {            chessBoard(tr+s,tc+s,dr,dc,s);            t=4;        }        else {            //			board[tr+s][tc+s]=t;            chessBoard(tr+s,tc+s,tr+s,tc+s,s);        }        //--------------------------------------------------------填充        switch(t) {            case 1: board[tr+s-1][tc+s]=t; board[tr+s][tc+s-1]=t; board[tr+s][tc+s]=t;            Temp_x[No]=tr+s;            Temp_y[No]=tc+s-1;            break;            case 2: board[tr+s-1][tc+s-1]=t; board[tr+s][tc+s-1]=t; board[tr+s][tc+s]=t;            Temp_x[No]=tr+s-1;            Temp_y[No]=tc+s-1;            break;            case 3: board[tr+s-1][tc+s-1]=t; board[tr+s-1][tc+s]=t; board[tr+s][tc+s]=t;            Temp_x[No]=tr+s-1;            Temp_y[No]=tc+s-1;            break;            case 4: board[tr+s-1][tc+s-1]=t; board[tr+s-1][tc+s]=t; board[tr+s][tc+s-1]=t;            Temp_x[No]=tr+s-1;            Temp_y[No]=tc+s-1;            break;        }        Style[No]=t;        System.out.println("Style="+t);        No++;        System.out.println("No="+No);    }        private void initComponents() {        setLayout(new java.awt.BorderLayout());        addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseClicked(java.awt.event.MouseEvent evt) {                getClicked(evt);            }        });    }        private void getClicked(java.awt.event.MouseEvent evt) {        System.out.println("Mouse has Clicked!");        while (mouseClickEnable) {            int x = 20;            int y = 20;            int mouse_X=evt.getX();            int mouse_Y=evt.getY();            System.out.println("getX="+mouse_X);            if((x<mouse_X)&&(mouse_X<x+size*40)&&(y<mouse_Y)&&(mouse_Y<y+size*40)&&(mouseClickEnable)){                mouseClickEnable = false ;                while (x<mouse_X)                    x+=40;                while (y<mouse_Y)                    y+=40;                first_X=x-40;                first_Y=y-40;                System.out.println(x+" "+y);            }            System.out.println("这儿死循环"+mouseClickEnable);            paintEnable = true ;            star();            repaint();            break;        }    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -