Digamos que estaba escribiendo algo, y accidentalmente lo escribí en el cuadro equivocado:
+-------+--------+
| Verbs | Nouns  |
+-------+--------+
| Truck |        |
| eat   | Banana |
|       | Car    |
+-------+--------+
Entonces, siendo flojo, simplemente dibujo una flecha al espacio que debería ser:
+-------+--------+
| Verbs | Nouns  |
+-------+--------+
|[Truck]--->     |
| eat   | Banana |
|       | Car    |
+-------+--------+
Su trabajo es hacer que se vea bonito: conviértalo en esto:
+-------+--------+
| Verbs | Nouns  |
+-------+--------+
|       | Truck  |
| eat   | Banana |
|       | Car    |
+-------+--------+
Reglas
- Las frases o palabras están entre corchetes ([...])
- Las entradas multilínea se denotan como [...](multilínea eliminada), nueva línea, [...] --...-->. Entonces la flecha siempre sale del soporte- inferiorderecho
Por ejemplo:
+-----------+----------+
|   Verbs   |  Nouns   |
+-----------+----------+
|           |          |
|[is a noun]->         |
| eat       | Banana   |
|           | Car      |
+-----------+----------+
Se convierte en:
+-----------+----------+
|   Verbs   |  Nouns   |
+-----------+----------+
|           |          |
|           | is a noun|
| eat       | Banana   |
|           | Car      |
+-----------+----------+
- Las casillas están delimitadas por más ("+"), y se debe suponer que las flechas no pasarán sobre un más
- Siempre habrá espacio al final de una flecha para que la palabra o frase se ajuste
- El orden importa: la palabra debe aparecer donde apunta la flecha, aunque la alineación vertical no es importante
- Las flechas pueden girar 90 grados a la vez, pero solo entre "/" y "\" (ver más abajo)
Por ejemplo:
    +-----------+----------+
    |   Verbs   |  Nouns   |
    +-----------+----------+
    | [Truck]--\|          |
  /------------/|        <--\
  | | eat       | Banana   ||
  | |  /--\     | Car      ||
  | +--|--|-----+----------+|
  \----/  \-----------------/
La competencia
Cualquier entrada es aceptable (archivo de texto, STDIN, etc.) 
cualquier salida legible es aceptable (archivo de texto, STDOUT, etc.)
Aquí hay algunos ejemplos más:
Este es el código de golf, por lo que gana el código más corto.
Algunos casos de prueba:
   +--------+----------+-------------+
   | Colors |  Foods   |  Countries  |
   +--------+----------+-------------+
   | red    | pizza    | Switzerland |
 /-->     /---->       |             |
 | |[kale]/ | hot dogs | Brazil      |
 | |     <----------------------\    |
 | | orange |[yellow]\ | [green]/    |
 | +--------+--------|-+-------------+
 \-------------------/
/------------------------------------------\
|                                          |
|  +------------------+----------+-------+ |
|  | frog             |          |       | |
|  | forge            | dog      | eagle | |
|  | foundation       | diligent | ease  | |
|  |[Brother]--\      | down     | elf   | |
|  |           |      |[egg]--\  |[fort]---/
\---->         |      |       |  |       |  
   |           \-\    |       \----->    |  
   +-------------|----+----------+       |  
   |   Boy       \-->            |       |  
   |   Bull                      |       |  
   |   Browser                   |       |  
   +-----------------------------+-------+ 
             /--------------------------------------\
             |                     /---------------\|
/------------|---------------------/               ||
|            |               /---------------\     ||
|  +---------|-+-----------+-|------+--------|+    ||
\---->       | |  clarinet | \>     | [drums]/|    ||
   | [viola]\\--->         |        +---------+    ||
   |        \----->        |        |         |/---/|
   +-----------+ [violin]\ |        | [cello]--/    |
   |        <------------/ |        +---------+     |
   |           +-----------+      <----------\|     |
   |           |           |        |  [tuba]/|     |
   |           | [piano]\  |        |         |     |
   |        <-----------/  |        |         |     |
   |           +-----------+--------+         |     |
   |           |                    |[trumpet]------/
   | [flute]----->                  |         |      
   |           |     saxaphone      |         |      
   +-----------+--------------------+---------+ 

Respuestas:
Python,
700681676667 caracteresTodavía no está totalmente golfizado, pero quería dar una respuesta.
Estrategia :
Convierto la entrada en una matriz. Luego lo escaneo línea por línea, encontrando
[s. Para cada uno[, encuentro la coincidencia], luego llamo a la función de rastreoTcon el punto inmediatamente a la derecha del]. La función de seguimiento sigue la línea, reemplaza la ruta con' 's a medida que avanza y regresa a donde debe ir la palabra. Luego borro la palabra en la ubicación anterior y pongo la palabra en la nueva ubicación.Finalmente, llamo
F, que reconstruye recursivamente las cajas.Pruebas :
fuente