2

这是我要复制的内容:

目前,我的代码如下:

public void boxes() {
    setLocation(20,20);
    for(int j =0; j < 5; j = j+1) {
    setLocation(20+50*j,20+50*j);
        for (int i= 0; i<4; i= i+1) {
            move(600-(50*j)); 
            turn(90);
    }
  }
}

结果是:

请不要给我写任何代码,我非常希望只对我如何制作它进行一般性解释,以便绘制的框不会在同一点结束。在过去的两个小时里,我一直在试图弄清楚,但没有运气,而我目前拥有的是迄今为止我所获得的最好的。谢谢!

这是基于http://www.greenfoot.org/scenarios/3535

4

2 回答 2

2

问题在于您传递给move()函数的值,它应该是:

move(600-(50*j*2));

原因是正方形的每条边的长度应该比前一个正方形的偏移量短两倍,因为它开始offset单位更深,结束offset单位更早(offset=50在这种情况下)。

于 2015-09-08T12:13:27.610 回答
0

选择下j一个方块。问你自己:

  • 很高兴知道:绘图的终点与起点相同
  • 你从 (50, 50) 开始。你是怎么从之前的终点到那里的
  • 绘制的新长度是多少
于 2015-09-08T12:25:57.503 回答