URGENTE- [VB] Como limpar Arrays

Mas como assim? soz a noobice :( (Visual Basic V6.0)

Tá aqui o codigo:


Private Sub Picture1_Click(Index As Integer)
If lblrestantes.Caption = 0 Then
MsgBox ("Ganhou")
MsgBox ("Deseja tentar outra vez ?,vbYesNo, Confirmação")
Else
If lbltentativas = 0 Then
If MsgBox("Perdeu, deseja tentar outra vez?", vbYesNo, "Confirmação") = vbYes Then

aqui é que deve estar o codigo para limpar o array, de forma a reiniciar o jogo.

Else
End
End If
Else
lbltentativas = lbltentativas - 1
End If
For i = 0 To 6
If Index = Chave(i) Then
Picture1(Index).Picture = LoadPicture("mina.jpg")
lblrestantes.Caption = Val(lblrestantes.Caption) - 1
End If
Next
If Picture1(i).Picture = LoadPicture("mina.jpg") Then
' lblrestantes.Caption = Val(lblrestantes.Caption) - 1
End If
End If
End Sub




Download do jogo que estou a criar (para tentarem perceber melhor a minha duvida): http://rapidshare.com/files/103022867/Jogo_VB_by_Dark_Fox.zip.html
 
Última edição:
Uma coisa assim deve resultar:
Código:
For n = LBound(array) To UBound(array)
   array(n) = ""
Next n
Em arrays multidimensionais é ligeiramente mais complicado, mas não sei se será o caso.
 
Uma coisa assim deve resultar:
Código:
For n = LBound(array) To UBound(array)
   array(n) = ""
Next n
Em arrays multidimensionais é ligeiramente mais complicado, mas não sei se será o caso.
é mais simples e menos custoso a nivel de ciclos fazer dois redim's

Código:
redim vector(1)
redim vector (OTeuValor)
 
é mais simples e menos custoso a nivel de ciclos fazer dois redim's

Código:
redim vector(1)
redim vector (OTeuValor)
Eu sei, mas se tiveres dimensionado a variável com um valor fixo, i.e. "Dim array(2)", não podes fazer um ReDim depois.
Para poderes fazer isso, tens de a inicializar com um "Dim array()" e um "ReDim array(2)" para mais tarde poderes fazer o que fizeste :)
 
Eu sei, mas se tiveres dimensionado a variável com um valor fixo, i.e. "Dim array(2)", não podes fazer um ReDim depois.
Para poderes fazer isso, tens de a inicializar com um "Dim array()" e um "ReDim array(2)" para mais tarde poderes fazer o que fizeste :)
sim

Código:
Option Explicit

Private Sub Form_Load()
Dim vector()
Dim i As Integer
ReDim vector(5)
For i = 0 To 5
 vector(i) = i
Next
ReDim vector(1)


ReDim vector(5)
For i = 0 To 5
 vector(i) = i
Next

End Sub
cumprimentos
 
Não faz nada...é assim o jogo é o DRAGA MINAS... e como devem saber tem os quadrados e temos de descobrir onde tao as bombas....os quadrados estão todos em array e a bomba (imagem) é posta no array aleatoriamente (randomize)(a imagem é carregada a partir da pasta do jogo)...e eu quero que quando se akabem as tentativas para descobrir onde tao as bombas, aquilo REINICIA-SE, mas não sei como voltar ao inicio (bombas escondidas)(relembro que as bombas são colocadas aleatoriamente)


Desculpem la a noobiçe, mas ninguem nasce ensinado..

Perciso até 2ªF, é decisivo para passar ou xumbar o modulo :S


Obrigado!
 
Ou seja, tens um array de controls?

Tentaste adaptar a solução que está no último post do Armadillo? Ou seja, fazer um ciclo para alterar as imagens de todos os quadrados para a imagem adequada.
 
yh..tentei mas não deu em nada...mas eu como sou um grande noob na coisa pus assim:


Private Sub Picture1_Click(Index As Integer)
If lblrestantes.Caption = 0 Then
MsgBox ("Ganhou")
MsgBox ("Deseja tentar outra vez ?,vbYesNo, Confirmação")
Else
If lbltentativas = 0 Then
If MsgBox("Perdeu, deseja tentar outra vez?", vbYesNo, "Confirmação") = vbYes Then

ReDim vector(5)
For i = 0 To 5
vector(i) = i
Next
ReDim vector(1)


ReDim vector(5)
For i = 0 To 5
vector(i) = i
Next


Else
End
End If
Else
lbltentativas = lbltentativas - 1
End If
For i = 0 To 6
If Index = Chave(i) Then
Picture1(Index).Picture = LoadPicture("mina.jpg")
lblrestantes.Caption = Val(lblrestantes.Caption) - 1
End If
Next
If Picture1(i).Picture = LoadPicture("mina.jpg") Then
' lblrestantes.Caption = Val(lblrestantes.Caption) - 1
End If
End If
End Sub



(com as variaveis criadas claro)

Cumps
 
O que pretendes não é limpar o array, mas sim alterar uma propriedade de cada elemento do array. Limpar o array é eliminar todos os quadrados.

Para alterar a picture de cada elemento do array de pictureboxes, faz assim:
Código:
For i = LBound(Picture1) To UBound(Picture1)
  Picture1(i).Picture = LoadPicture("[B]<nome>[/B].jpg")
EndIf
mas eu como sou um grande noob na coisa
Mesmo assim, pela forma que usaste o código, não tens desculpa :P
 
Código:
For i = Picture1.LBound To Picture1.UBound
  Picture1(i).Picture = LoadPicture("[B]<nome>[/B].jpg")
EndIf
Fixed.
 
Continua a não dar..

Código:


Private Sub Picture1_Click(Index As Integer)
If lblrestantes.Caption = 0 Then
MsgBox ("Ganhou")
MsgBox ("Deseja tentar outra vez ?,vbYesNo, Confirmação")
Else
If lbltentativas = 0 Then
If MsgBox("Perdeu, deseja tentar outra vez?", vbYesNo, "Confirmação") = vbYes Then
For i = Picture1.LBound To Picture1.UBound
Picture1(i).Picture = LoadPicture("mina.jpg")
End If
Else
End
End If
Else
lbltentativas = lbltentativas - 1
End If
For i = 0 To 6
If Index = Chave(i) Then
Picture1(Index).Picture = LoadPicture("mina.jpg")
lblrestantes.Caption = Val(lblrestantes.Caption) - 1
End If
Next
If Picture1(i).Picture = LoadPicture("mina.jpg") Then
' lblrestantes.Caption = Val(lblrestantes.Caption) - 1
End If
End Sub
 
Código:
Private Sub Picture1_Click(Index As Integer)
  If lblrestantes.Caption = 0 Then
    MsgBox ("Ganhou")
    MsgBox ("Deseja tentar outra vez ?,vbYesNo, Confirmação")
  Else
    If lbltentativas = 0 Then
      If MsgBox("Perdeu, deseja tentar outra vez?", vbYesNo, "Confirmação") = vbYes Then
        For i = Picture1.LBound To Picture1.UBound
          Picture1(i).Picture = LoadPicture("mina.jpg")
[B]        Next i[/B]
      Else
        End
      End If
    Else
      lbltentativas = lbltentativas - 1
    End If
    For i = 0 To 6
      If Index = Chave(i) Then
        Picture1(Index).Picture = LoadPicture("mina.jpg")
        lblrestantes.Caption = Val(lblrestantes.Caption) - 1
      End If
    Next
    If Picture1(i).Picture = LoadPicture("mina.jpg") Then
      ' lblrestantes.Caption = Val(lblrestantes.Caption) - 1
    End If
  End If
End Sub

Usa as tags [code][/code].
edit - a falta de indentação fez com que houvessem algumas falhas na estrutura do código. É melhor começares a pensar nisso, porque havia um For sem Next, e If's sem End Ifs. Consegue ser uma dor de cabeça saber os locais onde colocar isso.
 
Última edição:
Back
Topo