Microsoft Small Basic

Program Listing:
Embed this in your website
GraphicsWindow.CanResize=1
GraphicsWindow.BackgroundColor = "Yellow"
GraphicsWindow.Width="750"
GraphicsWindow.Title = "BasicFútbol Ver. 2.0 - Roberto García Iriarte - 2018"
GraphicsWindow.FontBold = "true"
GraphicsWindow.DrawText (265,0,"BIENVENIDO A LA APP 'BasicFútbol'")
GraphicsWindow.FontBold = "false"
GraphicsWindow.DrawText (5,20,"Introduce los siguientes datos y te daré el resultado más probable del partido; dichos datos pueden encontrarse en:")
GraphicsWindow.DrawText (5,40,"http://www.marca.com/futbol/primera-division/clasificacion.html")
GraphicsWindow.FontItalic = "true"
GraphicsWindow.DrawText (5,60,"NOTA: Los algoritmos de esta App son fiables tras al menos 5 partidos jugados.")
GraphicsWindow.DrawText (275,400,"roberto.garcia.iriarte@gmail.com")
GraphicsWindow.FontItalic = "false"
GraphicsWindow.FontBold = "true"
Controls.ButtonClicked = buttClicked


okButton = Controls.AddButton ("Calcula resultado", 305, 280)
resetButton = Controls.AddButton ("Vaciar campos", 315, 320)
closeButton = Controls.AddButton ("Salir", 343, 360)
GraphicsWindow.FontBold = "false"

GraphicsWindow.BrushColor = "Red"

GraphicsWindow.DrawText (5,100,"Equipo local: ")
el = Controls.AddTextBox (280,100)

GraphicsWindow.DrawText (5,120,"Equipo visitante: ")
ev = Controls.AddTextBox (280,120)

GraphicsWindow.DrawText (5,140,"Partidos jugados en casa del equipo local: ")
pjel = Controls.AddTextBox (280,140)

GraphicsWindow.DrawText (5,160,"Goles a favor en casa del equipo local: ")
gfel = Controls.AddTextBox (280,160)

GraphicsWindow.DrawText (5,180,"Goles en contra en casa del equipo local: ")
gcel = Controls.AddTextBox (280,180)

GraphicsWindow.DrawText (5,200,"Partidos jugados fuera del equipo visitante: ")
pjev = Controls.AddTextBox (280,200)

GraphicsWindow.DrawText (5,220,"Goles a favor fuera del equipo visitante: ")
gfev = Controls.AddTextBox (280,220)

GraphicsWindow.DrawText (5,240,"Goles en contra fuera del equipo visitante: ")
gcev = Controls.AddTextBox (280,240)


Sub buttClicked

  lastButton = Controls.LastClickedButton
  If lastButton = okButton Then
    If (Controls.GetTextBoxText(el)) = "" Or (Controls.GetTextBoxText(ev)) = "" Or (Controls.GetTextBoxText(pjel)) = "" Or (Controls.GetTextBoxText(gfel)) = "" Or (Controls.GetTextBoxText(gcel)) = "" Or (Controls.GetTextBoxText(pjev)) = "" Or (Controls.GetTextBoxText(gfev)) = "" Or (Controls.GetTextBoxText(gcev)) = "" Then
      GraphicsWindow.ShowMessage("Por favor, cerciórate que has rellenado todos los campos.","Error") 'Aquí chequeo que ningún campo esté vacío.

  Else
    If  (Controls.GetTextBoxText(pjel)) > 0 And (Controls.GetTextBoxText(pjev)) > 0  Then
      If (Controls.GetTextBoxText(gfel)+0 = Controls.GetTextBoxText(gfel) And Controls.GetTextBoxText(gcel)+0 = Controls.GetTextBoxText(gcel) And Controls.GetTextBoxText(gfev)+0 = Controls.GetTextBoxText(gfev) And Controls.GetTextBoxText(gcev)+0 = Controls.GetTextBoxText(gcev)) Then
        basicfutbol() 'Antes pregunto si los campos que deben llevar dígitos, realmente llevan dígitos y no por ejemplo letras. Tamibén que los partidos jugados no lleven cero porque si no, da error de dividor por cero. Si todo es OK, ya ejecuto el proceso 'basicfutbol() que realiza los algoritmos y muestra el resultado.

    Else
     GraphicsWindow.ShowMessage("Hay campos que solo deben cumplimentarse con dígitos.","Error")
EndIf
    Else
      GraphicsWindow.ShowMessage("En 'Partidos jugados' de indicarse '1' o superior.","Error")
    EndIf
    EndIf

  ElseIf lastButton = resetButton Then

'dejo los campos de entrada de text vacíos
Controls.SetTextBoxText(el,"")
Controls.SetTextBoxText(ev,"")
Controls.SetTextBoxText(pjel,"")
Controls.SetTextBoxText(gfel,"")
Controls.SetTextBoxText(gcel,"")
Controls.SetTextBoxText(pjev,"")
Controls.SetTextBoxText(gfev,"")
Controls.SetTextBoxText(gcev,"")


ElseIf lastButton = closeButton Then
  Program.End()

EndIf


EndSub


Sub basicfutbol
'algoritmos

gfelpp = Controls.GetTextBoxText(gfel)/Controls.GetTextBoxText(pjel) 'defino una nueva variable (gfelpp) donde obtengo media de goles a favor por partido jugado del equipo local solo como local
gcelpp = Controls.GetTextBoxText(gcel)/Controls.GetTextBoxText(pjel) 'defino una nueva variable (gcelpp) donde obtengo media de goles en contra por partido del equipo local solo como local

gfevpp = Controls.GetTextBoxText(gfev)/Controls.GetTextBoxText(pjev) 'defino una nueva variable (gfevpp) donde obtengo media de goles a favor por partido del equipo visitante solo como visitante
gcevpp = Controls.GetTextBoxText(gcev)/Controls.GetTextBoxText(pjev) 'defino una nueva variable (gcevpp) donde obtengo media de goles en contra por partido del equipo visitante solo como visitante

rgfel_decimales = (gfelpp + gcevpp) / 2 ' defino una nueva variable (rgfel_decimales) donde obtengo resultado de los goles que meterá el equipo local. Sumo gf del equipo local como local y gc del equipo visitante como visitante y divido entre 2.
rgfev_decimales = (gcelpp + gfevpp) / 2 ' defino una nueva variable (rgfev_decimales) donde obtengo resultado de los goles que meterá el equipo visitante. Sumo gf del equipo visitante como visitante y gc del equipo local como local y divido entre 2.

rgfel = Math.Round(rgfel_decimales) 'defino una nueva variable (rgfel) ya que como puede dar decimales, para dar un resultado real de partido de fútbol, redondeo. (p.ej. si da 2,4 o menos, quedará 2; si es 2,5 o más, quedará 3)
rgfev = Math.Round(rgfev_decimales) 'defino una nueva variable (rgfev) ya que como puede dar decimales, para dar un resultado real de partido de fútbol, redondeo. (p.ej. si da 2,4 o menos, quedará 2; si es 2,5 o más, quedará 3)

texto_resumen =""
If rgfel > rgfev Then 'pregunto si el resultado del equipo local es superior al del equipo visitante y, si es así, procedo:
  texto_resumen = "Victoria por tanto del " + el + " en su estadio. En la Quiniela sería un '1'."

  Else 'si el resultado del equipo local no es superior al del equipo visitante hago una nueva pregunta:
    If rgfel = rgfev Then 'pregunto si el resultado de uno y de otro es igual y, si es así, procedo:
     texto_resumen = "Partido muy igualado y que acabará en empate, una 'X' en la Quiniela."

  Else 'si tampoco es así, entonces necesariamente el resultado del equipo visitante es supeior al del local:
    texto_resumen = "Derrota en su estadio del " + el + "ante el " + ev + ", por lo que supone un '2' en la Quiniela."

    EndIf 'se cierra el segundo "if"
  EndIf 'se cierra el primer "if"

'fin algoritmos

equipo_local = Controls.GetTextBoxText(el)
equipo_visitante = Controls.GetTextBoxText(ev)


GraphicsWindow.ShowMessage("El resultado será: " + equipo_local + " " + rgfel + " - " + rgfev + " " + equipo_visitante + Text.GetCharacter(010) + texto_resumen, "Resultado")
EndSub


Copyright (c) Microsoft Corporation. All rights reserved.