fix(guide): restructure curriculum guide articles (#36501)
* fix: restructure certifications guide articles * fix: added 3 dashes line before prob expl * fix: added 3 dashes line before hints * fix: added 3 dashes line before solutions
This commit is contained in:
@@ -1,109 +1,104 @@
|
||||
---
|
||||
title: Golf Code
|
||||
---
|
||||
 Remember to use <a>**`Read-Search-Ask`**</a> if you get stuck. Try to pair program  and write your own code 
|
||||
|
||||
###  Problem Explanation:
|
||||
|
||||
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 a 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. You've to return the correct string according to this table which lists the strokes in order of priority; top (highest) to bottom (lowest):
|
||||
|
||||
Strokes | Return
|
||||
:--------- | :-------------
|
||||
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.
|
||||
|
||||
* Change the code below `// Only change code below this line` and above `// Only change code above this line`.
|
||||
* Ensure that you're editing the inside of the `golfScore` function.
|
||||
* You will have to make the function return exactly the same string as shown shown in the table, depending on the value of the parameters **par** and **strokes** that are passed to your function.
|
||||
# Golf Code
|
||||
|
||||
|
||||
##  Hint: 1
|
||||
---
|
||||
## Hints
|
||||
|
||||
---
|
||||
## Problem Explanation
|
||||
Change the code below `// Only change code below this line` and above `// Only change code above this line`.
|
||||
|
||||
Ensure that you're editing the inside of the `golfScore` function.
|
||||
|
||||
You will have to make the function return exactly the same string as shown shown in the table, depending on the value of the parameters **par** and **strokes** that are passed to your function.
|
||||
|
||||
|
||||
### Hint 1
|
||||
|
||||
`+number -number` can be used to increase or decrease a parameter in your condition.
|
||||
|
||||
> _try to solve the problem now_
|
||||
|
||||
##  Hint: 2
|
||||
### Hint 2
|
||||
|
||||
You use `if / else if` chains to return different values in different scenarios.
|
||||
|
||||
> _try to solve the problem now_
|
||||
|
||||
##  Hint: 3
|
||||
### Hint 3
|
||||
|
||||
Control the flow of your function based on the tables order of priority - top (highest) to bottom (lowest) to return matching string values.
|
||||
|
||||
> _try to solve the problem now_
|
||||
|
||||
## Spoiler Alert!
|
||||
|
||||

|
||||
---
|
||||
## Solutions
|
||||
|
||||
**Solution ahead!**
|
||||
<details><summary>Solution 1 (Click to Show/Hide)</summary>
|
||||
|
||||
##  Basic Code Solution:
|
||||
```javascript
|
||||
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);
|
||||
```
|
||||
|
||||
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);
|
||||
|
||||
### Code Explanation:
|
||||
#### Code Explanation
|
||||
|
||||
* Compare the parameters **par** and **strokes** to return appropriate string values.
|
||||
* `if / else if` chain is used for flow control.
|
||||
* String "Go Home!" is returned for every condition where **strokes** is greater than or equal to **par + 3**.
|
||||
</details>
|
||||
|
||||
|
||||
<details><summary>Solution 2 (Click to Show/Hide)</summary>
|
||||
|
||||
## Alternative code solution:
|
||||
```javascript
|
||||
var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
|
||||
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){
|
||||
if (strokes == 1) {
|
||||
return names[0];
|
||||
}
|
||||
else if (strokes <= par-2){
|
||||
} else if (strokes <= par - 2) {
|
||||
return names[1];
|
||||
}
|
||||
else if (strokes == par -1){
|
||||
} else if (strokes == par - 1) {
|
||||
return names[2];
|
||||
}
|
||||
else if (strokes == par){
|
||||
} else if (strokes == par) {
|
||||
return names[3];
|
||||
}
|
||||
else if (strokes == par +1){
|
||||
} else if (strokes == par + 1) {
|
||||
return names[4];
|
||||
}
|
||||
else if (strokes == par +2){
|
||||
} else if (strokes == par + 2) {
|
||||
return names[5];
|
||||
} else {
|
||||
return names[6];
|
||||
}
|
||||
else {return names[6];}
|
||||
// Only change code above this line
|
||||
}
|
||||
|
||||
@@ -111,25 +106,35 @@ function golfScore(par, strokes) {
|
||||
golfScore(5, 4);
|
||||
```
|
||||
|
||||
## Code explanation
|
||||
#### Code Explanation
|
||||
Since we already have an array defined in the variable `names` we can take advantage of it and use it for our return statements using indexes (eg: `names[0] is the first one`). That way, if you ever need to change a specific result you wouldn't need to look for it inside the function, it'd be at the beginning, in your array.
|
||||
</details>
|
||||
|
||||
|
||||
<details><summary>Solution 3 (Click to Show/Hide)</summary>
|
||||
|
||||
##  Intermediate Code Solution:
|
||||
(Using Multiple Conditional (Ternary) Operators)
|
||||
```js
|
||||
function golfScore(par, strokes) {
|
||||
return (strokes == 1) ? names[0] :
|
||||
(strokes <= par - 2) ? names[1] :
|
||||
(strokes == par - 1) ? names[2] :
|
||||
(strokes == par) ? names[3] :
|
||||
(strokes == par + 1) ? names[4] :
|
||||
(strokes == par + 2) ? names[5] :
|
||||
(strokes >= par + 3) ? names[6] :
|
||||
"Change Me";
|
||||
}
|
||||
function golfScore(par, strokes) {
|
||||
return strokes == 1
|
||||
? names[0]
|
||||
: strokes <= par - 2
|
||||
? names[1]
|
||||
: strokes == par - 1
|
||||
? names[2]
|
||||
: strokes == par
|
||||
? names[3]
|
||||
: strokes == par + 1
|
||||
? names[4]
|
||||
: strokes == par + 2
|
||||
? names[5]
|
||||
: strokes >= par + 3
|
||||
? names[6]
|
||||
: "Change Me";
|
||||
}
|
||||
```
|
||||
|
||||
### Resources
|
||||
#### Relevant Links
|
||||
|
||||
* <a href='https://en.wikipedia.org/wiki/Golf' target='_blank' rel='nofollow'>Golf</a>
|
||||
* <a href='http://www.freecodecamp.com/challenges/chaining-if-else-statements' target='_blank' rel='nofollow'>Challenge: Chaining If Else Statements</a>
|
||||
@@ -137,3 +142,5 @@ Since we already have an array defined in the variable `names` we can take advan
|
||||
* <a href='http://www.freecodecamp.com/challenges/comparison-with-the-less-than-equal-to-operator' target='_blank' rel='nofollow'>Challenge: Comparison with the Less Than Equal To Operator</a>
|
||||
* ["Array" - *MDN JavaScript reference*](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
|
||||
* <a href='https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/use-multiple-conditional-ternary-operators/' target='_blank' rel='nofollow'>Use Multiple Conditional (Ternary) Operators</a>
|
||||
|
||||
</details>
|
Reference in New Issue
Block a user