// ---------------------------------------------------------------------------------------------------------------------------------------- // Constructor: // Read the values from the configuration file and set them in the variables public SpeechRecognition() { RecognitionLanguage = ConfigurationManager.AppSettings["RecognitionLanguage"]; LuisEndpointURL = ConfigurationManager.AppSettings["LuisEndpointURL"]; SpeechAPISubscriptionKey = ConfigurationManager.AppSettings["SpeechAPISubscriptionKey"]; AuthorizationToken = new Authentication(); CreateMicrophoneRecoClientWithIntent(); Board = new Board("Paché", 6, 5, 5); Board.Show(); MainFrame = new principalWindown(Board); MainFrame.ShowDialog(); }
// ---------------------------------------------------------------------------------------------------------------------------------------- // Handles the InputParameters entity public void InputParametersHandler(List <Entity> Entities) { string ObjectiveText = ""; string Decimal = "@"; // Extract the entities foreach (Entity entity in Entities) { switch (entity.type) { case "objetivo": ObjectiveText = entity.entity; break; case "igual": Decimal = entity.entity; break; } } bool result = false; switch (ObjectiveText) { // Change agent's position case "crear tablero": if (m > 0 && n > 0 && a > 0) { Board = new Board("Pache", m, n, a); MainFrame.DisposeFrame(); MainFrame = new principalWindown(Board); TextToSpeech("Tablero de " + m + " por " + n + " con cuadrículas de tamaño " + a + "creado!"); MainFrame.ShowDialog(); } else { string ErrorMessage = "Me falta conocer "; if (m == -1) { ErrorMessage += "el largo"; } if (n == -1) { ErrorMessage += "el ancho"; } if (a == -1) { ErrorMessage += "el tamaño de cada cuadrícula"; } TextToSpeech(ErrorMessage + " para poder construirlo."); } break; case "tamaño": result = Int32.TryParse(Regex.Match(Decimal, @"\d+").Value, out a); if (!result || a == 0) { a = -1; } else { TextToSpeech("Listo.Ahora el tamaño de cada cuadícula es de ." + a); } break; case "largo": result = Int32.TryParse(Regex.Match(Decimal, @"\d+").Value, out m); if (!result || m == 0) { m = -1; } else { TextToSpeech("Listo.Ahora el largo es de ." + m); } break; case "ancho": result = Int32.TryParse(Regex.Match(Decimal, @"\d+").Value, out n); if (!result || n == 0) { a = -1; } else { TextToSpeech("Listo.Ahora el ancho es de ." + n); } break; case "mejor ruta": if (Board.ShortestPath() == null) { TextToSpeech("Rayos, estoy encerrado. No hay ruta a la meta fijada!"); } else { TextToSpeech("¡Hostia, llegamos a la meta!"); } MainFrame.DrawBestPath(); break; case "limpiar tablero": MainFrame.CleanPath(); break; case "cambiar diagonal": if (Board.IsDiagonal) { Board.IsDiagonal = false; TextToSpeech("¿Qué demonios? La tienes contra mí?."); } else { Board.IsDiagonal = true; TextToSpeech("Bien! Ahora me será más fácil llegar a la meta."); } break; } Board.Show(); }