国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

棋盤覆蓋

2019-11-14 23:40:55
字體:
來源:轉載
供稿:網友
棋盤覆蓋

第一次在博客園寫博客,用來分享我的學習之路。

以前寫的小東西不是丟了,就是沒有認真對待。這次雖然也很簡單,但卻是自己認真完成的,一個動態的swing圖形化界面的棋盤覆蓋。可惜沒使用監聽和自定義界面,提高自由度。

棋盤覆蓋

  1 package 棋盤覆蓋;  2   3   4 import java.awt.Color;  5   6 public class Qipan extends Dmain{   7         8     /**  9      *  10      */ 11     PRivate static final long serialVersionUID = 1L; 12  13     /**  14      * @param tr表示棋盤左上角行號  15      * @param tc表示棋盤左上角列號  16      * @param dr表示特殊棋盤的行號  17      * @param dc表示特殊棋盤的列號  18      * @param SIZE =2^k。棋盤的規格為2^k*2^k  19      *             20      * */ 21     static final int SIZE = 4;  22  23     static int title = 1; // title表示L型骨牌的編號  24  25     public static void ChessBoard(int tr, int tc, int dr, int dc, int size) {  26        for(int i=0;i<999999999;i++) 27        { 28             29        } 30          31          32         if (size == 1) {  33             return;  34         }  35         int t = title++; // t表示L型骨牌的編號  36         int s = size / 2; // 分割棋盤  37    38         // 覆蓋左上角棋盤  39         if (dr < tr + s && dc < tc + s) {  40             // 說明特殊方格在此小棋盤中  41             ChessBoard(tr, tc, dr, dc, s);  42         } else {  43             // 說明特殊方格不在此小棋盤中  44             // 用t號L型棋盤覆蓋這個小棋盤的右下角  45          46             setColor(tr + s - 1,tc + s - 1,t); 47             48             // 覆蓋其余棋盤  49             ChessBoard(tr, tc, tr + s - 1, tc + s - 1, s);  50         }  51    52         // 覆蓋右上角棋盤  53         if (dr < tr + s && dc >= tc + s) {  54             ChessBoard(tr, tc + s, dr, dc, s);  55         } else {  56             setColor(tr + s - 1,tc + s ,t); 57             ChessBoard(tr, tc + s, tr + s - 1, tc + s, s);  58         }  59         // 覆蓋左下角棋盤  60         if (dr >= tr + s && dc < tc + s) {  61             ChessBoard(tr + s, tc, dr, dc, s);  62         } else {  63             setColor(tr + s ,tc + s - 1,t); 64         65             ChessBoard(tr + s, tc, tr + s, tc + s - 1, s);  66         }  67         // 覆蓋右下角棋盤  68         if (dr >= tr + s && dc >= tc + s) {  69             ChessBoard(tr + s, tc + s, dr, dc, s);  70         } else {  71             setColor(tr + s ,tc + s ,t); 72  73             ChessBoard(tr + s, tc + s, tr + s, tc + s, s);  74         }  75    76     }  77      78     /** 79     * 設置標簽顏色 80     * @param i , j ,t 81     */ 82     public static void setColor(int i, int j, int t){ 83     switch(t){ 84     case 1: 85        text[i][j].setBackground(Color.yellow); 86     break; 87     case 2: 88         text[i][j].setBackground(Color.red); 89     break; 90     case 3: 91         text[i][j].setBackground(Color.CYAN); 92     break; 93     case 4: 94         text[i][j].setBackground(Color.orange); 95     break; 96     default: 97         text[i][j].setBackground(Color.BLACK); 98     99 } 100  101     }}

 1 package 棋盤覆蓋; 2  3  4 import java.awt.Color; 5  6 import java.awt.Font; 7 import java.util.Random; 8 import javax.swing.BorderFactory; 9 import javax.swing.JFrame;10 import javax.swing.JLabel;11 import javax.swing.JPanel;12 import javax.swing.SwingConstants;13 14 15 public class Dmain extends JFrame{16 17 /**18      * 19      */20     private static final long serialVersionUID = 1L;21 private JPanel mainPane;22 23 24 protected static JLabel[][] text;25 26 //Font font = new Font("", Font.BOLD,14);//設置字體類型和大小27 28 29 30 31 public static void main(String[] args){32 {33     34 Dmain frame = new Dmain();35 frame.setVisible(true);36 37 int a=new Random().nextInt(4);//生成隨機數用來生成特殊棋盤位置38 int b=new Random().nextInt(4);39 text[a][b].setBackground(Color.MAGENTA);40     QiPan.ChessBoard(0,0,a,b,4);41 }42 43 44 45 }46 47 48 49 50 /**51 * 構造方法52 */53 public Dmain(){54 super();55 56 setResizable(false);//禁止調整窗體大小57 getContentPane().setLayout(null);//設置空布局58 setBounds(500, 50, 500, 615);59 setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);60 setTitle("棋盤覆蓋");//設置窗體標題61 62 mainPane = new JPanel();//創建游戲主面板63 mainPane.setBounds(20, 70, 460, 500);//設置主面板位置尺寸64 this.getContentPane().add(mainPane);//this.getContentPane()初始化一個容器65 mainPane.setLayout(null);//設置空布局66 67 68 text = new JLabel[4][4];//創建文本框二維數組69 for(int i = 0; i < 4; i++){//遍歷數組70 for(int j = 0; j < 4; j++){71 text[i][j] = new JLabel();//創建標簽72 text[i][j].setHorizontalAlignment(SwingConstants.CENTER);//設置文本水平對齊,居中73 text[i][j].setText("");74 text[i][j].setBounds(120 * j, 120 * i, 100, 100);//設置方塊的大小位置75 text[i][j].setOpaque(true);//透明度不透明   false 透明,透明將導致文本顏色內容無法顯示。76 text[i][j].setBorder(BorderFactory.createMatteBorder(2, 2, 2, 2, Color.green));//設置方塊邊框顏色77 mainPane.add(text[i][j]);//將創建的文本框放在mainpane面板上78 79 }}}}
View Code


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定南县| 永清县| 应城市| 马龙县| 梅河口市| 江安县| 遵化市| 福鼎市| 呼和浩特市| 应城市| 格尔木市| 宝清县| 方城县| 南昌市| 翁牛特旗| 鄢陵县| 安达市| 镇平县| 琼中| 射洪县| 海宁市| 平罗县| 巴塘县| 吴堡县| 正安县| 濉溪县| 宁陵县| 乐山市| 河津市| 泉州市| 蒲江县| 梁河县| 麦盖提县| 宜川县| 资源县| 无棣县| 尚义县| 郯城县| 彭山县| 信阳市| 苏尼特左旗|