Conectar-se
Quem está conectado
21 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 21 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota E
Notas recebidas : E
Data de inscrição : 08/08/2014
Número de Mensagens : 43
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 2
Ver perfil do usuário

Problemas com arrays

em Sex 08 Ago 2014, 13:55
Olá a todos, já tive uma conta neste fórum, porém eu perdi a senha... Enfim, estou de volta agora e tenho uma dúvida em relação a ARRAYS.
minha intenção inicial era selecionar cartas aleatórias do baralho, e continuar as comprando, mas sem repetições.
Estudei alguns tutoriais sobre arrays (por enquanto não entrarei no estudo de ds_list) e consegui fazer uma engine, porém as cartas se repetem quando eu clico no obj_baralho para cria-las... Vejam:

Código:

image_speed=0;

var i;
i=0;
cartas[i]=0;i+=1
cartas[i]=1;i+=1
cartas[i]=2;i+=1
cartas[i]=3;i+=1
cartas[i]=4;i+=1
cartas[i]=5;i+=1
cartas[i]=6;i+=1
cartas[i]=7;i+=1
cartas[i]=8;i+=1
cartas[i]=9;i+=1
cartas[i]=10;i+=1
cartas[i]=11;i+=1
cartas[i]=12;i+=1
cartas[i]=13;i+=1
cartas[i]=14;i+=1
cartas[i]=15;i+=1
cartas[i]=16;i+=1
cartas[i]=17;i+=1
cartas[i]=18;i+=1
cartas[i]=19;i+=1
cartas[i]=20;i+=1
cartas[i]=21;i+=1
cartas[i]=22;i+=1
cartas[i]=23;i+=1
cartas[i]=24;i+=1
cartas[i]=25;i+=1
cartas[i]=26;i+=1
cartas[i]=27;i+=1
cartas[i]=28;i+=1
cartas[i]=29;i+=1
cartas[i]=30;i+=1
cartas[i]=31;i+=1
cartas[i]=32;i+=1
cartas[i]=33;i+=1
cartas[i]=34;i+=1
cartas[i]=35;i+=1
cartas[i]=36;i+=1
cartas[i]=37;i+=1
cartas[i]=38;i+=1
cartas[i]=39;i+=1
cartas[i]=40;i+=1
cartas[i]=41;i+=1
cartas[i]=42;i+=1
cartas[i]=43;i+=1
cartas[i]=44;i+=1
cartas[i]=45;i+=1
cartas[i]=46;i+=1
cartas[i]=47;i+=1
cartas[i]=48;i+=1
cartas[i]=49;i+=1

cartas[i]=49;

cartas[i]=image_index||i==49;

image_index=random(49);

for (i=0; i<=49 i+=1)
cartas[i]=0;


Este código eu coloquei no evento Create do obj_carta.
Eu sinceramente entendi muito pouco sobre como aplicar arrays, apesar de já entender bem as suas variadas utilidades.
Por favor, se alguém poder me dar um help, eu já agradeço!!!
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1598
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 147

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: Problemas com arrays

em Sex 08 Ago 2014, 15:12
cartas[i]=8 // guarda a indentificaçao da carta... certo?
tente:

cartas[i,0]=8//id da carta
cartas[i,1]=false//comprada  true = comprada false = nao comprada

dai so fazer com que cartas[i,1]=true quando comprar...

sei que nao pediu ajuda com isso, mais e mais facil se iniciar assim:

Código:
i=0//inicia a contagem das cartas
repeat(49){
cartas[i,0]=i//id da carta
cartas[i,1]=false//comprada  true = comprada false = nao comprada
i+=1//aumenta a contagem das cartas
}

ou

Código:

for(i=0; i<50; i+=1){
cartas[i,0]=i//id da carta
cartas[i,1]=false//comprada  true = comprada false = nao comprada
}
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 177

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

Re: Problemas com arrays

em Sex 08 Ago 2014, 15:24
Isaque Foi mais rápido.

Na programação você encontrará mais sobre isso procurando por "Vetores". O modo mais confortável e otimizado de fazer isso é utilizando ds_lists. Se usássemos vetores, teríamos um trabalho 'braçal' muito maior e possivelmente um código confuso.

O baralho que está usando é um baralho comum (Francês)? Como não disse, vamos supor que seja. Ele tem 52 cartas, vamos dizer que tu tem ai uma sprite com 52 frames, uma carta de cada. No create do obj_baralho coloque:

Código:
//Cria lista vazia para as cartas
cartas = ds_list_create();

//Preenche lista com valores de 0 a 51 - Caso a quantidade de cartas for menor troque o 52 pela quantia certa
for (var i = 0; i < 52; i++)
{
    ds_list_add(cartas, i);
}

Essa lista vai guardar as cartas que não foram usados. No caso, todos. Agora a usaremos para criar as cartas. Vá até o evento de clique no obj_baralho e coloque:

Código:
//Se tem cartas no baralho
if ds_list_size(cartas) > 0
{
    //Embaralha baralho -_-
    ds_list_shuffle(cartas);
    
    //Pega a primeira carta da lista e armazena na variável n
    var n = ds_list_find_value(cartas,0);
    
    //Cria uma carta e armazena sua referência (id) na variável i
    var i = instance_create(mouse_x, mouse_y, obj_card);
    
    //Seleciona subimagem da carta criada
    i.image_index = n;
    
    //Deleta essa carta do baralho para que não apareça na próxima
    ds_list_delete(cartas,0);
}

E por último não esqueça de colocar isso na carta:

Código:
image_speed = 0;

Não esquecendo de remover seus códigos de vetores.

Testado, qualquer dúvida estamos ai.

FLWS!
avatar
Ranking : Nota E
Notas recebidas : E
Data de inscrição : 08/08/2014
Número de Mensagens : 43
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 2
Ver perfil do usuário

Re: Problemas com arrays

em Sab 09 Ago 2014, 07:52
Poxa, vlw gente, testarei os 2 códigos no inicio da semana e logo responderei se deu certo!
Conteúdo patrocinado

Re: Problemas com arrays

Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum