EL LIMITE DE LA IMAGINACION. TRUCOS CON EL PAW

Me decido a escribir este artículo a la vista del poco dominio que tienen los actuales programadores del PAW, aunque yo lo achaco más a su falta de imaginación. Para aclararnos de una vez, me estoy refiriendo a la forma de hacer las Salidas con el PAW, que siempre se dice que no se puede, que si el PAW no tiene un condacto exclusivo para eso, que si tumba, que si taramba... ...pues no señor, lo que hay que tener es un poco de coco y usarlo para pensar. Bien es cierto que el PAW no tiene un condacto propio para poder hacer las salidas, pero sí que lo tiene para hacer el INVENTARIO, que para el caso es lo mismo (Varios nombres perfectamente puntuados con , e y). Todo lo que tenemos que hacer es definir las salidas como objetos, ponerlas en una localidad que no usemos y hacer un inventario de esa localidad. Esta es la explicación en bruto, ahora vayamos paso por paso:

MENSAJES:

                  1: "Las salidas visibles son "
                  2: "La única salida visible es "
                  3: "No hay ninguna salida visible. "
                  4: ". "
MENSAJES DEL SISTEMA:
                  46: ", "
                  47: "y "
                  48: ""
OBJETOS:
                  30: Sur
                  31: Este
                  32: Oeste
                  33: Norte
                      ...Así hasta poner una salida en cada objeto.
BANDERA 100 LIBRE

RESPUESTAS

                  SALID _     NOTZERO 0     Está oscuro
                              ABSENT ZERO   No hay fuente de luz
                              SYSMESS 0     "No se ve nada. "

                  SALID _     PROCESS 3     Llama al Proceso 3
                              DONE

PROCESOS 3:
                  _     _     COPYFF 38 100 Copiamos nuestra posición en
                                            la bandera 100
                              LET 33 2      Ponemos como verbo de la frase
                                            actual Sur
                              MOVE 100      Intentamos mover la bandera 100
                              NOTZERO 100   Si se ha conseguido mover
                              CREATE 30     Crea el objeto Sur
                              PUTO 6        Lo pone en la localidad 6
                              PLUS 100 1    Añade 1 a la bandera 100

                  _     _     COPYFF 38 100 Copiamos nuestra posición en
                                            la bandera 100
                              LET 33 3      Ponemos como verbo de la frase
                                            actual Este
                              MOVE 100      Intentamos mover la bandera 100
                              NOTZERO 100   Si se ha conseguido mover
                              CREATE 31     Crea el objeto Este
                              PUTO 6        Lo pone en la localidad 6
                              PLUS 100 1    Añade 1 a la bandera 100

                              ...Así hasta acabar con todas las salidas

                  _     _     EQ 100 0
                              MES 3         "No hay ninguna salida. "
                              DONE

                  _     _     EQ 100 1
                              MES 2         "La única salida visible es "

                  _     _     NOTEQ 100 1
                              MES 1         "Las salidas visibles son "

                  _     _     LET 51 255    Otro día os explico porqué
                              LISTAT 6      Hace inventario de la localidad 6
                              MESSAGE 4     ". "
                              DESTROY 30    Destruye el objeto Sur
                              DESTROY 31    Destruye el objeto Este
                              DESTROY 32    Destruye el objeto Oeste
                                  ...Igual con las demás salidas-objetos
                              CLEAR 100     Borra el valor de la bandera 100
                              DONE
Y ahora para hacer que cuando tecleamos una dirección errónea nos lo diga y nos escriba las salidas posibles:

MENSAJES:

                 5: "No puedes ir en esa dirección. "

AL FINAL DE LA TABLA DE RESPUESTAS:

                  _     _     GT 33 13      El verbo actual no es de
                                            movimiento
                              SYSMESS 8     "No puedes hacer eso. "
                              DONE

                  _     _     MOVE 38       Como el verbo actual sí es de
                                            movimiento, intenta mover al
                                            jugador
                              DESC          Describe la localidad

                  _     _     MES 5         "No puedes ir en esa dirección. "
                              PROCESS 3     Llama al Proceso 3 para que
                                            escriba las salidas posibles
                              DONE

Y esto es todo, seguro que más de uno se habrá subido por las paredes , pero la cosa no era tan difícil, y mucho menos imposible. (Ahora por lo menos os ahorraréis un montón de mensajes, como por ejemplo PEDRO AMADOR LOPEZ en JOHNNY VAYNA, que lo hizo poniendo un mensaje de salidas para cada una de las localidades). Si nuestro querido director (eso va por tí, Juanjo) me deja seguir con esta sección, en el próximo artículo podríamos ver cómo diferenciar los objetos con artículo definido (EL, LA) e indefinido (UN, UNA) para cuando los llevamos o los vemos en una localidad ("Llevas UN rifle. ") , o cuando los manipulamos ("Dejas EL rifle. ").