Herramientas de usuario

Herramientas del sitio


es:el_monstruo_baboso

EL MONSTRUO BABOSO

Ficha

Autor A. G. Verdugo
Computadora Amstrad PCW 8256 / 8512 / 9512
Año 1986
Género Arcade
Controles Teclado
Lenguajes Español
Estado Preservado

Capturas

Descripción

El Monstruo Baboso es un juego bastante entretenido donde nosotros somos el personaje aventurero y aunque sus gráficos no son su fuerte, la aventura se adapta a cualquier forma.

Nuestra misión será rescatar el tesoro con mucho sacrificio, que se encuentra en algún lugar de las cavernas. Esto no parece peligroso, si no fuera porque en sus profundidades habitan los monstruos babosos.

Pero un aventurero no retrocede ante nada, es el momento para acceder a la “Zona prohibida”.

El programa creará un laberinto aleatorio dependiendo de los datos de identificación que nos pide al principio; si se proporcionan iguales en otra partida, el laberinto será igual.

Una vez creado (algo lento) te indicará el número de entradas. Elige la que quieras, porque puedes volver para elegir otra vez. Nuestro objetivo será encontrar la “Llave del tesoro” y a continuación encontrar este, que como es de suponer, estará escondido en lo más profundo de las cavernas.

Tendrás curiosas visitas en el camino; la peor de ellas es la del monstruo (baboso). Evítalo mientras puedas, con un poco de suerte no te encontrarás con él. Desplázate con las flechas, recoge las armas que encuentres con la “c” (para matar al monstruo), y la llave con la “l”. Para redibujar el camino, pulsa “Just”.

Dispones de ciertas ayudas: distancia al tesoro, proximidad del monstruo, pequeño esquemilla de las salidas, sitios por los que pasaste, etc. También tendrás problemas.

Si te has liado mucho, pulsa “b”. Se borrarán las huellas que vas dejando quedarán indicadas, y así podrás reestructurar tu plan de búsqueda. Recuerda que el tesoro sólo se accede con la llave;si no la tienes el camino hacia él está cerrado. Además, ésta puede encontrarse en cualquier parte.

Listado

  • Listado - BABOSO.BAS
10 '    *********************************************************************
20 '    * EL MONSTRUO BABOSO - 1986 A.G.VERDUGO - TU MICRO AMSTRAD 6        *
30 '    *********************************************************************
40 OPTION BASE 1
50 DEFSTR h
60 hesc=CHR$(27)
70 DEF FN com(t1,t2)=(128 OR w(t1,t2)) XOR 128
80 hon=hesc + "p"
90 hoff=hesc + "q"
100 home=hesc+"H"+hesc+"E"
110 hpit=CHR$(7)
120 DEF FN at$(n,y,t$)=hesc+"Y"+CHR$(32+n)+CHR$(32+y)+t$
130 PRINT home
140 PRINT FN at$(5,35,"Hola, colega.")
150 PRINT FN at$(7,20,"Necesito unos datos para tu ficha tecnica.")
160 PRINT FN at$(9,0,"Nombre:  ")
170 LINE INPUT n$
180 FOR a=1 TO LEN(n$)
190 r1=r1+ASC(MID$(n$,a,1))
200 NEXT
210 PRINT FN at$(11,0,"Ni-o o ni-a (o/a) " );
220 a$=INPUT$(1):IF a$<>"o" AND a$<>"a" THEN PRINT hpit ;:GOTO 210
230 s$=a$:PRINT s$
240 PRINT FN at$(13,0,"Numero de Identificacion Fiscal:  ");
250 INPUT "",n
260 PRINT FN at$(15,0,"Tu ultima voluntad:  ");
270 LINE INPUT i$
280 RANDOMIZE n+r1
290 DIM q(20,60),w(20,60)
300 bloqueo=0
310 FOR a=1 TO 20
320      FOR b=1 TO 60
330              q(a,b)=1
340      NEXT
350 NEXT
360 borde=INT(RND*56)+2
370 x=1:y=borde
380 q(x,y)=0
390 x=x+1
400 direc=INT(RND*4)+1
410 q(x,y)=0
420 ON direc GOSUB 450,470,490,510
430 IF b1(1)+b1(2)+b1(3)+b1(4)=4 THEN bloqueo=bloqueo+1:IF bloqueo=6 THEN ERASE q,w:PRINT:PRINT hpit;"Espera, tengo problemas....":GOTO 290 ELSE GOTO 360
440 GOTO 400
450 b1(direc)=1:IF y-2>1 THEN IF q(x,y-2)=1 AND q(x+1,y-2)=1 AND q(x-1,y-2)=1 THEN y=y-1:q(x,y)=0:b1(direc)=0
460 RETURN
470 b1(direc)=1:IF y+2<60 THEN IF q(x,y+2)=1 AND q(x+1,y+2)=1 AND q(x-1,y+2)=1 THEN y=y+1:q(x,y)=0:b1(direc)=0
480 RETURN
490 b1(direc)=1:IF x-2>1 THEN IF q(x-2,y)=1 AND q(x-2,y+1)=1 AND q(x-2,y-1)=1 THEN x=x-1:q(x,y)=0:b1(direc)=0
500 RETURN
510 b1(direc)=1:IF x+2>20 THEN 530 ELSE IF q(x+2,y)=1 AND q(x+2,y+1)=1 AND q(x+2,y-1)=1 THEN x=x+1:q(x,y)=0:b1(direc)=0
520 RETURN
530 q(20,y)=0
540 FOR e=1 TO 5
550     y=INT(RND*56)+2
560     FOR x=1 TO 15+INT(RND*4)
570         direc=INT(RND*3)-1:IF y+direc<2 OR y+direc>58 THEN 570
580         q(x,y)=0
590         y=y+direc
600         q(x,y)=0
610    NEXT
620 NEXT
630 PRINT home
640 DEFSTR x,z
650 DIM x(15)
660 FOR a=1 TO 15
670     FOR b=1 TO 16
680             READ t
690             x(a)=x(a)+CHR$(t)
700 NEXT b,a
710 DATA 32,149,149,32,32,149,149,32,32,147,153,32,32,32,32,32
720 DATA 32,32,32,32,154,154,156,32,154,154,153,32,32,32,32,32
730 DATA  32,149,149,32,154,153,149,32,154,154,153,32,32,32,32,32
740 DATA 32,32,32,32,32,150,154,154,32,147,154,154,32,32,32,32
750 DATA 32,149,149,32,32,149,147,154,32,147,154,154,32,32,32,32
760 DATA 32,32,32,32,154,154,154,154,154,154,154,154,32,32,32,32
770 DATA 32,149,149,32,154,153,147,154,154,154,154,154,32,32,32,32
780 DATA 32,32,32,32,32,150,156,32,32,149,149,32,32,149,149,32
790 DATA 32,149,149,32,32,149,149,32,32,149,149,32,32,149,149,32
800 DATA 32,32,32,32,154,154,156,32,154,156,149,32,32,149,149,32
810 DATA 32,149,149,32,154,153,149,32,154,156,149,32,32,149,149,32
820 DATA 32,32,32,32,32,150,154,154,32,149,150,154,32,149,149,32
830 DATA 32,149,149,32,32,149,147,154,32,149,150,154,32,149,149,32
840 DATA 32,32,32,32,154,154,154,154,154,156,150,154,32,149,149,32
850 DATA 32,149,149,32,154,153,147,154,154,156,150,154,32,149,149,32
860 DIM z(16)
870 z(16)="Hay algun error. Esto es un muro"+hpit
880 FOR a=1 TO 15
890     FOR b=1 TO 16 STEP 4
900             z(a)=z(a)+CHR$(133)+MID$(x(a),b,4)+CHR$(133)+CHR$(10)+STRING$(6,8)
910     NEXT
920     z(a)=CHR$(134)+STRING$(4,138)+CHR$(140)+CHR$(10)+STRING$(6,8)+z(a)+CHR$(131)+STRING$(4,138)+CHR$(137)
930 NEXT
940 FOR a=1 TO 20
950     FOR b=1 TO 60
960             ctrl=0
970             IF q(a,b)=1 THEN ctrl=16:GOTO 1050
980             IF a=1 THEN IF q(a,b)=0 THEN ctrl=ctrl+1
990             IF a=20 THEN IF q(a,b)=0 THEN ctrl=ctrl+8
1000            IF a>1 THEN IF q(a-1,b)=0 OR q(a-1,b)=128 THEN ctrl=ctrl+1
1010            IF b>1 THEN IF q(a,b-1)=0 OR q(a,b-1)=128 THEN ctrl=ctrl+2
1020            IF b<60 THEN IF q(a,b+1)=0 OR q(a,b+1)=128 THEN ctrl=ctrl+4
1030            IF a<20 THEN IF q(a+1,b)=0 OR q(a+1,b)=128 THEN ctrl=ctrl+8
1040            IF RND>0.96 THEN q(a,b)=128
1050            w(a,b)=ctrl
1060 NEXT b,a
1070 WHILE pmh=0
1080    pmv=INT(RND*10)+6:check=INT(RND*58)+1:IF w(pmv,check)<>16 THEN  pmh=check
1090 WEND
1100 WHILE plh=0
1110    plv=INT(RND*10)+8:check=INT(RND*58)+1:IF w(plv,check)<>16 THEN plh=check
1120 WEND
1130 PRINT "Bien, te he asignado un laberinto,   ";n$
1140 ctrl=0
1150 FOR a=1 TO 60
1160      IF w(1,a)<>16 THEN ctrl=ctrl+1
1170 NEXT a
1180 DIM en(ctrl)
1190 ctrl=0:FOR a=1 TO 60
1200    IF w(1,a)<>16 THEN ctrl=ctrl+1:en(ctrl)=a
1210 NEXT
1220 ar=0:pa=0:dor=-1:key=0:coi=0:m$="monstruo"
1230 PRINT:PRINT "Hay";ctrl;"puertas.  ®Por cual quieres entrar?"
1240 PRINT:INPUT  "",n
1250 IF n<1 OR n>ctrl THEN PRINT CHR$(27);"Trampos";s$;".":GOTO 1240
1260 pv=1:ph=en(n)
1270 sube.o.baja=1
1280 PRINT CHR$(27)+"E"+CHR$(27)+"H"
1290 coi=0
1300 pa=pa+1
1310 IF pv<20 THEN 1340
1320 IF key THEN IF (w(pv,ph) AND 8)=0 THEN w(pv,ph)=w(pv,ph)+8:GOTO 1340
1330 IF key=o THEN IF (w(pv,ph)AND 8)<>0 THEN w(pv,ph)=w(pv,ph)-8
1340 PRINT"Entrda n!  ";n
1350 PRINT TAB(20);z((128 OR w(pv,ph))XOR 128)
1360 PRINT "Distancia al tesoro ";INT(SQR((ABS(pv-20)^2)+(ABS(ph-tesoro)^2)))
1370 IF ar>1 AND RND>0.97 THEN rob=INT(RND*ar/2)+1:PRINT FN at$(15,0,hon+"Un enano de las cavernas te roba "+STR$(rob)+CHR$(7)+"  arma");:ar=ar-rob:coi=1:IF rob>1 THEN PRINT "s"+hoff ELSE PRINT hoff
1380 IF RND>0.98 THEN rob=INT(RND*5)+1:PRINT FN at$(16,0,hon+"Un elfo de las profundidades te regala  "+STR$(rob)+hpit+"  arma");:ar=ar+rob:coi=coi+1:IF rob>1 THEN PRINT "s"+hoff ELSE PRINT hoff
1390 IF coi=2 THEN PRINT "El enano se rie de ti. El elfo te da sus armas, pero tambien se rie.":ar=ar+5
1400 IF w(pv,ph)<128 THEN w(pv,ph)=w(pv,ph)+128 ELSE PRINT FN at$(3,30,hon+"Por aqui ya has pasado."+hoff)
1410 IF dor THEN 1460
1420 IF pv<pmv AND (FN com(pmv,pmh) AND 1) THEN pmv=pmv-1
1430 IF pv>pmv AND (FN com(pmv,pmh) AND 8) THEN pmv=pmv+1
1440 IF ph<pmh AND (FN com(pmv,pmh) AND 2) THEN pmh=pmh-1
1450 IF ph>pmh AND (FN com(pmv,pmh) AND 4) THEN pmh=pmh+1
1460 IF q(pv,ph)=128 THEN PRINT FN at$(5,30,hon+"Aqui hay un arma."+hoff+hpit)
1470 PRINT FN at$(8,30,"");:IF ar=0 THEN PRINT "No tienes armas." ELSE PRINT "Tienes  ";hon;ar;hoff;" arma";:IF ar>1 THEN PRINT "s" ELSE PRINT
1480 PRINT FN at$(9,30,"");:IF NOT key THEN PRINT "No tienes la Llave." ELSE PRINT "Tienes la Llave."
1490 IF pmh=ph AND pmv=pv THEN PRINT FN at$(10,0,hon+"Aqui esta el  "+m$+hoff+hpit):IF dor THEN PRINT "(Esta dormido, silencio)" ELSE GOTO 1920
1500 dm=INT(SQR((ABS(pv-pmv)^2)+(ABS(pmh-ph)^2)))
1510 IF dm<5 AND dm>2 THEN PRINT FN at$(5,0,hon+"El Mosntruo"+CHR$(10)+STRING$(11,8)+"anda cerca"+hoff)
1520 IF dm<3 AND dm>0 THEN PRINT FN at$(5,0,hon+"El Monstruo"+CHR$(10)+STRING$(11,8)+"anda MUY cerca"+hoff+hpit)
1530 IF plv=pv AND plh=ph THEN PRINT FN at$(6,30,hon+"Aqui esta la llave"+hoff+hpit)
1540 PRINT STRING$(6,10)
1550 IF RND<0.01 THEN dor=NOT dor
1560 a$=INPUT$(1)
1570 IF a$<>CHR$(30) THEN 1600
1580 IF pv=20 THEN IF key THEN 1810
1590 IF ((128 OR w(pv,ph)) XOR 128) AND 8 THEN  pv=pv+1:sube.o.baja=-1:GOTO 1280 ELSE PRINT "No se puede bajar.":GOTO 1560
1600 IF a$<>CHR$(31) THEN 1690
1610 IF sube.o.baja=1 THEN PRINT "Acabas de entrar.":GOTO 1560
1620 IF pv<>1 THEN 1680
1630 IF w(pv,ph) AND 1 THEN PRINT home; ELSE 1680
1640 a=1:WHILE ph<>en(a):a=a+1:WEND
1650 PRINT "Entraste por la puerta";n
1660 PRINT "Sales por la puerta";a
1670 GOTO 1230
1680 IF ((128 OR w(pv,ph)) XOR 128) AND 1 THEN pv=pv-1:GOTO 1280 ELSE PRINT "No se puede subir.":GOTO 1560
1690 IF a$<>CHR$(6) THEN 1710
1700 IF ((128 OR w(pv,ph)) XOR 128) AND 4 THEN ph=ph+1:GOTO 1280 ELSE PRINT "No se puede ir al Este.":GOTO 1560
1710 IF a$<>CHR$(1) THEN 1730
1720 IF ((128 OR w(pv,ph)) XOR 128) AND 2 THEN ph=ph-1:GOTO 1280 ELSE PRINT "No se puede ir al Oeste.": GOTO 1560
1730 IF a$=CHR$(18) THEN pa=pa-1:GOTO 1280
1740 IF a$="c" THEN IF q(pv,ph)=128 THEN ar=ar+1:q(pv,ph)=0:GOTO 1280 ELSE PRINT "Trampos";s$;". Aqui no hay armas.":GOTO 1560
1750 IF a$="b" THEN IF pa>150 THEN 1860 ELSE PRINT "No te veo en apuros. Olvidalo.":GOTO 1560
1760 IF a$<>"l"THEN 1790
1770 IF key THEN plv=pv:plh=ph:pa=pa-1:key=NOT key:GOTO 1280
1780 IF plv=pv AND plh=ph THEN key=NOT key:pa=pa-1:plv=0:plh=0:GOTO 1280 ELSE PRINT "Trampos";s$;". Aqui no esta la llave.":GOTO 1560
1790 PRINT "Hablame claro,  ";n$:GOTO 1560
1800 GOTO 1560
1810 PRINT "¯Has llegado!. Por fin podras  ";i$;STRING$(4,10)
1820 PRINT:PRINT "Has dado";pa;"pasos, con un rendimiento de ";INT(2500/pa);"%"
1830 PRINT:IF pa<80 THEN PRINT "No esta mal...":GOTO 1850 ELSE PRINT "Eres un";:IF s$="a" THEN PRINT "a  ";ELSE PRINT  "  ";
1840 PRINT "chapuzas,  ";n$;"."
1850 END
1860 PRINT "Espera, voy a borrar las huellas..."
1870 FOR a=1 TO 20
1880     FOR b=1 TO 60
1890             IF w(a,b)>128 THEN w(a,b)=w(a,b)-128
1900 NEXT b,a
1910 pa=pa-1:GOTO 1280
1920 IF key OR ar>5 THEN 1970
1930 FOR d=1 TO 1000:NEXT
1940 fi=(1+ar)/11+RND
1950 IF fi>1 THEN PRINT "Le has matado. Ha habido suerte.":dr=NOT dr:ar=ar-INT(RND*ar):m$="hermano del   "+m$:GOTO 2080
1960 IF fi<1 THEN PRINT "El  ";m$;"  ha acabado contigo,  ";n$:END
1970 PRINT "El  ";m$;  "quiere negociar contigo.";:FOR a=1 TO 2000:NEXT:PRINT "®Aceptas?"
1980 a$=INKEY$:a$=INPUT$(1)
1990 IF INSTR("sSnN",a$)=0 THEN 1980
2000 a$=LOWER$(a$)
2010 IF a$="s" THEN 2020 ELSE 1940
2020 IF key THEN PRINT "El  ";m$;" se queda con la llave.": key=NOT key:GOTO 2040
2030 PRINT "El  ";m$;" se queda con las armas.":ar=0:GOTO 2080
2040 plh=0
2050 WHILE plh=0
2060    plv=INT(RND*10)+8:check=INT(RND*58)+1:IF w(plv,check)<>16 THEN plh=check
2070 WEND
2080 pmh=0
2090 WHILE pmh=0
2100    pmv=INT(RND*10)+6:check=INT(RND*58)+1:IF (w(pmv,check)  AND 16)=0 THEN pmh=check
2110 WEND
2120 IF pmh=ph AND pmv=pv THEN 2080
2130 FOR a=1 TO 2000:NEXT
2140 pa=pa-1:GOTO 1280

Controles

      ↑ = Arriba
      ← = Izquierda
      → = Derecha
      ↓ = Abajo
      c = Recoger arma y matar al mosntruo
      l = Recoger la llave
      b = Borrar las huellas
   Just = Redibujar el camino

Carga del programa

1.- Introducir el disco CP/M por la cara 2
2.- Escribir BASIC y esperar a que cargue
3.- Retirar el disco CP/M e introducir el disco que contiene el juego de El Monstruo Baboso
4.- Teclear run "Baboso" y pulsar la tecla "ENTER"

Extras

  • Listado del programa en revistas de gran tirada de la época

el_monstruo_baboso_programa_01.jpg el_monstruo_baboso_programa_02.jpg el_monstruo_baboso_programa_03.jpg el_monstruo_baboso_programa_04.jpg el_monstruo_baboso_programa_05.jpg

Descarga

Vídeos

es/el_monstruo_baboso.txt · Última modificación: 2022/06/30 10:57 por jevicac