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