freeCodeCamp/guide/portuguese/certifications/javascript-algorithms-and-d.../basic-javascript/golf-code/index.md

5.5 KiB
Raw Blame History

title localeTitle
Golf Code Código de Golfe

:triangular_flag_on_post: Lembre-se de usar Read-Search-Ask se você ficar preso. Tente emparelhar o programa :busts_in_silhouette: e escreva seu próprio código :pencil:

:checkered_flag: 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.

:speech_balloon: Sugestão: 1

+number -number pode ser usado para aumentar ou diminuir um parâmetro em sua condição.

tente resolver o problema agora

:speech_balloon: Dica: 2

Você usa if / else if cadeias para retornar diferentes valores em diferentes cenários.

tente resolver o problema agora

:speech_balloon: 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!

sinal de aviso

Solução à frente!

:beginner: 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.

Recursos