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
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
» Palavras em ordem alfabética, como um dicionário?
» [Resolvido]Substituir palavras de todo o jogo
» Array de Array ?
» array
» Palavras em ordem alfabética, como um dicionário?
» [Resolvido]Substituir palavras de todo o jogo
» Array de Array ?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|