Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: kaliman777 en Febrero 09, 2015, 04:14:43 PM

Título: Ayuda corrigiendo este script
Publicado por: kaliman777 en Febrero 09, 2015, 04:14:43 PM
Hola amigos:
Yo uso este script en CREATE para crear un cartón de bingo, pero necesito que alguien me le agregue la función ds_list_sort para que los números de dicho cartón me salgan en orden del menor al mayor (0 es menor, 90 es el amyor).
// Al presionar una tecla
i += 1;
jPos = 0;
cant += 1; // nuevo carton

do{

    jPos += 1;
       
    do{
       
        num = irandom_range (1,90);
        forCheck = 0;
       
        for (j = 1; j<16; j += 1)
        {
           if (num == carton[i,j])
           {
               forCheck = 1
           }
        }
   
    }until(forCheck == 0)
   
    carton[i,jPos] = num;

}until(jPos== 15)

show_message("Carton No." + string(i) +" Creado!");
di = i


Gracias
Título: Re:Ayuda corrigiendo este script
Publicado por: penumbra en Febrero 09, 2015, 08:56:40 PM
Pero (si es que no me equivoco) no se puede. El código que pusiste no usa lista alguna, usa un arreglo carton[i,j]. Por lo que no es posible usar ds_list_sort. O para usarlo, se tendrían que volcar los valores del arreglo a una lista y ya después usar ds_list_sort.

Aquí dejo un ejemplo del cartón bingo. Cada que se hace click izquierdo, se generan nuevos números. No sé si es así como lo querías, pero así yo entendí: que los números fueran aleatorios, pero que el número de la casilla siguiente siempre fuera mayor al de la casilla anterior.
http://www.mediafire.com/download/bcpb7wh9eby2j7h/bingo.gmz (http://www.mediafire.com/download/bcpb7wh9eby2j7h/bingo.gmz)

Para volcar los valores de un arreglo a la lista:
[gml]
var i,j;
for (j=0; j<3; j+=1)
{
    for (i=0; i<5; i+=1)
    {
        ds_list_add(lista_bingo, carton[i, j])
    }
}[/gml]
En este caso, el arreglo es de 3 renglones X 5 columnas, pero cambiando los valores se ajustaría a cualquier tablero/arreglo bidimensional
Título: Re:Ayuda corrigiendo este script
Publicado por: kaliman777 en Febrero 10, 2015, 05:59:41 PM
Hola Penumbra, gracias por responder y dedicar tiempo para ayudar a mi proyecto.

Abrí el archivo BINGO.gmz en GM Studio. Cuando lo corro, solo me dibuja un 0 en cada casilla. Supongo que hay un error en los códigos. Debería dibujar números del 1 al 90 en las 15 casillas.
Por favor, si pudieras revisar y avisarme. Gracias
Saludos
Título: Re:Ayuda corrigiendo este script
Publicado por: penumbra en Febrero 10, 2015, 08:18:08 PM
Disculpa, no había visto que usas GM8 en lugar de studio. El ejemplo lo hice en la versión early access de GMS. Acabo de bajar el proyecto del enlace de arriba, y lo he probado en la versión 1.4.1522 de GMS y funciona sin problemas:
[spoiler](http://sia1.subirimagenes.net/img/2015/02/10/150210081318833406.gif)[/spoiler]

¿Qué versión de GMS estás usando?
Título: Re:Ayuda corrigiendo este script
Publicado por: kaliman777 en Febrero 10, 2015, 08:24:32 PM
Uso la 1.0

¿Podrías mandarme ese engine para GM8?
Título: Re:Ayuda corrigiendo este script
Publicado por: penumbra en Febrero 10, 2015, 08:43:44 PM
Pues con razón no funciona. Deberías instalar la versión early access más reciente. Es gratuita y no tiene ninguna limitación para hacer juegos para windows. Yo no tengo GM8, tengo GM8.1, y me parece que los archivos no son compatibles. No sé si una versión gm81 te valga
Título: Re:Ayuda corrigiendo este script
Publicado por: kaliman777 en Febrero 10, 2015, 09:10:46 PM
No funciona GM8.1 en GM8, mejor me descargo la  early access.

Gracias, estaremos pendientes de ver cómo me fue.