Cita de: kostra en Diciembre 21, 2015, 01:05:11 PM
pues va ser que no me sale xD
Es decir, bien, crea la cuadricula bien, se posicionan bien pero... en ocasiones, las cartas se repiten (cosa que no quiero, cada carta es única y ha de aparecer una sola vez, por eso tantos objetos), además, en ocasiones, hay lugares que quedan vacíos, no sé si porque se pondrá una tarjeta encima de otra o que no se pone ahi directamente :/
https://gyazo.com/5b48a59fbc3b00402b4b512872143ed9
este es el código que quedó al yo editarlo como pienso que se edita... muy probable que haya hecho un fail xD
[gml]///place cards
lista = ds_list_create();
for( i=0; i<20; i+=1 )
{
repeat(20)
ds_list_add( lista, i );
}
ds_list_shuffle( lista );//con nuestra lista ya creada y revuelta procedemos a crear las cartas
k = 0;
for( j=1; j<=4; j+=1 )
for( i=1; i<=5; i+=1 )
{
carta=ds_list_find_value(lista, k)//donde carta es el valor que tendra esa carta
switch (carta)
{
case 1:
instance_create( i*284,j*284, oqparrotA);
show_message("placed");
break;
case 2:
instance_create( i*284,j*284, oqparrotB);
break;
case 3:
instance_create( i*284,j*284, oqpenguinA);
break;
case 4:
instance_create( i*284,j*284, oqpenguinB);
break;
case 5:
instance_create( i*284,j*284, oqpigA);
break;
case 6:
instance_create( i*284,j*284, oqpigB);
break;
case 7:
instance_create( i*284,j*284, oqrabbitA);
break;
case 8:
instance_create( i*284,j*284, oqrabbitB);
break;
case 9:
instance_create( i*284,j*284, oqsnakeA);
break;
case 10:
instance_create( i*284,j*284, oqsnakeB);
break;
case 11:
instance_create( i*284,j*284, oqelephantA);
break;
case 12:
instance_create( i*284,j*284, oqelephantB);
break;
case 13:
instance_create( i*284,j*284, oqgiraffeA);
break;
case 14:
instance_create( i*284,j*284, oqgiraffeB);
break;
case 15:
instance_create( i*284,j*284, oqhippoA);
break;
case 16:
instance_create( i*284,j*284, oqhippoB);
break;
case 17:
instance_create( i*284,j*284, oqmonkeyA);
break;
case 18:
instance_create( i*284,j*284, oqmonkeyB);
break;
case 19:
instance_create( i*284,j*284, oqpandaA);
break;
case 20:
instance_create( i*284,j*284, oqpandaB);
break;
}
k += 1;
}[/gml]
ese reapeat(20) dentro del for para que es? estas añadiendo 20 ceros, 20 unos....20 veintes, entonces estas creando una lista con 400 valores, de los cuales solo estas tomando 20, obviamente te saldran repetidos algunos y otros no saldran nunca.
ademas en tu case no estas evaluado el valor 0, por lo que de hay que tengas espacios vacios. que son los 20 ceros que añadiste en tu for anterior.
si quieres añadir 20 cartas random y no 400 no coloces ese repeat(20), clamud y yo te pusimos ese repeat porque dijiste que querias un memoria, en donde hay una pareja por carta, repeat(2).