Jump to content
Evangeline

um simples jogo

Recommended Posts

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

Share this post


Link to post
Share on other 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

Edited by acao
  • Vote 1

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other 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

Edited by acao
  • Vote 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.