Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: okik en 10 Diciembre 2016, 15:43 pm



Título: Código simple para hacer La Quiniela (VBScript,VB, VB.Net, C#)
Publicado por: okik en 10 Diciembre 2016, 15:43 pm
Hola amigos

Comparto aquí un sencillísimo código para hacer La Quiniela. Se trata de un código que genera variaciones de la quiniela de forma aleatoria. Es lo mismo que esos artilugios con daditos 1, X, 2  que venden en estancos, librerías o quioscos.

(http://cloud10.todocoleccion.online/vintage/tc/2013/04/08/36661245.jpg)

Es una versión virtual de los dados. El programita muestra una ventana como esta:

(https://s25.postimg.org/45ci07axb/miquiela_demo1.png)


Para usuarios sin conocimientos de programación
Tan sólo necesitas el Bloc de Notas de Windows:

- Abre el Bloc de Notas (notepad.exe)

- Copia y pega el siguiente código VBSCRIPT

   
Código:
        Dim var(14)	 
Dim Rand
Dim Partido
        Dim P15(2)
Randomize
For Partido = 1 To 14
Rand = CStr(Int(Rnd * 3))
Rand = Replace(Rand, "1", "X")
Rand = Replace(Rand, "0", "1")

var(Partido) = _
"Partido " _
& Right("00" & Partido, 2) _
& ":..... " _
& Rand
Next
   For Partido = 1 To 2
       Rand = CStr(Int(Rnd * 4))
         P15(Partido) = Replace(Rand, "3", "M")
        Next

     MsgBox Join(var, vbCrLf) _
& vbCrLf & vbCrLf _
       & "[P15]" & vbCrLf _
& "Equipo A:  " & P15(1) _
& vbCrLf _
& "Equipo B:  " & P15(2), _
vbOKOnly, _
"Mi Quiniela"

-   Guarda con extensión *.VBS, por ejemplo miquiniela.vbs, haces doble clic sobre el archivo y ya tienes tu apuesta columna.

 Si has hecho alguna vez la quiniela sabrás que una apuesta consta de dos columnas. Este programa solo genera una columna por motivos estéticos. Para generar otra vuelve a hacer doble clic sobre el archivo VBS y generará otra distinta.

Existen 4782969 columnas posibles, así que es difícil que vuelva a salir otra idéntica.

Si deseas que genere las dos columnas usa este otro código:

   
Código:
        Dim var(14) 	 
Dim Rand1
Dim Rand2
Dim Partido
        Dim P15(2)
Randomize
For Partido = 1 To 14
Rand1 = CStr(Int(Rnd * 3))
Rand1 = Replace(Rand1, "1", "X")
Rand1 = Replace(Rand1, "0", "1")
Rand2 = CStr(Int(Rnd * 3))
Rand2 = Replace(Rand2, "1", "X")
Rand2 = Replace(Rand2, "0", "1")
var(Partido) = _
"Partido " _
& Right("00" & Partido , 2) _
& ":..... " _
& Rand1 & vbTab _
& Right("00" & Partido , 2) _
& ":..... " & Rand2

Next
   For Partido = 1 To 2
       Rand = CStr(Int(Rnd * 4))
         P15(Partido) = Replace(Rand, "3", "M")
        Next

     MsgBox Join(var, vbCrLf) _
& vbCrLf & vbCrLf _
       & "[P15]" & vbCrLf _
& "Equipo A:  " & P15(1) _
& vbCrLf _
& "Equipo B:  " & P15(2), _
vbOKOnly, _
"Mi Quiniela"

Ejemplo de como se verá:
(https://s25.postimg.org/tmuwjssnj/miquiela_demo2.png)




PARA VISUAL STUDIO
Aquí lo dejo en otros lenguajes de programación:

VB
 
Código
  1. Dim var(14) As String, P15(2) As String
  2. Dim Rand As String
  3. Dim Partido As Integer
  4.        Randomize
  5.        For Partido = 1 To 14
  6.            Rand = CStr(Int(Rnd * 3))
  7.            Rand = Replace(Rand, "1", "X")
  8.            Rand = Replace(Rand, "0", "1")
  9.            var(Partido) = "Partido " & Right("00" & Partido, 2) _
  10.            & ":..... " & Rand
  11.       Next
  12.        For Partido = 1 To 2
  13.        Rand = CStr(Int(Rnd * 4))
  14.        P15(Partido) = Replace(Rand, "3", "M")
  15.        Next
  16.      MsgBox Join(var, vbCrLf) & vbCrLf & vbCrLf & _
  17.      "[P15]" & vbCrLf _
  18.      & "Equipo A:  " _
  19.      & P15(1) & vbCrLf _
  20.      & "Equipo B:  " _
  21.      & P15(2), , vbOKOnly, "Mi Quiniela"
  22.  


VB.NET (Consola)

      
Código
  1.  
  2.        Dim Signo() As String = {"1", "X", "2"}
  3.        Dim P15(2) As String, Var(14) As String
  4.        Dim Rand As New Random
  5.        For Partido As Integer = 1 To 14
  6.            Var(Partido) = String.Format("Partido {0:00}:..... {1}",
  7.                                         Partido, Signo(Rand.Next(0, 3)))
  8.        Next
  9.        For Partido As Integer = 1 To 2
  10.            P15(Partido) = (CStr(Rand.Next(0, 4)).Replace("3", "M"))
  11.        Next
  12.  
  13.        Console.WriteLine(String.Format("{0}{1}{1}[P15]{1}Equipo A:  {2}{1}Equipo B:  {3}",
  14.                                      String.Join(Environment.NewLine, Var),
  15.                        Environment.NewLine,
  16.                        P15(1),
  17.                        P15(2)))
  18.        Console.ReadLine()
  19.  

NET C# (Consola)
     
Código
  1.            string[] Signo = { "1", "X", "2" };
  2.            string[] P15 = new string[3];
  3.            string[] Var = new string[15];
  4.            Random Rand = new Random();
  5.            for (int Partido = 1; Partido <= 14; Partido++)
  6.            {
  7.                Var.SetValue(string.Format("Partido {0:00}:..... {1}", Partido, Signo[Rand.Next
  8.  
  9. (0, 3)]), Partido);
  10.            }
  11.            for (int Partido = 1; Partido <= 2; Partido++)
  12.            {
  13.                P15.SetValue(Convert.ToString(Rand.Next(0, 4)).Replace("3", "M"), Partido);
  14.            }
  15.  
  16.           Console.WriteLine(string.Format("{0}{1}{1}[P15]{1}Equipo A:  {2}{1}Equipo B:  {3}",
  17.                string.Join(Environment.NewLine, Var),
  18.                Environment.NewLine, P15[1], P15[2]));
  19.           Console.ReadLine();
  20.  
  21.  

Citar
Advierto que es puramente aleatorio , este programa no hace milagros  :xD. Está pensado especialmente para personas que no sepan programar y quieran hacer la quinela  al azar, como con los dados, pero usando el ordenador.

Pues nada, suerte y que toque  :D



Personalmente considero que las Loterías y Apuestas del Estados son invento para recaudar dinero y quitárselo a los pobres.