como eso de los que no se ha declarado el nombre , estoy usando vb 2008 express edition , aki dejo el codigo
Código C:
Ver original
Option Explicit Private dado As Byte Private contRo, contAz, contAm, contVe As Byte Private turno As Byte Private ro0, ro1, ro2, ro3 As Byte Private az0, az1, az2, az3 As Byte Private am0, am1, am2, am3 As Byte Private ve0, ve1, ve2, ve3 As Byte Private ficha As Byte Private sacada As Boolean Private Sub Form_Load() ro0 = 4: ro1 = 4: ro2 = 4: ro3 = 4 az0 = 21: az1 = 21: az2 = 21: az3 = 21 am0 = 38: am1 = 38: am2 = 38: am3 = 38 ve0 = 55: ve1 = 55: ve2 = 55: ve3 = 55 Randomize End Sub Private Sub cmdDado_Click() Call Tirada If turno = 0 Then Call Movimiento(ro0, ro1, ro2, ro3) ElseIf turno = 1 Then Call Movimiento(az0, az1, az2, az3) ElseIf turno = 2 Then Call Movimiento(am0, am1, am2, am3) Else Call Movimiento(ve0, ve1, ve2, ve3) End If 'Loop End Sub Private Sub Tirada() 'Ojo: CInt aproxima; Int trunca: dado = Int(6 * Rnd + 1) txtDado.Text = CStr(dado) End Sub Private Sub Movimiento(ficha0, ficha1, ficha2, ficha3) (((error error al no declarar lstjug)))) If (lstJug(turno).List(0) <> "" Or lstJug(turno).List(1) <> "" Or lstJug(turno).List(2) <> "" Or lstJug(turno).List(3) <> "") And dado = 5 Then Call Salida(ficha0, ficha1, ficha2, ficha3) ElseIf lstJug(turno).List(0) = "" Or lstJug(turno).List(1) = "" Or lstJug(turno).List(2) = "" Or lstJug(turno).List(3) = "" Then Call Normal(ficha0, ficha1, ficha2, ficha3) End If turno = turno + 1 If turno > 3 Then turno = 0 If turno = 0 Then lstJugadores.ListIndex = 0 ElseIf turno = 1 Then lstJugadores.ListIndex = 1 ElseIf turno = 2 Then lstJugadores.ListIndex = 2 (((ERROR AL NO DECLARAR LST JUGADORES))) ElseIf turno = 3 Then lstJugadores.ListIndex = 3 End If End Sub Private Sub Salida(a, b, c, d) sacada = False If lstJug(turno).List(0) <> "" Then pos(a).AddItem lstJug(turno).List(0) lstJug(turno).List(0) = "" sacada = True ElseIf lstJug(turno).List(1) <> "" Then pos(b).AddItem lstJug(turno).List(1) lstJug(turno).List(1) = "" sacada = True ElseIf lstJug(turno).List(2) <> "" Then pos(c).AddItem lstJug(turno).List(2) lstJug(turno).List(2) = "" sacada = True ElseIf lstJug(turno).List(3) <> "" Then pos(d).AddItem lstJug(turno).List(3) lstJug(turno).List(3) = "" sacada = True End If End Sub Private Function F_Reposiciona(ByVal ficha As Byte) As Byte ficha = ficha + dado If (turno = 1 Or turno = 2 Or turno = 3) And ficha > 67 Then ficha = ficha - 68 F_Reposiciona = ficha End Function Private Sub Normal(a, b, c, d) Dim aux As Byte Dim anterior As Byte If optFicha0.Value = True And lstJug(turno).List(0) = "" Then aux = a a = F_Reposiciona(aux) pos(a).AddItem pos(aux).List(0) pos(aux).RemoveItem 0 ElseIf optFicha1.Value = True And lstJug(turno).List(1) = "" Then aux = b anterior = b b = F_Reposiciona(aux) pos(b).AddItem pos(anterior).List(0) pos(anterior).RemoveItem 0 ElseIf optFicha2.Value = True And lstJug(turno).List(2) = "" Then aux = c anterior = c c = F_Reposiciona(aux) pos(c).AddItem pos(anterior).List(0) pos(anterior).RemoveItem 0 ElseIf optFicha3.Value = True And lstJug(turno).List(3) = "" Then aux = d anterior = d d = F_Reposiciona(aux) pos(d).AddItem pos(anterior).List(0) pos(anterior).RemoveItem 0 Else MsgBox "Esa ficha no ha salido de casa todavía. Usa una de las que ya están fuera" If turno = 0 Then turno = 3 Else turno = turno - 1 End If End If End Sub
a ver si encuentro una solucion , gracias