Bug en javascript

Résolu
Bonjour,
J'ai un code que je n'arrive pas à faire marcher . Le code html est :

<!DOCTYPE html>
<html>
  <head>
      <title>Jeu du serpent</title>
      <h1>hello</h1>
      <script src="script4.js"></script>
  </head>

  <body>

  </body>

</html>


et le code javascript est :

window.onload = function()
{
    var cancasWidth = 900;
    var canvasHeigth = 600;
    var blockSize = 30;
    var ctx;
    var delay = 100;
    var snakee;

    init();

    function init()
    {
      var canvas = document.createElement('canvas');
      canvas.width = canvasWidth;
      canvas.height = canvasHeight;
      canvas.style.border = "1px solid";
      document.body.appendChild(canvas);
      ctx = canvas.getContext('2d');
      snakee = new Snake([[6,4],[5,4],[4,4]]);
      refreshCanvas();
    }

    function refreshCanvas()
    {
        ctx.clearRect(0,0,canvasWidth, canvasHeight);
        snakee.draw();
        setTimeout(refreshCanvas,delay);
    }

    function drawBlock(ctx, position)
    {
        var x = position[0] * blockSize;
        var y = position[1] * blockSize;
        ctx.fillRect(x ,y , blockSize, blockSize);
    }

      function Snake(body)
    {
        this.body = body;
        this.draw = function()
        {
          ctx.save();
          ctx.fillStyle = "#ff0000";
          for (var i = 0; i < this.body.length; i++)
          {
              drawBlock(ctx, this.body[i]);
          }
          ctx.restore();
        };

    }

}


Est-ce que ça marche pour vous? Je viens de vérifier toutes les ligne 3 fois et je n'arrive pas à débuger la situtation. Je n'ai qu'une page avec hello qui s'affiche et nommé jeu du serpent. Normalement selon la démo, je devrais avoir un cadre noir et un serpent sous la fornme de trois carrés rouge les uns à côtés des autres.
Merci d'avance de vos réponses.
Diego

Configuration: Macintosh / Chrome 80.0.3987.149

3 réponses

  1. Modérateur
    Bon

    Sans parler du fait que tu as toujours autant de mal à position ton code html au bon endroit
    Voici ton code corrigé au niveau du html
    <!DOCTYPE html>
    <html lang="fr">
        <head>
            <meta charset="utf-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
           <title>Jeu du serpent</title>
        </head>
        <body> 
            <h1>hello</h1>
            <script src="script4.js"></script>
     </body>    
    </html>
    


    ... tu as également un souci avec le nom de tes variables.


    Il faut corriger la déclaration de ta variable comme ceci
    Au lieu de
    var cancasWidth = 900;
    

    remplacer par :
    var canvasWidth  = 900;
    


    1. Salut il doit y avoir autre chose car ça ne marche toujours pas??
      1. Modérateur
        Que t'affiches la console ?
        Tu testes bien directement dans un navigateur internet hein ? (pas depuis bracket..) ?
      2. Modérateur
        @jordane45Car oui, il y a bien autre chose... un souci de dyslexie:-)
        var canvasHeight = 600;
        
    2. yes!!!!!!!!!!!!
      Merci c'était la dysyexie...
      par contre j'utilise le bracket.
      Pourrais-tu me dire comment tester directement? Merci
      1. Modérateur
        Pense à mettre le sujet en Résolu.