private void OnEnable()
    {
        net      = new NeuralNet(3, 1, 1);
        dataSets = new List <DataSet>();
        Debug.Log("inicializando");

        double[] inputs        = new double[3];
        double[] desireOutputs = new double[1];
        inputs[0] = 0.1f;
        inputs[1] = 0.1f;
        inputs[2] = 0.1f;

        desireOutputs[0] = 0.1f;
        dataSets.Add(new DataSet(inputs, desireOutputs));

        net.Train(dataSets, 0.001f);

        double[] vals = new double[3];
        vals[0] = 0.1f;
        vals[1] = 0.1f;
        vals[2] = 0.9f;
        double[] respuesta = net.Compute(vals);
        Debug.Log(respuesta[0]);

        if (respuesta[0] < 0.09f)
        {
            col = 0;
        }
        if (respuesta[0] > 0.09f && respuesta[0] < 0.1)
        {
            col = 1;
        }
        if (respuesta[0] > 0.1f)
        {
            col = 2;
        }

        sonidoNotificacion.SetActive(true);
        indice++;
        botones[0].SetActive(true);
        botones[1].SetActive(true);
        botones[2].SetActive(true);
        cajasMensaje[indice - 1].SetActive(true);
        textoMensaje[indice - 1].text = maquina.mensajesMaquina[indice - 1, col];
        textoRespuesta[0].text        = maquina.mensajesUsuario[indice - 1, 0];
        textoRespuesta[1].text        = maquina.mensajesUsuario[indice - 1, 1];
        textoRespuesta[2].text        = maquina.mensajesUsuario[indice - 1, 2];
        if (indice == 6)
        {
            maquina.ActivarEstado(maquina.EstadoCaptura);
        }
    }
Beispiel #2
0
 public void Pasar_Pregunta()
 {
     i++;
     if (i < 10)
     {
         pregunta.text = preguntas[i];
     }
     else
     {
         respuestaPanel.SetActive(true);
         preguntaPanel.SetActive(false);
         respuesta = new double[10];
         for (int i = 0; i < respuestas.Length; i++)
         {
             if (respuestas[i] == "Si")
             {
                 respuesta[i] = 1.0;
             }
             else if (respuestas[i] == "Tal vez")
             {
                 respuesta[i] = 0.5;
             }
             else
             {
                 respuesta[i] = 0.0;
             }
         }
         double[] salida = new double[14];
         salida = net.Compute(respuesta);
         double mayor     = 0;
         int    iteracion = 0;
         for (int i = 0; i < salida.Length; i++)
         {
             if (salida[i] > mayor)
             {
                 mayor     = salida[i];
                 iteracion = i;
             }
         }
         UnityEngine.GameObject.Find("TextoRespuestaXDDx").GetComponent <UnityEngine.UI.Text>().text = nombresAlumnos[iteracion];
     }
 }