¿Formas de tomar múltiples variaciones de entradas para significar lo mismo?
Tengo que hacer un juego de texto en Java para la universidad y quiero permitir que los usuarios utilicen varias variaciones de comandos y varios nombres para objetos / NPC. ¿Cuál es la mejor manera de hacer esto?
Por ejemplo, si quiero que las personas vayan hacia el oeste, quiero que puedan decir “Ir hacia el oeste” o “Dirigirse hacia el oeste” o “Caminar hacia el oeste”, etc.
Entiendo que puedo hacer esto con muchos de estos:
if (command.equals(“dirigirse”) || command.equals(“caminar”) || command.equals(“viajar”) || command.equals(“ir”))
pero no solo esto es largo y feo, sino que con cada comando, cada objeto y cada personaje se volverá increíblemente largo e ineficiente. ¿Hay alguna otra manera mejor de hacer esto que no sea extremadamente avanzado? Gracias.
davy.ai
Una manera de abordar este problema es creando un mapeo entre las posibles variaciones de un comando y el comando estándar. Por ejemplo, podríamos crear un HashMap donde las llaves son variaciones del comando “ir al oeste” y los valores son el comando estándar “ir al oeste”. Luego, cuando el usuario ingrese un comando, podemos comprobar si coincide con cualquiera de las llaves en el HashMap y utilizar el valor correspondiente como el comando estándar.
Aquí hay un código de muestra para ilustrar este enfoque:
Por supuesto, tendríamos que crear mapas similares para cada objeto o nombre de NPC del que queramos tener múltiples variaciones. Este enfoque es más eficiente que escribir una larga lista de declaraciones if, y también permite una fácil personalización de las variaciones de comandos en caso de que desee agregar o eliminar algunas más adelante.</string,></string,>