tateti.js 6.01 KB
Newer Older
roshka committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
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;
}