0

在本课中,指示是:

编写一个在图形画布上绘制水平线的函数。如果一条线是水平的,则端点的 y 值相同。您的函数的参数应该是 y 位置和长度,并且所有行都应该从 x 位置 0 开始。您的函数必须命名为 Horizo​​ntalLine。

例如,如果您致电:

horizontalLine(100, 200);

您应该从位置 (0, 100) 开始得到一条长度为 200 的水平线。

如果您的启动功能如下所示:

function start(){
    horizontalLine(100, 200);
    horizontalLine(200, 100);   
    horizontalLine(300, 20);
}

末日世界应该是这个样子。现在我已经让我的世界看起来完全一样,但代码检查返回错误。我不确定我的代码有什么问题,但我猜是因为它希望我在 start 函数中输入两个数字而不是四个数字,但我无法让它工作。我已经坚持了将近一个月,答案可能很简单,但我无法弄清楚,请帮忙。

这是我的代码:

function start() {
    horizontalLine(0, 100, 200, 100);
    horizontalLine(0, 200, 100, 200);   
    horizontalLine(0, 300, 20, 300);
}

function horizontalLine (x1, y1, x2, y2) {
    var x1 = 0;
    var y1 = y2;
    var line = new Line (x1, y1, x2, y2);
    add(line);
}
4

1 回答 1

0

是的,自动代码检查器取决于您的功能是否按照指定设置。它可能希望您的函数采用 2 个参数,但您的函数需要 4 个,因此当它发送值时,它们没有被分配给正确的变量。

查看您在对horizo​​ntalLine 的启动函数调用中的值。您是否注意到在给定的 4 个中,2 个总是相同的?您的第二个和第四个参数总是相同的,因为正如练习提示所解释的,扁平线具有相同的 y 值。所以你不需要单独传递它们,因为它们是相同的。您只需将其传递一次,但使用两次。

提示还指定 x 值将始终从 0 开始。但是,您每次都在传递它(请注意,您的第一个参数始终为 0?)。再说一次,您不需要传递它,只需使用它。

这就是概念,现在进行实施。

您的函数的前两行实际上或多或少地在做他们需要做的事情。他们正在设置不需要传入的变量。那么,为什么要传入它们?只需将您的函数定义更改为仅发送您实际使用的两个参数!

于 2018-02-09T19:22:32.927 回答