/* MANSIÓN por Javier Basilio */ global entero puerhab; /* indica si la puerta de la habitación inicial está abierta */ global entero cajon; /* para ver si el cajón de la loc. 1 está abierto */ /* VERBOS */ verbo bajar; global entero gloc; entero a; si gloc=ESCALERASA imprime 'Empiezas a bajar las escaleras...'; imprime '¡pero tropiezas y caes!'; a=1; mientras a<10 imprime 'ouch'; a=a+1; fmientras; imprime '* FIN * (La palmaste)'; quitar; fsi; imprime 'No veo a donde quieres bajar.'; verbo romper; global entero gloc; si gloc=HABITACION y nombre='ventana' imprime 'Te lanzas de cabeza contra el cristal en un ataque de ira...'; imprime 'Sientes como los pedazitos se te clavan en tu cuerpo desnudo...'; imprime ' * FIN *'; quitar; fsi; imprime 'No seas tan agresivo.'; verbo salir; global entero gloc; si gloc=HABITACION y lee_salida(oeste,HABITACION)=0 imprime 'La puerta está cerrada.'; ret; fsi; si gloc=HABITACION y lee_salida(oeste,HABITACION)>0 imprime 'Sales de la habitación.'; gloc=lee_salida(oeste,HABITACION); ret; fsi; imprime 'No se bien a dónde quieres salir.'; verbo abrir; global entero gloc; global entero cajon; global entero puerhab; entero cuenta1; entero cuenta2; si (gloc=1) si nombre='ventana' imprime 'Parece atascada.'; fsi; si nombre='cajón' oo nombre='cajon' si cajon imprime 'Ya está abierto.'; sino imprime 'Abres el cajón con cuidado.'; cajon=1; fsi; ret; fsi; si nombre='puerta' si puerhab imprime 'Ya está abierta.'; sino imprime 'Lo intentas, pero parece un poco dura...'; cuenta1=0; cuenta2=0; mientras (cuenta1<1000) cuenta1=cuenta1+1; mientras (cuenta2<50000) cuenta2=cuenta2+1; fmientras; fmientras; imprime 'Con un poco de esfuerzo lo consigues.'; puerhab=cierto; pon_salida(oeste,PASILLOSUP,HABITACION); /* haz la conexión */ /* modificamos la descripción */ pon_desc(lee_desc(HABITACION)+'\nLa puerta está abierta.',HABITACION); fsi; ret; fsi; fsi; imprime 'Eso no tiene mucho sentido ...'; verbo examinar; global entero gloc; /* para acceder a la localidad actual */ global entero puerhab; global entero cajon; si nombre='almohada' y obj_tiene(obj_num('almohada')) imprime 'Está mullidita'; ret; fsi; si (gloc=1) si nombre='puerta' si puerhab imprime 'Está abierta'; sino imprime 'Está cerrada'; fsi; ret; fsi; si nombre='cama' imprime 'Alguien debió correrse una buena juerga anoche...'; ret; fsi; si nombre='ventana' imprime 'Parece que la casa está rodeada de un frondoso bosque.\nNo tienes ni idea de donde estás.'; ret; fsi; si nombre='aparador' imprime 'Tiene un cajón.'; ret; fsi; si nombre='cajón' oo nombre='cajon' si no(cajon) /* o lo que es lo mismo, cajon=0 */ imprime 'Está cerrado'; sino imprime 'Está abierto'; si (cajon=1) /* La primera apertura deja el cajón a 1*/ imprime '¡Hay una navaja en su interior!'; obj_a_loc(obj_num('navaja'),HABITACION); cajon=2; /* la próxima vez ya no la verá */ sino imprime 'Está vacio.'; fsi; fsi; ret; fsi; si nombre='espejo' imprime 'Hmmm ... la verdad es que estñas un poco gordo.'; ret; fsi; fsi; imprime 'No tiene nada de especial.'; verbo grabar; imprime 'No está implementado todavía'; verbo cargar; imprime 'No está implementado todavía'; verbo save; usa grabar; verbo load; usa cargar; verbo x; global entero gloc; cadena c; entero hipo; hipo=falso; c='SALIDAS DE LA LOCALIDAD:'; si lee_salida(norte,gloc) c=c+'norte '; hipo=cierto; fsi; si lee_salida(este,gloc) c=c+'este '; hipo=cierto; fsi; si lee_salida(oeste,gloc) c=c+'oeste '; hipo=cierto; fsi; si lee_salida(sur,gloc) c=c+'sur'; hipo=cierto; fsi; si hipo imprime c; sino imprime 'No se ven salidas.'; fsi; /* SINÓNIMOS */ verbo coge; usa coger; verbo deja; usa dejar; verbo n; usa norte; verbo e; usa este; verbo o; usa oeste; verbo s; usa sur; verbo rompe; usa romper; verbo i; usa inventario; verbo ex; usa examinar; verbo examina; usa examinar; verbo abre; usa abrir; verbo mirar; usa describir; verbo mira; usa describir; verbo sal; usa salir; /* Esta rutina se ejecuta al iniciar la aventura */ sub inicio; global entero puerhab; global entero cajon; imprime 'MANSIÓN - Una aventura de Javier Basilio'; imprime '\nPoco recuerdas de la noche anterior. Unas chicas que te invitaron a una fiesta,'; imprime 'un coche, una vieja mansión ... Acabas de despertar y descubres que estás comple-'; imprime 'tamente desnudo en una habitación. Ninguna de tus pertenencias está a la vista.'; imprime '\n\n'; /* reseteamos variables*/ puerhab=0; cajon=0;