Evangeline Posted May 7, 2013 at 07:03 PM Report #506150 Posted May 7, 2013 at 07:03 PM Bom dia... estou criando um jogo em que 2 utilizadores tentam acertar num numero gerado pelo proprio programa! Todo o programa funciona praticamente bem...os jugadores tentam adivinhar e ficam a saber quem ganha...mas apos somar a primeiro vitoria...deixa de somar as seguintes mesmo que os jugadores continuem a jugar! Podem me ajudar??? agradecia imenso Public Function Aleatorio(ByVal Max As Integer) As Integer Randomize() Aleatorio = Int(Rnd() * Max + 1) End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim valormaximo As Integer = 1000 Dim valoraleatorio As Integer Dim difjogador1 As Integer = 0 Dim difjogaodr2 As Integer = 0 Dim soma As Integer = 0 valoraleatorio = Aleatorio(valormaximo) difjogador1 = Math.Abs(Int(Val(TextBox1.Text)) - valoraleatorio) difjogaodr2 = Math.Abs(Int(Val(TextBox2.Text)) - valoraleatorio) If difjogador1 < difjogaodr2 Then MsgBox("O jogador 1 teve a menor diferenca") Else MsgBox("O jogador 2 teve a menor diferenca") soma = soma + 1 If Val(difjogador1) < Val(difjogador2) Then TextBox3.Text = soma ElseIf Val(difjogador1) > Val(difjogador2) Then TextBox4.Text = soma End If End If End Sub
acao Posted May 7, 2013 at 11:43 PM Report #506199 Posted May 7, 2013 at 11:43 PM (edited) Bom dia... estou criando um jogo em que 2 utilizadores tentam acertar num numero gerado pelo proprio programa! Todo o programa funciona praticamente bem...os jugadores tentam adivinhar e ficam a saber quem ganha...mas apos somar a primeiro vitoria...deixa de somar as seguintes mesmo que os jugadores continuem a jugar! Podem me ajudar??? agradecia imenso boas coloque as variáveis «somajogador1 e somajogador2 no inicio visível a toda a form. Dim somaJogador1 As Integer Dim somaJogador2 As Integer Public Function Aleatorio(ByVal Max As Integer) As Integer Randomize() Aleatorio = Int(Rnd() * Max + 1) End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim valormaximo As Integer = 1000 Dim valoraleatorio As Integer Dim difjogador1 As Integer = 0 Dim difjogaodr2 As Integer = 0 valoraleatorio = Aleatorio(valormaximo) difjogador1 = Math.Abs(Int(Val(TextBox1.Text)) - valoraleatorio) difjogaodr2 = Math.Abs(Int(Val(TextBox2.Text)) - valoraleatorio) If difjogador1 < difjogaodr2 Then somaJogador1 = somaJogador1 + 1 TextBox3.Text = somaJogador1 MsgBox("O jogador 1 teve a menor diferenca") Else MsgBox("O jogador 2 teve a menor diferenca") somaJogador2 = somaJogador2 + 1 TextBox4.Text = somaJogador2 End If End Sub Edited May 7, 2013 at 11:52 PM by acao 1 Report
Evangeline Posted May 8, 2013 at 01:00 PM Author Report #506254 Posted May 8, 2013 at 01:00 PM obrigada pela atenção mas continua com problema. Antes so somava a primeira vitoria apenas de um dos jugadores....agora assim com essa alteracao apenas somou uma a cada um! mas depois se um dos jugadores voltar a ganhar nao ficaria por exemplo: Jogador 1= 2 Vitorias Jogador 2 =1 vitorias Nao ha forma de ele ler o numero que ja se encontra na texbox e somar mais 1?? se na texbox se encontrar 5 vitorias por exemplo, ele ao somar ficaria com 6.
acao Posted May 8, 2013 at 01:33 PM Report #506256 Posted May 8, 2013 at 01:33 PM obrigada pela atenção mas continua com problema. Antes so somava a primeira vitoria apenas de um dos jugadores....agora assim com essa alteracao apenas somou uma a cada um! mas depois se um dos jugadores voltar a ganhar nao ficaria por exemplo: Jogador 1= 2 Vitorias Jogador 2 =1 vitorias Nao ha forma de ele ler o numero que ja se encontra na texbox e somar mais 1?? se na texbox se encontrar 5 vitorias por exemplo, ele ao somar ficaria com 6. boas desculpe mas está a funcionar, faz a contagem e mostra nas textbox. você colocou as variaveis no inicio do form, é a seguir a «option explicit» o primeiro codigo na tela cod é: Option Explicit Dim somaJogador1 As Integer Dim somaJogador2 As Integer
Evangeline Posted May 8, 2013 at 03:41 PM Author Report #506266 Posted May 8, 2013 at 03:41 PM declara-se onde tao todas as outras variaveis certo? é que o meu visual basic nao reconhece o Option Explicit! o meu VB é o 2010! desculpe o encomodo!
acao Posted May 8, 2013 at 05:03 PM Report #506287 Posted May 8, 2013 at 05:03 PM (edited) boas pois eu já tinha reparado que não deveria ser vba, para net existe uma secção propria. dependendo de como está a trabalhar e se estás a adicionar as form pela toolbox é assim: Option Explicit On Imports System.Data ' os imprts Imports System.Data.OleDb 'os imports Public Class frm1 Dim somaJogador1 As Integer ' as variaveis visiveis em todo form Dim somaJogador2 As Integer 'as variaveis visiveis em todo o form 'eventos do form 'procedures cumps acao Edited May 8, 2013 at 05:05 PM by acao 1 Report
Evangeline Posted May 8, 2013 at 05:15 PM Author Report #506295 Posted May 8, 2013 at 05:15 PM muito bom ficou a funcionar na perfeição...muito obrigada ^.^
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now