Herramientas de usuario

¡Esta es una revisión vieja del documento!


wumpus.bas
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

Este sitio web utiliza cookies para guardar datos esenciales de su actividad, como su autenticación. Al entrar acepta el uso de cookies.

Más información