freeCodeCamp/curriculum/challenges/english/02-javascript-algorithms-an.../basic-javascript/golf-code.md

3.0 KiB

id title challengeType videoUrl forumTopicId dashedName
5664820f61c48e80c9fa476c Golf Code 1 https://scrimba.com/c/c9ykNUR 18195 golf-code

--description--

In the game of golf, each hole has a par, meaning, the average number of strokes a golfer is expected to make in order to sink the ball in the hole to complete the play. Depending on how far above or below par your strokes are, there is a different nickname.

Your function will be passed par and strokes arguments. Return the correct string according to this table which lists the strokes in order of priority; top (highest) to bottom (lowest):

StrokesReturn
1"Hole-in-one!"
<= par - 2"Eagle"
par - 1"Birdie"
par"Par"
par + 1"Bogey"
par + 2"Double Bogey"
>= par + 3"Go Home!"

par and strokes will always be numeric and positive. We have added an array of all the names for your convenience.

--hints--

golfScore(4, 1) should return the string Hole-in-one!

assert(golfScore(4, 1) === 'Hole-in-one!');

golfScore(4, 2) should return the string Eagle

assert(golfScore(4, 2) === 'Eagle');

golfScore(5, 2) should return the string Eagle

assert(golfScore(5, 2) === 'Eagle');

golfScore(4, 3) should return the string Birdie

assert(golfScore(4, 3) === 'Birdie');

golfScore(4, 4) should return the string Par

assert(golfScore(4, 4) === 'Par');

golfScore(1, 1) should return the string Hole-in-one!

assert(golfScore(1, 1) === 'Hole-in-one!');

golfScore(5, 5) should return the string Par

assert(golfScore(5, 5) === 'Par');

golfScore(4, 5) should return the string Bogey

assert(golfScore(4, 5) === 'Bogey');

golfScore(4, 6) should return the string Double Bogey

assert(golfScore(4, 6) === 'Double Bogey');

golfScore(4, 7) should return the string Go Home!

assert(golfScore(4, 7) === 'Go Home!');

golfScore(5, 9) should return the string Go Home!

assert(golfScore(5, 9) === 'Go Home!');

--seed--

--seed-contents--

var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
function golfScore(par, strokes) {
  // Only change code below this line


  return "Change Me";
  // Only change code above this line
}

golfScore(5, 4);

--solutions--

function golfScore(par, strokes) {
  if (strokes === 1) {
    return "Hole-in-one!";
  }

  if (strokes <= par - 2) {
    return "Eagle";
  }

  if (strokes === par - 1) {
    return "Birdie";
  }

  if (strokes === par) {
    return "Par";
  }

  if (strokes === par + 1) {
    return "Bogey";
  }

  if(strokes === par + 2) {
    return "Double Bogey";
  }

  return "Go Home!";
}