Necesito ayuda!!!rapido xfa.

sergio
14 de Abril del 2003
Necesito que me miren este programa no me va bien!!Tengo que hacer el juego del parchis en visual basic.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 'Inicializa el generador de aleatorios
End Sub

Private Sub cmdDado_Click()
'los cont recojen el nº de fichas que llegaron:
'Do While (contRo < 3 Or contAz < 3 Or contAm < 3 Or contVe < 3)
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)
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
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
'Sacada toma valor True cuando sale una ficha de casa
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
'¿x ké actualiza aux=a al hacer a=F_reposiciona(aux)?
'xke aux pasa por referencia; x eso es actualizado al volver.
'x defecto, los parámetros se pasan siempre x referencia.
'Si pasamos 'aux' x valor a la función (Con ByVal) no necesitamos
'otra variable para almacenar la posición anterior.
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 'xke al salir incrementa turno; como 4 > 3 => reinicializa turno=0
Else
turno = turno - 1
End If
End If
End Sub

Esto es lo que hice!!Gracias por contestar al que lo haga.


webJose
14 de Abril del 2003
Tal vez podría ayudarle si me describiera el juego, ya que no lo conozco (al menos por ese nombre). Además, cuál es el problema con su código? No espere que se lo den hecho, eso no suele suceder. Yo le ayudo con mucho gusto con algún problema ESPECÍFICO.

sergio
14 de Abril del 2003
hola!!!
Muchas gracias pero ya lo solucione!!era una tonteria lo que estaba mal.chao

Ivan
14 de Abril del 2003
espero me puedas mandar tu programa de parchis para saber somo esta estructurado y asi poder saber que herramientas usaste,espero me los puedas mandar