1. Invitado La navidad llego a Cz, ¿Por que no vas a visitar la choza de Santa Cooz?
  2. Invitado ¿Puedes jugar sin repetir palabra?
    Descartar aviso
  3. Invitado ¿Por que no derribas a un que otro adversario con una bola de nieve?
    Descartar aviso
  4. Invitado Faltando tan solo unas pocas horas para navidad, alguien a quien no le gusta esta festividad, decidió sorprender a santa, raptarlo, atarlo y robar los regalos que llevaba consigo.
    Descartar aviso
  5. Invitado Esta vez el grinch esta en CemZoo y quiere tener su propio arbol para ponerlo en su casa pero no quiere cualquiera, tiene que ser creativo y unico el cual escogerá.
    Descartar aviso

Pendiente Lotería en Visual Basic 2008

Tema en 'Asistencia CemZoonita' iniciado por ElSchumi DelaAcera, 9 Agosto 2014.

Cargando...
  1.  
    ElSchumi DelaAcera

    ElSchumi DelaAcera Creador del tema Cemzoonita Critico Aces & Eights

    Tauro
    Hola.

    Estoy retomando mi aprendizaje de programación en Visual Basic, y me doy cuenta que hay un Visual Basic 2008. Afortunadamente el lenguaje es similar al de Visual Basic .Net, que ese sí estudié.

    Ahorita tengo un problema de números al azar. Estoy haciendo un juego de lotería (de los de números). Ya casi lo tengo listo y ahora lo que necesito es resolver el clásico problema que los números seleccionados al azar sin repetir.
    Ya se me olvidó cómo puedo hacer para que se repitan.

    Anexo el formulario y el código fuente:

     
    • Me gusta Me gusta x 1
  2. no sé visual basic, pero no debe de ser tan dificil checar xD al menos ideas al concepto puedo aportar, pero hago este post para inscribirme y alrato lo reviso bien (estoy en clase xD)
    en escencia, guardas los numeros aleatorios en un array y cada que te arroje un numero nuevo lo comparas con el arreglo, si es repetido pides otra peticion de numero aleatorio xp .... es lo que se me ocurre de pronto, alrato vuelvo a checar xD
     
  3.  
    Rancon

    Rancon Cemzoonita

    Capricornio
    Necesita confirma el uso de Randomize() y Rnd(); el primero hasta donde sé al ser inicialización no necesita ir en el for y el segundo puede repetir numeros dados previamente colocando un negativo o algo así.

    Si no quiere colocar arreglos sugeriria; antes de asignar a Label5.Text el valor g+"caracter" pregunte si contiene g+"caracter" para que pueda hacer i=i-1 en caso contrario y el .Replace de "caracter" por vbCrLf al salir del For.

    Recien veo que usas numsgan, en ese caso .IndexOf(g)<>-1 te ayudara a saber si lo puedes agregar o tirar el i-1.
     
    Última edición: 9 Agosto 2014
  4.  
    ElSchumi DelaAcera

    ElSchumi DelaAcera Creador del tema Cemzoonita Critico Aces & Eights

    Tauro
    Te voy a replicar algo: el VbCrlF lo uso para generar espacios al siguiente renglón.
     
  5.  
    Rancon

    Rancon Cemzoonita

    Capricornio
    Para eso es el Replace, para ganar esos espacios al hacer algo como .Replace("45,22,77,88,",",",vbCrLf); aunque igual estoy olvidando algo en la especificacion de .Replace().

    Ahora que, igual es el espacio extra el que le preocupa, no lo sé.
     
  6.  
    ElSchumi DelaAcera

    ElSchumi DelaAcera Creador del tema Cemzoonita Critico Aces & Eights

    Tauro
    ¿Me puedo explicar cómo usarlo? Por favor.

    :sticker19:
     
  7.  
    Rancon

    Rancon Cemzoonita

    Capricornio

    Ahora me doy cuenta que estoy mezclando algunas definiciones de funciones xD

    Para su caso en cuestion algo como lo siguiente seria util.


    Hace mucho que no usaba vb, habia olvidado los Cstr() xD

    ---edit---
    Ah sí, la explicacion.

    Label5, en mi caso str, se queda con los numeros sorteados y se utiliza su metodo Compare() para saber si ya tenemos el numero, por supuesto, hace su trabajo muy explicitamente por lo que si se busca un 5 y ya se tiene un número que use 5 el metodo regresara verdadero.

    De ahi la idea de agregar un no-numero para saber que se busca al 5 no al 55, al final, tras tener todos los numeros ganadores, los no-numero se remplazan por el salto de linea.

    De hecho, con numeros mas grandes este metodo fallaría porque los no-número no envuelven a todo el numero:

    "123,665,33," <- Si buscara un "23,", Compare() me diria True.
    ",123,665,33,"<- Si buscara un ",23,", Compare() me diria False, lo cual es más correcto y que obliga a quitar la coma inicial y final antes de remplazar por el salto de linea.

    ----edit2----

    ¿Me pregunto si str.Compare("23" + vbCrtLn) hara lo mismo para evitar tanta coma?
     
    Última edición: 9 Agosto 2014
  8.  
    Pixel Dust

    Pixel Dust CemZoonita Mercenarios de CZ

    Cáncer
    hum Bueno, Visual Basic.NET funciona de forma un poco diferente a como funcionan otros lenguajes, un programa así sería muy simple.

    .NET tiene una función para generar números realmente aletorios, se llama Math.Random().

    Necesitarás almacenar los números, de forma que puedas revisar que no tengas números repetidos. usar listas genéricas sería lo adecuado. Las listas genéricas son como arrays evolucionados.

    Puedes ver documentación de eso aquí:

    Visual Basic 2008 es Visual Basic.NET por cierto xD
     

Comparte esta página