Entrar
Últimos assuntos
» Retorno da GMBR!!!por theguitarmester Ter 19 Mar 2024, 22:38
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05
» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55
» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39
» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28
» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01
Organizando uma Tabela e Dando Critério para Desempate
4 participantes
Página 1 de 1
Organizando uma Tabela e Dando Critério para Desempate
Oi. Estou criando uma tabela (com ds_list), consigo adicionar valores à ela, porém não faço ideia de como fazer isso:
1. Existem duas tabelas com dois valores, que são:
teams_tab - Com team[1].name e team[2].name
points_tab - Com team[1].pts e team[2].pts
A segunda tabela eu uso sort e funciona, mas como fazer as Strings team[1].name e team[2].name acompanhá-las? Porque quando dou sort na teams_tab organiza por ordem alfabética.
2. Se existirem dois valores iguais na tabela, como fazer com que a tabela deixe à frente o time que tiver mais de outra variável? (Que está em outra tabela, que seria a goals_tab).
Até e obrigado.
1. Existem duas tabelas com dois valores, que são:
teams_tab - Com team[1].name e team[2].name
points_tab - Com team[1].pts e team[2].pts
A segunda tabela eu uso sort e funciona, mas como fazer as Strings team[1].name e team[2].name acompanhá-las? Porque quando dou sort na teams_tab organiza por ordem alfabética.
2. Se existirem dois valores iguais na tabela, como fazer com que a tabela deixe à frente o time que tiver mais de outra variável? (Que está em outra tabela, que seria a goals_tab).
Até e obrigado.
Gonçalves- Games Ranking :
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios :
x 0 x 4 x 0
x 2 x 0 x 0
x 0 x 0 x 0
Re: Organizando uma Tabela e Dando Critério para Desempate
Você precisaria fazer isso:
- Depois de usar sort:
Vou pesquisar sobre a questão 2.
Até mais!
- Depois de usar sort:
- Código:
indice_team1=ds_list_find_index(points_tab, team[1].pts)
indice_team2=ds_list_find_index(points_tab, team[2].pts)
ds_list_replace(teams_tab, indice_team1, team[1].name)
ds_list_replace(teams_tab, indice_team2, team[2].name)
Vou pesquisar sobre a questão 2.
Até mais!
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: Organizando uma Tabela e Dando Critério para Desempate
Pô, funcionou não... olha o que eu fiz: (Create)
- Código:
team1 = 'Flamengo'
team2 = 'Botafogo'
team3 = 'Fluminense'
team4 = 'Vasco'
pts1 = round(random_range(floor(5),20))
pts2 = round(random_range(floor(5),20))
pts3 = round(random_range(floor(5),20))
pts4 = round(random_range(floor(5),20))
teams_tab = ds_list_create();
ds_list_add(teams_tab,team1);
ds_list_add(teams_tab,team2);
ds_list_add(teams_tab,team3);
ds_list_add(teams_tab,team4);
pts_tab = ds_list_create();
ds_list_add(pts_tab,pts1);
ds_list_add(pts_tab,pts2);
ds_list_add(pts_tab,pts3);
ds_list_add(pts_tab,pts4);
ds_list_sort(pts_tab,true)
indice_team1=ds_list_find_index(pts_tab, team1)
indice_team2=ds_list_find_index(pts_tab, team2)
indice_team3=ds_list_find_index(pts_tab, team3)
indice_team4=ds_list_find_index(pts_tab, team4)
ds_list_replace(teams_tab, indice_team1, pts1)
ds_list_replace(teams_tab, indice_team2, pts2)
ds_list_replace(teams_tab, indice_team3, pts3)
ds_list_replace(teams_tab, indice_team4, pts4)
Gonçalves- Games Ranking :
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios :
x 0 x 4 x 0
x 2 x 0 x 0
x 0 x 0 x 0
Re: Organizando uma Tabela e Dando Critério para Desempate
Já que você quer acompanhá-las, seria correto usar ds_list_insert, o Pedro Henrique usou replace (descuido, acho eu)
- Código:
ds_list_insert(teams_tab, indice_team1, pts1)
ds_list_insert(teams_tab, indice_team2, pts2)
ds_list_insert(teams_tab, indice_team3, pts3)
ds_list_insert(teams_tab, indice_team4, pts4)
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Organizando uma Tabela e Dando Critério para Desempate
Nessa parte, inverta tudo:
Até mais!
- Código:
indice_team1=ds_list_find_index(pts_tab, team1)
indice_team2=ds_list_find_index(pts_tab, team2)
indice_team3=ds_list_find_index(pts_tab, team3)
indice_team4=ds_list_find_index(pts_tab, team4)
ds_list_replace(teams_tab, indice_team1, pts1)
ds_list_replace(teams_tab, indice_team2, pts2)
ds_list_replace(teams_tab, indice_team3, pts3)
ds_list_replace(teams_tab, indice_team4, pts4)
- Código:
indice_team1=ds_list_find_index(pts_tab, pts1)
indice_team2=ds_list_find_index(pts_tab, pts2)
indice_team3=ds_list_find_index(pts_tab, pts3)
indice_team4=ds_list_find_index(pts_tab, pts4)
ds_list_replace(teams_tab, indice_team1, team1)
ds_list_replace(teams_tab, indice_team2, team2)
ds_list_replace(teams_tab, indice_team3, team3)
ds_list_replace(teams_tab, indice_team4, team4)
Até mais!
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: Organizando uma Tabela e Dando Critério para Desempate
Nenhuma das duas funcionou... Será que está no Draw o problema?
Draw:
Até.
Draw:
- Código:
for(i=0;i<ds_list_size(teams_tab);i+=1) {draw_text(60,16+(16*i),ds_list_find_value(teams_tab,i));}
for(i=0;i<ds_list_size(pts_tab);i+=1){draw_text(160,16+(16*i),ds_list_find_value(pts_tab,i));}
Até.
Gonçalves- Games Ranking :
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios :
x 0 x 4 x 0
x 2 x 0 x 0
x 0 x 0 x 0
Re: Organizando uma Tabela e Dando Critério para Desempate
Você poderia fazer com ds_map.
O time[0] é o time mais pontuado.
É só você desenhar de tras para frente agora.
Essa é sua tarefa. Tudo está em ordem, basta desenhar agora.
Até mais!
- Código:
team1 = 'Flamengo'
team2 = 'Botafogo'
team3 = 'Fluminense'
team4 = 'Vasco'
pts1 = round(random_range(5,20))
pts2 = round(random_range(5,20))
pts3 = round(random_range(5,20))
pts4 = round(random_range(5,20))
teams_tab = ds_map_create();
ds_map_add(teams_tab, pts1, team1)
ds_map_add(teams_tab, pts2, team2)
ds_map_add(teams_tab, pts3, team3)
ds_map_add(teams_tab, pts4, team4)
//ordenar
maior[0]=ds_map_find_last(teams_tab);
time[0]=ds_map_find_value(teams_tab, maior[0]);
for(i=1;i<ds_map_size(teams_tab);i+=1){
maior[i]=ds_map_find_previous(teams_tab, maior[i-1]);
time[i]=ds_map_find_value(teams_tab, maior[i]);
}
O time[0] é o time mais pontuado.
É só você desenhar de tras para frente agora.
Essa é sua tarefa. Tudo está em ordem, basta desenhar agora.
Até mais!
Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.
Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.
Aprenda a calcular a velocidade de suas animações
Entre para o Clube do Inglês:
Re: Organizando uma Tabela e Dando Critério para Desempate
Tentei desenhar aqui porém sem sucesso... Nunca mexi com ds_map. Pode dar uma mãozinha?
Gonçalves- Games Ranking :
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Reputação : 79
Número de Mensagens : 1013
Prêmios :
x 0 x 4 x 0
x 2 x 0 x 0
x 0 x 0 x 0
Re: Organizando uma Tabela e Dando Critério para Desempate
Amigo, a maneira mais simples de fazer isso resolvendo os 2 problemas ao mesmo tempo é a seguinte:
Veja:
FlwS!
Veja:
- Código:
lista_geral = ds_list_create();
//adicionar na lista assim:
ds_list_add(lista_geral, team[1].pts "|" + team[1].name + "|" + goals_tab[1] + "|";
ds_list_add(lista_geral, team[2].pts "|" + team[2].name + "|" + goals_tab[2] + "|";
//etc
ds_list_sort(lista_geral);
//agora basta separa cada item ordenado
for (i = 0; i < ds_list_size(lista_geral); i += 1)
{
str = ds_list_find_value(lista_geral, i);
p = string_pos("|", str);
time = string_copy(str, 1, p - 1);str = string_delete(str, 1, p);
p = string_pos("|", str);
pontos = string_copy(str, 1, p - 1);str = string_delete(str, 1, p);
p = string_pos("|", str);
goal = string_copy(str, 1, p - 1);str = string_delete(str, 1, p);
//Viu retiramos todos os dados devidamente ordenados
}
FlwS!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos