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

ajuda VB 6.0

Discussão em 'Programação' iniciada por jony69jkl, 10 de Fevereiro de 2008. (Respostas: 15; Visualizações: 1127)

  1. jony69jkl

    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
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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 ;)
     
  3. jony69jkl

    jony69jkl Power Member

    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
     
  4. PJTuga

    PJTuga Power Member

    experimenta assim
     
  5. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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
     
  6. jony69jkl

    jony69jkl Power Member

    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
     
  7. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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: 10 de Fevereiro de 2008
  8. jony69jkl

    jony69jkl Power Member


    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á
     
  9. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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 ;)
     
  10. jony69jkl

    jony69jkl Power Member

    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
     
  11. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    O que é que te falta fazer? Isto não é complicado, e estou cá é para ajudar :)
     
  12. jony69jkl

    jony69jkl Power Member

    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]
     
  13. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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: 10 de Fevereiro de 2008
  14. jony69jkl

    jony69jkl Power Member

    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
     
  15. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    É contigo. O que é preciso é esforçares-te. O resto "são trocos".
    É 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!
     
  16. jony69jkl

    jony69jkl Power Member

    ah ok lol e mais uma vez Obrigado
     

Partilhar esta Página