Apagada docs

Aprendiendo a programar el pasado

Herramientas de usuario

Herramientas del sitio


es:basic:gwbasic:avion5

===Avión 5=== Uno de los juegos que solían aparecer en los recopilatorios de listados BASIC de los 80 era el de un avión que iba bombardeando una ciudad hasta poder aterrizar en ella.

Así que uno de mis primeros programas de gwbasic, cuando estaba aprendiendo el dialecto de los PCs, fue una revisión del clásico (programada desde cero, porque había el listado equivalente que programé en un Spectrum).

(Nota: este programa espera que exista un archivo de records llamado avion.rec en la carpeta del programa. Se incluye un ejemplo para ese archivo).

10 DIM B(40):DIM R(20):DIM R$(20):DIM FE$(20)
20 SCREEN 0,0,0
30 WIDTH 40:KEY OFF:CLS
40 GOSUB 370:CLS:REM instrucciones
50 NIVEL=1:PUNTOS=0
60 REM dibujo----------------------------
70 FOR A=1 TO 40
80 B(A)=INT(RND*(NIVEL+1))+20-NIVEL
90 FOR C=20 TO B(A) STEP -1
100 LOCATE C,A
110 COLOR 21-C
120 PRINT CHR$(178)
130 NEXT:NEXT
140 REM coordenadas
150 X=1:Y=1
160 BOX=0:BOY=0:CTR=0
170 REM juego-----------------------------
180 IN$=INKEY$:SOUND .3,.1
190 IF X>1 THEN LOCATE Y,X-1:COLOR 7,0:PRINT " "
200 IF IN$=" " AND CTR=0 THEN CTR=1:BOX=X:BOY=Y
210 X=X+1:IF X>40 THEN LOCATE Y,40:COLOR 7,0:PRINT " ":Y=Y+1:X=1 ELSE LOCATE Y,X:COLOR 7,0:PRINT " "
220 IF Y>=B(X) THEN GOTO 470:REM SE HA ESTRELLADO
230 IF Y>=21 AND X>=20 THEN  GOTO 710:REM Lo consigui¢
240 IF CTR=1 AND B(BOX)<=BOY THEN GOSUB 310:REM CAIDA BOMBA
250 IF CTR=1 THEN LOCATE BOY,BOX:PRINT " ":BOY=BOY+1:SOUND (25-BOY)*100,.01
260 IF CTR=1 THEN LOCATE BOY,BOX:PRINT CHR$(4):SOUND .01,.1
270 LOCATE Y,X:COLOR 5,0:PRINT CHR$(232):IF X>1 THEN LOCATE Y,X-1:COLOR 4,0:PRINT CHR$(175)
280 LOCATE 21,1:PRINT "PUNTOS ";PUNTOS
290 LOCATE 21,20:PRINT "RECORD ";RECORD
300 GOTO 170
310 REM IMPACTO BOMBA------------
320 CTR=0
330 PLAY"C#60":LOCATE BOY,BOX:PRINT " "
340 IF B(BOX)>=20 THEN RETURN
350 B(BOX)=B(BOX)+1:PUNTOS=PUNTOS+10
360 RETURN
370 WIDTH 80
380 PRINT "ATERRIZAJE"
390 PRINT " Se halla en un avi¢n que est  a punto de estrellarse."
400 PRINT " Su £nica posibilidad es destruir la ciudad que tiene debajo, para aterrizar "
410 PRINT "all¡. "
420 PRINT " Para ello, lance bombas pulsando la  barra espaciadora. Pero ­cuidado! no pue-"
430 PRINT "de lanzar una bomba hasta que la anterior haya explotado."
440 PRINT
450 PRINT " SUERTE."
460 GOSUB 670:WIDTH 40:RETURN
470 REM SE HA ESTRELLADO
480 FOR F=900 TO 3 STEP -1
490 SOUND 1/F,.01:NEXT:GOSUB 670:CLS
500 WIDTH 80:LOCATE 1,1:PRINT "SE HA ESTRELLADO"
510 PRINT "SUS  PUNTOS: ";PUNTOS:NOMBRE$="":GOSUB 670:CLS
520 OPEN "AVION5.REC" FOR INPUT AS #1
530 FOR A=1 TO 20:INPUT #1,R$(A),R(A),FE$(A)
540 NEXT:CLOSE #1
550 PRINT "TABLA DE RECORDS":FOR F=1 TO 20
560 LOCATE F+1,1:PRINT R$(F)
570 LOCATE F+1,50:PRINT R(F):
575 LOCATE F+1,60:PRINT FE$(F)
580 NEXT:CTR=PUNTOS
590 IF R(20)<PUNTOS THEN SWAP R(20),PUNTOS:INPUT "¨C¢mo se llama";NOMBRE$:SWAP R$(20),NOMBRE$:F$=DATE$:SWAP FE$(20),F$
600 FOR A=20 TO 2 STEP -1
610 IF R(A)>R(A-1) THEN SWAP R(A),R(A-1):SWAP R$(A),R$(A-1):SWAP FE$(A),FE$(A-1)
620 NEXT:IF R(20)<CTR THEN CTR=0:CLS:GOTO 550
630 RECORD=R(1)
640 OPEN "AVION5.REC" FOR OUTPUT AS #1:FOR A=1 TO 20:WRITE #1,R$(A),R(A),FE$(A)
650 NEXT:CLOSE #1
660 GOSUB 670 :GOTO 30
670 LOCATE 22,1:COLOR 0,7:PRINT "     PULSE UNA TECLA PARA CONTINUAR    "
680 COLOR 7,0
690 IF INKEY$="" THEN GOTO 690
700 RETURN
710 PLAY "CDEFGAB"
720 GOSUB 670
730 CLS
740 PRINT "­­ LO CONSEGUISTE !!"
750 PRINT "puntos hasta el momento: ";PUNTOS
760 PRINT "puntos por pasar la fase ";NIVEL*10
770 PUNTOS=PUNTOS+NIVEL*10
780 PRINT "Ahora empezar s el nivel:";NIVEL+1
790 NIVEL=NIVEL+1
800 GOSUB 670
810 CLS:GOTO 90

Contenido de avion5.rec:

"El Master",1500,"7-13-1991"
"Heroes Alados",1250,"7-13-1991"
"Pilotos Intrepidos",1000,"7-13-1991"
"­­El poder !!",750,"7-13-1991"
"Superman",500,"7-13-1991"
"Volador loco",250,"7-13-1991"
"El nuevo Baron Rojo",100,"7-13-1991"
"Cielos Abiertos",75,"7-13-1991"
"Minipiloto",50,"7-13-1991"
"Bueno, ya se‚ que no soy el mejor",10,"7-13-1991"
"",0,"7-13-1991"
"",0,"7-13-1991"
"",0,"7-13-1991"
"",0,"7-13-1991"
"",0,"7-13-1991"
"",0,"7-13-1991"
"",0,"7-13-1991"
"",0,"7-13-1991"
"",0,"7-13-1991"
"",0,"7-13-1991"
Este sitio web utiliza cookies. Al utilizar el sitio web, usted acepta almacenar cookies en su computadora. También reconoce que ha leído y entendido nuestra Política de privacidad. Si no está de acuerdo abandone el sitio web.Más información
es/basic/gwbasic/avion5.txt · Última modificación: 2014/03/10 14:21 por nepenthes