Ir para o conteúdo
Evangeline

um simples jogo

Mensagens Recomendadas

Evangeline

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

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

Editado por acao
  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Evangeline

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Evangeline

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!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

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

Editado por acao
  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.