1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

AJUDA Desespero em VB.NET

Discussão em 'Programação' iniciada por Guga, 20 de Outubro de 2006. (Respostas: 19; Visualizações: 1514)

  1. Guga

    Guga Power Member

    E a primeira vez que programo, aprendi os basicos por ai na net e com um colega meu que sabe algumas cenas...so que agora estou com um dilema.....o que estou a tentar fazer e uma especie de calculadora de poder para um jogo online, o The Crims...
    O codigo que tenho e este....
    Código:
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Defesa As Integer
            Dim escudo As Integer
            If CC.Text = ("Taco de baseball") Then
                Defesa.Equals(8)
            End If
            If Combo2.Text = ("Casaco brilhante") Then
                escudo.Equals(80)
            End If
            If CC.Text = ("Faca") Then
                Defesa.Equals(8)
            End If
            If Combo2.Text = ("Colete") Then
                escudo.Equals(10)
            End If
            If CC.Text = ("Espada") Then
                Defesa.Equals(15)
            End If
            If Combo2.Text = ("Casaco de cabedal") Then
                escudo.Equals(40)
            End If
            If CC.Text = ("Moto-serra") Then
                Defesa.Equals(12)
            End If
            If Combo2.Text = ("Colete a prova de balas") Then
                escudo.Equals(150)
            End If
            If CC.Text = ("Glock") Then
                Defesa.Equals(20)
            End If
            If Combo2.Text = ("Casaco de combate futurista") Then
                escudo.Equals(200)
            End If
            If CC.Text = ("Desert eagle") Then
                Defesa.Equals(30)
            End If
            If Combo2.Text = ("Casaco de nomex :)") Then
                escudo.Equals(300)
            End If
            If CC.Text = ("Uzi") Then
                Defesa.Equals(26)
            End If
            If CC.Text = ("MP5") Then
                Defesa.Equals(42)
            End If
            If CC.Text = ("Caçadeira") Then
                Defesa.Equals(30)
            End If
            If CC.Text = ("AK47") Then
                Defesa.Equals(45)
            End If
            If CC.Text = ("Colt M4A1") Then
                Defesa.Equals(68)
            End If
            If CC.Text = ("Espingarda de sniper") Then
                Defesa.Equals(110)
            End If
            If CC.Text = ("Raygun") Then
                Defesa.Equals(98)
            End If
            If CC.Text = ("BFG9000") Then
                Defesa.Equals(85)
            End If
            If CC.Text = ("Maquina do terror") Then
                Defesa.Equals(126)
            End If
          
            POWER.Text=(Convert.ToDouble(Resistencia.Text / 3)+Convert.ToDouble(Forca.Text / 3) + Convert.ToDouble((Inteligencia.Text) / 2 / 3)) + Defesa + escudo
    
        End Sub
    End Class
    
    Mas a equação que pretendo que de é: Resultado(poder) = (intelligencia + força + resistencia/2)/3 + poder da arma (variavel Defesa)+escudo (variavel escudo) Tentei mas com este codigo feito por mim da mal...eu sei que esta cheio de erros provavelmente, mas precisava dumsa dicas..obrigado :):x2:
     
  2. AwakE

    AwakE Banido

    O que tu queres é "Defesa = 85", e não "Defesa.Equals(85)". Defesa.Equals(85) retorna 1 se Defesa for igual a 85 e zero se for diferente de 85.

    POWER.Text=(Convert.ToDouble(Resistencia.Text)/2+Convert.ToDouble(Forca.Text) + Convert.ToDouble(Inteligencia.Text)) /3+ Defesa + escudo
     
    Última edição: 20 de Outubro de 2006
  3. Guga

    Guga Power Member

    Hum

    Pois acho que o equals se usa no VB6 para = ou assim, foi um colega meu k me disse......
    PS: Obrigado, vo ver se da... :D:D
     
  4. Guga

    Guga Power Member

    Máior

    Meu amigo! Es o máior! LOL..... tks:)
    Ja agora se quiseres um jogo engraçado.....www.thecrims.com
    Eu fartei m de rir com ele nos primeiros dias e agr mesmo kd o abro inda me da vontade de partir a rir com alguns pormenores........
     
  5. Guga

    Guga Power Member

    Tenho mais uma duvida

    Tenho mais uma duvida, se eu agora criar um combobox com varios assaltos, e criar a valiavel dela
    Código:
    dim assaltos as integer
    
    depois posso por, se um assalto for "banco".....
    Código:
    If Assaltos.Text(é o nome da combobox) = ("Banco") Then
                Assaltos = (1200)
            End If
    
    Mas depois essa variavel queria que fosse comparada com o resultado do codigo posto no post anterior, ou seja, se o resultado da equação dopost anterior for maior que este valor dos assaltos, apareceria uma msgbox("Podes assaltar!") ou assim do genero..
    .Se me puderem ajudar... Obrigado
    Cumps
     
  6. SoundSurfer

    SoundSurfer Power Member

    Coloca o valor do post anterior num campo invisível.
     
  7. Guga

    Guga Power Member

    Como?

    Desculpa nao percebi muito bem o que querias dizer...e se e algo de codigo podes dar um exemplo?
     
  8. Guga

    Guga Power Member

    Cod

    Tentei inventar e defini a variavel: Dim assaltos as integer

    e dps:
    Código:
    If assaltos = ("Forte") Then
                assaltos = (100)
            End If
            If POWER.Text > assaltos Then
                MsgBox("Podes atacar")
            End If
    Mas acho que o simbolo > nao tem a funçao desejada....LOL
    Ele quando tento seleccionar o forte e cliko para fazer os calculos da me erro e vai para a zona do codigo e mete uma linha co fundo amarelo....
     
  9. SoundSurfer

    SoundSurfer Power Member

    nesta linha: "If POWER.Text > assaltos Then"
    estás a usar o operador ">" para comparar uma string com um inteiro, o que está errado. tens de converter a string num inteiro usando o método Convert.ToInt32:

    If Convert.ToInt32(POWER.Text) > assaltos Then

    Quanto ao campo invisível, colocas algo do tipo: <input type="hidden" id="valorAnterior" runat="server" /> no teu HTML. Sempre que acabes de calcular um valor, guarda-lo no campo invisível. No post seguinte que fizeres, se acederes a esse campo, está lá o valor.
     
  10. HecKel

    HecKel The WORM

    Porque o POWER.Text é uma string e o assaltos é um integer. Estás a comparar tipos diferentes.

    Converte a string para inteiro que isso resulta.

    abraços, HecKel

    Edit: O SoundSurfer foi mais rápido...., mas SoundSurfer repara que ele fala de VB.NET e não de uma página..., estás aí a confundir coisas na parte do campo invisivel.
     
  11. Guga

    Guga Power Member

    Format exception was unhandeled

    ou algo assim foi o que me apareceu kuando:
    Código:
     If Convert.ToInt32(POWER.Text) > Assaltos Then
                MsgBox("Podes atacar!")
            End If
            If Convert.ToInt32(POWER.Text) < Assaltos Then
                MsgBox("Podes atacar")
            End If
    O que tinha colocado era:


    [​IMG]

    Quando carreguei no Calcular apareceu o codigo, e selecionou uma linha a amarelo a dizer "Format exception was unhandeled"
    Codigo completo abaixo:
    Código:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim Ataque As Integer
            Dim Escudo As Integer
            Dim Assaltos As Integer
            If CC.Text = ("Taco de baseball") Then
                Ataque = (8)
            End If
            If Combo2.Text = ("Casaco brilhante") Then
                Escudo = (80)
            End If
            If CC.Text = ("Faca") Then
                Ataque = (8)
            End If
            If Combo2.Text = ("Colete") Then
                Escudo = (10)
            End If
            If CC.Text = ("Espada") Then
                Ataque = (15)
            End If
            If Combo2.Text = ("Casaco de cabedal") Then
                Escudo = (40)
            End If
            If CC.Text = ("Moto-serra") Then
                Ataque = (12)
            End If
            If Combo2.Text = ("Colete a prova de balas") Then
                Escudo = (150)
            End If
            If CC.Text = ("Glock") Then
                Ataque = (20)
            End If
            If Combo2.Text = ("Casaco de combate futurista") Then
                Escudo = (200)
            End If
            If CC.Text = ("Desert eagle") Then
                Ataque = (30)
            End If
            If Combo2.Text = ("Casaco de Nomex") Then
                Escudo = 300
            End If
            If CC.Text = ("Uzi") Then
                Ataque = (26)
            End If
            If CC.Text = ("MP5") Then
                Ataque = (42)
            End If
            If CC.Text = ("Caçadeira") Then
                Ataque = (30)
            End If
            If CC.Text = ("AK47") Then
                Ataque = (45)
            End If
            If CC.Text = ("Colt M4A1") Then
                Ataque = (68)
            End If
            If CC.Text = ("Espingarda de sniper") Then
                Ataque = (110)
            End If
            If CC.Text = ("Raygun") Then
                Ataque = (98)
            End If
            If CC.Text = ("BFG9000") Then
                Ataque = (85)
            End If
            If CC.Text = ("Maquina do terror") Then
                Ataque = (126)
            End If
            If Combo2.Text = ("Nenhum") Then
                Escudo = (0)
            End If
            If CC.Text = ("Nenhuma") Then
                Ataque = (0)
            End If
            If Forca.Text = (0) Then
                MsgBox("Nao preencheste a força")
            End If
            If Inteligencia.Text = (0) Then
                MsgBox("Nao preencheste a Inteligencia")
            End If
            If Resistencia.Text = (0) Then
                MsgBox("Nao preencheste a Resistencia")
            End If
            If Convert.ToInt32(POWER.Text) > Assaltos Then
                MsgBox("Podes atacar!")
            End If
            If Convert.ToInt32(POWER.Text) < Assaltos Then
                MsgBox("Podes atacar")
            End If
            POWER.Text = (Convert.ToDouble(Resistencia.Text / 3) + Convert.ToDouble(Forca.Text / 3) + Convert.ToDouble((Inteligencia.Text) / 2 / 3)) + Ataque + Escudo
    
        End Sub
     
  12. HecKel

    HecKel The WORM

    Algo que não percebi no teu código, porque é que em alguns casos fazes as afectações com o valor entre parentesis e noutras não? Os parentesis ali não fazem nada...

    abraços, HecKel
     
  13. Guga

    Guga Power Member

    Pois

    Eu ja percebi que nao fazem nada por isso nalguns ja nao puz.....mas isso afecta algo?
    E sabes porque nao cnsigo fazelo dizer "Podes atacar" se o valor do assalto for inferior ao do POWER?
    :)tks:)
    Cumps
     
  14. HecKel

    HecKel The WORM

    Antes de mais, de realçar que não programo em VB.NET há uns anitos..., portanto apenas te estou a dizer o que julgo estar mal.

    Tu calculas o POWER usando casts para double, essa textbox fica com um valor em double. Não até até que ponto essa conversão resulta ao fazeres depois um cast para integer..., julgo que isso irá truncar o valor como tal não haveria grande problema mas como não tenho a certeza isso também pode ser um potencial problema.

    Depois, não vejo em lado nenhum a alterares o valor da variável Assaltos..., tenho ideia que quando não inicializada o VB.NET coloca "lixo" dentro da variável, assim nunca sabes o seu valor..., esta parte também não percebi o que queres fazer.

    abraços, HecKel
     
  15. Guga

    Guga Power Member

    Entao

    Entao mas ele altera com o If assaltos = "Forte" then assaltos = 100 End if
    nao altera? e ja agora que ponho em vez de double nas conversoes para ficar mais correcto e menos casas decimais?
     
  16. HecKel

    HecKel The WORM

    Não neste pedaço de código em que dizes que é o código completo...

    abraços, HecKel
     
  17. Guga

    Guga Power Member

    Ja tirei os parentesis

    Mas disseram me que o Convert.ToDouble e que me estava a deixar com tantas casas decimais......
    Ah e entao aquilo do "Podes atacar!" saebs alguma coisa que eu posso uzar para que resulte?
     
  18. Guga

    Guga Power Member

    Ja esta as casas

    A parte das casas ja esta, mudei o POWER.text = (intel........(...) para POWER.text = Int((Intel......(...)

    Agora a parte dos assaltos a dizer se pode atakar ou nao, e que e pior...........:)
     
  19. HecKel

    HecKel The WORM

    Lê o meu último post, explica-me o porquê de eu não ver a variável assaltos ser alterada naquele pedaço de código que me mostraste..., e talvez eu consiga ajudar-te :P

    abraços, HecKel
     
  20. Guga

    Guga Power Member

    Sorry

    Epa desculpa e que nessa altura ja tinha apagado as variações.....
    Mas tava algo como
    Código:
    If Assaltos = "Forte" then
    Assaltos = 100
     

Partilhar esta Página