Files
2018-10-16 21:32:40 +05:30

7.4 KiB
Raw Blame History

title, localeTitle
title localeTitle
Golf Code Гольф-код

:triangular_flag_on_post: Не забудьте использовать Read-Search-Ask если вы застряли. Попробуйте подключить программу :busts_in_silhouette: и напишите свой собственный код :pencil:

:checkered_flag: Проблема Объяснение:

В игре в гольф каждое отверстие имеет номинальной означая среднее число ударов игрок в гольф , как ожидается , чтобы сделать для того , чтобы утопить мяч в отверстие , чтобы закончить игру. В зависимости от того , насколько выше или ниже номинальной ваши ходы, есть другой ник.

Ваша функция будет передана параметрам par и strokes . Вы должны вернуть правильную строку в соответствии с этой таблицей, которая отображает штрихи в порядке приоритета; верхняя (самая высокая) до нижней (самая низкая):

Штрихи | Вернуть
--------- | : -------------
1 | "Отверстие в одном!"
<= par - 2 | «Орел»
par - 1 | "Птичка"
par | «Пар»
par + 1 | «Пугало»
par + 2 | "Двойной Богей" > = par + 3 | "Иди домой!"

par и штрихи всегда будут числовыми и положительными.

  • Измените код ниже // Only change code below this line и выше // Only change code above this line .
  • Убедитесь, что вы редактируете внутреннюю часть функции golfScore .
  • Вам нужно будет заставить функцию возвращать точно такую ​​же строку, как показано в таблице, в зависимости от значения параметров par и штрихов , передаваемых вашей функции.

:speech_balloon: Подсказка: 1

+number -number можно использовать для увеличения или уменьшения параметра в вашем состоянии.

попытаться решить проблему сейчас

:speech_balloon: Подсказка: 2

Вы используете if / else if цепочки возвращают разные значения в разных сценариях.

попытаться решить проблему сейчас

:speech_balloon: Подсказка: 3

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

попытаться решить проблему сейчас

Осторожно, спойлеры!

предупреждающий знак

Решение впереди!

:beginner: Решение базового кода:

function golfScore(par, strokes) { 
  // Only change code below this line 
  if (strokes == 1){ 
    return "Hole-in-one!"; 
  } else if (strokes <= par -2){ 
    return "Eagle"; 
  } else if (strokes == par -1) { 
    return "Birdie"; 
  } else if (strokes == par) { 
    return "Par"; 
  } else if (strokes == par +1) { 
    return "Bogey"; 
  } else if (strokes == par +2) { 
    return "Double Bogey"; 
  } else { 
    return "Go Home!"; 
  } 
  // Only change code above this line 
 } 
 // Change these values to test 
 golfScore(5, 4); 

Код Объяснение:

  • Сравните параметры par и stroke, чтобы вернуть соответствующие строковые значения.
  • if / else if цепочка используется для управления потоком.
  • Строка «Иди домой!» возвращается для каждого условия, когда штрихи больше или равны par + 3 .

Альтернативное решение для кода:

var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"]; 
 function golfScore(par, strokes) { 
  // Only change code below this line 
  if (strokes == 1){ 
    return names[0]; 
  } 
  else if (strokes <= par-2){ 
    return names[1]; 
  } 
  else if (strokes == par -1){ 
    return names[2]; 
  } 
  else if (strokes == par){ 
    return names[3]; 
  } 
  else if (strokes == par +1){ 
    return names[4]; 
  } 
  else if (strokes == par +2){ 
    return names[5]; 
  } 
  else {return names[6];} 
  // Only change code above this line 
 } 
 
 // Change these values to test 
 golfScore(5, 4); 

· Запустить на repl.it

## Обозначение кода Поскольку у нас уже есть массив, определенный в names переменных, мы можем воспользоваться им и использовать его для наших операторов return, используя индексы (например: names[0] is the first one ). Таким образом, если вам когда-либо понадобится изменить определенный результат, вам не нужно будет искать его внутри функции, это будет в начале в вашем массиве.

Ресурсы