percepcionCasilla [] alrededores = new percepcionCasilla[4];     //Array con la información de lo que rodea al personaje (del tablero de la IA)

    // Use this for initialization
    void Start()
    {
        anchoTablero = 10;
        altoTablero  = 5;
        tableroIA    = new percepcionCasilla[anchoTablero, altoTablero];

        //Para la patrulla
        movimientosPlaneados = new Queue <Movimiento>(8);

        modo = modoAgente.Patrullando;
    }
    //-------------------------------------------------------
    //METODOS IMPORTANTES (o no)
    //Fragmento que nos permite determinar con lógica guapa guapa dónde están los huecos (y la sangre?)
    //partiendo de las premisas que nos proporcionan los conocimientos que tengamos
    //Premisa: Estas en una casilla con nube.
    void analizaInfoGM()
    {
        //Recibes un int, que representa cierta información del GM que la IA va a interpretar a su manera.
        //int tableroX, tableroY;
        int gmInfo = GameManager.instance.getInfoCasilla(out tableroX, out tableroY);

        //Ahora con un switch vamos a interpretarlo y en funcion de eso modificar
        //tanto la informacion local del tablero como el modo

        switch (gmInfo)
        {
        case 0:             //Casilla vacia -> ok
                            //Realmente no hace nada
            break;

        case 1:             //Hueco -> te has muerto
            modo = modoAgente.Muerto;
            break;

        case 2:             //sueloVacio -> ok

            tableroIA[tableroX, tableroY] = percepcionCasilla.ok;
            break;

        case 3:                                     //sueloArma -> un objetivo completado!
            armaEncontrada = true;
            if (armaEncontrada && muertoEncontrado) //Determina si has completado la busqueda
            {
                aLaCama = true;
            }

            tableroIA [tableroX, tableroY] = percepcionCasilla.ok;
            //Metes las cuatro direcciones
            for (int i = 0; i < 4; i++)
            {
                switch (i)
                {
                case 0:                             //norte: ida y vuelta
                    movimientosPlaneados.Enqueue(Movimiento.Arriba);
                    movimientosPlaneados.Enqueue(Movimiento.Abajo);
                    break;

                case 1:                             //sur: ida y vuelta
                    movimientosPlaneados.Enqueue(Movimiento.Abajo);
                    movimientosPlaneados.Enqueue(Movimiento.Arriba);
                    break;

                case 2:                             //este: ida y vuelta
                    movimientosPlaneados.Enqueue(Movimiento.Derecha);
                    movimientosPlaneados.Enqueue(Movimiento.Izquierda);
                    break;

                case 3:                             //oeste: ida y vuelta
                    movimientosPlaneados.Enqueue(Movimiento.Izquierda);
                    movimientosPlaneados.Enqueue(Movimiento.Derecha);
                    break;
                }
            }


            //Si no estabas en busca, te pones a ello.

            if (modo == modoAgente.Analizando && aLaCama)
            {
                modo = modoAgente.Volviendo;
            }

            break;

        case 4:             //NubeVacia -> pones a nube y miras alrededores
            tableroIA [tableroX, tableroY] = percepcionCasilla.nube;
            analizaTerreno(tableroX, tableroY);

            break;

        case 5:             //NubeSangre -> Cambias a busqueda (y miras alrededores antes?)
            tableroIA [tableroX, tableroY] = percepcionCasilla.nube;
            analizaTerreno(tableroX, tableroY);

            //tableroIA [tableroX, tableroY] = percepcionCasilla.sangre; //Tambien es sangre :3

            if (modo != modoAgente.Analizando)
            {
                modo = modoAgente.Analizando;
            }
            break;

        case 6:                                     //NubeArma
            armaEncontrada = true;
            if (armaEncontrada && muertoEncontrado) //Determina si has completado la busqueda
            {
                aLaCama = true;
            }

            tableroIA[tableroX, tableroY] = percepcionCasilla.nube;
            analizaTerreno(tableroX, tableroY);

            break;

        case 7:
            muertoEncontrado = true;
            if (armaEncontrada && muertoEncontrado)         //Determina si has completado la busqueda
            {
                aLaCama = true;
            }

            tableroIA[tableroX, tableroY] = percepcionCasilla.nube;
            analizaTerreno(tableroX, tableroY);

            break;


        case 8:             //sangre -> cambias a busqueda. Si ya estás en busqueda, supongo que actuaizas mapa y ya.
            tableroIA [tableroX, tableroY] = percepcionCasilla.sangre;

            if (modo != modoAgente.Analizando)
            {
                modo = modoAgente.Analizando;
            }
            break;

        case 9:                                     //muerto -> yay, otro objetivo!
            muertoEncontrado = true;
            if (armaEncontrada && muertoEncontrado) //Determina si has completado la busqueda
            {
                aLaCama = true;
            }

            tableroIA [tableroX, tableroY] = percepcionCasilla.ok;


            break;

        case 10:             //Casa -> si tienes los dos objetivos, has ganado. Si no, no.
            if (aLaCama)
            {
                //HAS GANADO :333
                GameManager.instance.IACompletedPuzzle();
            }

            tableroIA [tableroX, tableroY] = percepcionCasilla.ok;
            break;
        }
    }