6 Listados BASIC – Una tarde de tecleo en tu Amstrad CPC
¿Recuerdas las tardes tecleando listados Basic en tu Amstrad? ¿Quién no cambió el nombre del autor por el suyo?😅😅😅 Toda una tentación…
Aquí tienes unos cuantos listados Basic preparados para copiar y pegar directamente en tu emulador favorito. Luego puedes guardarlo como dsk o cdt y cargarlos en tu Amstrad CPC.
Si no puedes esperar, aquí tienes un archivo de disco con todos los programas listos para jugar y los listados en formato texto.
¿Recuerdas los listados Basic que venían en las revistas y en el manual de nuestro Amstrad?
Listados BASIC para AMSTRAD CPC
NOTA: en los listados se han realizado correcciones que algunos habéis apuntado. Es posible que algún listado pueda contener errores, dejarnos un mensaje y trataremos de corregirlo lo antes posible 😉
Rebotes
Rebotes es un juego sencillo y apasionante, cuyo listado Basic es obra de Alexander Martin, donde tendrás que romper los ladrillos golpeando la pelota con la pala. Es el típico juego machaca ladrillos al estilo de Arkanoid. Para un jugador contra el ordenador, control por teclado o joystick.
10 'REBOTES, por Alexander Martin 20 'copyright (c) AMSOFT 1984 30 ' 40 MODE 1:BORDER 1:INK 0,1:INK 1,26:INK 2,24:INK 3,6 50 SPEED KEY 15,2 60 ENV 1,1,18,0,11,0,10 70 ENT 1,10,2,2 80 ENV 3,1,0,16,5,-3,2 90 ENV 2,5,3,3,1,-21,22,9,-3,2 100 ENT -2,10,2,2,5,-7,1,2,11,3,2,-4,8 110 ' 120 ' 130 MOVE 30,32:DRAWR 0,400,1:MOVE 610,32:DRAWR 0,400,1 140 PEN 3:LOCATE 3,1:PRINT STRING$(36,143) 150 PEN 2:LOCATE 3,2:PRINT STRING$(36,143) 160 PEN 1:FOR r=5 TO 6:LOCATE 3,r:PRINT STRING$(36,143):NEXT r 170 bx=9 180 pelotas=5:puntos=0 190 PEN 1:GOSUB 680:CLEAR INPUT 200 IF INKEY$<>CHR$(32) AND JOY(0)<16 THEN 200 210 LOCATE 3,23:PRINT SPACE$(36):LOCATE 1,24:PRINT SPACE$(40); 220 GOSUB 690:GOSUB 660:GOTO 280 230 ' 240 ' 250 LOCATE bx,24:PRINT" ";STRING$(4,131);" ":RETURN 260 ' 270 ' 280 xa=1:ya=1:IF INT(RND*2)=1 THEN xa=-xa 290 PEN 1:GOSUB 250 300 ORIGIN 0,400 310 x=bx+4:y=11:x1=x:y1=y 320 ' 330 ' 340 x1=x+xa:y1=y+ya 350 IF x1=3 OR x1=38 THEN xa=-xa 360 GOSUB 540 370 IF y1=24 AND x1>bx+1 AND x1<bx+6 THEN ya=-ya:y1=y1-2: SOUND 130,44,8,7,1,1:a=((x>bx+5)OR(x<bx+2)):IF a=-1 THEN xa=xa*a:x1=x1+xa:y1=y1+1 380 IF y=25 THEN LOCATE x,y:PRINT" ":GOTO 500 390 GOSUB 250 400 t=TEST((16*x1)-1,-(16*y1)-1) 410 IF t<>0 THEN ya=-ya:xz=x1:yz=y1:y1=y1+ya:GOSUB 590:IF t=2 THEN puntos=puntos+10:GOSUB 660 420 IF t=3 THEN puntos=puntos+20:GOSUB 660 430 IF t=1 THEN puntos=puntos+5:GOSUB 660 440 IF y1=1 THEN ya=1 450 LOCATE x,y:PRINT" ":LOCATE x1,y1:PRINT CHR$(231):x=x1 :y=y1 460 IF y=1 OR x=3 OR x=38 THEN SOUND 129,78,8,7,1,1 470 GOTO 340 480 ' 490 ' 500 pelotas=pelotas-1:SOUND 132,19,46,12,2,2:IF pelotas=0 THEN GOTO 620 510 GOSUB 660:GOTO 280 520 ' 530 ' 540 IF (INKEY(8)=0 OR INKEY(74)=0) AND bx>2 THEN bx=bx-2: RETURN 550 IF (INKEY(1)=0 OR INKEY(75)=0) AND bx<32 THEN bx=bx+2 :RETURN 560 RETURN 570 ' 580 ' 590 LOCATE xz,yz:PRINT" ":RETURN 600 ' 610 ' 620 IF puntos>=maximo THEN maximo=puntos 630 GOSUB 660:puntos=0:pelotas=5:GOTO 130 640 ' 650 ' 660 SOUND 130,0,20,13,3,0,31:LOCATE 1,25:PRINT "Maximo";maximo; 670 LOCATE 15,25:PRINT "Puntos";puntos:LOCATE 30,25:PRINT "Pelotas";pelotas:RETURN 680 LOCATE 3,23:PRINT"Pulse barra espaciadora para empezar":RETURN 690 LOCATE 1,25:PRINT SPACE$(40);:RETURN
Bombardero
Este listado basic es una variación sobre un tema clásico, para un jugador contra el ordenador. Control por teclado. Listados Basic por Dave Town.
10 'BOMBARDERO por DAVE TOWN 20 'copyright (c) AMSOFT 1984 30 ' 40 MODE 1:CLS:INK 0,0:BORDER 0:INK 1,18:INK 2,6:INK 3,4:INK 5,15:INK 6,2:INK 7,24:INK 8,8:INK 9,26:INK 10,10:INK 11,20:INK 12,12:INK 13,16:INK 14,14:INK 15,21 50 SYMBOL AFTER 240:SYMBOL 241,&40,&60,&70,&7F,&7F,&EF,&7,&0:SYMBOL 242,&0,&32,&7A,&FE,&FA,&F2,&E0,&0 60 puntos=0:maxi=0:avi$=CHR$(241)+CHR$(242):x=2:y=2:cae=0:a=2:b=2 70 GOSUB 480 80 CLS 90 PEN 2:LOCATE 1,15:INPUT"Elija nivel: 0 (AS) a 5 (PRINCIPIANTE) ",nivel 100 IF nivel<0 OR nivel>5 THEN GOTO 90 110 nivel=nivel+10 120 LOCATE 1,15:PRINT CHR$(18);:LOCATE 1,15:INPUT"Elija velocidad: 0 (MAX) a 100(MIN) ",vel 130 IF vel>100 OR vel<0 GOTO 120 140 ' 150 'Edificios 160 ' 170 MODE 0:FOR base=5 TO 15:FOR altura=21 TO INT(RND(1)*8+nivel) STEP-1:LOCATE base,altura:PEN base-2:PRINT CHR$(143)+CHR$(8)+CHR$(11)+CHR$(244);:NEXT:NEXT 180 PLOT 0,20,4:DRAW 640,20,4 190 LOCATE 1,25:PEN 2:PRINT"PUNTOS";puntos;:LOCATE 13,25:PRINT"MAX";maxi; 200 ' 210 'Juego 220 ' 230 LOCATE x-1,y:PRINT" "; 240 PEN 1:LOCATE x,y:PRINT avi$;:PEN 2 250 IF y=21 AND x=15 THEN GOTO 290:ELSE GOTO 340 260 ' 270 'Aterriza 280 ' 290 FOR c=0 TO 1000:NEXT 300 puntos=puntos+100-(nivel*2):nivel=nivel-1:x=2:y=2:a=2:b=2:cae=0 310 IF nivel<10 THEN nivel=10:vel=vel-20 320 IF vel<0 THEN vel=0 330 GOTO 150 340 FOR c=0 TO vel:NEXT 350 x=x+1 360 IF x=18 THEN LOCATE x-1,y:PRINT CHR$(18);:x=2:y=y+1:LOCATE x,y:PEN 1:PRINT avi$;:PEN 2 370 a$=INKEY$:IF a$=" " AND cae=0 THEN cae=1:b=y+2:a=x 380 IF y=21 THEN cae=0 390 IF cae=1 THEN LOCATE a,b:PRINT CHR$(252);:LOCATE a,b-1:PRINT" ";:b=b+1:IF b>21 THEN LOCATE a,b:PRINT" ";:LOCATE a,b-1:PRINT" ";:LOCATE a,b-1:PRINT" ":a=0:b=0:cae=0:SOUND 3,4000,10,12,0,0,10 400 ga=(a-0.5)*32:gb=400-(b*16):bomba=TEST(ga,gb) 410 IF bomba>0 THEN GOTO 670 420 gx=((x+1.5)*32):gy=408-(y*16):choque=TEST(gx,gy) 430 IF choque>0 THEN GOTO 570 440 GOTO 230 450 ' 460 'Instrucciones 470 480 LOCATE 1,2:PEN 1:PRINT"Usted esta pilotando un avion sobre una ciudad desierta y tiene que pasar sobre los edificios para aterrizar y repostar.Su avion se mueve de izquierda a derecha.";:PRINT 490 PRINT:PRINT"Al llegar a la derecha, el avion vuelve a salir por la izquierda, pero MAS BAJO.Dispone de un numero limitado de bombas y puede hacerlas caer sobre los edifici-cios pulsando la BARRA ESPACIADORA.";:PRINT 500 PRINT:PRINT"Cada vez que aterriza, sube la alturade los edificios y la velocidad.";:PRINT:PRINT:PRINT"UNA VEZ DISPARADA UNA BOMBA,YA NO PUEDE DISPARAR OTRAMIENTRAS NO HAYA EXPLOSIO-NADO LA PRIMERA!!!": 510 PEN 2:LOCATE 1,24:PRINT:PRINT"Pulse una tecla para empezar."; 520 a$=INKEY$:IF a$="" GOTO 520 530 RETURN 540 ' 550 'Colision 560 ' 570 LOCATE x-1,y:PRINT CHR$(32)+CHR$(32)+CHR$(32)+CHR$(253)+CHR$(8)+CHR$(238)+CHR$(8); 580 FOR t=1 TO 10:SOUND 7,4000,5,15,0,0,5:PEN t:PRINT CHR$(253)+CHR$(8)+CHR$(238)+CHR$(8)+CHR$(32)+CHR$(8);:FOR tm=0 TO 50:NEXT:NEXT:PEN 2 590 CLS:LOCATE 1,5:PRINT"Ha conseguido";puntos;"puntos." 600 IF puntos>maxi THEN maxi=puntos:LOCATE 1,8:PRINT"BATIO EL RECORD!!"; 610 puntos=0:LOCATE 1,12:PRINT"Pulse V para volver a empezar"; 620 a$=INKEY$:IF a$="v" OR a$="V" GOTO 630 ELSE GOTO 620 630 PEN 1:MODE 1:x=2:y=2:a=2:b=2:GOTO 90 640 ' 650 'Edificio bombardeado 660 ' 670 LOCATE a,b-1:PRINT" "+CHR$(8);:PEN 4:FOR tr=1 TO INT(RND(1)*3)+1:puntos=puntos+ 5:SOUND 3,4000,10,12,0,0,10:LOCATE a,b:FOR t=0 TO 4:PRINT CHR$(253)+CHR$(8)+CHR$(32)+CHR$(8);:NEXT:b=b+1 680 IF b=24 THEN b=b-1 690 NEXT 700 LOCATE 7,25:PEN 2:PRINT puntos;:cae=0:a=x:b=y:PEN 4:GOTO 230
Por favor, acepta las cookies de YouTube para poder ver este video. Aceptando, accederás al contenido de YouTube, un servicio externo y gestionado por terceros.
Leer la privacidad de Youtube.
Aceptando este aviso, tu selección será guardara y la página se refrescará.
¿Necesitas un soporte masivo para tu Amstrad CPC?
Tele Tenis
Posiblemente este juego es el más versionado de todos los tiempos. Todas las videoconsolas y ordenadores tenían su versión de tenis disponible, y es que era un juego muy divertido y lo sigue siendo. Para dos jugadores, o para uno contra el ordenador. Puede controlarse por Teclado o joystick(s).
El autor del listado de Tele Tenis es David Radisic. Posiblemente este sea uno de los listados Basic que casi todos tecleamos en su momento.
10 ' TELE TENIS, por David Radisic 20 ' copyright (c) AMSOFT 1985 30 ' 40 DEFINT a-z 50 comp=1 60 ENV 1,=11,20,=9,5000 70 MODE 1:INK 0,10:BORDER 10:INK 1,26:INK 2,18:INK 3,0 80 GOSUB 710 90 GOSUB 150 100 GOSUB 330 110 GOSUB 420 120 LOCATE 13,1:PRINT USING"#### ";puntos1; 130 LOCATE 35,1:PRINT USING"#### ";puntos2; 140 GOTO 100 150 PEN 2 160 x(1)=3:y(1)=5 170 x(2)=37:y(2)=22 180 borde$=CHR$(233):borde2$=STRING$(2,207) 190 LOCATE 1,3:PRINT STRING$(39,borde$):PRINT STRING$(39, borde$) 200 FOR i=1 TO 19 210 PRINT borde2$;TAB(38);borde2$ 220 NEXT 230 PRINT STRING$(39,borde$):PRINT STRING$(39,borde$); 240 WINDOW #1,3,37,5,23 250 CLS#1 260 SYMBOL 240,0,60,126,126,126,126,60,0 270 raq$="|"+CHR$(8)+CHR$(10)+"|" 280 bor$=" "+CHR$(8)+CHR$(10)+" " 290 pel$=CHR$(240) 300 PEN 3 310 LOCATE 2,1:PRINT"Jugador 1:0";:LOCATE 24,1:PRINT"Jugador 2:0" 320 RETURN 330 n=INT(RND*2):CLS#1:punto=0 340 PEN 3 350 FOR i=1 TO 2:LOCATE x(i),y(i):PRINT raq$;:NEXT 360 ON n GOTO 390 370 xb=21:dx=1 380 GOTO 400 390 xb=19:dx=-1 400 yb=12:dy=INT(RND*3)-1 410 RETURN 420 GOSUB 600 430 oxb=xb:oyb=yb 440 GOSUB 500 450 IF nota>0 THEN SOUND 129,nota,50,15,1 460 LOCATE oxb,oyb:PRINT" "; 470 LOCATE xb,yb:PRINT pel$ 480 IF punto=0 THEN 420 490 RETURN 500 LOCATE xb+dx,yb+dy:ch$=COPYCHR$(#0) 510 nota=0 520 IF ch$=" " THEN xb=xb+dx:yb=yb+dy:RETURN 530 IF ch$="|" THEN dx=2-dx-2:dy=INT(RND*3)-1:nota=200:RETURN 540 IF ch$=LEFT$(borde2$,1) THEN 570 550 IF ch$=borde$ THEN dy=2-dy-2:nota=250 560 RETURN 570 IF dx>0 THEN puntosl=puntosl+1 ELSE puntos2=puntos2+1 580 punto=1:nota=2000 590 RETURN 600 p(1)=(INKEY(69)>=0)+(INKEY(72)>=0)+ABS((INKEY(71)>=0) +(INKEY(73)>=0))*2 610 IF comp=1 THEN p(2)=ABS(y(2)<yb)*2+(y(2)>yb):GOTO 630 620 p(2)=(INKEY(4)>=0)+(INKEY(48)>=0)+ABS((INKEY(5)>=0)+( INKEY(49)>=0))*2 630 PEN 3 640 FOR i=1 TO 2 650 LOCATE x(i),y(i)+p(i):ch$=COPYCHR$(#0) 660 IF ch$=" " THEN LOCATE x(i),y(i):PRINT bor$;:y(i)=y(i)+ROUND(p(i)/2) 670 LOCATE x(i),y(i):PRINT raq$; 680 NEXT 690 PEN 1 700 RETURN 710 PEN 2:PRINT:PRINT TAB(15)"Ping-Pong":PRINT TAB(15)"---------" 720 PEN 3:PRINT:PRINT TAB(10)"Para mover raquetas: " 730 PRINT:PRINT:PEN 1 740 PRINT" Jugador 1 Jugador 2 Direccion":PRINT 750 PRINT" A 6 ARRIBA" 760 PRINT" Z 3 ABAJO":PRINT 770 PEN 3:PRINT:PRINT TAB(14)"o con joysticks" 780 PRINT:PRINT:PRINT:PRINT 790 PEN 2 800 PRINT TAB(7)"Elija <1> o <2> jugadores" 810 i$=INKEY$:IF i$<>"1" AND i$<>"2" THEN 810 820 IF i$="1" THEN comp=1 ELSE comp=0 830 MODE 1:RETURN
Esgrima eléctrico
En este sencillo juego de lucha, cuyo autor es Alexander Martin, debes tratar de lograr impactar al contrincante. Resulta bastante curioso el que además incluyera en el mismo una pequeña presentación. El modo de juego es para dos jugadores y se puede controlar con teclado o joysticks.
10 ' ESGRIMA ELECTRICO, por Alexander Martin 20 ' copyright (c) AMSOFT 1985 30 ' 40 DEFINT a-z 50 MODE 0 60 GOSUB 980 70 GOSUB 1370 80 GOSUB 270 90 GOSUB 1520 100 GOSUB 1370 110 GOSUB 1270 120 ' 130 ' 140 REM empezar 150 IF termina THEN GOTO 100 160 GOSUB 240 170 FRAME:IF p1dir THEN GOSUB 570 ELSE FRAME:FRAME 180 FRAME:IF p2dir THEN GOSUB 620 ELSE FRAME:FRAME 190 IF p1sa=-1 THEN GOSUB 670 200 IF p2sa=-1 THEN GOSUB 720 210 GOTO 140 220 ' 230 ' 240 IF j THEN 380 ELSE 480 250 ' 260 ' 270 CLS:PEN 6 280 PRINT:PRINT" ELIJA CONTROL" 290 PRINT:PRINT:PRINT:PRINT" pulse J/T [ENTER]" 300 LOCATE 4,10:PRINT"JOYSTICKS";TAB(4);"O TECLAS" 310 LOCATE 12,10:IF j THEN PRINT"*":ELSE PRINT" " 320 LOCATE 12,11:IF j THEN PRINT" ":ELSE PRINT"*" 330 IF NOT(INKEY(45)) THEN j=-1 340 IF NOT(INKEY(51)) THEN j=0: '37 en original: K 350 IF NOT(INKEY(18)) THEN RETURN ELSE 310 360 ' 370 ' 380 p1=JOY(0):p2=JOY(1) 390 p1dir=(p1 AND 1)*-1+(p1 AND 2)*0.5 400 p2dir=(p2 AND 1)*-1+(p2 AND 2)*0.5 410 IF p1 AND 16 THEN p1sa=p1sa-1:IF p1sa=-1 THEN AFTER 15 GOSUB 770 420 IF p2 AND 16 THEN p2sa=p2sa-1:IF p2sa=-1 THEN AFTER 15 GOSUB 770 430 IF p1sa THEN p1dir=0 440 IF p2sa THEN p2dir=0 450 RETURN 460 ' 470 ' 480 p2dir=((INKEY(4)=0)*1)+((INKEY(5)=0)*-1) 490 p1dir=((INKEY(69)=0)*1)+((INKEY(71)=0)*-1) 500 IF INKEY(63)=0 THEN p1sa=p1sa-1:IF p1sa=-1 THEN AFTER 15 GOSUB 770 510 IF INKEY(10)=0 THEN p2sa=p2sa-1:IF p2sa=-1 THEN AFTER 15 GOSUB 770 520 IF p1sa THEN p1dir=0 530 IF p2sa THEN p2dir=0 540 RETURN 550 ' 560 ' 570 pt=p1wp+p1dir:IF pt>25 OR pt<6 THEN RETURN ELSE p1wp=pt 580 p1dir=0 590 PEN 1:LOCATE 3,p1wp:CLS#3:PRINT CHR$(209);:RETURN 600 ' 610 ' 620 pt=p2wp+p2di•:IF pt>25 OR pt<6 THEN RETURN ELSE p2wp=pt 630 p2dir=0 640 PEN 2:LOCATE 18,p2wp:CLS#5:PRINT CHR$(211);:RETURN 650 ' 660 ' 670 PAPER #4,4:WINDOW #4,4,17,p1wp,p1wp:CLS#4:FRAME:FRAME 680 PAPER #4,0:CLS#4 690 GOTO 570 700 ' 710 ' 720 PAPER #6,5:WINDOW #6,4,17,p2wp,p2wp:CLS#6:FRAME:FRAME 730 PAPER #6,0:CLS#6 740 GOTO 620 750 ' 760 ' 770 pwpe=(p1wp=p2wp):IF p1sa AND NOT(p2sa) AND pwpe THEN p1sc=p1sc+1:SOUND 132,120,10,0,1,0:PRINT#1,a$(p1sc);:IF p1sc=9 THEN 860 780 IF p2sa AND NOT(p1sa) AND pwpe THEN p2sc=p2sc+1:SOUND 132,100,10,0,1,0:PRINT#2,a$(p2sc);:IF p2sc=9 THEN 860 790 IF p1sa THEN SOUND 132,40,70,0,1,1 800 IF p2sa THEN SOUND 132,56,70,0,1,1 810 p1sa=0 820 p2sa=0 830 RETURN 840 ' 850 ' 860 PEN 6 870 LOCATE 2,10:PRINT"FIN DE LA PARTIDA" 880 IF p1sc=9 THEN INK 1,2,20:INK 2,0 ELSE INK 2,6,17:INK 1,0 890 SOUND 129,1000,0,12,3:SOUND 130,900,0,12,3 900 WHILE INKEY$<>"":WEND 910 t!=TIME:WHILE t!+2000>TIME:WEND 920 WHILE INKEY$="":WEND 930 CLS 940 termina=-1 950 RETURN 960 ' 970 ' 980 a$(0)="111101101101111" 990 a$(1)="001001001001001" 1000 a$(2)="111001111100111" 1010 a$(3)="111001111001111" 1020 a$(4)="100100101111001" 1030 a$(5)="111100111001111" 1040 a$(6)="111100111101111" 1050 a$(7)="111001001010010" 1060 a$(8)="111101111101111" 1070 a$(9)="111101111001001" 1080 FOR n=0 TO 9 1090 tiempo=LEN(a$(n)) 1100 FOR n2=1 TO tiempo 1110 IF MID$(a$(n),n2,1)="1"THEN MID$(a$(n),n2,1)=CHR$(143) ELSE MID$(a$(n),n2,1)=CHR$(32) 1120 NEXT n2,n 1130 ' 1140 ' 1150 b$="ESGRIMA ELECTRICO" 1160 c$=CHR$(32)+CHR$(164)+" Alexander Martin" 1170 ENV 1,=9,2000:ENT -1,6,3,1 1180 ENV 2,127,0,0,127,0,0,127,0,0,127,0,0,127,0,0 1190 ENV 3,=9,9000 1200 ' 1210 ' 1220 BORDER 0 1230 INK 0,12:PEN #4,1:PEN #6,2:PEN #1,1:PEN #2,2:PAPER #1,3:PAPER #2,3:PEN #0,6 1240 RETURN 'de preparar constantes 1250 ' 1260 ' 1270 INK 0,12:INK 1,2:INK 2,6:INK 3,13:INK 4,20:INK 5,17:INK 6,20 1280 WINDOW #3,3,3,6,25:WINDOW #5,18,18,6,25 1290 WINDOW #1,3,5,1,5:WINDOW #2,16,18,1,5:WINDOW #7,1,20 ,1,5:PAPER #7,3 1300 CLS:CLS#7:PRINT#1,a$(0);:PRINT#2,a$(0);:p1sc=0:p2sc=0:p1wp=5:p2wp=24:p1dir=1:p2dir=1 1310 GOSUB 570:GOSUB 620 1320 SOUND 1,1000,0,12,2:SOUND 2,900,0,12,2 1330 p1sa=0:p2sa=0:termina=0 1340 RETURN 1350 ' 1360 ' 1370 CLS 1380 PEN 7 1390 FOR n=1 TO LEN(b$) 1400 LOCATE 1+n,10 1410 FOR n2=LEN(b$) TO n STEP-1 1420 PRINT MID$(b$,n2,1) 1430 LOCATE 1+n,10 1440 SOUND 135,20*n2,5,12,2,1 1450 NEXT n2,n 1460 SOUND 135,100,0,13,3,1,20 1470 PEN 6:PRINT:PRINT:PRINT:PRINT c$ 1480 FOR n=1 TO 5000:NEXT 1490 RETURN 1500 ' 1510 ' 1520 IF j THEN RETURN 1530 CLS 1540 LOCATE 6,5 1550 PRINT"CONTROLES" 1560 PRINT 1570 PRINT"JUGADOR 1 JUGADOR 2" 1580 PRINT 1590 PRINT" A arriba 6" 1600 PRINT" Z abajo 3" 1610 PRINT" X disparo 9" 1620 t!=TIME:WHILE t!+1000>TIME:WEND 1630 RETURN
Amthello
Amthello es un juego de reflexión donde tienes que tratar de rodear y capturar los cuadrados de tu oponente sin dejar los tuyos al descubierto. El juego es para un jugador contra el ordenador y únicamente se controla con teclado. Los listados Basic son obra de M. J. Gribbins.
10 'AMTHELLO, por M. J. Gribbins 20 'copyright (c) AMSOFT 1984 30 ' 40 BORDER 14 50 CLEAR 60 MODE 1:PEN 0:PAPER 1:CLS 70 INK 0,0:INK 1,14:INK 2,18:INK 3,26 80 LOCATE 2,3:PEN 3:PRINT"A":LOCATE 3,4:PRINT"M":LOCATE 4 ,5:PRINT"T":LOCATE 5,6:PRINT"H" 90 LOCATE 6,7:PRINT"E":LOCATE 7,8:PRINT"L":LOCATE 8,9:PRINT"L":LOCATE 9,10:PRINT"O" 100 WINDOW #1,2,39,22,25:PAPER #1,1:PEN #1,0:CLS#1 110 PEN 0 120 LOCATE #1,5,1:PRINT#1,"LAS NEGRAS SIEMPRE EMPIEZAN" 130 LOCATE #1,4,3:PRINT#1,"ELIJA BLANCAS [B] O NEGRAS [N]" 140 b$=INKEY$:IF b$="" THEN 140 150 IF b$="B" OR b$="b" THEN q%=3:n%=0:GOTO 210 160 IF b$="N" OR b$="n" THEN q%=0:n%=3:GOTO 210 170 CLS#1:LOCATE #1,4,3 180 PRINT#1," SOLO BLANCAS O NEGRAS" 190 FOR t=0 TO 1000:NEXT t 200 GOTO 140 210 DIM c%(10,10),p%(9,9),c1%(8),c2%(8),cx%(9),cy%(9) 220 i1%=2:j1%=2:i2%=7:j2%=7 230 FOR i%=0 TO 9 240 c%(i%,o%)=6:c%(0,i%)=6 250 c%(9,i%)=6:c%(i%,9)=6 260 NEXT i% 270 FOR i%=1 TO 8 280 READ c1%(i%),c2%(i%) 290 FOR j%=1 TO 8 300 READ p%(i%,j%) 310 c%(i%,j%)=6 320 NEXT j%:NEXT i% 330 c%(4,4)=3:c%(4,5)=0:c%(5,4)=0:c%(5,5)=3 340 FOR k%=1 TO 58 350 READ ar%,br%,cr%,dr% 360 PLOT ar%,br%:DRAW cr%,dr%,0 370 NEXT k% 380 GOSUB 1460 390 IF q%=3 GOTO 770 400 CLS#1:INPUT #1," ELIJA FILA ";e% 410 IF e%<1 OR e%>8 GOTO 400 420 LOCATE #1,1,3:INPUT #1," ELIJA COLUMNA ";d% 430 IF d%<1 OR d%>8 GOTO 420 440 IF c%(d%,e%)=6 GOTO 480 450 CLS#1:LOCATE #1,5,2:PRINT#1,"ESE CUADRADO YA ESTA OCUPADO!" 460 FOR t=1 TO 1000:NEXT t 470 GOTO 400 480 PLOT 270+(30*d%),70+(30*e%):DRAW 290+(30*d%),89+(30*e%),q% 490 PLOT 290+(30*d%),70+(30*e%):DRAW 270+(30*d%),89+(30*e%),q% 500 GOTO 540 510 FOR m%=0 TO 19 STEP 2:PLOT 270+(30*d%),70+m%+(30*e%) 520 DRAW 290+(30*d%),70+m%+(30*e%),6:NEXT m% 530 GOTO 400 540 vrx%=0 550 FOR k%=1 TO 8 560 vr%=0:c3%=d%:c4%=e% 570 c3%=c3%+c1%(k%):c4%=c4%+c2%(k%) 580 IF c%(c3%,c4%)=n% GOTO 590 ELSE 600 590 vr%=vr%+1:GOTO 570 600 IF c%(c3%,c4%)=6 GOTO 610 ELSE 620 610 NEXT k%:GOTO 670 620 IF vr%=0 GOTO 610 ELSE 630 630 vrx%=vrx%+vr% 640 c3%=c3%-c1%(k%):c4%=c4%-c2%(k%) 650 IF c%(c3%,c4%)=6 GOTO 610 ELSE 660 660 c%(c3%,c4%)=q%:GOTO 640 670 IF vrx%=0 GOTO 680 ELSE 710 680 CLS#1:PRINT#1,"ESO NO ES POSIBLE" 690 FOR t=1 TO 1000:NEXT t 700 GOTO 510 710 e%=e%:dt=d%:vrx%=vrx% 720 CLS#1:PRINT#1,"USTED VA A LA LINEA ";e% 730 PRINT#1," Y A LA COLUMNA ";d% 740 LOCATE #1,2,4:PRINT#1,"CON LO QUE CONSIGUE ";vrx%;" CUADRADO(S)" 750 c%(d%,e%)=q%:GOSUB 1710 760 GOSUB 1460 770 CLS#1:LOCATE #1,10,2:PRINT#1,"AHORA ME TOCA A MI ..." 780 p%=0:vrx%=0:vry%=0 790 IF i1%*j1%=1 AND i2%*j2%=64 GOTO 860 800 FOR k%=2 TO 7 810 IF c%(2,k%)<>6 THEN i1%=1 820 IF c%(7,k%)<>6 THEN i2%=8 830 IF c%(k%,2)<>6 THEN j1%=1 840 IF c%(k%,7)<>6 THEN j2%=8 850 NEXT k% 860 FOR i%=i1% TO i2% 870 FOR j%=j1% TO j2% 880 IF c%(i%,j%)=6 GOTO 1030 890 NEXT j%:NEXT i% 900 IF p%>0 THEN 1000 910 IF pas%=1 GOTO 920 ELSE 940 920 CLS#1:PRINT#1,"BLOQUEADO! YO TAMBIEN TENGO QUE PASAR. FIN DE LA PARTIDA" 930 FOR t=1 TO 1000:NEXT t:GOTO 1550 940 CLS#1:LOCATE #1,18,2:PRINT#1,"TENGO QUE PASAR" 950 GOSUB 2720 960 IF pas%=1 GOTO 970 ELSE 990 970 CLS#1:PRINT#1,"BLOQUEADO! USTED TAMBIEN TIENE QUE PASAR. FIN DE LA PARTIDA." 975 RETURN 980 FOR t=1 TO 1000:NEXT t:GOTO 1550 990 GOTO 400 1000 IF lc%=0 THEN lc%=1:RANDOMIZE lc%:r1%=RND(lc%) 1010 cx1%=cx%(r1%):cx2%=cy%(r1%) 1020 GOTO 1220 1030 vrx%=0 1040 FOR k%=1 TO 8 1050 vr%=0:c3%=i%:c4%=j% 1060 c3%=c3%+c1%(k%):c4%=c4%+c2%(k%) 1070 IF c%(c3%,c4%)=q% GOTO 1080 ELSE 1090 1080 vr%=vr%+1:GOTO 1060 1090 IF c%(c3%,c4%)=6 GOTO 1100 ELSE 1110 1100 NEXT k%:GOTO 1130 1110 IF vr%=o% GOTO 1100 ELSE 1120 1120 vrx%=vrx%+vr%:GOTO 1100 1130 IF vrx%=0 GOTO 890 1140 IF p%(i%,j%) < p% GOTO 890 1150 IF p%(i%,j%) > p% GOTO 1160 ELSE 1170 1160 p%=p%(i%,j%):vry%=vrx%:lc%=0:cx%(0)=i%:cy%(0)=j%:GOTO 890 1170 IF vry%>vrx% GOTO 890 1180 IF vry%<vrx% GOTO 1190 ELSE 1200 1190 lc%=0:vry%=vrx%:cx%(0)=i%:cy%(0)=j%:GOTO 890 1200 lc%=lc%+1:cx%(lc%)=114:cy%(lc%)=j% 1210 GOTO 890 1220 cx2%=cx2%:cx1%=cx1%:vry%=vry% 1230 CLS#1:PRINT#1,"YO VOY A LA FILA ";cx2% 1240 PRINT#1," Y A LA COLUMNA ";cx1% 1250 LOCATE #1,1,4:PRINT#1,"CON LO QUE CONSIGO ";vry%;" CUADRADO(S)" 1260 PLOT 270+(30*cx1%),70+(30*cx2%):DRAW 290+(30*cx1%),89+(30*cx2%),n% 1270 PLOT 290+(30*cx1%),70+(30*cx2%):DRAW 270+(30*cx1%),89+(30*cx2%),n% 1280 FOR t=1 TO 1000:NEXT t 1290 FOR k%=1 TO 8 1300 vr%=0:c3%=cx1%:c4%=cx2% 1310 c3%=c3%+c1%(k%):c4%=c4%+c2%(k%) 1320 IF c%(c3%,c4%)=q% GOTO 1330 ELSE 1340 1330 vr%=vr%+1:GOTO 1310 1340 IF c%(c3%,c4%)=6 GOTO 1350 ELSE 1360 1350 NEXT k%:GOTO 1400 1360 IF vr%=0 GOTO 1350 1370 c3%=c3%-c1%(k%):c4%=c4%-c2%(k%) 1380 IF c%(c3%,c4%)=6 GOTO 1350 1390 c%(c3%,c4%)=n%:GOTO 1370 1400 c%(cx1%,cx2%)=n% 1410 GOSUB 2720 1420 GOSUB 1460 1430 IF pas%=1 GOTO 1440 ELSE 1450 1440 CLS#1:PRINT#1," USTED TIENE QUE PASAR":FOR t=1 TO 1000:NEXT t:GOTO 770 1450 GOTO 400 1460 FOR i%=1 TO 8 1470 FOR j%=1 TO 8 1480 FOR m%=1 TO 19 STEP 2 1490 z%=270+(30*i%):h%=70+(30*j%):w%=h%+m% 1500 PLOT z%,w%:DRAW z%+20,w%,c%(i%,j%) 1510 NEXT m%:NEXT j%:NEXT i% 1520 x%=x%+1 1530 IF x%=61 GOTO 1550 1540 RETURN 1550 cq%=0:cn%=0 1560 FOR i%=1 TO 8 1570 FOR j%=1 TO 8 1580 IF c%(i%,j%)=q% THEN cq%=cq%+1 1590 IF c%(i%,j%)=n% THEN cn%=cn%+1 1600 NEXT j%:NEXT i% 1610 IF cq%>cn% GOTO 1680 1620 IF cq%=cn% GOTO 1630 ELSE 1650 1630 CLS#1:LOCATE #1,25,2:PRINT#1,"BLOQUEADO" 1640 END 1650 CLS#1:LOCATE #1,5,1:PRINT#1,"USTED TIENE ";cq%;" CUADRADOS. YO TENGO ";cn% 1660 LOCATE #1,11,3:PRINT#1,"YO HE GANADO ... !!!" 1670 END 1680 CLS#1:LOCATE #1,5,1:PRINT#1,"USTED TIENE ";cq%;" CUADRADOS. YO TENGO ";cn% 1690 LOCATE #1,5,3:PRINT#1,"MUY BIEN. USTED HA GANADO ...!!!" 1700 END 1710 IF c%(2,2)=q% AND (c%(3,1)=n% OR c%(1,3)=n%) GOTO 1720 ELSE 1730 1720 p%(3,1)=1:p%(1,3)=1 1730 IF c%(7,7)=q% AND (c%(8,6)=n% OR c%(6,8)=n%) GOTO 1740 ELSE 1750 1740 p%(8,6)=1:p%(6,8)=1 1750 IF c%(2,7)=q% AND (c%(1,6)=n% OR c%(3,8)=n%) GOTO 1760 ELSE 1770 1760 p%(1,6)=1:p%(3,8)=1 1770 IF c%(7,2)=q% AND (c%(6,1)=n% OR c%(8,3)=n%) GOTO 1780 ELSE 1790 1780 p%(6,1)=1:p%(8,3)=1 1790 IF d%=1 OR d%=8 OR e%=1 OR e%=8 GOTO 1820 1800 IF cx1%=1 OR cx1%=8 OR cx2%=1 OR cx2%=8 GOTO 1820 1810 RETURN 1820 FOR j%=1 TO 8 STEP 7 1830 FOR i%=2 TO 7 1840 IF c%(i%,j%)=n% GOTO 1850 ELSE 1860 1850 p%(i%+1,j%)=21:p%(i%-1,j%)=21 1860 IF c%(j%,i%)=n% GOTO 1870 ELSE 1880 1870 p%(j%,i%+1)=21:p%(j%,i%-1)=21 1880 NEXT i% 1890 FOR i%=2 TO 7 1900 IF c%(i%,j%)=q% GOTO 1910 ELSE 1920 1910 p%(i%+1,j%)=2:p%(i%-1,j%)=2 1920 IF c%(j%,i%)=q% GOTO 1930 ELSE 1940 1930 p%(j%,i%+1)=2:p%(j%,i%-1)=2 1940 NEXT i%:NEXT j% 1950 p%(1,2)=1:p%(1,7)=1:p%(2,1)=1:p%(7,1)=1 1960 p%(2,8)=1:p%(7,8)=1:p%(8,2)=1:p%(8,7)=1 1970 FOR i%=2 TO 7 1980 IF c%(1,i%-1)=q% AND c%(1,i%+1)=q% THEN p%(1,i%)=25 1990 IF c%(8,i%-1)=q% AND c%(8,i%+1)=q% THEN p%(8,i%)=25 2000 IF c%(i%-1,1)=q% AND c%(i%+1,1)=q% THEN p%(i%,1)=25 2010 IF c%(i%-1,8)=q% AND c%(i%+1,8)=q% THEN p%(i%,8)=25 2020 NEXT i% 2030 FOR j%=1 TO 8 STEP 7 2040 FOR i%=4 TO 8 2050 IF c%(j%,i%)<>n% GOTO 2140 2060 ic%=1%-1:IF c%(j%,ic%)=6 GOTO 2140 2070 IF c%(j%,ic%)=q% GOTO 2080 ELSE 2090 2080 ic%=ic%-l:GOTO 2070 2090 IF c%(j%,ic%)=6 GOTO 2110 2100 GOTO 2140 2110 IF ic%=0 GOTO 2140 2120 IF c%(j%,i%+1)=q% AND c%(j%,ic%-1)=6 GOTO 2140 2130 p%(j%,ic%)=26 2140 IF c%(i%,j%)<>n% GOTO 2230 2150 ic%=1%-1:IF c%(ic%,j%)=6 GOTO 2230 2160 IF c%(ic%,j%)=q% GOTO 2170 ELSE 2180 2170 ic%=ic%-l:GOTO 2160 2180 IF c%(ic%,j%)=6 GOTO 2200 2190 GOTO 2230 2200 IF ic%=0 GOTO 2230 2210 IF c%(i%+1,j%)=q% AND c%(ic%-1,j%)=6 GOTO 2230 2220 p%(ic%,j%)=26 2230 NEXT i% 2240 FOR i%=1 TO 5 2250 IF c%(j%,i%)<>n% GOTO 2340 2260 ic%=i%+1:IF c%(j%,ic%)=6 GOTO 2340 2270 IF c%(j%,ic%)=q% GOTO 2280 ELSE 2290 2280 ic%=ic%+1:GOTO 2270 2290 IF c%(j%,ic%)=6 GOTO 2310 2300 GOTO 2340 2310 IF ic%=9 GOTO 2340 2320 IF c%(j%,i%-1)=q% AND c%(j%,ic%+1)=6 GOTO 2340 2330 p%(j%,ic%)=26 2340 IF c%(i%,j%)<>n% GOTO 2430 2350 ic%=i%+1:IF c%(ic%,j%)=6 GOTO 2430 2360 IF c%(ic%,j%)=q% GOTO 2370 ELSE 2380 2370 ic%=ic%+1:GOTO 2360 2380 IF c%(ic%,j%)=6 GOTO 2400 2390 GOTO 2430 2400 IF ic%=9 GOTO 2430 2410 IF c%(i%-1,j%)=q% AND c%(ic%+1,j%)=6 GOTO 2430 2420 p%(ic%,j%)=26 2430 NEXT i%:NEXT j% 2440 IF c%(1,1)=n% GOTO 2450 ELSE 2460 2450 FOR i%=2 TO 6:p%(1,i%)=20:p%(i%,1)=20:NEXT i% 2460 IF c%(1,8)=n% GOTO 2470 ELSE 2480 2470 FOR i%=2 TO 6:p%(i%,8)=20:p%(1,9-i%)=20:NEXT i% 2480 IF c%(8,1)=n% GOTO 2490 ELSE 2500 2490 FOR i%=2 TO 6:p%(9-i%,1)=20:p%(8,i%)=20:NEXT i% 2500 IF c%(8,8)=n% GOTO 2510 ELSE 2520 2510 FOR i%=3 TO 7:p%(i%,8)=20:p%(8,i%)=20:NEXT i% 2520 IF c%(1,1)<>6 THEN p%(2,2)=5 2530 IF c%(1,8)<>6 THEN p%(2,7)=5 2540 IF c%(8,1).06 THEN p%(7,2)=5 2550 IF c%(8,8)0,6 THEN p%(7,7)=5 2560 p%(1,1)=30:p%(1,8)=30:p%(8,1)=30:p%(8,8)=30 2570 FOR i%=3 TO 6 2580 IF c%(1,i%)=n% THEN p%(2,i%)=4 2590 IF c%(8,i%)=n% THEN p%(7,i%)=4 2600 IF c%(i%,1)=n% THEN p%(i%,2)=4 2610 IF c%(i%,8)=n% THEN p%(i%,7)=4 2620 NEXT i% 2630 IF c%(7,1)=q% AND c%(4,1)=n% AND c%(6,1)=6 AND c%(5,1)=6 THEN p%(6,1)=26 2640 IF c%(1,7)=q% AND c%(1,4)=n% AND c%(1,6)=6 AND c%(1,5)=6 THEN p%(1,6)=26 2650 IF c%(2,1)=q% AND c%(5,1)=n% AND c%(3,1)=6 AND c%(4,1)=6 THEN p%(3,1)=26 2660 IF c%(1,2)=q% AND c%(1,5)=n% AND c%(1,3)=6 AND c%(1,4)=6 THEN p%(1,3)=26 2670 IF c%(8,2)=q% AND c%(8,5)=n% AND c%(8,3)=6 AND c%(8,4)=6 THEN p%(8,3)=26 2680 IF c%(2,8)=q% AND c%(5,8)=n% AND c%(3,8)=6 AND c%(4,8)=6 THEN p%(3,8)=26 2690 IF c%(8,7)=q% AND c%(8,4)=n% AND c%(8,5)=6 AND c%(8,6)=6 THEN p%(8,6)=26 2700 IF c%(7,8)=q% AND c%(4,8)=n% AND c%(5,8)=6 AND c%(6,8)=6 THEN p%(6,8)=26 2710 RETURN 2720 pas%=0 2730 FOR i%=1 TO 8 2740 FOR j%=1 TO 8 2750 IF c%(i%,i%)=q% GOTO 2780 2760 NEXT j%:NEXT i% 2770 pas%=1:RETURN 2780 FOR k%=1 TO 8 2790 vr%=0:c3%=i%:c4%=j% 2800 c3%=c3%+c1%(k%):c4%=c4%+c2%(k%) 2810 IF c3%<1 OR c3%>8 GOTO 2820 ELSE 2830 2820 NEXT k%:GOTO 2760 2830 IF c4%<1 OR c4%>8 GOTO 2820 ELSE 2840 2840 IF c%(c3%,c4%)=n% GOTO 2850 ELSE 2860 2850 vr%=vr%+1:GOTO 2800 2860 IF c%(c3%,c4%)=q% GOTO 2820 ELSE 2870 2870 IF vr%>0 THEN RETURN 2880 GOTO 2820 2890 DATA 1,0,30,1,20,10,10,20,1,30,1,1,1,1,3 2900 DATA 3,3,3,1,1,0,1,20,3,5,5,5,5,3,20,-1,1,10,3,5 2910 DATA 0,0,5,3,10,-1,0,10,3,5,0,0,5,3,10,-1 2920 DATA -1,20,3,5,5,5,5,3,20,0,-1,1,1,3,3,3,3,1,1,1,-1,30,1,20,10,10,20,1,30 2930 DATA 263,100,263,120,270,130,255,130,255,130,255,140,255,140,270,140 2940 DATA 270,140,270,150,270,150,255,150,255,160,270,160,270,160,270,180 2950 DATA 270,180,255,180,270,170,255,170,270,190,270,210,270,200,255,200 2960 DATA 255,200,255,210,255,220,270,220,270,220,270,230,270,230,255,230 2970 DATA 255,230,255,240,255,240,270,240,255,250,270,250,270,250,270,260 2980 DATA 270,260,255,260,255,250,255,270,270,280,270,300,270,300,255,300 2990 DATA 255,310,255,330,255,330,270,330,270,330,270,310,270,310,255,310 3000 DATA 255,320,270,320 3010 DATA 310,355,310,375,350,355,335,355,335,355,335,365,335,365,350,365 3020 DATA 350,365,350,375,350,375,335,375,365,355,380,355,380,355,380,375 3030 DATA 380,375,365,375,380,365,365,365,410,355,410,375,410,365,395,365 3040 DATA 395,365,395,375,425,355,440,355,440,355,440,365,440,365,425,365 3050 DATA 425,365,425,375,425,375,440,375,455,375,455,355,455,355,470,355 3060 DATA 470,355,470,365,470,365,455,365,485,375,500,375,500,375,500,355 3070 DATA 515,375,515,355,515,355,530,355,530,355,530,375,530,375,515,375 3080 DATA 515,365,530,365
Por favor, acepta las cookies de YouTube para poder ver este video. Aceptando, accederás al contenido de YouTube, un servicio externo y gestionado por terceros.
Leer la privacidad de Youtube.
Aceptando este aviso, tu selección será guardara y la página se refrescará.
Guante blanco
Llévese las joyas del señor conde. Muchos obstáculos con los que tropezar, luces que encender, y cuidado con el perro. Para un jugador contra el ordenador. Teclado o joystick.
10 'GUANTE BLANCO, por David Radisic 20 'copyright (c) AMSOFT 1985 30 ' 40 MODE 0:INK 0,0:BORDER 0:INK 1,26:INK 2,15:INK 3,25 50 INK 4,14:INK 5,24,12:INK 6,0:INK 7,0:INK 8,0:PAPER #1, 7 60 retardo=200 70 DIM objx(5,20),objy(5,20),joyax(5,20),joyay(5,20) 80 GOSUB 380 90 GOSUB 720 100 pausa=200:GOSUB 340 110 IF joyas=0 THEN GOSUB 980 120 PEN 4 130 FOR i=10 TO 12 140 LOCATE 15,i:PRINT"BOTIN"; 150 NEXT 160 PAPER 0:CLS#2:PAPER 8 170 GOSUB 1180 180 GOSUB 1240 190 GOSUB 1380 200 GOSUB 1520 210 IF rm=0 THEN GOSUB 1910 220 IF muerto=0 THEN 160 230 pausa=100:GOSUB 340 240 PAPER 0:CLS:PEN 1 250 LOCATE 4,3:PRINT"Quiere jugar"; 260 LOCATE 5,5:PRINT"otra vez?"; 270 PEN 5:LOCATE 7,7:PRINT"S/N"; 280 i$=UPPER$(INKEY$):IF i$<>"S" AND i$<>"N" THEN 280 290 IF i$="N" THEN MODE 2:PEN 1:STOP 300 RUN 310 IF perro=1 THEN RETURN 320 perro=1:perrox=minx(rm):perroy=miny(rm) 330 RETURN 340 FOR bucle=1 TO pausa 350 FRAME 360 NEXT 370 RETURN 380 rm=1:xp=6:yp=4:hombre$=CHR$(224):perro=0:robado=0 390 SYMBOL 240,8,8,8,8,8,8,8,8 400 SYMBOL 241,0,0,0,0,255,0,1 .0 410 SYMBOL 242,0,0 0,0,15,8,8,8 420 SYMBOL 243,0,0,0,0,248,8,8,8 430 SYMBOL 244,8,8,8,8,248,0,0,0 440 SYMBOL 245,8,8,8,8,15,0,0,0 450 SYMBOL 246,8,12,13,14,12,12,8,8 460 SYMBOL 247,8,12,12,14,13,12,9,8 470 SYMBOL 248,8,24,88,56,24,24,8,8 480 SYMBOL 249,8,24,24,56,88,24,8,8 490 SYMBOL 250,0,0,255,129,129,129,255,0 500 SYMBOL 251,28,20,20,20,20,20,20,28 510 SYMBOL 252,0,0,255,255,255,255,255,0 520 SYMBOL 253,28,28,28,28,28,28,28,28 530 SYMBOL 255,195,165,60,126,90,60,36,24 540 ENT 1,12,-4,1 550 ENT -2,=1000,60,=3000,40 560 ENV 1,10,1,5,2,-4,1,2,-1,20 570 vent$(1)=STRING$(2,250):vent$(2)=CHR$(251)+CHR$(8)+CHR$(10)+CHR$(251)+CHR$(8)+CHR$(10)+CHR$(251) 580 puerta$(1)=STRING$(2,252): puerta$(2)=CHR$(253)+CHR$(8)+CHR$(10)+CHR$(253)+CHR$(8)+CHR$(10)+CHR$(253) 590 conm$(1,0)=CHR$(246):conm$(1,1)=CHR$(247) 600 conm$(2,0)=CHR$(248):conm$(2,1)=CHR$(249) 610 joya$=CHR$(144):obj$=CHR$(233):perro$=CHR$(255) 620 gol$=CHR$(246)+CHR$(248)+CHR$(247)+CHR$(249)+CHR$(252)+CHR$(253)+CHR$(250)+CHR$(251)+joya$+obj$+perro$ 630 RESTORE 3020 640 FOR i=1 TO 5 650 READ minx(i),miny(i),maxx(i),maxy(i) 660 READ dir(i,1),dir(1,2),dir(i,3),dir(1,4) 670 NEXT 680 WINDOW #1,minx(rm)-1,maxx(rm)+1,miny(rm)-1,maxy(rm)+1 690 WINDOW #2,1,14,1,25 700 CLS#1:PAPER #0,8 710 RETURN 720 ORIGIN 50,50 730 INK 6,24,12 740 RESTORE 3070 750 GOSUB 1290 760 LOCATE 1,20 770 PEN 5:PRINT">"; 780 PEN 1:PRINT"Puertas y ventanas"; 790 PEN 5:PRINT"<";:PEN 1 800 LOCATE 5,21:PRINT"para escapar"; 810 LOCATE 9,1:PRINT"PASE":LOCATE 10,2:PRINT CHR$(213)CHR$(212); 820 pausa=300:GOSUB 340 830 CLS:LOCATE 1,3:INK 6,0 840 PEN 1:PRINT hombre$;" Usted, el ladron":PRINT 850 PEN 2:PRINT LEFT$(puerta$(1),1);LEFT$(puerta$(2),1);"Puertas":PRINT 860 PEN 3:PRINT conm$(1,0);conm$(2,0);" Luces apagadas":PRINT 870 PEN 3:PRINT conm$(1,1);conm$(2,1);" Luces encendidas" :PRINT 880 PEN 4:PRINT LEFT$(vent$(1),1);LEFT$(vent$(2),1);" Ventanas":PRINT 890 PEN 5:PRINT joya$;" Piedras preciosas":PRINT 900 PAPER 1:PEN 0:PRINT obj$;" Obstaculos":PEN 1:PAPER 0:PRINT 910 PEN 1:PRINT perro$;" El perro" 920 PEN 5:PRINT:PRINT:PRINT 930 PRINT"Utilice joystick":PRINT"o teclas de cursor" 940 aux=REMAIN(1) 950 AFTER retardo*4,1 GOSUB 340 960 RETURN 970 ' 980 'Generar joyas y obstaculos 990 ' 1000 FOR hab=1 TO 5 1010 joyar=INT(RND*8)+2:objr=INT(RND*10)+5 1020 minx=minx(hab):miny=miny(hab):maxx=maxx(hab):maxy=maxy(hab) 1030 FOR i=1 TO joyar 1040 x=INT(RND*(maxx-minx+1))+minx 1050 y=INT(RND*(maxy-miny+1))+miny 1060 joyax(hab,i)=x:joyay(hab,i)=y 1070 joyas=joyas+1 1080 NEXT i 1090 FOR i=1 TO objr 1100 x=INT(RND*(maxx-minx+1))+minx 1110 y=INT(RND*(maxy-miny+1))+miny 1120 objx(hab,i)=x:objy(hab,i)=y 1130 NEXT i 1140 joyas(hab)=joyar:obj(hab)=objr 1150 NEXT hab 1160 CLS 1170 RETURN 1180 ON rm GOTO 1190,1200,1210,1220,1230 1190 RESTORE 2680:RETURN 1200 RESTORE 2750:RETURN 1210 RESTORE 2820:RETURN 1220 RESTORE 2890:RETURN 1230 RESTORE 2970:RETURN 1240 PAPER 0:READ rm$:PAPER 8 1250 WINDOW #1,minx(rm)-1,maxx(rm)+1,miny(rm)-1,maxy(rm)+1:CLS#1 1260 PEN 1:LOCATE 1,1:PRINT SPACE$(19); 1270 LOCATE 1,1:PRINT"Habitacion: ";rm$; 1280 IF luces(rm) THEN INK 7,10:INK 8,10 ELSE INK 7,0:INK 8,0 1290 READ a$:IF a$="FIN" THEN RETURN 1300 IF a$="D" THEN 2190 1310 IF a$="W" THEN 2270 1320 IF a$="L" THEN GRAPHICS PEN 1:GOTO 2350 1330 IF a$="S" THEN 2430 1340 IF a$="F" THEN GRAPHICS PEN 6:GOTO 2350 1350 PRINT"***ERROR ***"; 1360 STOP 1370 ' 1380 'Dibujar joyas/objetos 1390 ' 1400 PEN 6 1410 FOR i=1 TO obj(rm) 1420 LOCATE objx(rm,i),objy(rm,i) 1430 PRINT obj$; 1440 NEXT 1450 PEN 5 1460 FOR i=1 TO joyas(rm) 1470 LOCATE joyax(rm,i),joyay(rm,i) 1480 PRINT joya$; 1490 NEXT 1500 PEN 1:LOCATE xp,yp:PRINT hombre$; 1510 RETURN 1520 xf=0:yf=0:PEN 1 1530 IF INKEY(0)<>-1 OR INKEY(72)<>-1 THEN yf=-1 1540 IF INKEY(2)<>-1 OR INKEY(73)<>-1 THEN yf=1 1550 IF INKEY(8)<>-1 OR INKEY(74)<>-1 THEN xf=-1 1560 IF INKEY(1)<>-1 OR INKEY(75)<>-1 THEN xf=1 1570 IF xf=0 AND yf=0 THEN 1640 1580 LOCATE xp+xf,yp+yf:ht$=COPYCHR$(#0) 1590 IF ASC(ht$)>239 AND ASC(ht$)<246 THEN 1520 1600 IF ht$<>" " THEN 1670 1610 LOCATE xp,yp:PRINT" "; 1620 PAPER 0:LOCATE 4,24:PRINT" ";:PAPER 8 1630 xp=xp+xf:yp=yp+yf 1640 LOCATE xp,yp:PRINT hombre$; 1650 IF perro>0 THEN perro=perro MOD 2+1:IF perro=2 THEN 2560 1660 GOTO 1520 1670 gol=INSTR(gol$,ht$):car=ASC(MID$(gol$,gol,1)) 1680 ON gol GOTO 1700,1700,1700,1700,1760,1760,1860,1910,1980,2100,2660 1690 GOTO 1610 1700 IF gol>2 AND gol<5 THEN car=car-1 1710 IF gol<3 THEN car=car+1 1720 PEN 3:LOCATE xp+xf,yp+yf:PRINT CHR$(car); 1730 luces(rm)=luces(rm) XOR 1 1740 IF luces(rm) THEN INK 7,10:INK 8,10 ELSE INK 7,0:INK 8,0 1750 GOTO 1520 1760 IF xf<>0 AND yf<>0 THEN 1640 1770 IF xf<0 THEN dir=4 ELSE IF xf>0 THEN dir=3 1780 IF yf<0 THEN dir=1 ELSE IF yf>0 THEN dir=2 1790 IF dir(rm,dir)=-1 THEN 1640 ELSE rm=dir(rm,dir) 1800 IF perro>0 THEN GOSUB 310 1810 IF dir=1 THEN xp=6:yp=maxy(rm) 1820 IF dir=2 THEN xp=6:yp=miny(rm) 1830 IF dir=3 THEN xp=minx(rm):yp=13 1840 IF dir=4 THEN xp=maxx(rm):yp=13 1850 RETURN 1860 IF xp>5 AND xp<8 THEN 1890 1870 IF xp<6 THEN dir=4 ELSE dir=3 1880 GOTO 1790 1890 IF yp>13 THEN dir=2 ELSE dir=1 1900 GOTO 1790 1910 PAPER 0:CLS:PEN 1 1920 LOCATE 3,3:PRINT"Usted ha escapado"; 1930 LOCATE 8,5:PRINT"con"; 1940 IF joyas=robado THEN LOCATE 8,7:PRINT"todas las";ELSE LOCATE 8,7 1950 PRINT USING" ##";robado; 1960 PEN 5:LOCATE 8,9:PRINT"joyas"; 1970 muerto=1:RETURN 1980 LOCATE xp,yp:PRINT" ";:xp=xp+xf:yp=yp+yf 1990 i=0 2000 i=i+1 2010 IF i>joyas(rm) THEN 1520 2020 IF joyax(rm,i)<>xp OR joyay(rm,i)<>yp THEN 2000 2030 IF i=joyas(rm) THEN 2060 2040 joyax(rm,i)=joyax(rm,joyas(rm)) 2050 joyay(rm,i)=joyay(rm,joyas(rm)) 2060 joyas(rm)=joyas(rm)-1:robado=robado+1 2070 MOVE 400,150+(robado*2),1,1:DRAW 555,150+(robado*2),1,1 2080 SOUND 129,248,10,12,0,1 2090 GOTO 1990 2100 ruido=INT(RND*15) 2110 SOUND 1,3000,10,ruido,0,0,10 2120 PAPER 0:LOCATE 4,24:PRINT"Choque ";:PAPER 8 2130 IF ruido<10 OR retardo=50 THEN 1640 2140 retardo=retardo-50 2150 aux=REMAIN(1) 2160 AFTER retardo*4,1 GOSUB 310 2170 GOTO 1640 2180 ' 2190 'Dibujar puertas 2200 ' 2210 READ no,pu$ 2220 IF pu$="V" THEN pu=2 ELSE pu=1 2230 PEN 2 2240 pic$=puerta$(pu):GOSUB 2510 2250 GOTO 1290 2260 ' 2270 'Dibujar ventanas 2280 ' 2290 READ no,ve$ 2300 IF ve$="V" THEN ve=2 ELSE ve=1 2310 PEN 4 2320 pic$=vent$(ve):GOSUB 2510 2330 GOTO 1290 2340 ' 2350 'Dibujar rectas 2360 ' 2370 READ x1,y1,x2,y2 2380 MOVE x1,y1,0 2390 DRAW x1,y2,0:DRAW x2, y2,0 2400 DRAW x2,y1,0:DRAW x1,y1,0 2410 GOTO 1290 2420 ' 2430 'Dibujar interruptores 2440 ' 2450 READ no,co$ 2460 IF co$="L" THEN co=1 ELSE co=2 2470 PEN 3 2480 pic$=conm$(co,0):GOSUB 2510 2490 GOTO 1290 2500 ' 2510 'Escribir car 2520 ' 2530 READ x,y:LOCATE x,y:PRINT pic$; 2540 no=no-1:IF no>0 THEN 2530 2550 RETURN 2560 PEN 1:LOCATE perrox,perroy:PRINT" "; 2570 hombre$=CHR$(225) 2580 IF (perrox=xp AND perroy=yp) OR (perrox=xp+xf AND perroy=yp+yf) THEN 2660 2590 IF perrox<xp THEN perrox=perrox+1 2600 IF perrox>xp THEN perrox=perrox-1 2610 IF perroy<yp THEN perroy=perroy+1 2620 IF perroy>yp THEN perroy=perroy-1 2630 LOCATE perrox,perroy:PRINT perro$; 2640 SOUND 1,0,RND*40,10,1,2,31 2650 GOTO 1520 2660 PRINT"MORDIDO"; 2670 muerto=1:RETURN 2680 DATA Pasillo 2690 DATA L,64,308,226,4 2700 DATA D,2,H,6,3,6,22 2710 DATA D,2,V,4,12,9,11 2720 DATA S,1,L,4,11 2730 DATA S,1,R,9,14 2740 DATA FIN 2750 DATA Sala 2760 DATA L,2,308,258,4 2770 DATA D,1,V,10,12 2780 DATA W,1,H,6,3 2790 DATA W,1,V,2,12 2800 DATA 8,2,R,10,11,10,15 2810 DATA FIN 2820 DATA Comedor 2830 DATA L,2,308,258,4 2840 DATA W,1,V,10,12 2850 DATA W,1,H,6,3 2860 DATA D,1,V,2,12 2870 DATA S,2,L,2,11,2,15 2880 DATA FIN 2890 DATA Cocina 2900 DATA L,2,276,384,4 2910 DATA D,2,H,6,5,6,22 2920 DATA W,1,H,10,22 2930 DATA W,1,V,14,13 2940 DATA D,1,V,2,13 2950 DATA S,1,L,2,16 2960 DATA FIN 2970 DATA Despensa 2980 DATA L,2,276,256,4 2990 DATA D,1,V,10,12 3000 DATA 5,1,R,10,11 3010 DATA FIN 3020 DATA 5,4,8,21,0,4,3,2 3030 DATA 3,4,9,21,-1,-1,1,-1 3040 DATA 3,4,9,21,-1,-1,-1,1 3050 DATA 3,6,13,21,1,0,-1,5 3060 DATA 3,6,9,21,-1,-1,4,-1 3070 DATA L,64,308,480,100 3080 DATA F,250,98,294,102 3090 DATA F,250,306,294,310 3100 DATA F,390,94,430,106 3110 DATA F,390,302,430,314 3120 DATA F,474,240,488,270 3130 DATA F,474,124,488,154 3140 DATA F,58,240,72,270 3150 DATA L,226,308,322,180 3160 DATA L,160,180,480,100 3170 DATA L,64,180,160,100 3180 DATA FIN
Y hasta aquí llegamos por hoy con los listados Basic. Iremos añadiendo más listados en el artículo más adelante. Si te gustan los listados, también puedes visitar el Blog del compañero CAPA
El Amthello está incorrecto, faltan decenas de líneas de código a partir e la 1560, y en otras hay alguna sin salto de línea, ejemplo línea 1140 unida a la línea 1150, o un salto de línea indebido al final de la línea 80 después del último LOCATE de dicha línea.
aaaah essas tardes tecleando DATAS !!! jeje
Hola. El Rebotes, la línea 200 esta mal. Por favor, revisar. Debe quedar así:
200 IF INKEY$CHR$(32) AND JOY(0)<16 THEN 200
210 LOCATE 3,23:PRINT SPACE$(36):LOCATE 1,24:PRINT SPACE$(40); 220 GOSUB 690:GOSUB 660:GOTO 280
230 '
240 '
corregido!!! gracias por comentar 🙂