Estoy escribiendo un código js para hacer tetris para un proyecto escolar, y me quedé atascado con una clase que escribí. Este es el código:
let canvas = document.getElementById("mainWindow"); let cnv = canvas.getContext("2d"); class Block { //da fixare constructor(shape, color, rotate) { this.shape = shape; this.color = color; this.rotate = rotate; } } function randomInt(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; } function randomColor(min, max) { min = Math.ceil(min); max = Math.floor(max); let color = Math.floor(Math.random() * (max - min + 1)) + min; switch (color) { case 1: return "red"; case 2: return "yellow"; case 3: return "blue"; case 4: return "green" case 5: return "light-blue"; case 6: return "indigo"; case 7: return "orange"; } } function newBlock() { let blockObj = new Block(randomInt(1, 1), randomColor(1, 1), randomInt(1, 1)); console.log("figura generata: "); if (blockObj.shape == 1) { console.log("quadrato "); } if (blockObj.color == "red") { console.log("rosso "); } if (blockObj.rotate == 1) { console.log("orizzontale"); } } newBlock(); <canvas id="mainWindow"></canvas>Uncaught ReferenceError: Cannot access 'Block' before initialization at newBlock (tetris.js:43:5) at <anonymous>:1:1
También busqué en Internet la solución, pero todos dicen que debe declarar la clase antes que la función, como en mi código. ¿Cómo puedo arreglar esto?