5.5 KiB
title | localeTitle |
---|---|
Golf Code | Código de Golfe |
Lembre-se de usar Read-Search-Ask
se você ficar preso. Tente emparelhar o programa e escreva seu próprio código
Explicação do Problema:
No jogo de golfe, cada buraco tem um par que significa o número médio de golpes que um golfista deve fazer para afundar a bola em um buraco para completar a jogada. Dependendo de quão longe acima ou abaixo do par seus traços são, há um apelido diferente.
Sua função receberá argumentos par e strokes . Você deve retornar a string correta de acordo com essa tabela, que lista os traços em ordem de prioridade; topo (maior) para baixo (menor):
- Strokes | Retorna
- --------- | : -------------
1 | "Buraco-em-um!"
<= par - 2 | "Águia"
par - 1 | "Passarinho"
par | "Par"
par + 1 | "Bogey"
par + 2 | "Bogey Duplo" > par + 3 | "Ir para casa!"
par e traços serão sempre numéricos e positivos.
- Altere o código abaixo
// Only change code below this line
e acima// Only change code above this line
. - Certifique-se de que você está editando o interior da função
golfScore
. - Você terá que fazer com que a função retorne exatamente a mesma string mostrada na tabela, dependendo do valor dos parâmetros par e traços que são passados para sua função.
Sugestão: 1
+number -number
pode ser usado para aumentar ou diminuir um parâmetro em sua condição.
tente resolver o problema agora
Dica: 2
Você usa if / else if
cadeias para retornar diferentes valores em diferentes cenários.
tente resolver o problema agora
Dica: 3
Controle o fluxo de sua função com base na ordem de prioridade das tabelas - superior (maior) para inferior (menor) para retornar os valores de string correspondentes.
tente resolver o problema agora
Alerta de Spoiler!
Solução à frente!
Solução básica de código:
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);
Explicação do código:
- Compare os parâmetros par e strokes para retornar os valores de string apropriados.
if / else if
cadeia for usada para controle de fluxo.- String "Vá para casa!" é retornado para todas as condições em que os traços são maiores ou iguais a par + 3 .
Solução alternativa de código:
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);
· Corra no repl.it
## Explicação do código Como já temos uma matriz definida nos names
das variáveis, podemos aproveitá-la e usá-la para nossas instruções de retorno usando índices (por exemplo: names[0] is the first one
). Dessa forma, se você precisar alterar um resultado específico, não precisaria procurá-lo dentro da função, seria no início, na sua matriz.