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
checar palavras duplicadas num array
3 participantes
Página 1 de 1
checar palavras duplicadas num array
Opa,
esse acho que é um pedido de engine praticamente, ou de link pra tutorial de quem conhecer;
Estou querendo checar a existência de palavras duplicadas na mesma linha ou coluna, num array de 5 linhas e 4 colunas;
o código abaixo é o que a célula 0,0 checaria se fosse feito manualmente;
a questão é que gostaria de fazer isso de maneira automática para;
4.0, 4.1, 4.2, 4.3
3.0, 3.1, 3.2, 3.3
2.0, 2.1, 2.2, 2.3
1.0, 1.1, 1.2, 1.3
0.0, 0.1, 0.2, 0.3
de forma que cada célula checasse apenas sua linha e coluna e não checasse a si mesma.
quem puder me ajudar, ou der uma orientação por favor. flws.
esse acho que é um pedido de engine praticamente, ou de link pra tutorial de quem conhecer;
Estou querendo checar a existência de palavras duplicadas na mesma linha ou coluna, num array de 5 linhas e 4 colunas;
o código abaixo é o que a célula 0,0 checaria se fosse feito manualmente;
- Código:
if array_name[0,0] == "noone"
{array_check[0,0] = "empty" //se estiver vazio
}else if array_name[0,0] == array_name[0,1] ||
array_name[0,0] == array_name[0,2] ||
array_name[0,0] == array_name[0,3] ||
array_name[0,0] == array_name[1,0] ||
array_name[0,0] == array_name[2,0] ||
array_name[0,0] == array_name[3,0] ||
array_name[0,0] == array_name[4,0]
{
array_check[0,0] = "invalid" // encontrou uma repetição
}else array_check[0,0] = "valid" //nenhuma repetição
a questão é que gostaria de fazer isso de maneira automática para;
4.0, 4.1, 4.2, 4.3
3.0, 3.1, 3.2, 3.3
2.0, 2.1, 2.2, 2.3
1.0, 1.1, 1.2, 1.3
0.0, 0.1, 0.2, 0.3
de forma que cada célula checasse apenas sua linha e coluna e não checasse a si mesma.
quem puder me ajudar, ou der uma orientação por favor. flws.
7hiagomp- Data de inscrição : 21/04/2014
Reputação : 24
Número de Mensagens : 124
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: checar palavras duplicadas num array
Use dois loops for.
- Código:
linha = linha_celula;
coluna = coluna_celula;
for(col=0; col<total_colunas; col+=1)
if (array[linha, col]==valor_desejado)
{}
for(lin=0; lin<total_linhas; lin+=1)
if (array[coluna, lin]==valor_desejado)
{}
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: checar palavras duplicadas num array
Opa, Pedro valeu a ajuda, mas não entendi exatamente onde ficou a checagem do próprio array. Em "valor desejado" entendi que vou apenas achar 1 palavra específica e na verdade eu não tenho a informação de qual palavra vai ser repetida.
O que estou tentando é comparar cada célula com todas as outras na mesma linha e coluna, e ver se existe repetição ou não.
O que estou tentando é comparar cada célula com todas as outras na mesma linha e coluna, e ver se existe repetição ou não.
7hiagomp- Data de inscrição : 21/04/2014
Reputação : 24
Número de Mensagens : 124
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: checar palavras duplicadas num array
Então, valor_desejado pode ser trocado por array[linha, coluna].
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: checar palavras duplicadas num array
Mas aí vai gerar um problema que é se auto conferir, gerando um falso resultado de palavra repetida.
7hiagomp- Data de inscrição : 21/04/2014
Reputação : 24
Número de Mensagens : 124
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: checar palavras duplicadas num array
Dentro da condição do if, coloque um and:
if (array[col, linha]==valor_desejado and col!=coluna)
e também
if (array[coluna, lin]==valor_desejado and lin!=linha)
if (array[col, linha]==valor_desejado and col!=coluna)
e também
if (array[coluna, lin]==valor_desejado and lin!=linha)
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: checar palavras duplicadas num array
Eu to aplicando tentando fazer funcionar aqui lek, daqui a pouco ja dou retorno.
7hiagomp- Data de inscrição : 21/04/2014
Reputação : 24
Número de Mensagens : 124
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: checar palavras duplicadas num array
Fiz uma engine aqui que faz exatamente oque você deseja:
Dropbox
Essa imagem explica oque ela faz:
O verde é a célula atual, o azul é por onde ela começara a checar se seu valor é o mesmo que o da célula atual (célula verde), os azuis claros são os próximos a serem checados, a próxima célula faz a mesma coisa, mas não checa as celulas que já passaram.
Dropbox
Essa imagem explica oque ela faz:
O verde é a célula atual, o azul é por onde ela começara a checar se seu valor é o mesmo que o da célula atual (célula verde), os azuis claros são os próximos a serem checados, a próxima célula faz a mesma coisa, mas não checa as celulas que já passaram.
Kapoty- Games Ranking :
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Reputação : 22
Número de Mensagens : 635
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 1
x 0 x 0 x 0
Re: checar palavras duplicadas num array
Eu to aplicando tentando fazer funcionar aqui lek, daqui a pouco ja dou retorno.
----------------------------------------------------------------------------------
Bem, eu não consegui adaptar de maneira apropriada. Então vou por aqui como está;
Esse é o objeto que mapeia a matrix 5x4, ele desenha e mapeia; O código atual desenha a matrix
recebe o nome do objeto nas posições determinadas, então fica uma matriz assim;
como as caixas estão no jogo, e como fica a matriz
o array_name recebe o nome dos objetos na posição e se vc troca o objeto(essa é dinamica do jogo)
ele troca o nome no array; tem um exemplo do jogo online aqui; mprado.info/sudocarga
o array_check recebe "vazio", "repetido", "ok", na mesma posição da caixa que ele checou, sendo os nomes auto-explicativos.
Essa foi uma breve explicação, então agora ao código;
problemas;
1 - qualquer caixa em qualquer posição recebe "repetido";
2 - olhando o step devagar, percebi que o valor está sobrescrevendo. Por exemplo, quando ele encontra uma ocorrencia de repetição no código, ele alerta, mas como ele continua checando, se na próxima checagem ele está "Ok" ele apaga a condição "repetição" anterior.
----------------------------------------------------------------------------------
Bem, eu não consegui adaptar de maneira apropriada. Então vou por aqui como está;
Esse é o objeto que mapeia a matrix 5x4, ele desenha e mapeia; O código atual desenha a matrix
recebe o nome do objeto nas posições determinadas, então fica uma matriz assim;
como as caixas estão no jogo, e como fica a matriz
o array_name recebe o nome dos objetos na posição e se vc troca o objeto(essa é dinamica do jogo)
ele troca o nome no array; tem um exemplo do jogo online aqui; mprado.info/sudocarga
o array_check recebe "vazio", "repetido", "ok", na mesma posição da caixa que ele checou, sendo os nomes auto-explicativos.
Essa foi uma breve explicação, então agora ao código;
- Create:
- Código:
for (i=0; i<5; i++)
{
for (j=0; j<4; j++)
{
array_name[i,j] = "undefined"
array_check[i,j] = "vazio"
}
}
n = 650; //x
m = 650; //y
- Step:
- Código:
for (i=0; i<5; i++)
{
m -= 100;
for (j=0; j<4; j++)
{
n += 100;
array_name[i,j] = object_get_name(instance_position(n+40,m+40,all).object_index);
if m == 150 && n == 1050 {m = 650;}
if n == 1050 {n = 650;}
//checagem começa aqui
if array_name[i,j] == "vazio" //checar para 'vazio' primeiro
{
array_check[i,j] = "vazio";
} else
{
for (line=0; line<5; line++)
{
for (col=0; col<4; col++)
{ for (line2=line+1; line2<5; line2++)
{ if array_name[line, col] == array_name[line2, col]
{
array_check[i,j] = "repetido"; //retorna outra matriz na mesma posição como "repetido"
}else array_check[i,j] = "ok"; //retorna outra matriz na mesma posição como "ok"
}
}
for (col2=col+1; col2<4; col2++)
{ if array_name[line, col] == array_name[line, col2]
{
array_check[i,j] = "repetido"; //retorna outra matriz na mesma posição como "repetido"
}else array_check[i,j] = "ok"; //retorna outra matriz na mesma posição como "ok"
}
}
}
}
}
problemas;
1 - qualquer caixa em qualquer posição recebe "repetido";
- result:
2 - olhando o step devagar, percebi que o valor está sobrescrevendo. Por exemplo, quando ele encontra uma ocorrencia de repetição no código, ele alerta, mas como ele continua checando, se na próxima checagem ele está "Ok" ele apaga a condição "repetição" anterior.
7hiagomp- Data de inscrição : 21/04/2014
Reputação : 24
Número de Mensagens : 124
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Kapoty- Games Ranking :
Notas recebidas : E + D + C + B + D +B + A
Data de inscrição : 05/11/2011
Reputação : 22
Número de Mensagens : 635
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 1
x 0 x 0 x 0
Re: checar palavras duplicadas num array
CAARAAAAAA! TA funcionando perfeitamente, muuuito obrigado. Salvou p semmpre kk
7hiagomp- Data de inscrição : 21/04/2014
Reputação : 24
Número de Mensagens : 124
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Engine acertar palavras
» array
» Array 3D
» Palavras em ordem alfabética, como um dicionário?
» [Resolvido]Substituir palavras de todo o jogo
» array
» Array 3D
» Palavras em ordem alfabética, como um dicionário?
» [Resolvido]Substituir palavras de todo o jogo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos