Случайная переменная, управляющая цветом, не меняется каждый раз, когда происходит цикл for

#javascript

#язык JavaScript

Вопрос:

мой код работает, создавая линию по диагонали вперед и вниз, но светлый цвет никогда не меняется, он всегда остается красным. Кто-нибудь может помочь мне это исправить? Кстати, красная часть относится к более ранней части кода, что означает, что ни один из операторов if не работает в цикле, код управляет светом с правой стороны дома

 function lightsDown(x,y,ln,s) {  for (u = 0; u lt; ln; u  ) {    var c = random(1,4)    if (c === 1) {    fill('green')    }   if (c === 2) {  fill ('red')  }  if (c === 3) {  fill('yellow')  }  if (c === 4) {  fill('blue')  }    circle((x 4.5*s)-(2.67*s/ln)*u,y-(2.67*s/ln*u), s/4)   }  

}

Ответ №1:

Random возвращает десятичное число преобразуйте его в целое число с помощью:

 var c = math.floor(random(1, 4))  

Ответ №2:

Вы ставите условие, если утверждение кажется неправильным. Это должно быть (c === 1). И преобразование переменной c в int.

Комментарии:

1. все еще не работает, я обновил страницу, показывающую, что она делает

2. это потому, что случайная функция возвращает значение с плавающей точкой. Вы должны попробовать преобразовать его в int с помощью Math.floor