====== TXIKI ====== {{:otros:Txiki_p1.jpg?690|}} ===== Ficha ===== ^ Autor | Jose Miguel Ezkerro | ^ Computadora | Amstrad PCW 8256 / 8512 / 9512 | ^ Año | 1988 | ^ Género | Arcade | ^ Controles | Teclado | ^ Lenguajes | Español | ^ Estado | [[preservado|Preservado]] | ===== Capturas ===== {{:otros:Txiki_screenshot01.png?220}} {{:otros:Txiki_screenshot02.png?220}} {{:otros:Txiki_screenshot03.png?220}} {{:otros:Txiki_screenshot04.png?220}} ===== Descripción ===== El juego consiste en recorrer un laberinto luchando contra los enemigos, siempre contra reloj, y con la posibilidad de recargar energía y tiempo. Por otra parte, no resulta necesario explicar mucho más, ya que el propio programa tiene instrucciones incorporadas. ===== Listado ===== * **__Listado 1 - TXIKIBI.BAS__** 10 ' -------------------------------------------------- 20 ' DIBUJA PANTALLA 30 ' -------------------------------------------------- 40 DEF FN CUR$(H,V)=CHR$(27)+"Y"+CHR$(32+V)+CHR$(32+H) 50 VER=7:HOR=5:MUNE$=CHR$(27):BICHO$=CHR$(187):FUER$=CHR$(128):PI$=CHR$(7):REP$=CHR$(188):NBI=30:VI$=CHR$(27)+"p":VN$=CHR$(27)+"q":FUEL$=VI$+CHR$(136)+VN$:GAS$=VI$+" "+VN$:PUN$=VI$+CHR$(128)+VN$ 60 CLS$=CHR$(27)+"E"+CHR$(27)+"H":DESAC$=CHR$(27)+"f":ACT$=CHR$(27)+"e" 70 IF SI=0 THEN GOSUB 220 80 PRINT CLS$:DIM POK%(90,30) 90 FOR G=1 TO 23 100 READ A1,A2,A3,A,B,C,D 110 FOR T=A TO B:IF T=A+1 OR T=B THEN READ A1,A2,A3 120 PRINT FN CUR$(C-1,T);CHR$(A1):POK%(C-1,T)=1 130 FOR J=C TO D:PRINT FN CUR$(J,T);CHR$(A2):POK%(J,T)=1:NEXT J:PRINT FN CUR$(D+1,T);CHR$(A3):POK%(D+1,T)=1:NEXT T 140 NEXT G 150 PRINT FN CUR$(13,22);CHR$(133):POK%(13,22)=1 160 FOR T=14 TO 24:POK%(T,14)=4:NEXT T 170 FOR T=14 TO 24:POK%(T,18)=5:NEXT T 180 CHAIN "TXIKI",10,ALL 190 ' -------------------------------------------------- 200 ' LETRAS 210 ' -------------------------------------------------- 220 DIM RECOR(10),NOMBRE$(10):IF FIND$("A:RECTXIKI")="" THEN 240 230 OPEN "I",1,"A:RECTXIKI":FOR T=1 TO 10:INPUT #1,RECOR(T),NOMBRE$(T):NEXT T:CLOSE 240 PRINT CLS$;DESAC$ 250 R31$=CHR$(131):R40$=CHR$(140):R34$=CHR$(134):R37$=CHR$(137):R33$=CHR$(133):R38$=CHR$(138) 260 PRINT FN CUR$(10,10);R34$;:FOR T=1 TO 11:PRINT FN cur$(10+T,10);R38$:NEXT:PRINT FN CUR$(22,10);R40$;FNCUR$(22,11);R33$;FN CUR$(22,12);R37$;:FOR T=1 TO 3:PRINT FN cur$(22-T,12);R38$;:NEXT T:PRINT FN cur$(18,12);R34$; 270 FOR T=1 TO 6:PRINT FN cur$(18,12+T);R33$:NEXT:PRINT FN cur$(18,19);R37$:FOR T=1 TO 3:PRINT FN cur$(18-T,19);R38$;:NEXT:PRINT FN cur$(14,19);R31$:FOR T=1 TO 6:PRINT FN cur$(14,19-T);R33$:NEXT 280 PRINT FN cur$(14,12);R40$:FOR T=1 TO 3:PRINT FN cur$(14-T,12);R38$:NEXT:PRINT FN cur$(10,12);R31$;FN cur$(10,11);R33$ 290 ' ----------------------------------------------- 300 PRINT FN cur$(28,10);R34$;STRING$(3,R38$);R40$;:FOR T=1 TO 2:PRINT FN cur$(31+T,10+T);R31$;R40$;:NEXT T:PRINT FN cur$(34,13);R31$;R37$;:FOR T=1 TO 2:PRINT FN cur$(34+T,13-T);R34$;R37$:NEXT T 310 PRINT FN CUR$(37,10);R34$;STRING$(3,R38$);R40$;FN cur$(41,11);R33$;:FOR T=1 TO 3:PRINT FN cur$(41-T,11+T);R34$;R37$;:NEXT T:FOR T=1 TO 3:PRINT FN cur$(37+T,14+T);R31$;R40$;:NEXT T 320 PRINT FN cur$(41,18);R33$;FN cur$(37,19);R31$;STRING$(3,R38$);R37$;:FOR T=1 TO 2:PRINT FN cur$(37-T,19-T);R31$;R40$;:NEXT T:PRINT FN cur$(34,16);R34$;R40$;:FOR T=1 TO 2:PRINT FN cur$(34-T,16+T);R34$;R37$;:NEXT T 330 PRINT FN cur$(28,19);R31$;STRING$(3,R38$);R37$;FN cur$(28,18);R33$;:FOR T=1 TO 3:PRINT FN cur$(27+T,18-T);R34$;R37$;:NEXT T:FOR T=1 TO 3:PRINT FN cur$(31-T,15-T);R31$;R40$;:NEXT T:PRINT FN cur$(28,11);R33$ 340 ' ---------------------------------------------------------- 350 PRINT FN CUR$(47,10);R34$;STRING$(3,R38$);R40$;:FOR T=1 TO 8:PRINT FN cur$(51,10+T);R33$;:NEXT T:PRINT FN cur$(47,19);R31$;STRING$(3,R38$);R37$;:FOR T=1 TO 8:PRINT FN cur$(47,19-T);R33$;:NEXT T 360 ' ---------------------------------------------------------- 370 PRINT FN cur$(57,10);R34$;STRING$(3,R38$);R40$;:FOR T=1 TO 3:PRINT FN cur$(61,10+T);R33$;:NEXT T:PRINT FN cur$(61,13);R31$;R37$;:FOR T=1 TO 2:PRINT FN cur$(60+T*2,13-T);R34$;R38$;R37$;:NEXT T:PRINT FN cur$(66,10);R34$;STRING$(3,R38$);R40$ 380 PRINT FN cur$(70,11);R33$;:FOR T=1 TO 3:PRINT FN cur$(70-T*2,11+T);R34$;R38$;R37$:NEXT T:FOR T=1 TO 3:PRINT FN cur$(62+T*2,14+T);R31$;R38$;R40$:NEXT T:PRINT FN cur$(70,18);R33$;FN cur$(66,19);R31$;STRING$(3,R38$);R37$ 390 FOR T=1 TO 2:PRINT FN cur$(66-T*2,19-T);R31$;R38$;R40$:NEXT T:PRINT FN cur$(61,16);R34$;R40$;:FOR T=1 TO 2:PRINT FN cur$(61,16+T);R33$:NEXT T:PRINT FN cur$(57,19);R31$;STRING$(3,R38$);R37$;:FOR T=1 TO 8:PRINT FN cur$(57,19-T);R33$:NEXT T 400 ' ------------------------------------------------------ 410 PRINT FN cur$(76,10);R34$;STRING$(3,R38$);R40$;:FOR T=1 TO 8:PRINT FN cur$(80,10+T);R33$;:NEXT T:PRINT FN cur$(76,19);R31$;STRING$(3,R38$);R37$;:FOR T=1 TO 8:PRINT FN cur$(76,19-T);R33$;:NEXT T 420 IF XX=0 THEN PRINT VI$:XX=1:GOTO 250 ELSE PRINT VN$ 430 IF INSTRUC THEN 470 440 PRINT FN cur$(35,5);VI$;SPACE$(23);VN$:A$="DAR INSTRUCCIONES S/N"+SPACE$(20):FOR T=89 TO 55 STEP-1:PRINT FN cur$(T,5);MUNE$:PRINT FN CUR$(T+1,5);" ":NEXT T 450 FOR T=1 TO 32:B$=MID$(A$,T,1):PRINT FN CUR$(34+T,5);B$;VI$;SPACE$(22);VN$;MUNE$:NEXT T:PRINT FN CUR$(89,5);" ":FOR T=67 TO 90:PRINT FN CUR$(T,5);" ":FOR J=1 TO 50:NEXT J,T 460 P$="":WHILE P$<>"S" AND P$<>"N":SORTEO=SORTEO+11:P$=UPPER$(INKEY$):WEND:IF P$="S" THEN 540 470 PRINT FN cur$(30,5);SPACE$(40) 480 A$=SPACE$(35)+"ELIGE NIVEL del 1 al 5 "+SPACE$(32) 490 FOR t=1 TO 89:PRINT FN cur$(T,25);MUNE$ 500 B$=MID$(A$,T,1):PRINT FN cur$(T-1,25);B$:NEXT T 510 P$="":WHILE P$="":P$=INKEY$:SORTEO=SORTEO+11:WEND:IF INSTR("12345",P$)=0 THEN PRINT PI$;:GOTO 510 520 PRINT P$:NIVEL=VAL(P$) 530 RETURN 540 ' ----------------------------------------------------------- 550 ' INSTRUCCIONES 560 ' ----------------------------------------------------------- 570 PRINT cls$:PRINT FN cur$(33,2);"I N S T R U C C I O N E S " 580 PRINT FN CUR$(34,7);MUNE$:PRINT FN CUR$(37,7);"TXIKI":PRINT 590 PRINT TAB(35);BICHO$;" ENEMIGO":PRINT:PRINT TAB(35);FUEL$;" RECARGADOR DE TIEMPO":PRINT 600 PRINT TAB(35);REP$;" RECARGADOR DE FUERZA" 610 PRINT:PRINT TAB(35);PUN$;" BONIFICACION (10 a 200 puntos)" 620 PRINT:PRINT:PRINT CHR$(27)+"r";"OBJETIVO";CHR$(27);"u" 630 PRINT:PRINT "- ACABAR CON LAS HORDAS ENEMIGAS; YENDO A SU ENCUENTRO CUANDO TENGAS MAS FUERZA QUE EL" 640 PRINT:PRINT " EN CASO DE TENER AMBOS LA MISMA FUERZA, UNAS VECES GANARA TXIKI Y OTRAS EL ENEMIGO" 650 PRINT:PRINT " CUANDO ELIMINES A TODOS LOS ENEMIGOS SE TE BONIFICARA CON 1.000 PUNTOS 660 PRINT FN cur$(32,27);"PARA CONTINUAR PULSA UNA TECLA":WHILE INKEY$="":WEND 670 PRINT CLS$:PRINT FN CUR$(35,3);"M O V I M I E N T O" 680 PRINT:PRINT:PRINT "- EL MOVIMIENTO DE TXIKI SE EFECTUA CON LAS TECLAS MARCADAS CON FLECHAS" 690 PRINT:PRINT " EN LA DERECHA DEL TECLADO" 700 PRINT:PRINT "- NO ES NECESARIO MANTENER LA TECLA APRETADA PARA MOVER A TXIKI, CON APRETAR UNA VEZ":PRINT:PRINT " LA TECLA CORRESPONDIENTE ES SUFICIENTE" 710 PRINT:PRINT "- SI DESEAS DETENER A TXIKI DEBES APRETAR LA TECLA - JUST -" 720 PRINT TAB(57);"0" 730 PRINT:PRINT "- PARA DETENER MOMENTANEAMENTE EL JUEGO Y PODER CONTINUAR MAS TARDE":PRINT:PRINT " DEBES DE PULSAR LA TECLA - f6-":PRINT TAB(31);"f5" 740 PRINT:PRINT "- EN EL CENTRO DERECHA DE LA PANTALLA HAY UN PUENTE POR EL QUE PUEDES":PRINT:PRINT " PASAR POR DEBAJO PARA ACORTAR CAMINO" 750 PRINT FN CUR$(32,27);"PARA CONTINUAR PULSA UNA TECLA":WHILE INKEY$="":WEND 760 PRINT CLS$:PRINT:PRINT CHR$(27)+"r";"FUERZA";CHR$(27)+"u" 770 PRINT:PRINT "-LA FUERZA SE CONSIGUE SITUANDOTE EN LA POSICION DE LOS RECARGADORES DE FUERZA" 780 PRINT:PRINT "- SIEMPRE HABRA TRES RECARGADORES DE FUERZA, SI ATRAPAS UNO APARECERA EL OTRO EN SU LUGAR":PRINT:PRINT " EN CUALQUIER PARTE D ELA PANTALLA" 790 PRINT:PRINT "- LA FUERZA AUMENTA EN UNO CADA VEZ QUE ATRAPAS UN RECARGADOR":PRINT:PRINT " Y DISMINUYE EN UNO CADA VEZ QUE ELIMINAS A UN ENEMIGO" 800 PRINT:PRINT "- SOLO PUEDES VENCER A LOS ENEMIGOS SI TIENES MAS FUERZA QUE ELLOS":PRINT:PRINT "- EN CASO DE TENER AMBOS LA MISMA FUERZA UNAS VECES VENCERA TXIKI Y OTRAS EL ENEMIGO" 810 PRINT:PRINT "- TXIKI TIENE UN LIMITE DE ACUMULACION DE FUERZA, POR LO QUE NO PODRA ACUMULAR MAS DE 15":PRINT:PRINT " EN LA PRIMERA PANTALLA, 13 EN LA SEGUNDA Y ASI SUCESIVAMENTE HASTA UN MINIMO DE 6" 820 PRINT:PRINT "- EL NIVEL QUE SE ELIGE AL PRINCIPIO DEL JUEGO ES LA FUERZA DEL ENEMIGO" 830 PRINT:PRINT "- LA FUERZA DE CADA UNO ESTA INDICADA EN LA PARTE SUPERIOR IZQUIERDA DE LA PANTALLA" 840 PRINT FN CUR$(32,27);"PARA CONTINUAR PULSA TECLA":WHILE INKEY$="":WEND 850 PRINT CLS$:PRINT:PRINT CHR$(27)+"r";"TIEMPO";CHR$(27)+"u" 860 PRINT:PRINT "- EL TIEMPO ESTA MARCADO EN LA PARTE SUPERIOR DERECHA DE LA PANTALLA 870 PRINT:PRINT "- SI SE AGOTA EL TIEMPO, TXIKI PIERDE TODA LA FUERZA QUE TENIA ACUMULADA":PRINT:PRINT " Y APARECEN 5 ENEMIGOS MAS EN LA PANTALLA 880 PRINT:PRINT "- SE CONSIGUE MAS TIEMPO COLOCANDOSE EN LA POSICION DE LOS RECARGADORES DE TIEMPO" 890 PRINT:PRINT "- SI SE ACABASE EL TIEMPO 3 VECES SEGUIDAS EL JUEGO FINALIZARIA" 900 PRINT:PRINT "- LOS RECARGADORES APARECERAN UNO A UNO EN LOS SITIOS ASIGNADOS" 910 PRINT:PRINT "- CUANDO QUEDEN MENOS DE 15 ENEMIGOS EL TIEMPO PASARA CADA VEZ MAS DEPRISA" 920 PRINT:PRINT CHR$(27)+"r";"VIDAS";CHR$(27)+"u":PRINT:PRINT "- EN PRINCIPIO SE TIENEN 3 VIDAS, PERO A LOS 3.000 PUNTOS AUMENTAN EN UNA" 930 PRINT:PRINT "- CADA VEZ QUE TE GANE UN ENEMIGO SE TE QUITARA UNA VIDA" 940 PRINT:PRINT "- LAS VIDAS DISPONIBLES ESTAN REFLEJADAS EN LA PARTE SUPERIOR DERECHA DE LA PANTALLA" 950 PRINT:PRINT "- SI TE QUEDAS SIN VIDAS EL JUEGO ACABARA" 960 PRINT FN CUR$(32,28);"PARA CONTINUAR PULSA TECLA":WHILE INKEY$="":WEND 970 INSTRUC=1:GOTO 240 980 DATA 134,142,140,5,5,2,87,134,142,140 990 DATA 134,142,140,6,6,4,85,139,139,139 1000 DATA 135,142,143,6,28,2,1,135,142,141,135,139,143 1010 DATA 134,142,140,29,29,2,87,131,139,137 1020 DATA 134,142,140,28,28,4,85,142,142,142 1030 DATA 143,142,141,6,28,88,87,135,142,141,143,139,141 1040 DATA 134,142,140,9,11,6,40,135,143,141,131,139,137 1050 DATA 134,142,140,9,11,44,45,135,143,141,131,139,137 1060 DATA 134,142,140,13,21,6,12,135,143,141,131,139,141 1070 DATA 134,142,141,23,26,6,12,135,143,141,131,139,137 1080 DATA 134,142,140,21,26,20,33,135,143,141,131,139,137 1090 DATA 134,142,140,9,12,56,75,135,143,141,135,143,141 1100 DATA 134,142,143,13,18,26,54,135,143,143,131,139,139 1110 DATA 143,143,143,13,18,56,69,143,143,141,139,139,137 1120 DATA 139,143,141,13,13,72,75,139,143,141 1130 DATA 135,143,141,14,18,73,75,135,143,141,131,139,137 1140 DATA 134,142,140,8,19,82,83,135,143,141,131,139,141 1150 DATA 134,142,141,20,25,84,83,135,143,141,131,139,137 1160 DATA 134,142,140,21,26,40,48,135,143,141,131,139,137 1170 DATA 134,142,140,21,23,53,60,135,143,141,131,139,137 1180 DATA 134,142,140,25,26,53,60,131,139,137 1190 DATA 134,142,140,20,26,65,76,135,143,141,131,139,137 1200 DATA 134,142,140,15,17,12,25,135,143,141,131,139,137 * **__Listado 2 - TXIKI.BAS__** 10 RANDOMIZE(SORTEO) 20 GOSUB 1060 30 ' ----------------------------------------------------- 40 ' ZONA DE JUEGO 50 ' ----------------------------------------------------- 60 PRINT FN cur$(HOR,VER);MUNE$:PRINT FN CUR$(CHOR,CVER);" " 70 P$=INKEY$:IF P$<>"" THEN GOSUB 710 80 CC=CC+1:IF CC>=TIEM-MIET THEN GAS=GAS-1:PRINT FN cur$(60+GAS,3);" ":CC=0:IF GAS=0 THEN 600 90 IF EXTRA=1 AND INT(RND(1)*50)+1=5 THEN PRINT FN cur$(H2,V2);" ":POK%(H2,V2)=0:EXTRA=0 100 CHO=HOR:CVE=VER 110 IF POK%(HOR,VER)<>0 AND POK%(HOR,VER)<>7 THEN GOSUB 220 120 IF MOV=1 THEN HOR=HOR-1:IF POK%(HOR,VER)=1 THEN HOR=HOR+1:GOTO 60 ELSE 170 130 IF MOV=2 THEN HOR=HOR+1:IF POK%(HOR,VER)=1 THEN HOR=HOR-1:GOTO 60 ELSE 170 140 IF MOV=3 THEN VER=VER+1:IF POK%(HOR,VER)=1 THEN VER=VER-1:GOTO 60 ELSE 170 150 IF MOV=4 THEN VER=VER-1:IF POK%(HOR,VER)=1 THEN VER=VER+1:GOTO 60 ELSE 170 160 IF MOV=0 THEN 60 170 CHOR=CHO:CVER=CVE 180 GOTO 60 190 ' ----------------------------------------------- 200 ' COMPROBACION DE CARACTER ENCONTRADO 210 ' ----------------------------------------------- 220 ON POK%(HOR,VER) GOTO 230,240,310,350,350,330,230,370 230 RETURN 240 IF PODER=NIVEL THEN IF INT(RND(1)*2)+1=1 THEN 510 250 IF PODERPOWER THEN PODER=POWER:PRINT FN CUR$(14,3);:FOR T=1 TO PODER:PRINT FUER$;:NEXT T:PRINT " " 290 IF PUNT>=3000 AND TUNP=0 THEN TUNP=1:PRINT FN CUR$(88,4-VIDAS);MUNE$:VIDAS=VIDAS+1 300 GOTO 380 310 PRINT PI$;PI$;:PODER=PODER+1:IF PODER>POWER THEN PODER=POWER 320 PRINT FN cur$(14,3);:FOR J=1 TO PODER:PRINT FUER$;:NEXT J:POK%(HOR,VER)=0:BB=1:GOSUB 1150:GOTO 380 330 GAS=15:GOSUB 460:IF HH=71 THEN HH=12:VV=22 ELSE HH=71:VV=14:CGAS=0 340 POK%(HOR,VER)=7:PRINT FN cur$(HH,VV);FUEL$:POK%(HH,VV)=6:GOTO 380 350 IF MOV<>3 AND POK%(HOR,VER)=4 OR MOV<>4 AND POK%(HOR,VER)=5 THEN RETURN ELSE PRINT FN cur$(HOR,VER);" ":IF VER=14 THEN VER=17 ELSE VER=15:FOR T=1 TO 100:NEXT T:GOTO 380 360 GOTO 380 370 PRINT PI$;:PUNT=PUNT+(INT(RND(1)*20)+1)*10:PRINT FN cur$(44,3);USING"######,";PUNT:EXTRA=0:POK%(HOR,VER)=0:PRINT PI$; 380 TT=TT+1:IF TT=NBI+1 THEN TT=0:GOTO 380 ELSE IF POK%(H(TT),V(TT))=0 THEN 380 390 PRINT FN cur$(H(TT),V(TT));" ":POK%(H(TT),V(TT))=0 400 H(TT)=INT(RND(1)*86)+3:V(TT)=INT(RND(1)*21)+7:IF POK%(H(TT),V(TT))<>0 OR HOR=H(TT) AND VER=V(TT) THEN 400 ELSE PRINT FN cur$(H(TT),V(TT));BICHO$:POK%(H(TT),V(TT))=2 410 IF NB1<15 THEN MIET=MIET+0.2 420 IF EXTRA=1 THEN RETURN 430 IF INT(RND(1)*10)+1<>5 THEN 450 440 H2=INT(RND(1)*86)+3:V2=INT(RND(1)*21)+7:IF POK%(H2,V2)<>0 OR H2=HOR AND V2=VER THEN 440 ELSE PRINT FN cur$(H2,V2);PUN$:POK%(h2,V2)=8:EXTRA=1 450 RETURN 460 TT=0:C=0:FOR T=1 TO NBI:IF POK%(H(T),V(T))=2 THEN C=C+1:H(C)=H(T):V(C)=V(T) 470 NEXT T:NBI=C:PRINT FN CUR$(60,3);:FOR J=1 TO 15:PRINT GAS$;:NEXT J:RETURN: 480 ' ----------------------------------------------------------- 490 ' VIDAS 500 ' ------------------------------------------------------------ 510 VIDAS=VIDAS-1:MIET=MIET/2 520 PRINT FN cur$(HOR,VER);CHR$(167):FOR T=1 TO 40:PRINT PI$;:NEXT T:IF VIDAS=0 THEN 770 530 GAS=15:PRINT FN cur$(60,3);:FOR T=1 TO 15:PRINT GAS$;:NEXT T:PODER=POWER:IF POWER>10 THEN PODER=10 540 PRINT FN cur$(14,3);:FOR T=1 TO PODER:PRINT FUER$;:NEXT T 550 PRINT FN CUR$(88,4-VIDAS);" ":MOV=0 560 PRINT FN CUR$(HOR,VER);BICHO$:VER=7:HOR=5:CVER=0:CHOR=0:GOTO 60 570 ' ------------------------------------------------------------ 580 ' TIEMPO AGOTADO 590 ' ------------------------------------------------------------ 600 MIET=MIET/2:CGAS=CGAS+1:IF CGAS=3 THEN 770 610 PRINT PI$;PI$;PI$;:PODER=0:PRINT FN CUR$(14,3);SPACE$(15) 620 FOR T=NBI+1 TO NBI+5 630 H(T)=INT(RND(1)*86)+3:V(T)=INT(RND(1)*21)+7:IF POK%(H(T),V(T))<>0 OR HOR=H(T) AND VER=V(T) THEN 630 640 POK%(H(T),V(T))=2:PRINT FN cur$(H(T),V(T));BICHO$:PRINT PI$;:NEXT T 650 NB1=NB1+5:NBI=NBI+5:GAS=15:PRINT FN cur$(60,3);:FOR T=1 TO 15:PRINT GAS$;:NEXT T 660 IF NB1>14 THEN MIET=MIET/4 670 GOTO 100 680 ' ------------------------------------------------------------ 690 ' ZONA CAMBIO DE DIRECCION 700 ' ------------------------------------------------------------ 710 IF P$=CHR$(1) THEN MOV=1 720 IF P$=CHR$(6) THEN MOV=2 730 IF P$=CHR$(30) THEN MOV=3 740 IF P$=CHR$(31) THEN MOV=4 750 IF P$=CHR$(18) THEN MOV=0 760 P$="":RETURN 770 ' ------------------------------------------------------------ 780 ' FIN DE JUEGO 790 ' ------------------------------------------------------------ 800 PRINT CLS$:PRINT FN CUR$(35,13);" F I N D E L J U E G O" 810 PRINT PI$;:FOR T=1 TO 500:NEXT:PRINT PI$;:FOR T=1 TO 500:NEXT:PRINT PI$;:FOR T=1 TO 500:NEXT:PRINT PI$;:FOR T=1 TO 200:NEXT:PRINT PI$; 820 IF PUNT"" THEN P=P+1:PRINT FN cur$(53+P,23);P$:NOMBRE$=NOMBRE$+P$ 890 C=C+1:PRINT FN cur$(16+C,18);C$;" ":C$=MID$(A$,C,1):IF C=60 THEN C=0 900 GOTO 840 910 RECOR(10)=PUNT:NOMBRE$(10)=LEFT$(NOMBRE$,25) 920 FOR T=1 TO 9:FOR J=1 TO 10-T:IF RECOR(J)>RECOR(J+1) THEN 940 930 SWAP RECOR(J),RECOR(J+1):SWAP NOMBRE$(J),NOMBRE$(J+1) 940 NEXT J,T:OPEN "O",1,"A:RECTXIKI":FOR T=1 TO 10:WRITE #1,RECOR(T),NOMBRE$(T):NEXT T:CLOSE 950 PRINT CLS$:PRINT TAB(24);VI$;" M E J O R E S P U N T U A C I O N E S ";VN$:PRINT:PRINT TAB(22);R34$;STRING$(43,138);R40$:PRINT TAB(22);R33$;TAB(35);" NOMBRE";TAB(56);"PUNTOS";TAB(66);R33$;:PRINT TAB(22);CHR$(135);STRING$(43,138);CHR$(141) 960 PRINT TAB(22);R33$;TAB(66);R33$:FOR T=1 TO 10:IF RECOR(T)>0 THEN PRINT TAB(22);R33$;" ";MID$(STR$(T),LEN(STR$(T))-1,2);"! ";NOMBRE$(T);TAB(56);USING"######,";RECOR(T);:PRINT TAB(66);R33$:PRINT TAB(22);R33$;TAB(66);R33$:NEXT T 970 PRINT TAB(22);R31$;STRING$(43,138);R37$ 980 A$=SPACE$(90)+"PARA JUGAR DE NUEVO PULSA -S- FINALIZAR -F-"+SPACE$(90) 990 FOR T=1 TO 137:SORTEO=SORTEO+11:PRINT FN cur$(1,28);MID$(A$,138-T,89):P$="":P$=UPPER$(INKEY$):IF P$="S" OR P$="F" THEN 1010 1000 NEXT T:GOTO 990 1010 IF P$="F" THEN PRINT ACT$:END 1020 MIET=0:EXTRA=0:MOV=0:PUNT=0:ERASE POK%,V,H:SI=1:CHAIN "TXIKIBI",10,ALL 1030 ' --------------------------------------------------------- 1040 ' ASIGNACION DE VALORES 1050 ' --------------------------------------------------------- 1060 DEF FN CUR$(H,V)=CHR$(27)+"Y"+CHR$(32+V)+CHR$(32+H):POWER=15 1070 VIDAS=3:GAS=15:NB1=30:NB2=30:TIEM=20 1080 PRINT DESAC$:DIM H(50),V(50) 1090 HH=71:VV=14:PRINT FN CUR$(HH,VV);FUEL$:POK%(HH,VV)=6:POK%(12,22)=7 1100 GOSUB 1110:GOTO 1140 1110 FOR T=1 TO NB2 1120 H(T)=INT(RND(1)*86)+3:V(T)=INT(RND(1)*21)+7:IF POK%(H(T),V(T))<>0 OR HOR=H(T) AND VER=V(T) THEN 1120 1130 POK%(H(T),V(T))=2:PRINT FN cur$(H(T),V(T));BICHO$:PRINT PI$;:NEXT T:RETURN 1140 BB=3:GOSUB 1150:GOTO 1170 1150 FOR T=1 TO BB 1160 H1=INT(RND(1)*86)+3:V1=INT(RND(1)*21)+7:IF POK%(H1,V1)<>0 OR HOR=H1 AND VER=V1 THEN 1160 ELSE POK%(H1,V1)=3:PRINT FN cur$(H1,V1);REP$:NEXT T:RETURN 1170 PRINT FN CUR$(5,2);"ENEMIGO ";:FOR T=1 TO NIVEL:PRINT FUER$;:NEXT T 1180 PRINT FN cur$(5,3);"TXIKI ";STRING$(10,FUER$):PODER=10 1190 PRINT FN cur$(60,2);"TIEMPO":PRINT FN cur$(60,3);:FOR T=1 TO 15:PRINT GAS$;:NEXT T 1200 PRINT FN cur$(37,1);"RECORD ";USING"######,";RECOR(1) 1210 PRINT FN CUR$(37,3);"PUNTOS":PRINT FN CUR$(44,3);USING"######,";0 1220 PRINT FN cur$(88,2);MUNE$:PRINT FN CUR$(88,3);MUNE$ 1230 RETURN ===== Controles ===== ↑ = ARRIBA ↓ = ABAJO → = DERECHA ← = IZQUIERDA ===== 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 Txiki 4.- Teclear run "Txikibi" y pulsar la tecla "ENTER" ===== Extras ===== * Listado del programa en revistas de gran tirada de la época {{:otros:Txiki_programa_01.jpg?170}} {{:otros:Txiki_programa_02.jpg?170}} {{:otros:Txiki_programa_03.jpg?170}} {{:otros:Txiki_programa_04.jpg?170}} ===== Descarga ===== * {{:otros:Txiki (Basic).zip|Txiki }}(juego en formato dsk, comprimido con zip) ===== Vídeos ===== {{ youtube>gvA0o8WSLqU?large }}