首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助理解绘制棋盘的代码

需要帮助理解绘制棋盘的代码
EN

Stack Overflow用户
提问于 2012-10-20 08:44:56
回答 1查看 279关注 0票数 0

这本书使用这个代码来画一个棋盘。我唯一的问题是理解棋盘上各个方块的绘制顺序。当我做我的计算时,它只在对角方向上从左上角到右下角用方块填充棋盘。书中说代码对每个方块循环64次,但我不确定它是如何做到64次的。

例如,假设getHeight() = 72

sqSize =9

在最内层循环中移动

双x=0*9 ===> 0

双y=0*9 ===> 0

GRect (0,0,9,9,);

双x=1*9 ===> 9

双y=1*9 ===> 9

GRect (9,9,9,9,);

双x=2*9 ===> 18

双y=2*9 ===>18

GRect (18,18,9,9);

等等。

代码语言:javascript
复制
import acm.program.*;
import acm.graphics.*;

public class Checkerboard extends GraphicsProgram {

public void run(){

double sqSize = (double) getHeight() / N_ROWS;
for ( int i = 0; i < N_ROWS; i++ ){
    for( int j = 0; j < N_COLUMNS; j++) {
           double x = j * sqSize;
           double y = i * sqSize;
           GRect sq = new GRect(x, y, sqSize, sqSize);
           sq.setFilled(( i + J ) % 2 !=0); 

            }
         }
      }
    private static final int N_ROWS = 8; 
    private static final int N_COLUMNS = 8; 
     }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-20 08:55:52

您有两个循环-第二个循环遍历每个值0-7,总共循环8次,因为这是第一个循环运行的次数。在您的解释中,您似乎在同时递增这两个值,就好像只有一个循环每次递增两个值一样。

在循环中打印i和j的值可能会有所帮助。

代码语言:javascript
复制
(i,j)

(0, 1) (0, 2) (0, 3) ...
(1, 1) (1, 2) (1, 3) ...
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12984237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档