====== EL MONSTRUO BABOSO ====== {{:otros:El_Monstruo_Baboso_p1.jpg?690|}} ===== Ficha ===== ^ Autor | A. G. Verdugo | ^ Computadora | Amstrad PCW 8256 / 8512 / 9512 | ^ Año | 1986 | ^ Género | Arcade | ^ Controles | Teclado | ^ Lenguajes | Español | ^ Estado | [[preservado|Preservado]] | ===== Capturas ===== {{:otros:El_Monstruo_baboso_screenshot01.png?220}} {{:otros:El_Monstruo_baboso_screenshot02.png?220}} {{:otros:El_Monstruo_baboso_screenshot03.png?220}} {{:otros:El_Monstruo_baboso_screenshot04.png?220}} ===== 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 pvpmv AND (FN com(pmv,pmh) AND 8) THEN pmv=pmv+1 1440 IF phpmh 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 {{:otros:El_Monstruo_Baboso_programa_01.jpg?170}} {{:otros:El_Monstruo_Baboso_programa_02.jpg?170}} {{:otros:El_Monstruo_Baboso_programa_03.jpg?170}} {{:otros:El_Monstruo_Baboso_programa_04.jpg?170}} {{:otros:El_Monstruo_Baboso_programa_05.jpg?170}} ===== Descarga ===== * {{:otros:El Monstruo Baboso (Basic).zip|El Monstruo Baboso }}(juego en formato dsk, comprimido con zip) ===== Vídeos ===== {{ youtube>_WFnLUvsdtE?large }}