Herramientas de usuario

Herramientas del sitio


preprocesado_de_la_entrada

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
preprocesado_de_la_entrada [2011/03/24 13:53]
al-khwarizmi
preprocesado_de_la_entrada [2011/03/24 14:03] (actual)
al-khwarizmi
Línea 33: Línea 33:
     st.nextToken();​ //consume la palabra por     st.nextToken();​ //consume la palabra por
     st.nextToken();​ //consume la palabra favor     st.nextToken();​ //consume la palabra favor
-    return st.nextToken(""​);​ //devuelve el resto de las palabras+    return st.nextToken(""​).trim(); //devuelve el resto de las palabras
   }   }
   else   else
   {    { 
-    aCreature.write("​Pídemelo ​con la palabra mágica...\n");+    aCreature.write("​Eres un maleducado. No haré nada si no me lo pides con la palabra mágica.\n"​);​
     end(); ​     end(); ​
   }   }
 } }
 </​code>​ </​code>​
 +
 +En este ejemplo, si la entrada que nos ponen no empieza por "por favor",​ mostramos un mensaje de protesta interrumpimos el procesado con ''​end()'',​ que funciona de la misma forma que en los métodos ''​parseCommand'',​ interrumpiendo el procesado de la orden. Nótese que si se interrumpe una orden a este nivel, nunca llegará a ser procesada por los métodos ''​parseCommand'',​ ya que ''​preprocessCommand''​ va antes.
 +
 +En el caso de que la entrada sí empiece por "por favor",​ le quitamos el "por favor" del principio dejando que AGE procese el resto de la oración de forma normal. Así pues, será la oración sin "por favor",​ que es lo que devolvemos, la que sea procesada por los métodos ''​parseCommand''​.
 +
 +Produciendo salidas como ésta:
 +
 +<​code>​
 +> ve al norte
 +Eres un maleducado. No haré nada si no me lo pides con la palabra mágica.
 +> por favor, ve al norte
 +Me dirijo hacia el norte.
 +Estoy en un camino de tierra, desde aquí puedo ir al norte, al sur o al oeste.
 +> ve al sur
 +Eres un maleducado. No haré nada si no me lo pides con la palabra mágica.
 +</​code>​
 +
 +Nótese que, en el caso de //no// interrumpir el procesado con un end(), devolver un valor de tipo ''​String''​ es obligatorio. En el caso de no querer hacer ningún cambio a la cadena de entrada antes de que AGE la procese, simplemente devolveríamos el propio parámetro ''​inputText''​.
preprocesado_de_la_entrada.txt · Última modificación: 2011/03/24 14:03 por al-khwarizmi