Tema: Laberinto
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/02/2008, 09:18
Avatar de piojoman
piojoman
 
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 224
Antigüedad: 19 años, 4 meses
Puntos: 3
Re: Laberinto

Tambien podes hacer esto:

Private Type Componer 'Creamos nuestro propio tipo de variable
Dureza As Boolean 'Necesitamos esta seccion para saber si un cuadro tiene material o esta libre
Material As Byte 'Decimos que tipo de material tendra (ladrillo,metal, etc.) cada uno le corresponde un numero de 0 a 255
' si necesitamos mas materiales modificamos la variable Byte por Integer
End Type

Private Sub Form_Load()
Dim Mapa(1 To 5, 1 To 5) As Componer 'Creamos la matriz(mapa) de 5 casilleros x 5 casilleros para el ejemplo

'Mapa(Fila,Columna)

'/////// FILA UNO //////
Mapa(1, 1).Dureza = True 'True es para decir que si hay un cuadro ocupado
Mapa(1, 1).Material = 1 'Suponemos que 1 es un cuadro de ladrillo

Mapa(1, 2).Dureza = True
Mapa(1, 2).Material = 1

Mapa(1, 3).Dureza = False
Mapa(1, 3).Material = 1

Mapa(1, 4).Dureza = False
Mapa(1, 4).Material = 1

Mapa(1, 5).Dureza = True
Mapa(1, 5).Material = 3

'/////// FILA DOS //////
Mapa(2, 1).Dureza = False 'True es para decir que si hay un cuadro ocupado
Mapa(2, 1).Material = 2 'Suponemos que 1 es un cuadro de ladrillo
'etc...
End Sub

Esto es para darle un material y ademas decir si el personaje puede ocupar ese cuadro o no (dureza)
-----------------------------------
Mas sencillo seria...

Private Sub Form_Load()
Dim Mapa(1 To 5, 1 To 5) As Byte 'Creamos la matriz(mapa) de 5 casilleros x 5 casilleros para el ejemplo

Mapa(1, 1) = 1
Mapa(1, 2) = 2
'etc.

For x = 1 To 5
For y = 1 To 5
Select Case Mapa(x, y)
Case 0
'bla bla
Case 1
'bla bla
Case 2
'bla bla
'etc
End Select
Next
Next
End Sub

----------------------
Pero recomiendo usar otros medios. Con cadenas es mas facil de llenar los valores de los niveles!!!

Private Sub Form_Load()
Dim Cuadros As String, x As Byte, Datos As String, Pos As Byte

Cuadros = "01,12,13,14,15,16,17,18,19" ' Mapa de 3x3

For x = 1 To Len(Cuadros) Step 3 'iniciamos un bucle del tamaño de la cadena
Datos = Mid(Cuadros, x, 2) 'Leer la cadena Cuadros en 2 letras
If Pos = 4 Then 'Se fija si llego a la ultima casilla de una fila
'Codigo (Pasa a otra fila)
Pos = 1 'Reinicia el contador
Else
Pos = Pos + 1
'Codigo (Pasa a otra casilla de la columna)
End If
MsgBox Datos
Next
End Sub