Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
matriz em ordem numérica
4 participantes
Página 1 de 1
matriz em ordem numérica
Olá pessoal!!!! saudades!!!! depois de muito tempo off, deu vontade de programar de novo, enferrujei muito e esqueci muita coisa, de inicio preciso de um "help"
preciso colocar uma lista em ordem com seus valores já definidos. ex.
a matriz "b" possui 5 valores
a matriz "c" recebe os valores da matriz "b" mas devem ser em ordem numérica, devem ficar assim:
isso tá me rachando a cuca, alguém me helpa???? falow!!!!
preciso colocar uma lista em ordem com seus valores já definidos. ex.
a matriz "b" possui 5 valores
- Código:
b[1]=8;
b[2]=5;
b[3]=9;
b[4]=3;
b[5]=1;
a matriz "c" recebe os valores da matriz "b" mas devem ser em ordem numérica, devem ficar assim:
- Código:
c[1]=1;
c[2]=3;
c[3]=5;
c[4]=8;
c[5]=9;
isso tá me rachando a cuca, alguém me helpa???? falow!!!!
diassis- Data de inscrição : 07/11/2009
Reputação : 0
Número de Mensagens : 312
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: matriz em ordem numérica
não tenho prática com ds_list, mas vou estudar isso, espero que não fique muito extenso, tenho que simplificar o máximo.
diassis- Data de inscrição : 07/11/2009
Reputação : 0
Número de Mensagens : 312
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: matriz em ordem numérica
ds_lists são bem simples. Com uma função você cria a lista, com outra adiciona os valores, depois chama o sort e pronto.
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: matriz em ordem numérica
To com a mesma dúvida que o autor do tópico. Poderia mostrar na pratica como funciona a dinâmica de ds_list Igor?
Re: matriz em ordem numérica
e eu aproveito para me orientar mais rsrsrs
diassis- Data de inscrição : 07/11/2009
Reputação : 0
Número de Mensagens : 312
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: matriz em ordem numérica
O help do GM explica tudo bem direitinho. As funções que eu citei seriam:
ds_list_create(): Cria uma lista e retorna o índice dela (um número), que deve ser usado em outras funções para mexer nessa lista.
ds_list_add(id, val): Adiciona o valor val na lista de índice id.
ds_list_sort(id, crescente): Ordena a lista de índice id em ordem crescente ou decrescente, conforme o segundo argumento (true ou false, respectivamente).
As demais funções que mexem com listas são semelhantes.
ds_list_create(): Cria uma lista e retorna o índice dela (um número), que deve ser usado em outras funções para mexer nessa lista.
ds_list_add(id, val): Adiciona o valor val na lista de índice id.
ds_list_sort(id, crescente): Ordena a lista de índice id em ordem crescente ou decrescente, conforme o segundo argumento (true ou false, respectivamente).
As demais funções que mexem com listas são semelhantes.
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: matriz em ordem numérica
Vlw, cara, malz por fazer passar trabalho. Tinha me esquecido completamente do Help F1
RESOLVIDO
falow, mais tarde tento a ds_list.
EDITADO
até então não me dei bem com as ds_list, mas, o danado do for deu conta do recado, graças a Deus deu certo.
os números são gerados na matriz "b" aleatoriamente:
CREATE
b[1]=9;
b[2]=14;
b[3]=8;
b[4]=2;
b[5]=4;
O for resolveu
a matriz "a" recebe esses números e reorganiza-os em ordem numérica e fica assim
a[1]=2;
a[2]=4;
a[3]=8;
a[4]=9;
a[5]=14;
DRAW
EDITADO
até então não me dei bem com as ds_list, mas, o danado do for deu conta do recado, graças a Deus deu certo.
os números são gerados na matriz "b" aleatoriamente:
CREATE
- Código:
b[1]=(floor(random(15)));
b[2]= (floor(random(15)));
b[3]= (floor(random(15)));
b[4]= (floor(random(15)));
b[5]= (floor(random(15)));
b[1]=9;
b[2]=14;
b[3]=8;
b[4]=2;
b[5]=4;
O for resolveu
- Código:
t=0; // variável de controle
for (i=0; i<16; i+=1)
{
if (b[1]==i)or(b[2]==i)or(b[3]==i)or(b[4]==i)or(b[5]==i)
{
t+=1; a[t]=i;
}
}
a matriz "a" recebe esses números e reorganiza-os em ordem numérica e fica assim
a[1]=2;
a[2]=4;
a[3]=8;
a[4]=9;
a[5]=14;
DRAW
- Código:
draw_text(20,20,+(b[1]));
draw_text(20,40,+(b[2]));
draw_text(20,60,+(b[3]));
draw_text(20,80,+(b[4]));
draw_text(20,100,+(b[5]));
draw_text(20,150,+(a[1]));
draw_text(20,170,+(a[2]));
draw_text(20,190,+(a[3]));
draw_text(20,210,+(a[4]));
draw_text(20,230,+(a[5]));
diassis- Data de inscrição : 07/11/2009
Reputação : 0
Número de Mensagens : 312
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Re: matriz em ordem numérica
Desculpe a demora pra responder, lembrei deste tópico só agora...
Então, é uma solução(ver [edit] abaixo)... Mas não é lá muito elegante, além de ficar mais complicado do que com ds_lists. Se você quiser valores num intervalo maior (e não só de 0 a 15), ou quiser mais valores (não só 5), tem que alterar o código todo, e fica mais pesado (computacionalmente falando) que o necessário. E como você tinha dito que tinha que simplificar ao máximo...:
[edit] Tem mais um detalhe (o mais importante, talvez): Na verdade, é uma solução somente se não houver números repetidos. Se houver, não funciona.
E, apenas por curiosidade, você poderia pesquisar sobre algoritmos de ordenação, que seriam a solução se ela não estivesse já pronta (ds_list_sort).
Então, é uma solução(ver [edit] abaixo)... Mas não é lá muito elegante, além de ficar mais complicado do que com ds_lists. Se você quiser valores num intervalo maior (e não só de 0 a 15), ou quiser mais valores (não só 5), tem que alterar o código todo, e fica mais pesado (computacionalmente falando) que o necessário. E como você tinha dito que tinha que simplificar ao máximo...:
- Código:
// Cria a lista
l = ds_list_create();
// Coloca valores nela
ds_list_add(l, 1);
ds_list_add(l, 4);
ds_list_add(l, 3);
ds_list_add(l, 2);
ds_list_add(l, 9);
// Mostra os valores não ordenados
show_message("Antes");
for (i = 0; i < ds_list_size(l); i++)
show_message(ds_list_find_value(l, i));
// Ordena
ds_list_sort(l, true);
// Mostra os valores ordenados
show_message("Depois");
for (i = 0; i < ds_list_size(l); i++)
show_message(ds_list_find_value(l, i));
[edit] Tem mais um detalhe (o mais importante, talvez): Na verdade, é uma solução somente se não houver números repetidos. Se houver, não funciona.
E, apenas por curiosidade, você poderia pesquisar sobre algoritmos de ordenação, que seriam a solução se ela não estivesse já pronta (ds_list_sort).
Igor KinGamer- Data de inscrição : 26/09/2008
Reputação : 11
Número de Mensagens : 890
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: matriz em ordem numérica
na verdade eu não tinha me dado bem com as ds_list, mas agora com esse exemplo claro e direcionado ao que preciso, ficou mais facil entender.
também ainda não tinha dominado a questão do FOR... já apredi e agora com as benditas ds_list meu projeto ficará com 24 longos scripts a menos,
apenas na introdução.
embora já tivesse resolvido o problema, as ds_list facilitou e reduziu muita coisa.
vou estudar ainda mais até domina-las.
vou recomeçar + ou - assim.... acho que vai dar certo!!!
randomize(){
bb=ds_list_create();
for (i=0 i<5; i+=1)
{
ds_list_add(bb, ceil(random(15)))
}
ds_list_sort(bb, true);
}
// para visualizar ...
for (i=0 i<5; i+=1)
{
show_message(ds_list_find_value(bb,i))
}
OU NO DRAW
for (i=0; i<5; i+=1){
draw_text(20,i*35,ds_list_find_value(bb,i))}
fa ajudou D+
-------EDITADO --------
ARG!!!!! QUE ÓDIO!!!! a droga do randomize deixa numeros repetidos GRRRRRRR!!!!!
também ainda não tinha dominado a questão do FOR... já apredi e agora com as benditas ds_list meu projeto ficará com 24 longos scripts a menos,
apenas na introdução.
embora já tivesse resolvido o problema, as ds_list facilitou e reduziu muita coisa.
vou estudar ainda mais até domina-las.
vou recomeçar + ou - assim.... acho que vai dar certo!!!
randomize(){
bb=ds_list_create();
for (i=0 i<5; i+=1)
{
ds_list_add(bb, ceil(random(15)))
}
ds_list_sort(bb, true);
}
// para visualizar ...
for (i=0 i<5; i+=1)
{
show_message(ds_list_find_value(bb,i))
}
OU NO DRAW
for (i=0; i<5; i+=1){
draw_text(20,i*35,ds_list_find_value(bb,i))}
fa ajudou D+
-------EDITADO --------
ARG!!!!! QUE ÓDIO!!!! a droga do randomize deixa numeros repetidos GRRRRRRR!!!!!
diassis- Data de inscrição : 07/11/2009
Reputação : 0
Número de Mensagens : 312
Prêmios :
x 0 x 0 x 0
x 1 x 1 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [Resolvido]Como colocar números em ordem numérica?
» Ordem execução de objetos
» Sons em ordem predeterminada
» SALVAR MATRIZ NO ARQUIVO INI
» RANDOM ORDEM CRESCENTE
» Ordem execução de objetos
» Sons em ordem predeterminada
» SALVAR MATRIZ NO ARQUIVO INI
» RANDOM ORDEM CRESCENTE
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos