Застрял на программе 5.3.4 codeHS (JavaScript)

В уроке инструкции следующие:

Напишите функцию, которая рисует горизонтальные линии на графическом холсте. Если линия горизонтальная, то значения y для конечных точек совпадают. Параметрами вашей функции должны быть местоположение y, длина и все ваши строки должны начинаться с позиции x 0. Ваша функция должна называться горизонтальной линией.

Например, если вы звоните:

horizontalLine(100, 200);

Вы должны получить горизонтальную линию длиной 200, начиная с позиции (0, 100).

Если ваша функция запуска выглядит так:

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

Конечный мир должен выглядеть следующим образом. Теперь мой мир выглядит именно так, но проверка кода возвращает ошибку. Я не уверен, что не так с моим кодом, но я предполагаю его, потому что он хочет, чтобы я ввел два числа вместо четырех в моей функции запуска, но я не могу заставить его работать. Я застрял на этом почти месяц, и ответ, вероятно, очень прост, но я не могу понять, пожалуйста, помогите.

Это мой код:

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);
}

1 ответ

Решение

Да, автоматические проверки кода зависят от того, как ваша функция настроена так, как указано. Вероятно, ожидается, что ваша функция примет 2 параметра, а ваш - 4, поэтому при отправке значений они не получают правильные переменные.

Посмотрите на значения, которые вы имеете в своих вызовах функций запуска для HorizontalLine. Вы замечаете, что из 4 приведенных 2 всегда всегда одинаковы? Ваш 2-й и 4-й аргументы всегда одинаковы, потому что, как объясняет подсказка к упражнению, плоские линии имеют одинаковое значение y. Таким образом, вам не нужно передавать их отдельно, потому что они одинаковы. Вы просто сдадите его один раз, но используете его дважды.

В приглашении также указывается, что значение x всегда начинается с 0. Тем не менее, вы передаете его каждый раз (обратите внимание, что ваш первый параметр всегда равен 0?). Итак, еще раз, вам не нужно передавать это, просто используйте его.

Это концепция, теперь для реализации.

Первые две строки вашей функции на самом деле делают более или менее то, что им нужно сделать. Они устанавливают переменные, которые НЕ нужно передавать. Итак, почему вы передаете их? Просто измените определение вашей функции, чтобы отправить только два параметра, которые вы на самом деле используете!

Другие вопросы по тегам