Conectar-se

Esqueci minha senha

Últimos assuntos
» Nota de esclarecimento - GMBR voltou!
Ontem à(s) 20:33 por Willy

» Regras do Fórum
Ontem à(s) 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

» Tipo de Draw que dê melhor fps...
Sex 21 Ago 2015, 12:25 por Pai véi

» Banco de Dados online fácil de configurar
Sex 21 Ago 2015, 11:47 por Pai véi

» Ficou estranho esse efeito na terra?
Qua 19 Ago 2015, 20:08 por Adriel

» Você consegue decifrar o que é isso?
Qua 19 Ago 2015, 15:48 por Mateus O de Andrade

» Texto centralizado em sprite 64x64
Qua 19 Ago 2015, 14:00 por Vandson Fernandes

» [Tutorial] Um Único Script para Todos Diálogos do Jogo
Ter 18 Ago 2015, 22:12 por dharrison

» VIDEO AULAS - Plataforma - Recriando Super Mario
Ter 18 Ago 2015, 20:44 por Adriel

» Ajuda deixar room maior
Ter 18 Ago 2015, 15:56 por Stickman

» OST - Rain From The Past (Para Main Themes)
Seg 17 Ago 2015, 23:00 por Jessezyn

» #DGM Aula 01 - Views
Seg 17 Ago 2015, 00:16 por victor13.

» Alguém sabe as dimensões de um galaxy s5?
Dom 16 Ago 2015, 20:06 por vitorfernandes13

» Conquer The Kingdom
Dom 16 Ago 2015, 12:13 por DVictorPS

» [Ajuda] Bug ds_list
Dom 16 Ago 2015, 08:27 por Witen

» câmera seguir player com touch control android
Sab 15 Ago 2015, 15:05 por Lighter

» Apk não roda no celular
Sab 15 Ago 2015, 12:10 por xLuiZzz


matriz em ordem numérica

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

matriz em ordem numérica

Mensagem por diassis em Seg 25 Ago 2014, 13:14

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

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!!!!
avatar
diassis

Data de inscrição : 07/11/2009
Número de Mensagens : 310
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 1
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: matriz em ordem numérica

Mensagem por Kabeção em Seg 25 Ago 2014, 13:28

Coloque os valores em uma list e use ds_list_sort para ordenar.
avatar
Kabeção

Ranking : Sem avaliações
Data de inscrição : 08/06/2008
Número de Mensagens : 2314
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 3
   : 0
   : 1

Ver perfil do usuário http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: matriz em ordem numérica

Mensagem por diassis em Seg 25 Ago 2014, 13:34

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.
avatar
diassis

Data de inscrição : 07/11/2009
Número de Mensagens : 310
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 1
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: matriz em ordem numérica

Mensagem por Igor KinGamer em Seg 25 Ago 2014, 13:42

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.
avatar
Igor KinGamer

Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: matriz em ordem numérica

Mensagem por Lighter em Seg 25 Ago 2014, 13:44

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?
avatar
Lighter

Ranking : Sem avaliações
Data de inscrição : 16/01/2014
Número de Mensagens : 307
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0

Prêmios
   : 0
   : 1
   : 0

Ver perfil do usuário http://google.com

Voltar ao Topo Ir em baixo

Re: matriz em ordem numérica

Mensagem por diassis em Seg 25 Ago 2014, 13:47

e eu aproveito para me orientar mais rsrsrs
avatar
diassis

Data de inscrição : 07/11/2009
Número de Mensagens : 310
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 1
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: matriz em ordem numérica

Mensagem por Igor KinGamer em Seg 25 Ago 2014, 14:00

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.
avatar
Igor KinGamer

Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: matriz em ordem numérica

Mensagem por Lighter em Seg 25 Ago 2014, 14:31

Vlw, cara, malz por fazer passar trabalho. Tinha me esquecido completamente do Help F1
avatar
Lighter

Ranking : Sem avaliações
Data de inscrição : 16/01/2014
Número de Mensagens : 307
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0

Prêmios
   : 0
   : 1
   : 0

Ver perfil do usuário http://google.com

Voltar ao Topo Ir em baixo

RESOLVIDO

Mensagem por diassis em Seg 25 Ago 2014, 14:47

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

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)));
numeração gerada
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]));
cheers cheers cheers
avatar
diassis

Data de inscrição : 07/11/2009
Número de Mensagens : 310
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 1
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: matriz em ordem numérica

Mensagem por Igor KinGamer em Sab 06 Set 2014, 15:54

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...:

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).
avatar
Igor KinGamer

Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: matriz em ordem numérica

Mensagem por diassis em Ter 09 Set 2014, 13:02

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 lol!    ajudou D+ cheers cheers cheers


-------EDITADO --------

ARG!!!!! QUE ÓDIO!!!!   a droga do randomize deixa numeros repetidos  GRRRRRRR!!!!!
avatar
diassis

Data de inscrição : 07/11/2009
Número de Mensagens : 310
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 1
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: matriz em ordem numérica

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum