Ir para conteúdo

POWERED BY:

Arquivado

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

santosbio

[Resolvido] Compreendendo uma função

Recommended Posts

Olá pessoal.

 

Estou adaptando um script de palavras cruzadas, e no final de tudo, aconteceu um problema.

Existe um botão para checar as respostas, e quando ele é pressionado, mesmo com as respostas corretas, ele apresenta que as respostas estão erradas.

Achei a parte do código que está gerando esse erro. Ao que parece, uma função gera um número para cada resposta, e esse número é o que é utilizado para comparar as respostas.

 

A função é a seguinte:


function HashWord(Word)
{
var x = (Word.charCodeAt(0) * 719) % 1138;
var Hash = 837;
var i;
for (i = 1; i <= Word.length; i++)
	Hash = (Hash * i + 5 + (Word.charCodeAt(i - 1) - 64) * x) % 98503;
return Hash;
}

 

 

onde a variável Word contém o seguinte:

Word = new Array("CORPORATIVO", "MONITORIA", "CPC", "COMBUSTIVEL", "BLOQUEIO", "CANCELAR");

 

 

Como faço pra descobrir qual é o código (Hash) de cada resposta?

 

Nas respostas do exemplo que peguei, as Hashs vinham em um array dessa forma:

AnswerHash = new Array(79439, 30944, 20471, 49706, 9276, 82254);

 

 

Alguém consegue me dar uma luz?

 

Obrigado desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aé santosbio, vou te dar uma dica.

Caso tenha o firebug instalado, habilite-o (f12), vá para a aba script e clique no botão do depurador (um botão parecido com um de pause que fica no canto superior direito), após isto faça com que a função seja ativada (seguindo o seu exemplo, acho que é preciso apenas clicar na palavra). Com o depurador ativo você poderá ver os valores das variaveis passando o mouse sobre elas e achar onde está o erro. Você ainda pode setar breakpoints diretamente na função, o que seria até melhor. É isso. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aé santosbio, vou te dar uma dica.

Caso tenha o firebug instalado, habilite-o (f12), vá para a aba script e clique no botão do depurador (um botão parecido com um de pause que fica no canto superior direito), após isto faça com que a função seja ativada (seguindo o seu exemplo, acho que é preciso apenas clicar na palavra). Com o depurador ativo você poderá ver os valores das variaveis passando o mouse sobre elas e achar onde está o erro. Você ainda pode setar breakpoints diretamente na função, o que seria até melhor. É isso. ;)

 

 

Então, cara... eu já tinha o Firebug e não sabia dessa opção pra JavaScript. Tentei utilizar da maneira que você me falou, procurei alguns tutoriais na net de como debugar com a ferramenta, mas não consegui obter os valores das Hashs gerados pras palavras. Será que você poderia me dar uma ajudinha com isso? Hospedei os arquivos pra que você possa ver o código:

http://portifolioadriano.com.br/crossword/

 

Obrigado!

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aé santosbio, como o intuito aqui é te ajudar, eu não estaria te ajudando se eu te desse as hashs prontas, e eu sei que não é isso que você quer, você quer saber como debugar o código para encontrar o valor das hashs geradas, certo?

 

Então vamos lá, na página onde se encontra o script abra o firebug (F12), e selecione a aba Script, nesta parte você deve procurar pelo código que deseja debugar, no nosso caso, a função que gera as hashs. Para achá-la você pode digitar o nome dela (HashWord) ou caso saiba a linha, ir direto para a linha onde ela se encontra, como sabemos a linha, vamos direto à ela, para isto digite #410 na barra de busca, o firebug irá diretamente para a função. Agora precisamos colocar um breakpoint exatamente onde a função está retornado a hash, para isto clique sobre o número da linha na qual o return se encontra, desta forma:

tutdebugfirebug.jpg

 

Agora precisamos chamar manualmente a função, para isso digite no console HashWord("Palavra"); e aperte Ctrl+Enter, conforme exemplo:

tutdebugfirebug1.jpg

 

No momento que o código chegar ao breakpoint, o firebug irá parar a execução e te mostrar as variaveis do escopo no qual o breakpoint se encontra:

tutdebugfirebug2.jpg

 

Agora é só você tentar fazer e dizer se conseguiu ou se ocorreu algum erro. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
E aé santosbio, como o intuito aqui é te ajudar, eu não estaria te ajudando se eu te desse as hashs prontas, e eu sei que não é isso que você quer, você quer saber como debugar o código para encontrar o valor das hashs geradas, certo?

Me desculpe se a frase ficou ambígua, não queria as hashs não... queria uma ajuda para encontrá-las.

 

 

Pelo que vi, é bem simples. Deve resolver meu problema. Assim que eu testar lá eu posto meu resultado (positivo ou negativo).

 

 

Vlw cara... \o/ You're the guy! hahahah

 

 

Abraços, t+

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.