ajuda VB 6.0

jony69jkl

Power Member
boas eu tenho um trabalho a fazer a BP mas visto que o Prof nao explica muito...ele mandou-nos fazer uma slot machine(v1.0)...http://www.hdd.pt/download/1229879364/Slot_machine.frm.html
e agora mandou-nos fazer uma v2.0 mas com estes elementos:
Baseado no aplicativo "Slot Machine" desenvolva a versão 2.0 deste jogo com as seguintes novas funções:
  • 'Insert coin', é necessário inserir moedas de 0,50 € para cada 5 tentativas;
  • sempre que sair:
    • um 7 dá 1,00€ de prémio;
    • dois 7 dá 2,00€ de prémio;
    • três 7 dá 5,00 € de prémio.
O jogo deverá ir mostrando ao jogador o nr. jogadas, o nr. de 7's (1x, 2x e 3x), o crédito de jogadas e permitir ao jogador solicitar o reembolso do prémio.


e eu so consigo fazer isto...se alguém me poder ajudar...

esta é a v2.0 (por acabar)http://www.hdd.pt/download/1059074237/Slot_machineV2.0.frm.html
 
Sinceramente, eu n vou sacar nada, e tal como eu, muita gente.

Explica aqui no tópico o que é que não sabes fazer e talvez te possamos ajudar ;)
 
Sinceramente, eu n vou sacar nada, e tal como eu, muita gente.

Explica aqui no tópico o que é que não sabes fazer e talvez te possamos ajudar ;)

basicamente o Prof nao explica nada...eu so pus isso ai para voces verem o codigo que eu pus...ma por exemplo há aqui uma parte em que tenho 3 text box que dao numeros aleatorios...mas so começa a jogar se inserirmos moedas...e entao no botao de girar...eu pus assim

Private Sub Command1_Click()
If Label2.Caption = "0" Then
MsgBox("Insira moeda", vbOKOnly) = vbOK
Randomize
txtUm.Text = Int(Rnd * 9) + 1
txtD.Text = Int(Rnd * 9) + 1
txtT.Text = Int(Rnd * 9) + 1
If txtUm.Text = "7" Or txtD.Text = "7" Or txtT.Text = "7" Then
Picture1.Visible = True
Beep
Else
Picture1.Visible = False
End If
End If
End Sub

e da m erro na parte da msgbox
 
basicamente o Prof nao explica nada...eu so pus isso ai para voces verem o codigo que eu pus...ma por exemplo há aqui uma parte em que tenho 3 text box que dao numeros aleatorios...mas so começa a jogar se inserirmos moedas...e entao no botao de girar...eu pus assim

Private Sub Command1_Click()
If Label2.Caption = "0" Then
x=MsgBox("Insira moeda", vbOKOnly)
Randomize
txtUm.Text = Int(Rnd * 9) + 1
txtD.Text = Int(Rnd * 9) + 1
txtT.Text = Int(Rnd * 9) + 1
If txtUm.Text = "7" Or txtD.Text = "7" Or txtT.Text = "7" Then
Picture1.Visible = True
Beep
Else
Picture1.Visible = False
End If
End If
End Sub

e da m erro na parte da msgbox
experimenta assim
 
Claro que dá erro. O que é que esperas com isto?
Código:
MsgBox("Insira moeda", vbOKOnly) = vbOK
(usa as tags CODE ;))

supostamente ou é
Código:
MsgBox "Insira moeda", vbOKOnly
ou´
Código:
x = MsgBox("Insira moeda", vbOKOnly)
ou
Código:
If MsgBox("Insira moeda", vbOKOnly) = vbOK Then
mas este último não faz sentido porque a única opção do utilizador é o OK.

edit - lol, por coincidência tanto eu como o JPTuga usamos o x como variável de retorno da MsgBox :P
 
Claro que dá erro. O que é que esperas com isto?
Código:
MsgBox("Insira moeda", vbOKOnly) = vbOK
(usa as tags CODE ;))

supostamente ou é
Código:
MsgBox "Insira moeda", vbOKOnly
ou´
Código:
x = MsgBox("Insira moeda", vbOKOnly)
ou
Código:
If MsgBox("Insira moeda", vbOKOnly) = vbOK Then
mas este último não faz sentido porque a única opção do utilizador é o OK.

edit - lol, por coincidência tanto eu como o JPTuga usamos o x como variável de retorno da MsgBox :P
nao gozem com a minha ignorancia em VB lol...mas isto continua a nao dar pq logo após eu fazer ok da numeros aleatoriamente... e era suposto eu carregar ok e ter 1 de inserir moedas e so depois da para jogar.este prof dass diz programas para um gajo fazer sem um gajo saber fazer sequer
 
Atenção que não estava a gozar contigo ;) aquela linha simplesmente não fazia sentido, porque estavas a atribuir um valor a uma função :P

Vê a estrutura do teu código:

Código:
Private Sub Command1_Click()
 
    If Label2.Caption = "0" Then
        MsgBox "Insira moeda", vbOKOnly
        Randomize
        txtUm.Text = Int(Rnd * 9) + 1
        txtD.Text = Int(Rnd * 9) + 1
        txtT.Text = Int(Rnd * 9) + 1
 
        If txtUm.Text = "7" Or txtD.Text = "7" Or txtT.Text = "7" Then
            Picture1.Visible = True
            Beep
        Else
            Picture1.Visible = False
        End If
 
    End If
 
End Sub

Supostamente, depois da MsgBox, ele faz tudo na mesma. O que tu queres é que OU mostra a MsgBox OU faz o resto. Logo, o resto ocorre SE Label2.Caption NÃO FOR 0. Ou seja, o resto do código entra no Else:
Código:
Private Sub Command1_Click()
 
    If Label2.Caption = "0" Then
        MsgBox "Insira moeda", vbOKOnly
[B]    Else[/B]
        Randomize
        txtUm.Text = Int(Rnd * 9) + 1
        txtD.Text = Int(Rnd * 9) + 1
        txtT.Text = Int(Rnd * 9) + 1
 
        If txtUm.Text = "7" Or txtD.Text = "7" Or txtT.Text = "7" Then
            Picture1.Visible = True
            Beep
        Else
            Picture1.Visible = False
        End If
 
    End If
 
End Sub
 
Última edição:
Atenção que não estava a gozar contigo ;) aquela linha simplesmente não fazia sentido, porque estavas a atribuir um valor a uma função :P

Vê a estrutura do teu código:

Código:
Private Sub Command1_Click()
 
    If Label2.Caption = "0" Then
        MsgBox "Insira moeda", vbOKOnly
        Randomize
        txtUm.Text = Int(Rnd * 9) + 1
        txtD.Text = Int(Rnd * 9) + 1
        txtT.Text = Int(Rnd * 9) + 1
 
        If txtUm.Text = "7" Or txtD.Text = "7" Or txtT.Text = "7" Then
            Picture1.Visible = True
            Beep
        Else
            Picture1.Visible = False
        End If
 
    End If
 
End Sub

Supostamente, depois da MsgBox, ele faz tudo na mesma. O que tu queres é que OU mostra a MsgBox OU faz o resto. Logo, o resto ocorre SE Label2.Caption NÃO FOR 0. Ou seja, o resto do código entra no Else:
Código:
Private Sub Command1_Click()
 
    If Label2.Caption = "0" Then
        MsgBox "Insira moeda", vbOKOnly
[B]   Else[/B]
        Randomize
        txtUm.Text = Int(Rnd * 9) + 1
        txtD.Text = Int(Rnd * 9) + 1
        txtT.Text = Int(Rnd * 9) + 1
 
        If txtUm.Text = "7" Or txtD.Text = "7" Or txtT.Text = "7" Then
            Picture1.Visible = True
            Beep
        Else
            Picture1.Visible = False
        End If
 
    End If
 
End Sub


ok prontos este passo já ta feito agora tenho outra duvida...eu quero que quando carregue no botao insert coin apareça 50 e depois 100 e depois 150 e etc...isto so me aparece a 1 vez

Private Sub Command3_Click()
Label2.Caption = "50"
End Sub

agora tou a usar asim mas ja tentei de varias maneiras
tipo
Private Sub Command3_Click()
Label2.Caption = val(50)
End Sub

Private Sub Command3_Click()
Label2.Caption = 50
End Sub

Private Sub Command3_Click()
Label2.Caption = 50 & label2.caption
End Sub

mas nenhuma dá
 
Porque nessas formas todas ou estás a mudar o valor PARA 50 ou estás a concatenar 50 (o que é concatenar? É simples: "1" & "1" = "11" :P)
O que tens de fazer é somar ao valor que já existe na label, o valor 50. Traduzindo,
Código:
[COLOR=red]Label2.Caption[/COLOR] [COLOR=seagreen]=[/COLOR] [COLOR=red]Val(Label2.Caption)[/COLOR] [COLOR=seagreen]+[/COLOR] [COLOR=blue]50[/COLOR]
[COLOR=red]A label [/COLOR][COLOR=seagreen]passa a ter[/COLOR] [COLOR=red]o valor que tinha[/COLOR] [COLOR=seagreen]mais[/COLOR] [COLOR=blue]cinquenta[/COLOR]

Isto é apenas lógica, e começo a acreditar mais em falta de atenção nas aulas do que no professor não te explicar isso ;)
 
Porque nessas formas todas ou estás a mudar o valor PARA 50 ou estás a concatenar 50 (o que é concatenar? É simples: "1" & "1" = "11" :P)
O que tens de fazer é somar ao valor que já existe na label, o valor 50. Traduzindo,
Código:
[COLOR=red]Label2.Caption[/COLOR] [COLOR=seagreen]=[/COLOR] [COLOR=red]Val(Label2.Caption)[/COLOR] [COLOR=seagreen]+[/COLOR] [COLOR=blue]50[/COLOR]
[COLOR=red]A label [/COLOR][COLOR=seagreen]passa a ter[/COLOR] [COLOR=red]o valor que tinha[/COLOR] [COLOR=seagreen]mais[/COLOR] [COLOR=blue]cinquenta[/COLOR]

Isto é apenas lógica, e começo a acreditar mais em falta de atenção nas aulas do que no professor não te explicar isso ;)
a partir daqui nao faço mais...é muito complicado...Obrigado angelofwisdom

edit:o Prof nao explica ele simplesmente diz faz isto ou aquilo quem nao percebe fica a olhar
 
O que é que te falta fazer? Isto não é complicado, e estou cá é para ajudar :)
tudo...tenho de por que quando sair um ou 2 ou 3 7 dá um certo dinheiro e se o jogador quiser sair da lhe o dinheiro e que por cada jogada gasta 10 centimos e depois 3 text box a dizer quantas vezes calhou um 7 noutra dizer quantas vezes calharam 2 e na outra 3...tudo coisas que nao percebo nada...so sei que tenho de usar ifs com fartura, so me falta é o nexo das coisas...como tu viste la encima naquilo do insira moeda [MsgBox("Insira moeda", vbOKOnly) = vbOK]
 
Pensa! O que é da programação se não pensares? :P
Antes de começares a escrever o programa, tens de pensar; estruturar na tua cabeça o que é que tem de ser feito!

Basicamente, ele tem de ver as três caixas, e verificar quantos setes é que saíram. Isso sim, é uma catrafada de Ifs, mas tens de pensar logicamente de forma a saberes como é que tens de programar isso!

Código:
Se a primeira caixa for um sete [B]E[/B] a segunda caixa for um sete[B] E [/B]a terceira caixa for um sete, então
   o dinheiro aumenta cinco euros
 
Se (a primeira caixa for um sete E a segunda caixa for um sete), [B]OU[/B]
     (a primeira caixa for um sete E a terceira caixa for um sete), [B]OU[/B]
     (a segunda caixa for um sete E a terceira caixa for um sete), então
   o dinheiro aumenta dois euros
 
Se a primeira caixa for um sete [B]OU[/B] a segunda caixa for um sete [B]OU[/B] a terceira caixa for um sete, então
   o dinheiro aumenta um euro

(em vez de apenas IFs, usa ElseIfs ;) )

Eu já quase te estou a dar a papinha toda feita! O que é que andas a fazer nas aulas? :P
Eu não me importo de te ir ajudando por aqui, mas é essencial que também te dediques a isso, senão nada feito ;)
 
Última edição:
Pensa! O que é da programação se não pensares? :P
Antes de começares a escrever o programa, tens de pensar; estruturar na tua cabeça o que é que tem de ser feito!

Basicamente, ele tem de ver as três caixas, e verificar quantos setes é que saíram. Isso sim, é uma catrafada de Ifs, mas tens de pensar logicamente de forma a saberes como é que tens de programar isso!

Código:
Se a primeira caixa for um sete [B]E[/B] a segunda caixa for um sete[B] E [/B]a terceira caixa for um sete, então
   o dinheiro aumenta cinco euros
 
Se (a primeira caixa for um sete E a segunda caixa for um sete), [B]OU[/B]
     (a primeira caixa for um sete E a terceira caixa for um sete), [B]OU[/B]
     (a segunda caixa for um sete E a terceira caixa for um sete), então
   o dinheiro aumenta dois euros
 
Se a primeira caixa for um sete [B]OU[/B] a segunda caixa for um sete [B]OU[/B] a terceira caixa for um sete, então
   o dinheiro aumenta um euro

(em vez de apenas IFs, usa ElseIfs ;) )

Eu já quase te estou a dar a papinha toda feita! O que é que andas a fazer nas aulas? :P
Eu não me importo de te ir ajudando por aqui, mas é essencial que também te dediques a isso, senão nada feito ;)

eu nao consigo pensar nem ser criativo...da forma como tas a explicar parece fácil...agora da forma como o prof nem sequer explica...agora vou dormir que tenho amanha teste de FQ ...amanha irei tentar acabar isto se tiver alguma duvida posto aqui no topico ou mando t PM...e mais uma vez Obrigado.Porta-te
 
eu nao consigo pensar nem ser criativo...da forma como tas a explicar parece fácil...agora da forma como o prof nem sequer explica...agora vou dormir que tenho amanha teste de FQ ...amanha irei tentar acabar isto
É contigo. O que é preciso é esforçares-te. O resto "são trocos".
se tiver alguma duvida posto aqui no topico ou mando t PM...e mais uma vez Obrigado.Porta-te
É melhor leres a minha assinatura antes de partires para aí. Estou cá para ajudar, mas não por PM ;)

Boa sorte para o teste de FQ!
 
Back
Topo