Estou a tentar desenvolver um jogo de sopa de letras e não está a funcionar alguem sabe porque?
1 frame de código:
Código (ActionScript 3):
2 frame de código:
Código (ActionScript 3):
3 frame de código:
Código (ActionScript 3):
1 frame de código:
Código (ActionScript 3):
//Elimina o intervalo de tempo
clearInterval(intervaloTempo);
//caso a palavra tenha sido criada
// É iniciada uma nova palavra
if(jogo){
letraposicao = 0;
//Ganhou um bónus de tempo
tempo += 200;
//É actualizado o número de palavras certas
palavrascorrectas++;
// É actualizado o número de letras
letrascorrectas += length(palavra);
//volta á frame anterior para começar uma nova palavra
prevFrame();
}else{
//Caso não tenha sido criada nenhuma palavra chegou ao fim
// fica parado
stop();
}
clearInterval(intervaloTempo);
//caso a palavra tenha sido criada
// É iniciada uma nova palavra
if(jogo){
letraposicao = 0;
//Ganhou um bónus de tempo
tempo += 200;
//É actualizado o número de palavras certas
palavrascorrectas++;
// É actualizado o número de letras
letrascorrectas += length(palavra);
//volta á frame anterior para começar uma nova palavra
prevFrame();
}else{
//Caso não tenha sido criada nenhuma palavra chegou ao fim
// fica parado
stop();
}
2 frame de código:
Código (ActionScript 3):
//chama as funções para um novo jogo
misturarNumeros();
colocarLetraCasa();
calcularPalavraAleatoria();
//chama a função que diminui o tempo de 10 em 10 milisegundos
intervaloTempo = setInterval(contador, 10);
// fica parado na frame
stop();
misturarNumeros();
colocarLetraCasa();
calcularPalavraAleatoria();
//chama a função que diminui o tempo de 10 em 10 milisegundos
intervaloTempo = setInterval(contador, 10);
// fica parado na frame
stop();
3 frame de código:
Código (ActionScript 3):
//Fixar o tamanho da janela
fscommand("allowscale","false");
//esconde o menu
fscommand("showmenu","false");
//Posição do caracter
letraPosicao = 0;
//Tempo
tempo = 100000;
//variavel do jogo
jogo = true;
//Nº peças de tabuleiro
max = 64;
//contador de palavras
palavrascorrectas = 0;
//contador de letras
letrascorrectas = 0;
//vectores para controlo de posições
num = new Array();
numerosAleatorios =new Array();
//vector de palavras de jogo
bibliotecaPalavras =["INTERNET","BARCO","SOL","COMPUTADOR","MIGUEL","LIVRARIA","INFORMÁTICA","DATA","FLORES","MULTIMÉDIA","FUTEBOL","HOMEM","VELOCIDADE","VOLTAR","VARIÁVEL","LUGAR","REDE","ACÇÃO","DORMIR","DESLOCAR","SAIR","FIM","VISUAL","INDIANA","DIABO","VAMPIRO","QUEIMADO","MONITOR","PROCURAR","QUÍMICA","AMOR","KARATE","FORMATO","CANCELAR","DRAGÃO","PAPEL","DIGITAL","SETA","BILHETE","APAGAR","SILÊNCIO","DISNEY","TECLADO","VOZ","HUMANIDADE","TERRA","JÚPITER","SATURNO","PORTUGAL","PRISIONEIRO","OPERA","LOCAL","CORES","PROGRAMA","ALBUM", "TOCAR","LIMPAR","INICIAL","MERCEDES","NATURAL","ESSENCIAL","PHOTOSHOP","ILLUSTRATOR","FLASH"];
//fUNÇÃO DE ATRIBUIÇÃO DE CASAS ALEATÓRIAS;
misturarNumeros = function(){
//Preenchimento sequencial do vector [num] de 0 a 63
for(i=0; i<max; i++){
num[i] = i;
}
i = 0;
//distribuição aleatória pelas 64 casas no vector auxiliar [numerosAleatorios]
while (num.length>0){
//calculo aleatório da posição
pos = Math.round(Math.random()*(num.length-1));
//A posição aleatória do vector é preenchida
numerosAleatorios[i]= num[pos];
//é somado um valor á variavel i
i++;
//Para não haver repetições remove-se a posição no 1º vector
num.splice(pos,1);
}
};
//Função de preenchimento das casas no tabuleiro do jogo
colocarLetraCasa =function(){
//Margem esquerda
esquerda = 0;
//margem topo
Topo = 40;
// Nº da coluna
coluna = 0 ;
// Ciclo de colocação das casas no tabuleiro de jogo
for (var i = 0; i<64; i++){
//definição do nome da casa
name="casa"+i;
//Ligação ao MovieClip da livraria e atribuição do novo nome
_root.mc.attachMovie("casa",name,1000+i);
//Atribuição da posição em x
_root.mc[name]._x = esquerda;
//atribuição da posição Y
root.mc[name]._y = topo;
//Atribuição do caracter aleatório do alfabeto
_root.mc[name].letra = chr((random(26)+65));
//coloca o novo movieclip na 1ºposição
_root.mc[name].gotoAndStop(1);
//incremento da posição x para a proxima casa
esquerda += 30;
//Caso o nº de casas por linha seja 8 vai de 0 a 7
if (coluna == 7){
//é actualizada posição em x que volta a ser 0
esquerda = 0;
//A posição de y passa a ser+30 (altura das casas)
topo += 30;
//Inicia-se uma nova contagem de colunas por linha
coluna = 0;
}else{
// incremento do nºde colunas por linha
coluna++;
}
}
};
//função que determina aleatóriamente a palavra para se jogar
calcularPalavraAleatoria = function(){
//variavel que guarda as ultmas 3 palavras;
antepenultima = penultima;
penultima = ultima;
ultima = w;
// teste que garante que não se repetem as ultimas 3 palavras
do{
w = random(bibliotecaPalavras.length);
palavra = bibliotecaPalavras[w];
}while (w == ultima or w == penultima or w == antepenultima);
// ciclo que atribui ás letras da palavra ás casas do tabuleiro
for(i=0; i<length(palavra); i++){
//Definição do nome da casa que vai conter a letra
name = "casa"+numerosAleatorios[i];
//Atribuição da letra á casa do tabuleiro
_root.mc[name].letra= palavra.charAt(i);
}
};
//Função do tempo
contador = function() {
//vai diminuindo
tempo--;
//caso não chegue a 0 e a palavra não esteja criada salta para a frame29 - fim do jogo
if(tempo<1){
jogo = false;
gotoAndStop(29);
}
};
Quadrado com letra código:
on(release) {
if (this.letra.charAt(0)==_root.palavra.charAt(_root.letraPosicao)){
_root.letraPosicao++;
this.gotoAndStop(2);
_root.somOk.gotoAndPlay(2);
if(_root.letraPosicao == length(_root.palavra)){
_root.play();
}
}else{
for (i=0; i<64; i++){
name="casa"+i;
-root.mc[name].gotoAndStop(1);
}
_root.somErro.gotoAndPlay(2);
_root.letraPosicao = 0;
}
}
fscommand("allowscale","false");
//esconde o menu
fscommand("showmenu","false");
//Posição do caracter
letraPosicao = 0;
//Tempo
tempo = 100000;
//variavel do jogo
jogo = true;
//Nº peças de tabuleiro
max = 64;
//contador de palavras
palavrascorrectas = 0;
//contador de letras
letrascorrectas = 0;
//vectores para controlo de posições
num = new Array();
numerosAleatorios =new Array();
//vector de palavras de jogo
bibliotecaPalavras =["INTERNET","BARCO","SOL","COMPUTADOR","MIGUEL","LIVRARIA","INFORMÁTICA","DATA","FLORES","MULTIMÉDIA","FUTEBOL","HOMEM","VELOCIDADE","VOLTAR","VARIÁVEL","LUGAR","REDE","ACÇÃO","DORMIR","DESLOCAR","SAIR","FIM","VISUAL","INDIANA","DIABO","VAMPIRO","QUEIMADO","MONITOR","PROCURAR","QUÍMICA","AMOR","KARATE","FORMATO","CANCELAR","DRAGÃO","PAPEL","DIGITAL","SETA","BILHETE","APAGAR","SILÊNCIO","DISNEY","TECLADO","VOZ","HUMANIDADE","TERRA","JÚPITER","SATURNO","PORTUGAL","PRISIONEIRO","OPERA","LOCAL","CORES","PROGRAMA","ALBUM", "TOCAR","LIMPAR","INICIAL","MERCEDES","NATURAL","ESSENCIAL","PHOTOSHOP","ILLUSTRATOR","FLASH"];
//fUNÇÃO DE ATRIBUIÇÃO DE CASAS ALEATÓRIAS;
misturarNumeros = function(){
//Preenchimento sequencial do vector [num] de 0 a 63
for(i=0; i<max; i++){
num[i] = i;
}
i = 0;
//distribuição aleatória pelas 64 casas no vector auxiliar [numerosAleatorios]
while (num.length>0){
//calculo aleatório da posição
pos = Math.round(Math.random()*(num.length-1));
//A posição aleatória do vector é preenchida
numerosAleatorios[i]= num[pos];
//é somado um valor á variavel i
i++;
//Para não haver repetições remove-se a posição no 1º vector
num.splice(pos,1);
}
};
//Função de preenchimento das casas no tabuleiro do jogo
colocarLetraCasa =function(){
//Margem esquerda
esquerda = 0;
//margem topo
Topo = 40;
// Nº da coluna
coluna = 0 ;
// Ciclo de colocação das casas no tabuleiro de jogo
for (var i = 0; i<64; i++){
//definição do nome da casa
name="casa"+i;
//Ligação ao MovieClip da livraria e atribuição do novo nome
_root.mc.attachMovie("casa",name,1000+i);
//Atribuição da posição em x
_root.mc[name]._x = esquerda;
//atribuição da posição Y
root.mc[name]._y = topo;
//Atribuição do caracter aleatório do alfabeto
_root.mc[name].letra = chr((random(26)+65));
//coloca o novo movieclip na 1ºposição
_root.mc[name].gotoAndStop(1);
//incremento da posição x para a proxima casa
esquerda += 30;
//Caso o nº de casas por linha seja 8 vai de 0 a 7
if (coluna == 7){
//é actualizada posição em x que volta a ser 0
esquerda = 0;
//A posição de y passa a ser+30 (altura das casas)
topo += 30;
//Inicia-se uma nova contagem de colunas por linha
coluna = 0;
}else{
// incremento do nºde colunas por linha
coluna++;
}
}
};
//função que determina aleatóriamente a palavra para se jogar
calcularPalavraAleatoria = function(){
//variavel que guarda as ultmas 3 palavras;
antepenultima = penultima;
penultima = ultima;
ultima = w;
// teste que garante que não se repetem as ultimas 3 palavras
do{
w = random(bibliotecaPalavras.length);
palavra = bibliotecaPalavras[w];
}while (w == ultima or w == penultima or w == antepenultima);
// ciclo que atribui ás letras da palavra ás casas do tabuleiro
for(i=0; i<length(palavra); i++){
//Definição do nome da casa que vai conter a letra
name = "casa"+numerosAleatorios[i];
//Atribuição da letra á casa do tabuleiro
_root.mc[name].letra= palavra.charAt(i);
}
};
//Função do tempo
contador = function() {
//vai diminuindo
tempo--;
//caso não chegue a 0 e a palavra não esteja criada salta para a frame29 - fim do jogo
if(tempo<1){
jogo = false;
gotoAndStop(29);
}
};
Quadrado com letra código:
on(release) {
if (this.letra.charAt(0)==_root.palavra.charAt(_root.letraPosicao)){
_root.letraPosicao++;
this.gotoAndStop(2);
_root.somOk.gotoAndPlay(2);
if(_root.letraPosicao == length(_root.palavra)){
_root.play();
}
}else{
for (i=0; i<64; i++){
name="casa"+i;
-root.mc[name].gotoAndStop(1);
}
_root.somErro.gotoAndPlay(2);
_root.letraPosicao = 0;
}
}