Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Não acho meu erro(s)

Olá pessoal, fiz um programa com basicamente tudo que aprendi, só que está não está funcionando corretamente.

<meta charset="UTF-8">
<strong><h1>Bem vindo ao jogo!<h1></strong> 
<hr><hr>

<h2>Qual dificuldade você quer?"</h2> <br> 

<input> Responda com: <strong>facil </strong>,<strong>medio </strong>ou <strong>dificil.</strong><br></input>

<canvas width="800" height="600"></canvas>

<script>
var tela = document.querySelector("canvas");
var pincel = tela.getContext("2d");
var cores = ["yellow","green", "grey","red"];
var posicao = 0;


function limpaTela(){
    pincel.clearRect(0,0, 800,600);

}

function Cor(){
    while(posicao <= cores.length){

    pincel.fillStyle = cores[posicao];

    }

    if(posicao > cores.length){
        return posicao = 0; 
    }


}

function aumentaPosicao(){
    posicao++;


}

var x = 50;

function desenhaCirculo(x, y, raio){
    Cor();
    pincel.beginPath();
    pincel.arc(x,y, raio, 0, 2*Math.PI);
    pincel.fill();

}

function atualizaTela(){

    limpaTela();
    desenhaCirculo();
    x++;
}


    setInterval(aumentaPosicao, 500);

function dificuldade(){
    if(input.value=facil){
        setInterval(atualizaTela, 500);
    }

    else if (input.value=medio){
        setInterval(atualizaTela, 250);
    }

    else if (input.value=dificil)
        setInterval(atualizaTela, 100);    
}

 function dispara(evento) {

        var w = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;

        if(w >= x + 10 && w <= x-20){
            alert("VOCÊ ACERTOU!!!")
        }

        else{
            alert("VOCÊ ERROU!!!")
        }
    }


dificuldade();
tela.onclick = dispara;


</script>
3 respostas

Olá amigo. Você não informou quais os problemas/erros que vem ocorrendo com seu código. Mas, apenas olhando posso lhe indicar alguns probleminhas que encontrei no seu javascript. Na function dificuldade() ele não deve estar reconhecendo a variável input, então declare-a antes do if:

var input = document.getElementsByTagName("input");

Vejo também que ele não deve estar reconhecendo as dificuldades, coloque-as entre aspas:

if(input.value="facil"){

Como o Tiago disse acima, tente informar com mais detalhes os problemas que está enfrentando. Os pontos citados por ele foram bem observados.

Eu acrescentaria dizendo que falta você também pegar o evento do "enter" e passar o valor para a função "dificuldade"

input type="text" placeholder="Responda com... " onkeydown="dificuldade(this)"/> <strong>facil </strong>,<strong>medio </strong>ou <strong>dificil.</strong><br>
function dificuldade(aqui){
solução!

Boa tarde Claudio.

Segue algumas recomendações.

É uma boa prática quando você declarar tags de script, já denotar a linguagem (porém isso é opcional):

<script type="text/javascript">

Repare que a função "Cor" retorna um valor de posição, mas você nunca utiliza esse retorno no seu código, ou seja, o mesmo poderia ser removido:

if (posicao > cores.length){
    return posicao = 0; 
}
if (posicao > cores.length){
    posicao = 0; 
}

Em javascript, a comparação de igualdade deve ser realizada com 2 signais de igual (==). Se você utilizar um só, então estará fazendo uma atribuição, e não uma comparação. Sem contar o fato das aspas para valores texto, como já foi mencionado pelo colega.

if (input.value=facil) {..
if (input.value == "facil") {..

Espero ter ajudado. Abraço.