0010 REM- HUNT THE WUMPUS 0015 REM: POR GREGORY YOB 0020 PRINT "INSTRUCCIONES (S-N)"; 0030 INPUT I$ 0040 IF I$="N" THEN 52 0050 GOSUB 1000 0052 REM- ANUNCIA WUMPUSII PARA TODOS LOS AFICIONADOS ... AGREGADO POR DAVE 0054 PRINT 0056 PRINT " ATENCION AMANTES DE WUMPUS!!!" 0058 PRINT " HAY AHORA DOS ADICIONES MAS A LA FAMILIA WUMPUS"; 0060 PRINT " DE PROGRAMAS." 0062 PRINT 0064 PRINT " WUMP2: ALGUNOS ARREGLOS DE CAVERNAS DISTINTOS" 0066 PRINT " WUMP3: PELIGROS DIFERENTES" 0067 PRINT 0068 REM- CONFIGURA CAVERNAS (LISTAS DE NODOS DODECAEDRO) 0070 DIM S(20,3) 0080 FOR J=1 TO 20 0090 FOR K=1 TO 3 0100 READ S(J,K) 0110 NEXT K 0120 NEXT J 0130 DATA 2,5,8,1,3,10,2,4,12,3,5,14,1,4,6 0140 DATA 5,7,15,6,8,17,1,7,9,8,10,18,2,9,11 0150 DATA 10,12,19,3,11,13,12,14,20,4,13,15,6,14,16 0160 DATA 15,17,20,7,16,18,9,17,19,11,18,20,13,16,19 0170 DEF FNA(X)=INT(20*RND(0))+1 0180 DEF FNB(X)=INT(3*RND(0))+1 0190 DEF FNC(X)=INT(4*RND(0))+1 0200 REM-LOCALIZA L ARRAY ITEMS 0210 REM-1-YOU,2-WUMPUS,3&4-PITS,5&6-BATS 0220 DIM L(6) 0230 DIM M(6) 0240 FOR J=1 TO 6 0250 L(J)=FNA(0) 0260 M(J)=L(J) 0270 NEXT J 0280 REM-REVISA COINCIDENCIAS (IE L(1)=L(2),ETC) 0290 FOR J=1 TO 6 0300 FOR K=J TO 6 0310 IF J=K THEN 330 0320 IF L(J)=L(K) THEN 240 0330 NEXT K 0340 NEXT J 0350 REM-SET# FLECHAS 0360 A=5 0365 L=L(1) 0370 REM-CORRE EL JUEGO 0375 PRINT "CAZA EL WUMPUS" 0380 REM-ADVERTENCIAS DE PELIGROS Y LOCALIZACION 0390 GOSUB 2000 0400 REM-MOVER O TIRAR 0410 GOSUB 2500 0420 GOTO O OF 440,480 0430 REM-TIRAR 0440 GOSUB 3000 0450 IF F=0 THEN 390 0460 GOTO 500 0470 REM-MOVER 0480 GOSUB 4000 0490 IF F=0 THEN 390 0500 IF F>0 THEN 550 0510 REM-PIERDE 0520 PRINT "JA JA JA - USTED PIERDE!" 0530 GOTO 560 0540 REM-GANA 0550 PRINT "JE JE JE - EL WUMPUS LO ATRAPARA LA VEZ SIGUIENTE!!" 0560 FOR J=1 TO 6 0570 L(J)=M(J) 0580 NEXT J 0590 PRINT "MISMA CONFIGURACION (S-N)"; 0600 INPUT I$ 0610 IF I$#"S" THEN 240 0620 GOTO 360 1000 REM-INSTRUCTIONES 1010 PRINT "BIENVENIDO A 'CAZA EL WUMPUS'" 1020 PRINT " EL WUMPUS VIVE EN UNA CAVERNA DE 20 SALAS. CADA SALA" 1030 PRINT "TIENE TRES TUNELES A OTRAS SALAS. (MIRA A UN" 1040 PRINT "DODECAEDRO PARA VER COMO ES-SI NO SABES LO QUE ES" 1050 PRINT "UN DODECAEDRO, PREGUNTALE A ALGUIEN)" 1060 PRINT 1070 PRINT " PELIGROS:" 1080 PRINT " ABISMOS SIN FONDO - DOS CAVERNAS TIENEN ABISMOS SIN FONDO" 1090 PRINT " SI VA ALLI, CAERA EN EL ABISMO (& PERDERA!)" 1100 PRINT " SUPER MURCIELAGOS - OTRAS DOS CAVERNAS TIENEN SUPERMURCIELAGOS." 1110 PRINT " SI VA ALLI, EL MURCIELAGO LO TOMA Y LO LLEVA A OTRA" 1120 PRINT " CAVERNA AL AZAR. (LO QUE PUEDE SER PROBLEMATICO)" 1130 PRINT 1140 PRINT " WUMPUS:" 1150 PRINT " EL WUMPUS NO ES MOLESTADO POR LOS PELIGROS (TIENE PIES" 1160 PRINT " DE VENTOSAS Y ES MUY GRANDE PARA QUE LO LEVANTEN LOS MURCIELAGOS)." 1170 PRINT " USUALMENTE ESTA DORMIDO. DOS COSAS LO DESPIERTAN: USTED ENTRANDO" 1180 PRINT " A SU CAVERNA O DISPARARLE UNA FLECHA." 1190 PRINT " SI EL WUMPUS DESPIERTA, SE MUEVE (P=.75) A UNA SALA" 1200 PRINT " O SE QUEDA QUIETO (P=.25). DESPUES DE ESO, SI LO ENCUENTRA" 1210 PRINT " EN DONDE SE HAYA, LO DEVORARA (& USTED PIERDE!)" 1220 PRINT 1230 PRINT " USTED:" 1240 PRINT " CADA TURNO PUEDE MOVERSE O DISPARAR UNA FLECHA" 1250 PRINT " MOVER: PUEDE IR A UNA SALA (A TRAVES DE UN TUNEL)" 1260 PRINT " FLECHA: TIENE 5 FLECHAS. PIERDE CUANDO SE LE ACABAN." 1270 PRINT " CADA FLECHA PUEDE IR DE 1 A 5 CAVERNAS. APUNTA DICIENDOLE" 1280 PRINT " A LA COMPUTADORA LA CAVERNA#S A LA QUE QUIERE QUE VAYA LA FLECHA." 1290 PRINT " SI LA FLECHA NO PUEDE IR EN SA DIRECCION (EJ NO HAY TUNEL) SE MUEVE" 1300 PRINT " AL AZAR HASTA LA SIGUIENTE CAVERNA." 1310 PRINT " SI LA FLECHA DA AL WUMPUS, USTED GANA." 1320 PRINT " SI LA FLECHA LE DA A USTED, USTED PIERDE." 1330 PRINT 1340 PRINT " CUIDADO:" 1350 PRINT " CUANDO ESTA A UNA SALA DE DISTANCIA DEL WUMPUS O UN PELIGRO," 1360 PRINT " LA COMPUTADORA LE DIRA:" 1370 PRINT " WUMPUS - 'APESTA A WUMPUS'" 1380 PRINT " MURCIELAGO - 'MURCIELAGOS CERCA'" 1390 PRINT " ABISMO - 'SIENTO UNA CORRIENTE DE AIRE'" 1400 PRINT "" 1410 RETURN 2000 REM-IMPRIME LOCALIZACION Y ADVERTENCIAS DE PELIGRO 2010 PRINT 2020 FOR J=2 TO 6 2030 FOR K=1 TO 3 2040 IF S(L(1),K)#L(J) THEN 2110 2050 GOTO J-1 OF 2060,2080,2080,2100,2100 2060 PRINT "APESTA A WUMPUS!" 2070 GOTO 2110 2080 PRINT "SIENTO UNA CORRIENTE DE AIRE" 2090 GOTO 2110 2100 PRINT "MURCIELAGOS CERCA!" 2110 NEXT K 2120 NEXT J 2130 PRINT "ESTA EN LA CAVERNA "L(1) 2140 PRINT "TUNELES LLEVAN A "S(L,1);S(L,2);S(L,3) 2150 PRINT 2160 RETURN 2500 REM-ELIGE OPCION 2510 PRINT "DISPARAR FLECHA O MOVERSE (F-M)"; 2520 INPUT I$ 2530 IF I$#"F" THEN 2560 2540 O=1 2550 RETURN 2560 IF I$#"M" THEN 2510 2570 O=2 2580 RETURN 3000 REM-SUBRUTINA DE LA FLECHA 3010 F=0 3020 REM-RUMBO DE LA FLECHA 3030 DIM P(5) 3040 PRINT "NO. DE CAVERNAS(1-5)"; 3050 INPUT J9 3060 IF J9<1 OR J9>5 THEN 3040 3070 FOR K=1 TO J9 3080 PRINT "CAVERNA #"; 3090 INPUT P(K) 3095 IF K <= 2 THEN 3115 3100 IF P(K) <> P(K-2) THEN 3115 3105 PRINT "LAS FLECHAS NO SON TAN INTELIGENTES - PRUEBE OTRA CAVERNA" 3110 GOTO 3080 3115 NEXT K 3120 REM-DISPARA FLECHA 3130 L=L(1) 3140 FOR K=1 TO J9 3150 FOR K1=1 TO 3 3160 IF S(L,K1)=P(K) THEN 3295 3170 NEXT K1 3180 REM-SIN TUNEL PARA FLECHA 3190 L=S(L,FNB(1)) 3200 GOTO 3300 3210 NEXT K 3220 PRINT "HA ERRADO" 3225 L=L(1) 3230 REM-MUEVE WUMPUS 3240 GOSUB 3370 3250 REM-REVISA MUNICION 3255 A=A-1 3260 IF A>0 THEN 3280 3270 F=-1 3280 RETURN 3290 REM-VER SI LA FLECHA ESTA EN L(1) O L(2) 3295 L=P(K) 3300 IF L#L(2) THEN 3340 3310 PRINT "AJA! LE DIO AL WUMPUS!" 3320 F=1 3330 RETURN! 3340 IF L#L(1) THEN 3210 3350 PRINT "OUCH! LA FLECHA LE DIO A USTED!" 3360 GOTO 3270 3370 REM-SUBRUTINA MOVER WUMPUS 3380 K=FNC(0) 3390 IF K=4 THEN 3410 3400 L(2)=S(L(2),K) 3410 IF L(2)#L THEN 3440 3420 PRINT "CRUNCH CRUNCH CRUNCH- EL WUMPUS LO HA ATRAPADO!" 3430 F=-1 3440 RETURN 4000 REM- RUTINA MOVERSE 4010 F=0 4020 PRINT "HACIA DONDE"; 4030 INPUT L 4040 IF L<1 OR L>20 THEN 4020 4050 FOR K=1 TO 3 4060 REM- REVISA SI ES MOVIDA LEGAL 4070 IF S(L(1),K)=L THEN 4130 4080 NEXT K 4090 IF L=L(1) THEN 4130 4100 PRINT "NO ES POSIBLE -"; 4110 GOTO 4020 4120 REM-CHECK FOR HAZARDS 4130 L(1)=L 4140 REM-WUMPUS 4150 IF L#L(2) THEN 4220 4160 PRINT "...OOPS! BUMPED A WUMPUS!" 4170 REM-MOVE WUMPUS 4180 GOSUB 3380 4190 IF F=0 THEN 4220 4200 RETURN 4210 REM-ABISMO 4220 IF L#L(3) AND L#L(4) THEN 4270 4230 PRINT "AAAAAAAH! . . . CAYO AL ABISMO" 4240 F=-1 4250 RETURN 4260 REM-MURCIELAGOS 4270 IF L#L(5) AND L#L(6) THEN 4310 4280 PRINT "ZAP--LO ATRAPO EL SUPERMURCIELAGO! TERMINARA EN CUALQUIER LADO!" 4290 L=FNA(1) 4300 GOTO 4130 4310 RETURN 5000 END