Herramientas de usuario

Herramientas del sitio


es:breakout
no way to compare when less than two revisions

Diferencias

Muestra las diferencias entre dos versiones de la página.


Próxima revisión
es:breakout [2017/01/15 13:09] – creado jevicac
Línea 1: Línea 1:
 +====== BREAKOUT ======
  
 +===== Ficha =====
 +{{:otros:Breakout_p1.jpg?690|}}
 +^ Autor | Norman Barrington       |
 +^ Computadora | Amstrad PCW 8256 / 8512 / 9512 |
 +^ Año | ????                              |
 +^ Género | Arcade                                |
 +^ Controles | Teclado                           |
 +^ Lenguajes | Inglés                           |
 +^ Estado | [[preservado|Preservado]] |
 +
 +===== Capturas =====
 +
 +{{:otros:Breakout_screenshot01.png?220}} {{:otros:Breakout_screenshot02.png?220}} {{:otros:Breakout_screenshot03.png?220}} {{:otros:Breakout_screenshot04.png?220}}
 +
 +===== Descripción =====
 +
 +Se trata de una implantación para PCW del conocido juego de arcade. Tenemos cinco bolas con las que deberemos de romper la pared de ladrillos que encontraremos a nuestra derecha. Cada ladrillo que rompamos nos hará ganar diferentes puntos. Si después de las cinco bolas nuestra puntuación es más de 100, se nos otorgará una bola extra por cada 100 puntos que hayamos ganado. La puntuación de cada ladrillo se nos muestra en la parte superior de los mismos. El programa está diseñado para permitir que la bola rebote por toda la pantalla de una forma aleatoria dentro de los ladrillos. Cada colisión de la bola en los ladrillos produce una nota musical y cada color produce un tono diferente pudiendo resultar una experiencia musical.
 +
 +El número de bolas restantes se indican en la parte superior derecha de la pantalla. Cada nueva bola se dispara en el juego desde la parte delantera del bate, por lo que la posición del bate afectará como entre la pelota en juego, y por supuesto deberemos de mover el bate hacia arriba o hacia abajo (con las teclas de cursor) con el fin de mantener la bola en juego.
 +
 +Para salir del juego basta con pulsar la tecla exit.
 +
 +===== Listado =====
 +
 +  * **__Listado 1 - BREAKOUT.BAS__**
 +
 +<file>
 +10 DIM b(8,10):h!=HIMEM:MEMORY &HBFFE:FOR x=&HC070 TO &HC098:READ pk:POKE x,pk:NEXT x
 +20 DATA 243,62,129,211,241,62,130,211,242,175,95,103,22,184,58,153,192,111,41,41
 +30 DATA 41,25,17,154,192,235,1,8,0,237,176,62,133,211,241,62,134,211,242,251,201
 +40 CHAR=247:count=9:ch=CHAR:WHILE char<count+ch:POKE &HC099,(char):FOR r=1 TO 8:READ b(r,ct):POKE &HC099+r,(b(r,ct))
 +50 NEXT:cl=&HC070:CALL cl:char=char+1:WEND:MEMORY h!:CHAIN "BREAKOUT.OVL
 +55 DATA 0,24,126,255,255,126,24,0
 +60 DATA 0,255,129,129,129,129,255,0, 0,68,17,68,17,68,17,0
 +70 DATA 0,255,170,85,170,85,255,0, 0,255,219,219,219,219,255,0,0,255,255,255,255,255,255,0
 +80 DATA  0,255,204,51,204,51,255,0
 +90 DATA 0,255,153,51,102,204,255,0, 0,255,204,102,51,153,255,0
 +</file>
 +
 +  * **__Listado 2 - BREAKOUT.OVL__**
 +
 +<file>
 +10 OPTION RUN
 +20 'SAVE  "breakout.ovl
 +30 DEFINT a-z:DIM a(30,90):GOSUB 600:a=1:play=5:cx=15:cx1=12:d=0.1
 +40 DEF FNat$(x,y)=CHR$(27)+"Y"+CHR$(32+x)+CHR$(32+y)
 +50 con$=CHR$(27)+"e":coff$=CHR$(27)+"f":PRINT coff$ 
 +60 cls$=CHR$(27)+"E"+CHR$(27)+"H":ch$=CHR$(27)+"H"
 +70 rev$=CHR$(27)+"p":rof$=CHR$(27)+"q"
 +80 bat$=CHR$(27)+"p "+CHR$(8)+CHR$(10)+" "+CHR$(27)+"q"
 +90 bl$=CHR$(247)
 +100 PRINT CHR$(27)+"0":PRINT cls$
 +110 PRINT FNat$(3,0)rev$ "SCORES PER LINE:"+SPACE$(72)
 +120 PRINT FNat$(25,0) SPACE$(88) rof$
 +130 PRINT FNat$(15,1)bat$:RANDOMIZE(PEEK(64504!))
 +135 PRINT FNat$(29,18) rev$ " **** B R E A K O U T ! **** by Norman Barrington       "rof$
 +140 FOR x=6 TO 24 :FOR y=53 TO 84 STEP 2:a(x,y)=(INT(y/4))-12:PRINT FNat$(x,y)CHR$(247+a(x,y)):NEXT:NEXT
 +150 FOR y=53 TO 84 STEP 2:l$=RIGHT$(STR$(INT(y/4)-12),1):PRINT rev$ FNat$(4,y)l$ rof$:NEXT
 +160 x=cx:y=2:a=1:PRINT rev$ FNat$(2,55)"BALLS REMAINING:"rof$:nb=((play+extr)-(used+1)):IF nb>0 THEN FOR i=1 TO nb:PRINT FNat$(2,71+(i*2))bl$+"  ":NEXT ELSE PRINT FNat$(2,71)"       " 
 +170 PRINT rev$
 +171 PRINT FNat$(4,0)"SCORE"+ROF$
 +180 IF bl=1 THEN GOSUB 510
 +190 a$=INKEY$:IF a$="" THEN 230 ELSE z=INSTR(CHR$(30)+CHR$(31)+CHR$(27),a$)
 +200 ON z GOTO 210,220,520:GOTO 230
 +210 IF cx<23 THEN cx=cx+1:PRINT FNat$(cx,1)bat$ FNat$(cx-1,1)" ":GOTO 230 ELSE 230
 +220 IF cx>6 THEN cx=cx-1:PRINT FNat$(cx,1)bat$ FNat$(cx+2,1)" ":GOTO 230 ELSE 230
 +230 ON a GOTO 250,290,330,390
 +240 '--------------------------------------------------
 +250 x=x-1:y=y+1:IF a(x,y) THEN PRINT FNat$(x+1,y-1)" ":GOSUB 490:GOTO 180
 +260 IF x<6 THEN a=2:bl=1:ELSE IF y>88 THEN GOTO 450
 +270 PRINT FNat$(x+1,y-1)" " FNat$(x,y) bl$:GOTO 180
 +280 '--------------------------------------------------
 +290 x=x+1:y=y+1:IF a(x,y) THEN PRINT FNat$(x-1,y-1)" ":GOSUB 490:GOTO 180
 +300 IF x>24 THEN a=1:bl=1 ELSE IF y>88 THEN GOTO 450
 +310 PRINT FNat$(x-1,y-1)" " FNat$(x,y) bl$:GOTO 180
 +320 '--------------------------------------------------
 +330 x=x+1:y=y-1:IF a(x,y) THEN PRINT FNat$(x-1,y+1)" ":GOSUB 490:GOTO 180
 +340 IF x>24 THEN a=4:bl=1 ELSE IF y<2 THEN y=y+1:x=x-1:GOSUB 440:GOTO 460
 +350 PRINT FNat$(x-1,y+1)" " FNat$(x,y)bl$
 +360 IF y=2 AND ABS(x-cx)<2 THEN a=2:GOSUB 510:GOSUB 440:y=y+1
 +370 GOTO 180
 +380 '--------------------------------------------------
 +390 x=x-1:y=y-1:IF a(x,y) THEN PRINT FNat$(x+1,y+1)" ":GOSUB 490:GOTO 180
 +400 IF x<6 THEN a=3:bl=1 ELSE IF y<2 THEN y=y+1:x=x+1:GOSUB 440:GOTO 460
 +410 PRINT FNat$(x+1,y+1)" " FNat$(x,y) bl$
 +420 IF y=2 AND ABS(x-cx)<2 THEN a=1:GOSUB 510:GOSUB 440:y=y+1
 +430 GOTO 180
 +440 PRINT FNat$(x,y)" ":RETURN
 +450 PRINT FNAT$(15,30)rev$"***  B R E A K O U T !  ***":FOR note=0 TO 9:GOSUB 640:NEXT:GOTO 520
 +460 FOR note=9 TO 0 STEP -1:GOSUB 640:NEXT:used=used+1:IF (play+extr-used)>0 THEN GOTO 160
 +470 extr=points\100:IF (play+extr-used)>0 THEN PRINT rev$ FNat$(2,25)extr" EXTRA BALL(S) AWARDED!"rof$:GOTO 160
 +480 PRINT FNat$(15,30)rev$"        END  OF  GAME      "rof$:GOTO 520
 +490 PRINT FNat$(x,y)bl$:a=INT(RND*4)+1:note=a(x,y):a(x,y)=0:GOSUB 640
 +500 points=points+note:PRINT rev$ FNat$(2,10) USING "SCORE: #### ";points:PRINT rof$:RETURN
 +510 d=0.01:note=0:GOSUB 640:bl=0:d=0.1:RETURN
 +520 PRINT FNAT$(16,30)rev$" DO YOU WANT ANOTHER TURN? "rof$
 +525 WHILE INKEY$<>"":PRINT CHR$(7):WEND
 +530 X$=UPPER$(INPUT$(1)):MEMORY h!:IF X$="Y" THEN RUN ELSE END
 +540 DATA 229,213,197,221,229,42,27,192,237,91,25,192,205,29,192,62
 +550 DATA 12,211,248,221,225,193,209,225,201,0,0,0,0,243,125,203
 +560 DATA 61,203,61,47,230,3,79,6,0,221,33,49,192,221,9,62
 +570 DATA 11,0,0,0,4,12,13,32,253,14,63,5,32,248,60,254
 +580 DATA 13,32,2,61,61,211,248,68,79,254,11,32,9,122,179,40
 +590 DATA 9,121,77,27,221,233,77,12,221,233,251,201
 +600 h!=HIMEM:MEMORY &HBFFF:FOR n=&HC000 TO &HC05B:READ d:POKE n,d:NEXT
 +610 Az=&HC000:Bz=&HC019:Cz=&HC01B
 +620 DEFSNG d,e,f:DIM e(10):FOR n=0 TO 9:READ f:e(n)=f:NEXT:RETURN
 +630 DATA 189.8765,210,234.4015,254.612,284,318,351,372,415,470
 +640 f2=e(note)*3.456:t=3500000!/(f2*2):t=INT(t/4-30.125)
 +650 f2=INT(f2*d)
 +660 POKE Bz,f2-256*INT(f2/256):POKE Bz+1,INT(f2/256)
 +670 POKE Cz,t-256*INT(t/256):POKE Cz+1,INT(t/256):CALL Az:RETURN
 +</file>
 +
 +===== Controles =====
 +
 +        ↑ = ARRIBA
 +        ↓ = ABAJO
 +     EXIT = ABANDONAR PARTIDA
 +
 +===== 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 Breakout
 +  4.- Teclear run "Breakout" y pulsar la tecla "ENTER"
 +
 +===== Extras =====
 +
 +
 +===== Descarga =====
 +
 +  * {{:otros:Breakout (Basic).zip|Breakout }}(juego en formato dsk, comprimido con zip)
 +
 +===== Enlaces =====
es/breakout.txt · Última modificación: 2022/06/30 02:34 por jevicac