Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: reeyesg en 9 Noviembre 2014, 05:18 am



Título: Simulacion de semaforo (AYUDA)
Publicado por: reeyesg en 9 Noviembre 2014, 05:18 am
Bnas nochees.. bnos les escriiibo porq me mandaron a hacer un proyecto de simulacion.. se hacer muy pocas cosas para lo q me piden y quisiera q me diern unas ideas para yo hacer este proyecto no les pido q me lo haga solo q me faciliten conocimientos y ayudas como qpuedo utilizar para armarlo aqui les dejo los requisitos.. ya se mas o menos la logica q debe llevar para lo del cambio de las luces pero lo otro es lo q me jode un poco

Se plantea la necesidad de Desarrollar una aplicación en Visual Basic, que permita mostrar
una simulación del proceso realizado en un semáforo.
Como entrada de datos, se debe solicitar al usuario el tiempo de duración de la
simulación.

Para el proceso de simulación se debe tomar en cuenta:
· Deben existir al menos 3 vías controladas por el semáforo en la simulación.
· El semáforo debe tener 4 luces: rojo, verde, amarillo y flecha (para cruzar), las
cuales cambiaran cada cierto tiempo (el intervalo queda a criterio del
programador)
· La asignación de la vía que tomara cada vehículo, cuando el semáforo este en
verde, debe ser seleccionada aleatoriamente.
· Se debe mostrar en pantalla el tiempo de ejecución de la aplicación, y un contador
de la cantidad de vehículos que han pasado el semáforo.
· Deberá existir un botón que permita detener la simulación antes del tiempo
establecido.
Al finalizar la simulación, se debe mostrar una caja de mensajes, con las estadísticas
finales del proceso: cantidad total de vehículos que transitaron y duración total de la
simulación.


Título: Re: Simulacion de semaforo (AYUDA)
Publicado por: reeyesg en 11 Noviembre 2014, 21:08 pm
Código
  1. Dim a As Integer
  2. Dim tiempo As Integer
  3. Private Sub Command1_Click()
  4. a = 0
  5. Timer1.Enabled = True
  6. Timer1.Interval = 1000
  7. tiempo = InputBox("Escriba el tiempo de Simulacion del Semaforo", "Simulacion de Semaforo")
  8. Label1.Caption = tiempo
  9.  
  10. End Sub
  11.  
  12. Private Sub Timer1_Timer()
  13. a = a + 1
  14. If a = 1 Then
  15. Image1.Visible = True   'Luz Roja
  16. Image2.Visible = False  'Luz Amarilla
  17. Image3.Visible = False  'Luz Verde
  18. Image4.Visible = False  'Luz Roja
  19. Image5.Visible = True   'Luz Amarilla
  20. Image6.Visible = False  'Luz Verde
  21. End If
  22. If a = 7 Then
  23. Image1.Visible = False
  24. Image2.Visible = True
  25. Image3.Visible = False
  26. Image4.Visible = False
  27. Image5.Visible = False
  28. Image6.Visible = True
  29. End If
  30. If a = 12 Then
  31. Image1.Visible = False
  32. Image2.Visible = False
  33. Image3.Visible = True
  34. Image4.Visible = True
  35. Image5.Visible = False
  36. Image6.Visible = False
  37. End If
  38. If a = 14 Then
  39. a = 0
  40. End If
  41. Label1.Caption = Label1.Caption - 1
  42. If Label1.Caption < 1 Then
  43. Timer1.Enabled = False
  44. End If
  45. End Sub

Eso es lo poco que e hecho.. estan lo de insertar el tiempo de cuanto durara la simulacion.. el cambio de luces.. faltaria el de mover los carros aleatoriamente.. porq ta tngo este otro codigo q es el q hara q se muevan los carros pero no se como se hara aleatorio q vayan a la derecha izquierda o derecho


Código
  1. if(image2.visible =true or image3.visible=true) then 'cuando muestre la luz amarilla y verde se mueve
  2.  
  3. imageCarro.left=imagecarro.left+20 '20 es la velocidad q se movera el carro
  4.  
  5. elseif image1.visible=true then ' cuando se pone la luz roja
  6.  
  7. imagecarro.left=imagecarro.ledt+0 ' la velocidad es 0 porq se detiene
  8.  
  9. end if

espero su ayuda


Título: Re: Simulacion de semaforo (AYUDA)
Publicado por: ivancea96 en 11 Noviembre 2014, 23:02 pm
Con Rnd() sacas un número aleatorio 0 <= X < 1. Puedes usarlo para aleatorizar la dirección que tomará el coche.

Te diría que tabules el código, y que le pongas nombres más intuitivos a las variables. Pero bueno, eso ya es cosa tuya.

Por cierto, en el enunciado pone que los semáforos tendrán 4 luces.


Título: Re: Simulacion de semaforo (AYUDA)
Publicado por: reeyesg en 12 Noviembre 2014, 02:00 am
Con Rnd() sacas un número aleatorio 0 <= X < 1. Puedes usarlo para aleatorizar la dirección que tomará el coche.

Te diría que tabules el código, y que le pongas nombres más intuitivos a las variables. Pero bueno, eso ya es cosa tuya.

Por cierto, en el enunciado pone que los semáforos tendrán 4 luces.

sii lo de las luces lo se,, pero si uno le pone el rnd().. es para q vayan a la derecha, izquierda o siga derecho.. y ahi se podria ir pa otros lados jajajaja,, pero bueno tratare de hacerlo asi como me dices aunq no se mucho.. espero q me ayuden mas


Título: Re: Simulacion de semaforo (AYUDA)
Publicado por: reeyesg en 25 Noviembre 2014, 17:58 pm
Buenas vengo a revivir el post.. porq quisieraaa una ayuda ya q es lo unico q me falta
bueno quisiera mover ese shape.. aleatoriamente hacia arriba a la derecha e izquierda.. y q terminado el recorrido vuelva a su lugar podrian ayudarme porfa.. ya se como moverlos pero mas no se como hacerlo aleatorio

(http://i62.tinypic.com/2r769ec.jpg)


Título: Re: Simulacion de semaforo (AYUDA)
Publicado por: ivancea96 en 25 Noviembre 2014, 19:03 pm
Lo de Rnd() no te sirvió?

Si tienes 3 posibilidades, multiplicas Rnd() por 3.
Así, saldrá un número del 0 al 3 (3 excluído). -> 0,1,2 -> izquierda, centro, derecha


Título: Re: Simulacion de semaforo (AYUDA)
Publicado por: reeyesg en 27 Noviembre 2014, 23:02 pm
La verdad no se q hacer ya.. solo hice q funcionara para q suba y cuando llegue vuelva a iniciar.. tambn hice el de q vaya a la izquierda y derecha pero no logro.. para q vuelva a su posicion inicial.. el carro se me desaparece..

Este me va bn para q vaya al centro
Código
  1. If (Image2.Visible = True Or Image3.Visible = True) Then
  2.    Shape1.Top = Shape1.Top - 1800
  3.  
  4. ElseIf Image1.Visible = True Then
  5.    Shape1.Top = Shape1.Top - 0

Este es para cuando llegue cuente el carro y regrese a su posicion inicial:
Código
  1. Private Sub Label1_Change()
  2.  
  3. If Shape1.Top = -960 Then 'posicion de llegada del carro
  4. Label2.Caption = Label2 + 1 'Contador
  5. Shape1.Top = 6240 'Posicion inicial del carro
  6. End If

me va bn hasta ahiii.. pero cuando pongo los q cruzan.. el carro no me vuelve a la posicion inicial.. quisiera mas ayuda porfavor


Título: Re: Simulacion de semaforo (AYUDA)
Publicado por: agusdmb en 14 Diciembre 2014, 06:20 am
xq los q cruzan nunca llegan a ser true en el predicado "Shape1.Top = -960"..

yo tambien te recomendaria q aprendas buenas practicas de programacion.. identar bien el codigo, no usar las imagenes como condiciones (si es visible o no).. eso deberia ser secundario.. las imagenes deberian depender del estado de ciertas variables, y no el programa de las imagenes

ademas en vez de tener esos ifs tan largos podrias hacer metodos q llames para "prender" o "apagar" cada una de las luces