let signoAnterior = "Y"; let posicionesTabla = []; let jugadas = []; let habilitadoJugar = 0; let nombres = []; let jugador1; let jugador2; let jugadorActual; let contadorJugadas = parseInt(0); //Creamos la matriz para guardar las posiciones de la tabla y las jugadas for(let i=0;i<3;i++){ posicionesTabla[i] = new Array(3); jugadas[i] = new Array(3); } //Cargamos las id del jugadas for(let i=1;i<4;i++){ for(let j=1;j<4;j++){ posicionesTabla[i-1][j-1] = document.getElementById(""+i+j); jugadas[i-1][j-1] = "..."; } } //Esta funcion actua cuando se presiona el boton JUGAR function iniciarJuego() { //Con esto logramos avisar al jugador que debe cargar los nombres de los jugadores antes de jugar if(document.getElementById("PedidoJug1").value == "" || document.getElementById("PedidoJug2").value == ""){ alert("Se debe cargar los nombres de los jugadores"); //En esta parte se le da enfoque al campo que le falta dato if(document.getElementById("PedidoJug1").value == ""){ document.getElementById("PedidoJug1").focus(); }else if(document.getElementById("PedidoJug2").value == ""){ document.getElementById("PedidoJug2").focus(); }else{ document.getElementById("PedidoJug1").focus(); } //En esta parte comprobamos que no se escoja fichas iguales }else if(document.getElementById("fichaJugador1").selectedIndex == document.getElementById("fichaJugador2").selectedIndex ) { alert("Cada jugador debe tener una ficha distinta"); }else{ //Aqui es donde todos los datos de entradas estan en orden y se empieza el juego alert("A JUGAR !!!"); if(document.getElementById("fichaJugador1").selectedIndex == "0"){ jugador1 = document.getElementById("PedidoJug1").value; }else{ jugador2 = document.getElementById("PedidoJug1").value; } if(document.getElementById("fichaJugador2").selectedIndex == "0"){ jugador1 = document.getElementById("PedidoJug2").value; }else{ jugador2 = document.getElementById("PedidoJug2").value; } habilitadoJugar=1;//Aqui es donde habilitamos el casillero para jugar //Aqui es donde preparamos la informacion del jugador actual y si quien jugador gano o se empató document.getElementById("btnJugar").remove(); document.getElementById("JugadorActual").innerHTML = "Ahora juega: " + jugador1; jugadorActual = jugador1; //Esto desabilita los campos para que no haya alteración de la informacion document.getElementById("PedidoJug1").disabled = true; document.getElementById("PedidoJug2").disabled = true; document.getElementById("fichaJugador1").disabled = true; document.getElementById("fichaJugador2").disabled = true; } } function clickCuadro(posicion) { if(habilitadoJugar==1){ //Busca donde se hizo click let tempFicha; let encontrado=false; let pos_fil,pos_col; for(let i=0;i<3 && !encontrado;i++){ for(let j=0;j<3 && !encontrado;j++){ if(document.getElementById(posicion) == posicionesTabla[i][j]){ pos_fil = i; pos_col = j; encontrado = true; } } } //Una vez que se encontro la posicion, preguntamos si esa casilla está vacia if(jugadas[pos_fil][pos_col]=="..."){ //Averiguamos quien jugador jugo actualmente if(signoAnterior=="Y"){ document.getElementById(posicion).innerHTML = "X"; document.getElementById(posicion).style.color = "red"; jugadas[pos_fil][pos_col] = "X" signoAnterior = "X"; tempFicha = "X"; }else{ document.getElementById(posicion).innerHTML = "Y"; document.getElementById(posicion).style.color = "blue"; jugadas[pos_fil][pos_col] = "Y" signoAnterior = "Y"; tempFicha = "Y"; } }else{ alert("Lugar de la ficha ocupado"); return; } //Luego analizamos la jugada actual if(resultadoJug(tempFicha)){ document.getElementById("JugadorActual").innerHTML = "Ganador: " + jugadorActual; habilitadoJugar = 2; }else{ if(jugadorActual == jugador1){ jugadorActual = jugador2; document.getElementById("JugadorActual").innerHTML = "Ahora juega: " + jugadorActual; }else{ jugadorActual = jugador1; document.getElementById("JugadorActual").innerHTML = "Ahora juega: " + jugadorActual; } contadorJugadas = contadorJugadas + parseInt(1); } if(contadorJugadas>=9){ document.getElementById("JugadorActual").innerHTML = "Es un empate"; habilitadoJugar = 2; return; } }else if(habilitadoJugar==0){ alert("Se debe dar el boton Jugar! para iniciar el juego"); }else{ alert("Fin del juego"); } } function resultadoJug(ficha){ let retorno = false; //Primero verificamos filas for(let i=0; i<3 && !retorno; i++){ if(jugadas[i][0] == ficha && jugadas[i][1] == ficha && jugadas[i][2] == ficha){ retorno = true; break; } } //Comprobamos columna for(let i=0; i<3 && !retorno; i++){ if(jugadas[0][i] == ficha && jugadas[1][i] == ficha && jugadas[2][i] == ficha){ retorno = true; break; } } //comprobar diagonal 1 if(!retorno && jugadas[0][0] == ficha && jugadas[1][1] == ficha && jugadas[2][2] == ficha){ retorno = true; } //comprobar diagonal 2 if(!retorno && jugadas[0][2] == ficha && jugadas[1][1] == ficha && jugadas[2][0] == ficha){ retorno = true; } return retorno; }