User Tools

Site Tools


en:txiki

TXIKI

Info

Author Jose Miguel Ezkerro
Computer Amstrad PCW 8256 / 8512 / 9512
Year 1988
Gender Arcade
Controls Keyboard
Languages Spanish
Status Preserved

Screenshots

Description

The game consists of going through a labyrinth fighting against enemies, always against the clock, and with the possibility of recharging energy and time.

On the other hand, it is not necessary to explain much more, since the program itself has built-in instructions.

Listing

  • Listing 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
  • Listing 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 PODER<NIVEL THEN 510 ELSE NB1=NB1-1:PRINT PI$:PODER=PODER-1:PRINT FN cur$(14,3);:FOR J=1 TO PODER:PRINT FUER$;:NEXT J:PRINT "  ";:POK%(HOR,VER)=0:PUNT=PUNT+10:PRINT FN cur$(44,3);USING"######,";PUNT
260 IF NB1=0 THEN NB2=NB2+7:NBI=NB2:ERASE H,V:DIM H(NB2+20),V(NB2+20):GOSUB 1110:PUNT=PUNT+1000:PRINT FN cur$(44,3);USING"######,";PUNT:FOR T=1 TO 3:PRINT PI$:FOR J=1 TO 100:NEXT J,T:MOV=0:CC=0:TIEM=TIEM-1:POWER=POWER-2:IF TIEM<15 THEN TIEM=15
270 IF NB1=0 THEN IF POWER<8 THEN POWER=8
280 IF NB1=0 THEN MIET=0:NB1=NB2:IF PODER>POWER 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<RECOR(10) THEN 950
830 NOMBRE$="":C$="":P=0:C=0:A$="ENHORABUENA HAS EFECTUADO UNO DE LOS 10 PRIMEROS RECORDS":PRINT FN CUR$(18,18);A$;FN CUR$(38,23);"DIME TU NOMBRE ";
840 P$="":P$=INKEY$:SORTEO=SORTEO+11
850 IF P$=CHR$(127) THEN PRINT FN CUR$(53+P,23);" ":P=P-1:NOMBRE$=LEFT$(NOMBRE$,P):GOTO 890
860 IF P$=CHR$(10) THEN PRINT PI$:GOTO 890
870 IF P$=CHR$(13) THEN 910
880 IF P$<>"" 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

Controls

       ↑ = UP
       ↓ = DOWN
       → = RIGHT
       ← = LEFT

Loading the program

 1.- Insert the CP/M disc on side 2
 2.- Write BASIC and wait for it to load
 3.- Remove the CP/M disk and insert the disk containing the Txiki game
 4.- Type run "Txikibi" and press the "ENTER" key

Extras

  • Program listing in high-circulation magazines of the time

txiki_programa_01.jpg txiki_programa_02.jpg txiki_programa_03.jpg txiki_programa_04.jpg

Downloads

  • Txiki (game in dsk format, compressed with zip)

Video

en/txiki.txt · Last modified: 2022/06/30 14:11 by jevicac