Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Regra do JOGO

A regra do Jogo não está funcionando, quando são colocados valores menores do que o NUMEROSecreto.

Exemplo: Quando se faz o CHUTE com valores: 10 , 11, 12. O Valor dos pontos é somado, pois o calculo resulta em um número negativo, onde o mesmo é somado ao número de pontos.

pontosperdidos = (chute - numeroSecreto) /2;

PARA Correção do problema, eu implementei o seguinte código:

int pontosperdidos = 0;
    if (chute > numeroSecreto){
      pontosperdidos = (chute - numerosecreto) /2;
    } else {
      pontosperdidos = (numerosecreto - chute) /2;
    }

    pontos = pontos - pontosperdidos;

Dessa forma, o valor digitado será verificado e invertido, para que o cálculo final seja sempre um número positivo. (Subtraindo o número maior pelo número menor).

:D

3 respostas

Muito bom a sua lógica Flávio, é isso mesmo, eu acho que dá para economizar uma variável se tentar:

if (chute > numeroSecreto){
      pontos -= (chute - numerosecreto) /2;
    } else {
      pontos -= (numerosecreto - chute) /2;
    }

Bons estudos...

solução!

Como ambos os valores são positivos, seria mais interessante fazer uso do conceito matemático da função modular. Matematicamente, teríamos uma notação semelhante a isso:

f(x, y) = |x - y| / 2

Mas como calcular o valor absoluto de um número? Isso depende.

  1. Se todas as variáveis são inteiras, a expressão é avaliada como inteira, portanto, use a função abs. Temos então: pontos -= abs(chute - numerosecreto) /2;
  2. Se alguma das variáveis for em ponto flutuante (float ou double), a expressão é avaliada como sendo de ponto flutuante, portanto, use a função fabs. Temos então: pontos -= fabs(chute - numerosecreto) /2;

Ambas as funções fazem parte da biblioteca padrão. Para fazer uso das mesmas, importe o arquivo math.h.

Com este método, não se fará necessário realizar qualquer tipo de teste condicional.

Oi Flavio, tudo bem?

Como resolveu o seu problema, estou fechando aqui, ok?

Qualquer coisa não hesite em abrir outro :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software