Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

guiobom131

[Resolvido] Codificador de mensagem

Recommended Posts

Este tutorial trata de um exemplo fácil de codificação de textos, você pode se basear nele para criar uma busca por palavras ou letras.

O resultado final está aqui.

Este exemplo troca os números da mensagem por "<"+o_numero+">" para que sejam distigüidos na hora de descodificar, e busca na mensagem a ser codificada caractes iguais aos da senha e os troca por número. Parece confuso, mas vou dar exemplo:

Mensagem: Você leu Harry Potter 2?

Senha: imasters

Código final: Você l5u H266y Po4456 <2>?

Veja como "leu" virou "l5u", o "e" foi trocado por 5, que é o índice correspondente de "e" na senha --> i=(0), m=(1), a=(2), s=(3), t=(4), e=(5), r=(6), s=(7) (Lembre-se, o 1º caractere é de índice 0)

 

Chega de papo vamos ao Flash. Crie um campo de texto de entrada com nome "texto", um outro campo de texto de entrada com nome "senha" e um botão.

No botão insira o código:

on (release, keyPress "<Enter>") {

//Somente se a senha tiver pelo menos um caractere a tradução será efetuada

if (senha.text != "") {

//Atribui-se o valor das variáveis

mensagem = texto.text;

palavra = senha.text;

//Faz uma varredura desde a início até o fim da mensagem em busca de números

for (i=0; i<mensagem.length; i++) {

//Verifica se o caractere de índice (i) é um número

if (mensagem.charAt(i) == 0 || mensagem.charAt(i)) {

//Se for, será substituído por <Nº>

resultado += "<"+mensagem.charAt(i)+">";

} else {

//Se não for número, por enquanto, não será substituído por nada

resultado += mensagem.charAt(i);

}

}

//Agora os números já foram trocados e começará a trocar as letras de acordo com a senha

texto.text = resultado;

resultado = "";

mensagem = texto.text;

palavra = senha.text;

//Faz a comparação entre cada caractere da senha com a mensagem

for (d=0; d<palavra.length; d++) {

for (i=0; i<mensagem.length; i++) {

//Se um caractere da mensagem coincidir com um caractere da senha, esse será substituído por número, correspondente ao índice do caractere na senha

if (mensagem.charAt(i).toUpperCase() == palavra.charAt(d).toUpperCase()) {

resultado += d;

} else {

//Se não, ele não será alterado

resultado += mensagem.charAt(i);

}

}

//Agora a mensagem já está codificada, basta mostrá-la na caixa de texto

texto.text = resultado;

resultado = "";

mensagem = texto.text;

palavra = senha.text;

}

}

}

Pronto!

Agora para descodificar, crie um outro arquivo (ou se preferir, um outro quadro neste mesmo, não esqueça do stop())

Novamente, crie um campo de texto de entrada com nome "texto", um outro campo de texto de entrada com nome "senha" e um botão.

No botão insira o código:

on (release, keyPress "<Enter>") {

//Atribui as variáveis

mensagem = texto.text;

palavra = senha.text;

//Faz uma busca em todas as palavras da mensagem e da palavra

for (d=0; d<palavra.length; d++) {

for (i=0; i<mensagem.length; i++) {

//Se for localizado os símbolos de números (<Nº>), ele não será alterado por enquanto, ele só será descodificado no final

if (mensagem.indexOf("<0>", i) == i || mensagem.indexOf("<1>", i) == i || mensagem.indexOf("<2>", i) == i || mensagem.indexOf("<3>", i) == i || mensagem.indexOf("<4>", i) == i || mensagem.indexOf("<5>", i) == i || mensagem.indexOf("<6>", i) == i || mensagem.indexOf("<7>", i) == i || mensagem.indexOf("<8>", i) == i || mensagem.indexOf("<9>", i) == i) {

resultado += mensagem.charAt(i);

resultado += mensagem.charAt(i+1);

resultado += mensagem.charAt(i+2);

//Acrescenta-se 2 unidades em i para que essa sequência não seja avaliada novamente

i += 2;

//Se não for localizado o símbolo dos números, verificará se há algo a ser substituído

} else {

//Se o caractere for um número (por isso havia a necessidade de criar os símbolos para os números, se não eles seriam trocados por letras), será substituído pelo caractere correspondente da palavra

if (mensagem.charAt(i) == d) {

resultado += palavra.charAt(d);

//Se não, nada será mudado e o caractere será acrescentado sem modificações

} else {

resultado += mensagem.charAt(i);

}

}

}

//Agora só falta trocar os símbolos de números por números, já que não serão mais confundidos

texto.text = resultado;

resultado = "";

mensagem = texto.text;

palavra = senha.text;

}

for (i=0; i<mensagem.length; i++) {

if (mensagem.indexOf("<0>", i) == i || mensagem.indexOf("<1>", i) == i || mensagem.indexOf("<2>", i) == i || mensagem.indexOf("<3>", i) == i || mensagem.indexOf("<4>", i) == i || mensagem.indexOf("<5>", i) == i || mensagem.indexOf("<6>", i) == i || mensagem.indexOf("<7>", i) == i || mensagem.indexOf("<8>", i) == i || mensagem.indexOf("<9>", i) == i) {

resultado += mensagem.charAt(i+1);

i += 2;

} else {

resultado += mensagem.charAt(i);

}

}

//Mostra o resultado na janela de texto

texto.text = resultado;

resultado = "";

mensagem = texto.text;

palavra = senha.text;

}

Espero que tenham gostado, qualquer dúvida postem, ok? http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.