Pelo Amor de Deus! Alguem me ajuda, to a 6 horas nesse projeto e não sei o que da errado

Estou desenvolvendo um projeto de dado que me informe um resultado, até a parte do dado tudo certo, estou a 6 horas tentando fazer o sistema de comparação de números. Eu consegui quase tudo, só que quando eu coloco “int Extremo = 1” para criar uma variável que eu consiga usar para a comparação, ele me diz que não pode fazer a conversão de int para bool, mas eu n estou usando bool, estou usando int. Alguém consegue me ajudar e me explicar pq isso acontece?

Esse é meu código:

    {
        Random Dado = new Random();
        int ValorDado = Dado.Next(1,101);
        int AttForça = (int)AtributoForça.Value;
        const int Extremo = 1;
        const int Catástrofe = 100;

        ResultadoDado.Text = ValorDado.ToString();

        {//Sistema de Comparação
            if (ValorDado > AttForça)
                Resultado.Text = ("falha");
            else if (ValorDado < AttForça / 3)
                Resultado.Text = ("Muito Bom");
            else if (ValorDado < (AttForça / 3) * 2)
                Resultado.Text = ("Bom");
            else if (ValorDado > (AttForça / 3) * 2)
                Resultado.Text = ("Normal");
            else if (ValorDado = Extremo)
                Resultado.Text = ("Extremo");
            else if (ValorDado = Catástrofe)
                Resultado.Text = ("Catástrofe");
        }
    }

Eu coloco o valor que tenho de atributo ali onde tem o 70, clico em força, que é o atributo de exemplo que estou usando, e o programa tem q compara o numero gerado e o atributo que coloquei e me dizer se meu resultado foi falho, normal, bom, muito bom (até aqui eu fiz) e quando tendo adicionar uma constante de valor 1 para fazer o resultado extremo, ou 100 para fazer o resultado de catástrofe ele da esse problema com o bool, código do erro CS0029. Por favor se alguém souber o que posso fazer para isso funcionar agradeço mt, comecei hj e foi isso meu processo.

No if, você está usando = (igual), que serve pra atribuição:

else if (ValorDado = Extremo) // nessa linha

quando deveria estar usando == ( igual igual), pois é uma comparação:

else if (ValorDado == Extremo) // nessa linha
  Resultado.Text = ("Extremo");
else if (ValorDado == Catastrofe)
  Resultado.Text = ("Catástrofe");

Abraço.

2 curtidas

Vc acredita q eu reparei isso logo antes de entrar aqui kk, não esperava q os usuários fossem tão rápidos, eu ia tirar o post, por isso entrei, mas mt obrigado msm assim S2

Você deu sorte, nem sempre é rápido assim. :laughing:

Esse tipo de erro é comum, principalmente quando se está batendo cabeça nele há horas.

Abraço.

2 curtidas

kk, mt obrigado novamente! Abraço