Eu decidi gerar um número aleatório pro segredo do exercício, usando a atividade de adivinha anterior, e o código é o seguinte:
<meta charset="UTF-8">
<input/>
<button>Descubra o número!</button>
<script>
    var input = document.querySelector("input");
    function sorteia(n) {
        return Math.round(Math.random() * n);
    }
    function verifica() {
        if(input.value == segredo) {
            alert("Voce acertou!");
        } else {
            alert("Voce errou!!!");
        }
    }
    var segredo = sorteia(10);
    var button = document.querySelector("button");
    button.onclick = verifica;
</script>Tenho uma dúvida em relação a declaração das variáveis. Eu tenho algum problema de execução do código caso todas as funções venham antes das declarações? Movendo o var input = document.querySelector("input"); pra baixo das funções, por exemplo. Na mesma dúvida, eu só estou gerando o número depois da função verifica() ter sido criada, isso me traz algum erro?