MS Small Basic: juego “Acierte a la figura correcta” (código)


a1

‘ Copyright (c) Microsoft Corporation. Todos los derechos reservados.

  1. GraphicsWindow.Hide()
  2. anVent = 620
  3. alVent = 400
  4. GraphicsWindow.CanResize = “False”
  5. GraphicsWindow.Width = anVent
  6. GraphicsWindow.Height = alVent
  7. GraphicsWindow.Top = ( Desktop.Height – alVent ) / 2
  8. GraphicsWindow.Left = ( Desktop.Width – anVent ) / 2
  9. GraphicsWindow.Title = “Acierte a la figura correcta”
  10. GraphicsWindow.Show()
  11. seg = 50
  12. puntuación = 0
  13. cuadroPuntX = 420
  14. retrasoVelocidad = 15
  15. GraphicsWindow.MouseDown = ClicMouse
  16. nombresFiguras[0] = “”
  17. nombresFiguras[1] = “Cuadrado”
  18. nombresFiguras[2] = “Rectángulo”
  19. nombresFiguras[3] = “Elipse”
  20. nombresFiguras[4] = “Círculo”
  21. cuadroTexto = Controls.AddTextBox(200, 0)
  22. Controls.SetTextBoxText(cuadroTexto, “Cuadrado”)
  23. MostrarPuntuación()
  24. GraphicsWindow.BrushColor = “Pink”
  25. GraphicsWindow.DrawRectangle(-2, 25, GraphicsWindow.Width + 2, GraphicsWindow.Height – 50)
  26. GraphicsWindow.FillRectangle(-2, 25, GraphicsWindow.Width + 2, GraphicsWindow.Height – 50)
  27. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  28. elipse = Shapes.AddEllipse(60, 40)
  29. Shapes.Move(elipse, -90, 50)
  30. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  31. rectángulo = Shapes.AddRectangle(60, 40)
  32. Shapes.Move(rectángulo, -20, 50)
  33. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  34. círculo = Shapes.AddEllipse(80, 80)
  35. Shapes.Move(círculo, 20, 50)
  36. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  37. cuadrado1 = Shapes.AddRectangle(40, 40)
  38. Shapes.Move(cuadrado1, 230, 50)
  39. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  40. rectángulo1 = Shapes.AddRectangle(40, 80)
  41. Shapes.Move(rectángulo1, 300, 250)
  42. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  43. elipse1 = Shapes.AddEllipse(35, 60)
  44. Shapes.Move(elipse1, 100, 250)
  45. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  46. cuadrado2 = Shapes.AddRectangle(20, 20)
  47. Shapes.Move(cuadrado2, 250, 250)
  48. GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor()
  49. círculo1 = Shapes.AddEllipse(80, 80)
  50. Shapes.Move(círculo1, 450, 210)
  51. i = 1
  52. segAnterior = 0
  53. segActual = Clock.ElapsedMilliseconds
  54. segE    = segActual
  55. While 1 = 1   
  56.   Shapes.Move(elipse, Shapes.GetLeft(elipse) + 4, 50)
  57.   If Shapes.GetLeft(elipse) > 650 Then
  58.     shapes.ShowShape(cuadrado1) 
  59.     Shapes.Move(elipse, -90, 300)
  60.   EndIf
  61.  
  62.   Shapes.Move(rectángulo, Shapes.GetLeft(rectángulo) + 5, 50)
  63.   If Shapes.GetLeft(rectángulo)  > 600  Then
  64.     shapes.ShowShape(rectángulo) 
  65.     Shapes.Move(rectángulo, -20, 50)
  66.   EndIf
  67.  
  68.   Shapes.Move(círculo, Shapes.GetLeft(círculo) + 4, 50)
  69.   If Shapes.GetLeft(círculo) > 600 Then
  70.     shapes.ShowShape(círculo)
  71.     Shapes.Move(círculo, -110, 100)
  72.   EndIf
  73.  
  74.   Shapes.Move(cuadrado1, Shapes.GetLeft(cuadrado1) + 3, 50)
  75.   If Shapes.GetLeft(cuadrado1) > 600 Then
  76.     shapes.ShowShape(cuadrado1)
  77.     Shapes.Move(cuadrado1, -200, 100)
  78.   EndIf
  79.  
  80.   Shapes.Move(rectángulo1, Shapes.GetLeft(rectángulo1) + 6, 250)
  81.   If Shapes.GetLeft(rectángulo1) > 600 Then
  82.     shapes.ShowShape(rectángulo1)
  83.     Shapes.Move(rectángulo1, -100, 180)
  84.   EndIf
  85.  
  86.   Shapes.Move(elipse1, Shapes.GetLeft(elipse1) + 2, 250)
  87.   If Shapes.GetLeft(elipse1) > 600 Then
  88.     shapes.ShowShape(elipse1)
  89.     Shapes.Move(elipse1, -60, 70)
  90.   EndIf
  91.  
  92.   Shapes.Move(cuadrado2, Shapes.GetLeft(cuadrado2)+3, 250)
  93.   If Shapes.GetLeft(cuadrado2) > 600 Then
  94.     shapes.ShowShape(cuadrado2)
  95.     Shapes.Move(cuadrado2, -250, 300)
  96.   EndIf  
  97.  
  98.   Shapes.Move(círculo1, Shapes.GetLeft(círculo1) + 5, 210)
  99.   If Shapes.GetLeft(círculo1) > 600 Then
  100.     Shapes.ShowShape(círculo1)
  101.     Shapes.Move(círculo1, -50, 210)
  102.   EndIf   
  103.   seg = seg – 0.01
  104.   GraphicsWindow.BrushColor = “Blue”
  105.   GraphicsWindow.FillRectangle(cuadroPuntX+60, 0, 120, 25)
  106.   GraphicsWindow.BrushColor = “White”
  107.   GraphicsWindow.DrawText(cuadroPuntX + 62, 5, “Tiempo:”)
  108.   If seg >= 10 Then
  109.     GraphicsWindow.DrawText(cuadroPuntX + 130, 5,”00:” + Math.Floor(seg))
  110.   ElseIf seg > 0 Then
  111.     GraphicsWindow.DrawText(cuadroPuntX + 130, 5,”00:0″ + Math.Floor(seg))
  112.   EndIf
  113.   If seg <= 0 Then
  114.     Goto fuera
  115.   EndIf  
  116.  
  117.   Program.Delay(retrasoVelocidad)   
  118.  
  119.   segActual = Clock.ElapsedMilliseconds   
  120.   If (segActual – segAnterior) >= 5000 Then     
  121.     i = Math.GetRandomNumber(4)   
  122.     If i <> 0 Then
  123.       Controls.SetTextBoxText(cuadroTexto, nombresFiguras[i])
  124.     EndIf      
  125.     segAnterior = segActual      
  126.   EndIf  
  127.   segActual = Clock.ElapsedMilliseconds  
  128. EndWhile
  129. fuera:
  130. GraphicsWindow.DrawText(cuadroPuntX + 130, 5,”00:0″ + Math.Floor(seg))
  131. GraphicsWindow.ShowMessage(“Su puntuación es: ” + puntuación, “FIN”)
  132. Program.End()   
  133. Sub ClicMouse   
  134.   cuadrado1_izq =  Shapes.GetLeft(cuadrado1)
  135.   cuadrado1_sup  =  Shapes.GetTop(cuadrado1)
  136.   cuadrado2_izq =  Shapes.GetLeft(cuadrado2)
  137.   cuadrado2_sup  =  Shapes.GetTop(cuadrado2)
  138.   rectángulo_izq    =  Shapes.GetLeft(rectángulo)
  139.   rectángulo_sup     =  Shapes.GetTop(rectángulo)
  140.   rectángulo1_izq   =  Shapes.GetLeft(rectángulo1)
  141.   rectángulo1_sup    =  Shapes.GetTop(rectángulo1)
  142.   elipse_izq    =  Shapes.GetLeft(elipse)
  143.   elipse_sup     =  Shapes.GetTop(elipse)
  144.   elipse1_izq   =  Shapes.GetLeft(elipse1)
  145.   elipse1_sup    =  Shapes.GetTop(elipse1) 
  146.   círculo_izq  =  Shapes.GetLeft(círculo)
  147.   círculo_sup   =  Shapes.GetTop(círculo)
  148.   círculo1_izq =  Shapes.GetLeft(círculo1)
  149.   círculo1_sup  =  Shapes.GetTop(círculo1)
  150.  
  151.   If Controls.GetTextBoxText(cuadroTexto) = “Cuadrado” Then
  152.     If (GraphicsWindow.MouseX >= cuadrado1_izq) And (GraphicsWindow.MouseX <= cuadrado1_izq + 40) Then
  153.       If (GraphicsWindow.MouseY >= cuadrado1_sup) And (GraphicsWindow.MouseY <= cuadrado1_sup + 40) Then
  154.         Shapes.HideShape(cuadrado1)
  155.         puntuación = puntuación + 1                      
  156.       EndIf
  157.     EndIf
  158.    
  159.     If (GraphicsWindow.MouseX >= cuadrado2_izq) And (GraphicsWindow.MouseX <= cuadrado2_izq + 20) Then
  160.       If (GraphicsWindow.MouseY >= cuadrado2_sup) And (GraphicsWindow.MouseY <= cuadrado2_sup + 20) Then
  161.         Shapes.HideShape(cuadrado2)
  162.         puntuación = puntuación + 1         
  163.       EndIf
  164.     EndIf
  165.   EndIf    
  166.  
  167.   If Controls.GetTextBoxText(cuadroTexto) = “Rectángulo” Then
  168.     If (GraphicsWindow.MouseX >= rectángulo_izq) And (GraphicsWindow.MouseX <= rectángulo_izq + 40) Then
  169.       If (GraphicsWindow.MouseY >= rectángulo_sup) And (GraphicsWindow.MouseY <= rectángulo_sup + 40) Then
  170.         Shapes.HideShape(rectángulo)
  171.         puntuación = puntuación + 1           
  172.       EndIf
  173.     EndIf
  174.    
  175.     If (GraphicsWindow.MouseX >= rectángulo1_izq) And (GraphicsWindow.MouseX <= rectángulo1_izq + 40) Then
  176.       If (GraphicsWindow.MouseY >= rectángulo1_sup) And (GraphicsWindow.MouseY <= rectángulo1_sup + 80) Then
  177.         Shapes.HideShape(rectángulo1)
  178.         puntuación = puntuación + 1         
  179.       EndIf
  180.     EndIf
  181.   EndIf    
  182.  
  183.   If Controls.GetTextBoxText(cuadroTexto) = “Elipse” Then
  184.     If (GraphicsWindow.MouseX >= elipse_izq) And (GraphicsWindow.MouseX <= elipse_izq + 60) Then
  185.       If (GraphicsWindow.MouseY >= elipse_sup) And (GraphicsWindow.MouseY <= elipse_sup + 40) Then
  186.         Shapes.HideShape(elipse)
  187.         puntuación = puntuación + 1         
  188.       EndIf
  189.     EndIf
  190.    
  191.     If (GraphicsWindow.MouseX >= elipse1_izq) And (GraphicsWindow.MouseX <= elipse1_izq + 60) Then
  192.       If (GraphicsWindow.MouseY >= elipse1_sup) And (GraphicsWindow.MouseY <= elipse1_sup + 40) Then         
  193.         Shapes.HideShape(elipse1)
  194.         puntuación = puntuación + 1         
  195.       EndIf
  196.     EndIf
  197.   EndIf
  198.  
  199.   If Controls.GetTextBoxText(cuadroTexto) = “Círculo” Then
  200.     If (GraphicsWindow.MouseX >= círculo_izq) And (GraphicsWindow.MouseX <= círculo_izq + 80) Then
  201.       If (GraphicsWindow.MouseY >= círculo_sup) And (GraphicsWindow.MouseY <= círculo_sup + 80) Then
  202.         Shapes.HideShape(círculo)
  203.         puntuación = puntuación + 1        
  204.       EndIf
  205.     EndIf
  206.     If (GraphicsWindow.MouseX >= círculo1_izq) And (GraphicsWindow.MouseX <= círculo1_izq + 40) Then
  207.       If (GraphicsWindow.MouseY >= círculo1_sup) And (GraphicsWindow.MouseY <= círculo1_sup + 40) Then
  208.         Shapes.HideShape(círculo1)
  209.         puntuación = puntuación + 1         
  210.       EndIf
  211.     EndIf
  212.   EndIf
  213.   MostrarPuntuación()   
  214. EndSub
  215. Sub MostrarPuntuación
  216.   GraphicsWindow.FontName = “Verdana”
  217.   GraphicsWindow.FontSize = 14
  218.   GraphicsWindow.BrushColor = “White”
  219.   GraphicsWindow.FillRectangle(0, 0, 150, 20)
  220.   GraphicsWindow.BrushColor = “Black”
  221.   GraphicsWindow.DrawText(10, 5, “Puntuación: ” + puntuación)
  222. EndSub

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s