java语言的科学与艺术-编程练习4.14

 1 /*
 2  * File:CheckBoard.java
 3  * --------------------
 4  * 画出国际象棋的棋盘,使用嵌套的for循环。
 5  */
 6 
 7 import acm.graphics.*;
 8 import acm.program.*;
 9 import java.awt.*;
10 
11 public class CheckBoard extends GraphicsProgram {
12     
13     public void run(){
14         double sqSize = (double)(getHeight() / N_ROWS);
15         for (int i = 0; i < N_ROWS; i++){
16             for(int j = 0; j < N_COLUMNS; j++){
17                 double x = (getWidth() - N_ROWS * sqSize) / 2 + j * sqSize;
18                 double y = i * sqSize;
19                 GRect sq = new GRect(x,y,sqSize,sqSize);
20                 sq.setFilled((i + j) % 2 != 0);
21                 sq.setFillColor(Color.GRAY);
22                 add(sq);
23                 if (i < 3 && (i + j) % 2 != 0){
24                     GOval checkRed = new GOval(x + 4,y + 4,sqSize - 8, sqSize - 8);
25                     checkRed.setFilled(true);
26                     checkRed.setColor(Color.RED);
27                     add (checkRed);
28                 }
29                 if (i > 4 && (i + j) % 2 != 0){
30                     GOval checkBlack = new GOval(x + 4,y + 4,sqSize - 8, sqSize - 8);
31                     checkBlack.setFilled(true);
32                     checkBlack.setColor(Color.BLACK);
33                     add (checkBlack);
34                 }
35             }
36         }
37     }
38     
39     /*
40      * 定义常量
41      */
42     private static final int N_ROWS = 8;
43     private static final int N_COLUMNS = 8;
44 }

 

posted on 2012-12-06 21:24  mybluecode  阅读(323)  评论(0编辑  收藏  举报