/// <summary>
    /// Se prepara todo para que el juega pueda dar comienzo
    /// </summary>
    public void Jugar()
    {
        jugador.gameObject.SetActive(true);

        for (int i = 0; i < bolos.Length; i++)
        {
            bolos [i].gameObject.SetActive(true);
            puntuacionTurno[i] = 0;
        }

        turno           = 0;
        puntuacionTotal = 0;
        tiradaTurno     = GameThrow.tiro1;
        cambiarTextoTiros();
        canvas.cambiarTextoPuntuacion(puntuacionTurno[turno]);
        canvas.cambiarTextoTurno(turno);
    }
    /// <summary>
    /// Controla los cambios de turnos y cuando se debe ejecutar el fin del juego
    /// </summary>
    public void cambiarTurno()
    {
        // Primera tirada del turno
        if (tiradaTurno == GameThrow.tiro1)
        {
            jugador.Reiniciar();
            jugador.gameObject.SetActive(true);
            DesaparecerCamara();
            canvas.activarUIJugador();

            // Si el tiro no ha llegado a 10 (pleno)
            if (puntuacionTurno[turno] < 10)
            {
                tiradaTurno = GameThrow.tiro2;
                cambiarTextoTiros();
            }

            // Si hay pleno
            else
            {
                // Reinicio de los bolos
                for (int i = 0; i < bolos.Length; i++)
                {
                    bolos[i].Reiniciar();
                    bolos[i].gameObject.SetActive(true);
                }

                // Si el turno es distinto de 9 (turno 10 en la realidad), se debe cambiar el turno
                if (turno != 9)
                {
                    tiradaTurno = GameThrow.tiro1;
                    cambiarTextoTiros();

                    puntuacionTotal += puntuacionTurno[turno];

                    turno++;
                    canvas.cambiarTextoPuntuacion(puntuacionTurno[turno]);
                    canvas.cambiarTextoTurno(turno);
                }
                else
                {
                    tiradaTurno = GameThrow.tiro2;
                }
            }
        }

        // Segunda tirada del turno
        else if (tiradaTurno == GameThrow.tiro2)
        {
            DesaparecerCamara();
            jugador.Reiniciar();

            // Si todavia no es el turno 9 (turno 10 real), se cambia el turno
            if (turno < 9)
            {
                tiradaTurno = GameThrow.tiro1;
                cambiarTextoTiros();

                jugador.gameObject.SetActive(true);
                canvas.activarUIJugador();

                for (int i = 0; i < bolos.Length; i++)
                {
                    bolos[i].gameObject.SetActive(true);
                    bolos [i].Reiniciar();
                }

                puntuacionTotal += puntuacionTurno[turno];

                turno++;
                canvas.cambiarTextoPuntuacion(puntuacionTurno[turno]);
                canvas.cambiarTextoTurno(turno);
            }

            // Actual turno 10
            else if (turno == 9)
            {
                // No llega a hacer semipleno o pleno en el turno: Fin del juego
                if (puntuacionTurno[turno] < 10)
                {
                    for (int i = 0; i < bolos.Length; i++)
                    {
                        bolos[i].Reiniciar();
                        bolos[i].gameObject.SetActive(false);
                    }

                    puntuacionTotal += puntuacionTurno[turno];
                    canvas.finDelJuego(puntuacionTotal);
                }

                // Puede haber realizado un pleno, semipleno o dos plenos
                else
                {
                    jugador.gameObject.SetActive(true);
                    canvas.activarUIJugador();

                    // Puede tirar una vez mas
                    tiradaTurno = GameThrow.tiro3;
                    cambiarTextoTiros();

                    // Comprueba si todos los bolos estan caidos. Si es asi, se reinician y se hacen aparecer
                    int contador;
                    for (contador = 0; contador < bolos.Length && bolos[contador].caido; contador++)
                    {
                        ;
                    }

                    if (contador == bolos.Length)
                    {
                        for (int i = 0; i < bolos.Length; i++)
                        {
                            bolos[i].gameObject.SetActive(true);
                            bolos [i].Reiniciar();
                        }
                    }
                }
            }
        }

        // Tercera tirada: Fin del juego
        else if (tiradaTurno == GameThrow.tiro3)
        {
            DesaparecerCamara();
            jugador.Reiniciar();

            for (int i = 0; i < bolos.Length; i++)
            {
                bolos [i].Reiniciar();
                bolos[i].gameObject.SetActive(false);
            }

            puntuacionTotal += puntuacionTurno[turno];
            canvas.finDelJuego(puntuacionTotal);
        }
    }