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

Duvida em VB

Discussão em 'Programação' iniciada por BioL, 4 de Dezembro de 2012. (Respostas: 0; Visualizações: 517)

  1. BioL

    BioL Power Member

    Boas, estou neste momento a fazer um jogo para a disciplina de AIB.

    O jogo consiste em escolher duas cores de forma a obter uma dada fornecida pela jogo.

    Código:
    Public Soma As LongDim k As Integer
    Dim cor_mostrada(0 To 7) As Long
    Dim codigo_cor(1 To 16) As Long
    Dim matriz As Integer
    Dim n As Integer
    
    
    
    
    
    
    Private Sub botao_reset_Click()
    
    
    Pict(0).Picture = LoadPicture("botao_pressionar.jpg")
    Pict(1).Picture = LoadPicture("botao_pressionar.jpg")
    Pict(2).Picture = LoadPicture("botao_pressionar.jpg")
    Pict(3).Picture = LoadPicture("botao_pressionar.jpg")
    Pict(4).Picture = LoadPicture("botao_pressionar.jpg")
    Pict(5).Picture = LoadPicture("botao_pressionar.jpg")
    Pict(6).Picture = LoadPicture("botao_pressionar.jpg")
    Pict(7).Picture = LoadPicture("botao_pressionar.jpg")
    objetivo.Picture = LoadPicture("botao_pressionar.jpg")
    
    
    Pict(0).Visible = True
    Pict(1).Visible = True
    Pict(2).Visible = True
    Pict(3).Visible = True
    Pict(4).Visible = True
    Pict(5).Visible = True
    Pict(6).Visible = True
    Pict(7).Visible = True
    
    
    
    
    Check(0).Value = 0
    Check(1).Value = 0
    Check(2).Value = 0
    Check(3).Value = 0
    Check(4).Value = 0
    Check(5).Value = 0
    Check(6).Value = 0
    Check(7).Value = 0
    
    
    Soma = 0
    
    
    End Sub
    
    
    Private Sub botao_sair_Click()
    Jogo.Hide
    Menu.Show
    End Sub
    
    
    Private Sub bt_iniciar_Click()
    
    
    'Pict(0).Visible = False
    'Pict(1).Visible = False
    'Pict(2).Visible = False
    'Pict(3).Visible = False
    'Pict(4).Visible = False
    'Pict(5).Visible = False
    'Pict(6).Visible = False
    'Pict(7).Visible = False
    
    
    Dim x As Integer, i As Integer
    
    
    For i = 0 To 7
    x = Int(1 + Rnd(4) * 8)
    matriz = x
    
    
    Select Case x
    Case 1
    cor_mostrada(0) = 8192    'fazer isto para todos os cases. Igualar cor_mostrada ao valor da cor pela ordem de case.
    cor_mostrada(1) = 2048
    cor_mostrada(2) = 512
    cor_mostrada(3) = 256
    cor_mostrada(4) = 4096
    cor_mostrada(5) = 1024
    cor_mostrada(6) = 16384
    cor_mostrada(7) = 32768
    
    
    Pict(0).Picture = LoadPicture("amarelo.jpg")
    Pict(1).Picture = LoadPicture("Azul_escuro.jpg")
    Pict(2).Picture = LoadPicture("Branco.jpg")
    Pict(3).Picture = LoadPicture("Ciano.jpg")
    Pict(4).Picture = LoadPicture("Magenta.jpg")
    Pict(5).Picture = LoadPicture("Preto.jpg")
    Pict(6).Picture = LoadPicture("Verde.jpg")
    Pict(7).Picture = LoadPicture("Vermelho.jpg")
    objetivo.Picture = LoadPicture("turquesa.jpg") 'Verde(pic7) + Azul(pic2)
    
    
    Case 2
    cor_mostrada(0) = 32768
    cor_mostrada(1) = 16384
    cor_mostrada(2) = 256
    cor_mostrada(3) = 1024
    cor_mostrada(4) = 512
    cor_mostrada(5) = 8192
    cor_mostrada(6) = 2048
    cor_mostrada(7) = 8192
    
    
    Pict(0).Picture = LoadPicture("Vermelho.jpg")
    Pict(1).Picture = LoadPicture("Verde.jpg")
    Pict(2).Picture = LoadPicture("Ciano.jpg")
    Pict(3).Picture = LoadPicture("Preto.jpg")
    Pict(4).Picture = LoadPicture("Branco.jpg")
    Pict(5).Picture = LoadPicture("amarelo.jpg")
    Pict(6).Picture = LoadPicture("Azul_escuro.jpg")
    Pict(7).Picture = LoadPicture("Magenta.jpg")
    objetivo.Picture = LoadPicture("cinzento.jpg") 'preto(pic4) + branco(pic5)
    
    
    Case 3
    cor_mostrada(0) = 256
    cor_mostrada(1) = 32768
    cor_mostrada(2) = 2048
    cor_mostrada(3) = 1024
    cor_mostrada(4) = 512
    cor_mostrada(5) = 4096
    cor_mostrada(6) = 16384
    cor_mostrada(7) = 8192
    
    
    Pict(0).Picture = LoadPicture("Ciano.jpg")
    Pict(1).Picture = LoadPicture("Vermelho.jpg")
    Pict(2).Picture = LoadPicture("Azul_escuro.jpg")
    Pict(3).Picture = LoadPicture("Preto.jpg")
    Pict(4).Picture = LoadPicture("Branco.jpg")
    Pict(5).Picture = LoadPicture("Magenta.jpg")
    Pict(6).Picture = LoadPicture("Verde.jpg")
    Pict(7).Picture = LoadPicture("amarelo.jpg")
    objetivo.Picture = LoadPicture("Cor-de-Rosa.jpg") 'vermelho(pic2) + branco(pic5)
    
    
    Case 4
    cor_mostrada(0) = 1024
    cor_mostrada(1) = 4096
    cor_mostrada(2) = 256
    cor_mostrada(3) = 2048
    cor_mostrada(4) = 16384
    cor_mostrada(5) = 8912
    cor_mostrada(6) = 512
    cor_mostrada(7) = 32768
    
    
    Pict(0).Picture = LoadPicture("Preto.jpg")
    Pict(1).Picture = LoadPicture("Magenta.jpg")
    Pict(2).Picture = LoadPicture("Ciano.jpg")
    Pict(3).Picture = LoadPicture("Azul_escuro.jpg")
    Pict(4).Picture = LoadPicture("Verde.jpg")
    Pict(5).Picture = LoadPicture("amarelo.jpg")
    Pict(6).Picture = LoadPicture("Branco.jpg")
    Pict(7).Picture = LoadPicture("Vermelho.jpg")
    objetivo.Picture = LoadPicture("Laranja.jpg") 'vermelho(pic8)+amarelo(pic6)
    
    
    Case 5
    cor_mostrada(0) = 32768
    cor_mostrada(1) = 512
    cor_mostrada(2) = 1024
    cor_mostrada(3) = 16384
    cor_mostrada(4) = 4096
    cor_mostrada(5) = 256
    cor_mostrada(6) = 8912
    cor_mostrada(7) = 2048
    
    
    Pict(0).Picture = LoadPicture("Vermelho.jpg")
    Pict(1).Picture = LoadPicture("Branco.jpg")
    Pict(2).Picture = LoadPicture("Preto.jpg")
    Pict(3).Picture = LoadPicture("Verde.jpg")
    Pict(4).Picture = LoadPicture("Magenta.jpg")
    Pict(5).Picture = LoadPicture("Ciano.jpg")
    Pict(6).Picture = LoadPicture("amarelo.jpg")
    Pict(7).Picture = LoadPicture("Azul_escuro.jpg")
    objetivo.Picture = LoadPicture("Pistacho.jpg") 'verde(4)+branco(2)
    
    
    Case 6
    cor_mostrada(0) = 16384
    cor_mostrada(1) = 256
    cor_mostrada(2) = 1024
    cor_mostrada(3) = 4096
    cor_mostrada(4) = 512
    cor_mostrada(5) = 8912
    cor_mostrada(6) = 2048
    cor_mostrada(7) = 32768
    
    
    Pict(0).Picture = LoadPicture("verde.jpg")
    Pict(1).Picture = LoadPicture("Ciano.jpg")
    Pict(2).Picture = LoadPicture("Preto.jpg")
    Pict(3).Picture = LoadPicture("Magenta.jpg")
    Pict(4).Picture = LoadPicture("Branco.jpg")
    Pict(5).Picture = LoadPicture("amarelo.jpg")
    Pict(6).Picture = LoadPicture("Azul_escuro.jpg")
    Pict(7).Picture = LoadPicture("Vermelho.jpg")
    objetivo.Picture = LoadPicture("Roxo.jpg") 'azul_escuro(7) + vermelho(8)
    
    
    Case 7
    cor_mostrada(0) = 1024
    cor_mostrada(1) = 2048
    cor_mostrada(2) = 16384
    cor_mostrada(3) = 8912
    cor_mostrada(4) = 512
    cor_mostrada(5) = 32768
    cor_mostrada(6) = 256
    cor_mostrada(7) = 4096
    
    
    Pict(0).Picture = LoadPicture("Preto.jpg")
    Pict(1).Picture = LoadPicture("Azul_escuro.jpg")
    Pict(2).Picture = LoadPicture("Verde.jpg")
    Pict(3).Picture = LoadPicture("amarelo.jpg")
    Pict(4).Picture = LoadPicture("Branco.jpg")
    Pict(5).Picture = LoadPicture("Vermelho.jpg")
    Pict(6).Picture = LoadPicture("Ciano.jpg")
    Pict(7).Picture = LoadPicture("Magenta.jpg")
    objetivo.Picture = LoadPicture("Violeta.jpg") 'ciano(7) + magenta(8)
    
    
    Case 8
    cor_mostrada(0) = 16384
    cor_mostrada(1) = 2048
    cor_mostrada(2) = 4096
    cor_mostrada(3) = 512
    cor_mostrada(4) = 256
    cor_mostrada(5) = 1024
    cor_mostrada(6) = 8912
    cor_mostrada(7) = 32768
    
    
    Pict(0).Picture = LoadPicture("Verde.jpg")
    Pict(1).Picture = LoadPicture("Azul_escuro.jpg")
    Pict(2).Picture = LoadPicture("Magenta.jpg")
    Pict(3).Picture = LoadPicture("Branco.jpg")
    Pict(4).Picture = LoadPicture("Ciano.jpg")
    Pict(5).Picture = LoadPicture("Preto.jpg")
    Pict(6).Picture = LoadPicture("amarelo.jpg")
    Pict(7).Picture = LoadPicture("Vermelho.jpg")
    objetivo.Picture = LoadPicture("verde_escuro.jpg") 'verde(1) + preto(6)
    
    
    End Select
    Next i
    
    
    End Sub
    
    
    Private Sub bt_responder_Click()
    Debug.Print (Soma)
    'If bt_responder.Enabled Then
    'Picture1.Visible = True
    'Picture2.Visible = True
    'Picture3.Visible = True
    'Picture4.Visible = True
    'Picture5.Visible = True
    'Picture6.Visible = True
    'Picture7.Visible = True
    'Picture8.Visible = True
    'End If
    
    
    
    
    Select Case matriz
    Case 1
    If Soma = 18432 Then
    k = MsgBox("Acertaste!", vbOKOnly)
    Else
    k = MsgBox("Tenta novamente..", vbOKOnly)
    End If
    
    
    Case 2
    If Soma = 1536 Then
    k = MsgBox("Acertaste!", vbOKOnly)
    Else
    k = MsgBox("Tenta novamente..", vbOKOnly)
    End If
    
    
    Case 3
    If Soma = 20480 Then
    k = MsgBox("Acertaste!", vbOKOnly)
    Else
    k = MsgBox("Tenta novamente..", vbOKOnly)
    End If
    
    
    Case 4
    If Soma = 41680 Then
    k = MsgBox("Acertaste!", vbOKOnly)
    Else
    k = MsgBox("Tenta novamente..", vbOKOnly)
    End If
    
    
    Case 5
    If Soma = 16896 Then
    k = MsgBox("Acertaste!", vbOKOnly)
    Else
    k = MsgBox("Tenta novamente..", vbOKOnly)
    End If
    
    
    Case 6
    If Soma = 34816 Then
    k = MsgBox("Acertaste!", vbOKOnly)
    Else
    k = MsgBox("Tenta novamente..", vbOKOnly)
    End If
    
    
    Case 7
    If Soma = 4352 Then
    k = MsgBox("Acertaste!", vbOKOnly)
    Else
    k = MsgBox("Tenta novamente..", vbOKOnly)
    End If
    
    
    Case 8
    If Soma = 17408 Then
    k = MsgBox("Acertaste!", vbOKOnly)
    Else
    k = MsgBox("Tenta novamente..", vbOKOnly)
    End If
    
    
    End Select
    
    
    
    
    End Sub
    
    
    Private Sub Check_Click(Index As Integer)
    
    
    Soma = cor_mostrada(Index) + Soma
    
    
    End Sub
    
    
    Private Sub Form_Load()
    
    
    codigo_cor(1) = 32768
    codigo_cor(2) = 16384
    codigo_cor(3) = 8192
    codigo_cor(4) = 4096
    codigo_cor(5) = 2048
    codigo_cor(6) = 1024
    codigo_cor(7) = 512
    codigo_cor(8) = 256
    
    
    
    
    End Sub
    
    
    
    Mas neste momento, ele está a reconhecer a primeira resposta mas daí em diante ele vai ser somando todas as outras respostas e acaba por não acertar nenhuma soma após a primeira. Queria saber como é que faço para que a conta volte ao ínicio.
    Tenho um botão reset, onde isto que quero pode ser incluido caso não seja no mesmo sítio da equação.

    Dados que possam ser uteis:

    Vermelho - 32768
    Verde - 16384
    Amarelo - 8912
    Magenta - 4096
    Azul_escuro - 2048
    Preto - 1024
    Branco - 512
    Ciano - 256


    Case 1 = Turquesa = verde + azul = 16384 + 2048 = 18432
    Case 2 = Cinzento = preto + branco = 1024 + 512 = 1536
    Case 3 = cor_de_rosa = vermelho + branco = 32768 + 512 = 33280
    Case 4 = Laranja = vermelho + amarelo = 32768 + 8912 = 41680
    Case 5 = Pistacho = verde + branco = 16384 + 512 = 16896
    Case 6 = Roxo = azul + vermelho = 2048 + 32768 = 34816
    Case 7 = Violeta = ciano + magenta = 256 + 4096 = 4352
    Case 8 = verde_escuro = verde + preto = 16384 + 1024 = 17408


    Cumprimentos,
    BioL
     
    Última edição: 4 de Dezembro de 2012

Partilhar esta Página