Estoy jugando con la escritura de una aventura de MUD/texto (por favor no te rías) en Ruby. ¿Alguien puede darme algún consejo sobre una solución elegante y basada en oops para analizar el texto de entrada?Elegante análisis de comandos en un juego de texto basado en OOP
Estamos hablando de nada más complejo que "poner la varita en la mesa", aquí. Pero todo debe ser suave; Quiero extender el comando establecido sin dolor, más tarde.
Mis pensamientos actuales, ligeramente simplificada:
Cada clase de elemento (caja, de mesa, sala, jugador) sabe cómo reconocer un comando que 'pertenece' a la misma.
La clase de juego comprende una especie de un lenguaje de dominio específico que implica acciones como "objeto movimiento X dentro objeto Y", "mostrar descripción de objeto X", etc.
La clase de juego de cada pregunta elemento en la sala si reconoce el comando de entrada. Primero, decir que sí gana.
Pasa el control a un método en la clase de elemento que maneja el comando. Este método reformula el comando en el DSL, lo pasa de vuelta al objeto del juego para que suceda.
Debe haber formas bien gastadas y elegantes de hacer esto. Sin embargo, parece que no puede googlear nada.
Como una nota al pie, el poco pelos con mi plan actual es la implementación de acciones que involucran a dos objetos. – Shadowfirebird
Puede comenzar con http://stackoverflow.com/questions/tagged/natural-language y ver a dónde lo lleva. – dmckee
Ta! Acabo de agregar esa etiqueta a la pregunta. – Shadowfirebird