[AJUDA]Visual Basic 6.0

dk.pt

Power Member
Boas,
tou percisand de um ajudinha pra o meu jogo do bingo... :S
e o seguinte eu kero k saia numeros a sorte... mas kand sair o numero do cartaz nao kero k volte a repetir o mesmo numero...

o meu codigo ta asim...

Código:
Private Sub Command1_Click()
Dim d As Integer
Randomize
d = Int((Rnd * 11) + 1)
Label12 = d
If d = 1 Then
Line3.Visible = True
Line4.Visible = True
ElseIf d = 2 Then
Line5.Visible = True
Line6.Visible = True
ElseIf d = 3 Then
Line7.Visible = True
Line8.Visible = True
ElseIf d = 4 Then
Line9.Visible = True
Line10.Visible = True
ElseIf d = 5 Then
Line11.Visible = True
Line12.Visible = True
ElseIf d = 6 Then
Line13.Visible = True
Line14.Visible = True
ElseIf d = 7 Then
Line15.Visible = True
Line16.Visible = True
ElseIf d = 8 Then
Line17.Visible = True
Line18.Visible = True
ElseIf d = 9 Then
Line19.Visible = True
Line20.Visible = True
ElseIf d = 10 Then
Line21.Visible = True
Line22.Visible = True
End If
    If (Line3.Visible = True) And (Line4.Visible = True) And (Line5.Visible = True) And (Line6.Visible = True) And (Line7.Visible = True) And (Line8.Visible = True) And (Line9.Visible = True) And (Line10.Visible = True) And (Line11.Visible = True) And (Line12.Visible = True) And (Line13.Visible = True) And (Line14.Visible = True) And (Line15.Visible = True) And (Line16.Visible = True) And (Line17.Visible = True) And (Line18.Visible = True) And (Line19.Visible = True) And (Line20.Visible = True) And (Line21.Visible = True) And (Line22.Visible = True) Then
    MsgBox "Parabens, Voce GANHOU!!!"
    End
    End If
End Sub

Cumps
 
Última edição:
O VB não é a minha especialidade, mas acho que a melhor maneira de fazeres isso é teres uma colecção com todos os números que podem ser sorteados e ir removendo os números de lá à medida que vão saindo.
 
Fazes +/- assim:

Adicionas os números a uma colecção (ou um array):

Dim numeros As New Collection
numeros.Add 1
numeros.Add 2
numeros.Add 4


Depois antes de inserires outro verificas se já existe na tua colecção:

Dim NumeroDuplicado As Boolean
NumeroDuplicado = False
' Pesquisa se já existe
For x = 1 To numeros.Count
If numeros(x) = NumeroNovo Then
NumeroDuplicado = True
End If
Next x
If Not NumeroDuplicado Then
numeros.Add NumeroNovo
End If
 
há já um ano k nao mexo em basic... mas axo k a dos arrays dá direito... o ano passado tive k fazer uma do género com o euromilhoes.... tenho k procurar direito nas minhas coisas e posso t dizer algo...
s a soluçao dos arrays der direito, melhor, nao tenho k procurar nada... cumps!
 
O que terás que fazer é pores um vector que te ira ficar com todos os valores que fores introduzindo. No inicio irás por sempre o vector com a posiçao 1 e guardar la o primeiro valor.Em seguida tens que a colocar debaixo da instrução que vai criar os números a sorte dois ciclos, o primeiro será para fazer enquanto não sairem todos os números ou ninguém ganhar, o segundo ciclo ira ser um for que vai do 1 ate a ultima posição da tua variável(tens que fazer com que ele no primeiro valor nao chegue a entrar no for, se nao ira fazer a comparaçao consigo proprio).
Em seguida pões o ciclo for dentro do while e fazes a comparação com todos os números que guardas-te anteriormente, se, se verificar que o novo valor é igual a um que já tens dentro do teu vector, terás que ir para "cima" outra vez e sorteares um novo número, se não houver valor iguais, quando ele chegar ao fim do for terás que adicionar ao teu vector mais uma posição e guardares lá o novo valor.

Se for muito confuso diz o que não entendes que tento me explicitar melhor
 
Última edição:
Ajuda

Eu num formulário pos um datagrid que está ligado a base de dados, mas eu quando criei a base de dados pos la tudo o que cria.Eu fiz uma tabela a dizer preço e pos la a quantia, so que eu queria que a frente aparecesse o simbolo do euro???
Obrigado
 
penso que será isto mas não sei o meu basic e só no estagio e mesmo assim esta um pouco enferrujado..
Código:
Private Sub Command1_Click()
dim d,i,cont as integer
numeros as [(mais uma vez teras que por o ultimo numero a aparecer)]
cont =0
do while line.22visible =false and i <> (ultimo numero a aparecer) 
if cont <>0 then
call sortear
numeros[1]=d
else
Dim d As Integer
Randomize
d = Int((Rnd * 11) + 1)
end if
Label12 = d
If d = 1 Then
Line3.Visible = True
Line4.Visible = True
ElseIf d = 2 Then
Line5.Visible = True
Line6.Visible = True
ElseIf d = 3 Then
Line7.Visible = True
Line8.Visible = True
ElseIf d = 4 Then
Line9.Visible = True
Line10.Visible = True
ElseIf d = 5 Then
Line11.Visible = True
Line12.Visible = True
ElseIf d = 6 Then
Line13.Visible = True
Line14.Visible = True
ElseIf d = 7 Then
Line15.Visible = True
Line16.Visible = True
ElseIf d = 8 Then
Line17.Visible = True
Line18.Visible = True
ElseIf d = 9 Then
Line19.Visible = True
Line20.Visible = True
ElseIf d = 10 Then
Line21.Visible = True
Line22.Visible = True
End If
(comando de terminar o while nao m lembro agora)
    If (Line3.Visible = True) And (Line4.Visible = True) And (Line5.Visible = True) And (Line6.Visible = True) And (Line7.Visible = True) And (Line8.Visible = True) And (Line9.Visible = True) And (Line10.Visible = True) And (Line11.Visible = True) And (Line12.Visible = True) And (Line13.Visible = True) And (Line14.Visible = True) And (Line15.Visible = True) And (Line16.Visible = True) And (Line17.Visible = True) And (Line18.Visible = True) And (Line19.Visible = True) And (Line20.Visible = True) And (Line21.Visible = True) And (Line22.Visible = True) Then
    MsgBox "Parabens, Voce GANHOU!!!"
    End
    End If
End Sub

Public Sub sortear
Dim d As Integer
Randomize
d = Int((Rnd * 11) + 1)
call testar
end sub

private sub testar
for i=1 to cont then
if numeros[i] = d then
call sortear
else 
cont=cont +1
numeros[cont]= d
end sub

se der erros tenta corrigir, a estrutura lógica acho que estará certa...
 
Última edição:
Duvida:
Como e que se faz um contador de escolhas multiplas certas? Tipo eu tenho 5 escolhas multiplas e quero que na ultima form diga quantas escolhas multiplas acertou e quais foram.

Como se faz?
 
Duvida:
Como e que se faz um contador de escolhas multiplas certas? Tipo eu tenho 5 escolhas multiplas e quero que na ultima form diga quantas escolhas multiplas acertou e quais foram.

Como se faz?
poes no access 5 colunas
1º pergunta
2º opçao A
3º opçao B
4º opçao C
5º Respostas certa

pões a pergunta a aparecer em cima numa text box e as três alienas a aparecer com uma text box com três check box atrás
depois testa a ver s a resposta esta certa:
certa=0
for i = 1 to 5 then
if check1.causevalidation = true then
if text2.text(será a opção A) = text5.text(é a resposta certa, põem este com a visabilaty = false) then
certa =certas +1
end if
else
if check2.causevalidation = true then
if text3.text(será a opção b) = text5.text(é a resposta certa, põem este com a visabilaty = false) then
certa =certas +1
else
if check3.causevalidation = true then
if text4.text(será a opção c) = text5.text(é a resposta certa, põem este com a visabilaty = false) then
certa =certas +1
end if
next
certas =str(certas) (serve para converter de numérico para string caso não saibas)
msgbox('você acertou em ' certas' perguntas')

penso que sera isso...
 
Tipo eu tenho 5 forms em cada form tem uma escolha multipla com 4 opçoes, nao quero que ele saiba quando responde se estava certo ou errado so quero saber num 6 form que diria quantas perguntas acertou e quais foram. é assim que tens?
 
Tipo eu tenho 5 forms em cada form tem uma escolha multipla com 4 opçoes, nao quero que ele saiba quando responde se estava certo ou errado so quero saber num 6 form que diria quantas perguntas acertou e quais foram. é assim que tens?

Vou te já uns concelhos:
1º escusas de fazer 5 forms basta fazeres como te pus ai e ele da.
2ºnem sequer olhas-te bem para o que te fiz, se o tivesses feito, terias pensado que para saber quando o utilizador acerta na resposta é preciso de fazer a comparação entre a resposta do utilizador e a resposta certa.
3ºpodes guardar o numero da resposta certa num vector e a posição em que guarda podes utilizar o certas como índice e no final correres o vector todo e la terás o numero correspondente as perguntas que o utilizador acertou.

Queres que te façam os trabalhos? paga para tos fazerem.
Se mostrares algum empenho e agradecimento a quem te ajuda ate pode ser que haja quem se preste a te ajudar....
 
Pensei que era um forum para ajudar as pessoas. Simplesmente sou um principiante e nao conheço bem a linguagem e como se fazem certas coisas, já participei em mais alguns topicos do forum e nunca tinha sido tratado assim. Isto é um forum é normal que haja alguma "ignorancia", tu que deves saber mais que nós podias nos ajudar. Mas se nao queres obrigado na mesma.
 
Pensei que era um forum para ajudar as pessoas. Simplesmente sou um principiante e nao conheço bem a linguagem e como se fazem certas coisas, já participei em mais alguns topicos do forum e nunca tinha sido tratado assim. Isto é um forum é normal que haja alguma "ignorancia", tu que deves saber mais que nós podias nos ajudar. Mas se nao queres obrigado na mesma.
Fazer tudo é diferente de ajudar. Ele explicou como é que podias fazer. Agora tu tens de fazer a tua parte. :)
 
Pensei que era um forum para ajudar as pessoas. Simplesmente sou um principiante e nao conheço bem a linguagem e como se fazem certas coisas, já participei em mais alguns topicos do forum e nunca tinha sido tratado assim. Isto é um forum é normal que haja alguma "ignorancia", tu que deves saber mais que nós podias nos ajudar. Mas se nao queres obrigado na mesma.

Mostra-me o que já fizes-te e o que precisas de fazer, se quiseres cria um post novo com o teu programa, se mostrares empenho e trabalho eu e os outros iremos te ajudar, não estou a fazer isto para ser “um xunga”, apenas quero que sejas um pouco independente.
Só a te ajudarem não iras muito longe como programador rapaz.
cumps Pauleta
 
penso que será isto mas não sei o meu basic e só no estagio e mesmo assim esta um pouco enferrujado..
Código:
Private Sub Command1_Click()
dim d,i,cont as integer
numeros as [(mais uma vez teras que por o ultimo numero a aparecer)]
cont =0
do while line.22visible =false and i <> (ultimo numero a aparecer) 
if cont <>0 then
call sortear
numeros[1]=d
else
Dim d As Integer
Randomize
d = Int((Rnd * 11) + 1)
end if
Label12 = d
If d = 1 Then
Line3.Visible = True
Line4.Visible = True
ElseIf d = 2 Then
Line5.Visible = True
Line6.Visible = True
ElseIf d = 3 Then
Line7.Visible = True
Line8.Visible = True
ElseIf d = 4 Then
Line9.Visible = True
Line10.Visible = True
ElseIf d = 5 Then
Line11.Visible = True
Line12.Visible = True
ElseIf d = 6 Then
Line13.Visible = True
Line14.Visible = True
ElseIf d = 7 Then
Line15.Visible = True
Line16.Visible = True
ElseIf d = 8 Then
Line17.Visible = True
Line18.Visible = True
ElseIf d = 9 Then
Line19.Visible = True
Line20.Visible = True
ElseIf d = 10 Then
Line21.Visible = True
Line22.Visible = True
End If
(comando de terminar o while nao m lembro agora)
    If (Line3.Visible = True) And (Line4.Visible = True) And (Line5.Visible = True) And (Line6.Visible = True) And (Line7.Visible = True) And (Line8.Visible = True) And (Line9.Visible = True) And (Line10.Visible = True) And (Line11.Visible = True) And (Line12.Visible = True) And (Line13.Visible = True) And (Line14.Visible = True) And (Line15.Visible = True) And (Line16.Visible = True) And (Line17.Visible = True) And (Line18.Visible = True) And (Line19.Visible = True) And (Line20.Visible = True) And (Line21.Visible = True) And (Line22.Visible = True) Then
    MsgBox "Parabens, Voce GANHOU!!!"
    End
    End If
End Sub
 
Public Sub sortear
Dim d As Integer
Randomize
d = Int((Rnd * 11) + 1)
call testar
end sub
 
private sub testar
for i=1 to cont then
if numeros[i] = d then
call sortear
else 
cont=cont +1
numeros[cont]= d
end sub

se der erros tenta corrigir, a estrutura lógica acho que estará certa...

Qual e a variavel que esta o ultimo numero? foi unika koisa k nao percebi :/
Cumps
 
Qual e a variavel que esta o ultimo numero? foi unika koisa k nao percebi :/
Cumps

isso era por exemplo o bingo tem 123 números que iram ser sorteados o ultimo numero a sair e o 123 percebes?(isso acontece mais se estivesses a jogar sozinho)
por isso so serve para delimitar o teu vector(dizer o numero de posiçoes) e mais nada.
no while afinal basta so o:
Código:
do while line.22visible =false

esquecime de por o loop, fica assim:
Código:
loop
Label12 = d
 
Última edição:
isso era por exemplo o bingo tem 123 números que iram ser sorteados o ultimo numero a sair e o 123 percebes?(isso acontece mais se estivesses a jogar sozinho)
por isso so serve para delimitar o teu vector(dizer o numero de posiçoes) e mais nada.
no while afinal basta so o:
Código:
do while line.22visible =false

esquecime de por o loop, fica assim:
Código:
loop
Label12 = d

o que o cont faz?
 
Back
Topo