
Bryan C. Orellana
PreguntaHola, no sé por qué me sale este error:
Uncaught SyntaxError: Unexpected token '{'
El error me dice que esta en la línea de código 33 , pero ya la vi y esta tal cual lo hace Sacha.
le dejo mi código :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Simon Dice</title> <!-- Styles --> <link rel="stylesheet" href="css/estilos.css"> </head> <body> <div class="gameboard"> <div id="celeste" class="color celeste left" data-color="celeste"></div> <div id="violeta" class="color violeta right" data-color="violeta"></div> <div id="naranja" class="color naranja left" data-color="naranja"></div> <div id="verde" class="color verde right" data-color="verde"></div> <button id="btnEmpezar" class="btn-start" onclick="empezarJuego()">Empezar a jugar!</button> </div> <script> const violeta = document.getElementById('violeta') const naranja = document.getElementById('naranja') const verde = document.getElementById('verde') const celeste = document.getElementById('Celeste') const btnEmpezar = document.getElementById('btnEmpezar') //utilamos getElementById para obtener el id del elemento html para poder editarlo en js. class Juego { constructor() { this.inicializar() this.generarSecuencia() this.siguienteNivel() } } generarSecuencia () { this.secuencia = new Array(10).fill(0).map(n => Math.floor(Math.random()*4) ) } siguienteNivel() { this.iluminarSecuencia() } transformarNumeroAColor(numero){ switch(numero) { case 0: return 'celeste' case 1: return 'violeta' case 2: return 'naranja' case 3: return 'verde' } } iluminarSecuencia() { for (var i = 0; this.nivel; i++) { const color = this.transformarNumeroAColor(this.secuencia [i]) setTimeout (()=> this.iluminarColor(color), 1000 * i) } } iluminarColor(color){ this.colores[color].classList.add('light') setTimeout(()=> this.apagarColor(color), 350) } apagarColor(color){ this.colores[color].classList.remove('light') } function empezarJuego() { window.juego = new Juego() } </script> </body> </html>```
- Te faltó colocar la función de inicializar()
- En el array, estás colocando la palabra new pegado y es separada.
- Le diste cierre al paréntesis de class Juego justo después de cerrar el deconstructor y este se cierra al final, justo antes de funcion empezarJuego
- En el ciclo for te falto poner i < this.nivel

Sebastián Riátiga
Hola, bryan.carmodi.
Tengo unas observaciones adicionales a las que te hizo aldini123:
Te dejo tu código listo ;):
class Juego { constructor() { this.inicializar() this.generarSecuencia() this.siguienteNivel() } inicializar() { btnEmpezar.classList.add('hide') this.nivel = 1 this.colores = { celeste, violeta, naranja, verde } } generarSecuencia () { this.secuencia = new Array(10).fill(0).map(n => Math.floor(Math.random()*4) ) } siguienteNivel() { this.iluminarSecuencia() } transformarNumeroAColor(numero) { switch(numero) { case 0: return'celeste' case 1: return'violeta' case 2: return'naranja' case 3: return'verde' } } iluminarSecuencia() { for (var i = 0; i < this.nivel; i++) { const color = this.transformarNumeroAColor(this.secuencia [i]) setTimeout (()=> this.iluminarColor(color), 1000 * i) } } iluminarColor(color) { this.colores[color].classList.add('light') setTimeout(()=> this.apagarColor(color), 350) } apagarColor(color) { this.colores[color].classList.remove('light') } } function empezarJuego() { window.juego = new Juego() }

Aldo Abraham Cruz Sandoval
Tiene varios errores tu código: -Estás poniendo classJuego junto y es separado en la línea 25 -Después estás poniendo una llave de más en la línea 31 -Luego estás poniendo tus case con el valor junto: case0 y es separado -Igual en tus function...
Corrige esos errores.