Super Breakout
Um Clássico dos Fliperamas. Este jogo é recomendado para pessoas de todas as idades.
Teste o programa no WebMSX – The Online MSX Emulator
Como é o menor programa do livro, talvez os novatos em programação prefiram começar por ele.
No início, o computador pergunta a você se prefere usar uma raquete grande ou pequena. Então, o jogo começa. O objetivo é eliminar todos os blocos coloridos, atingindo-os com uma bola. Para movimentar a raquete, você usa o joystick ou as teclas de controle do cursor. O importante é prever a trajetória da bola e movimentar a raquete de forma a impedir que a bola atinja a base da tela.
Se você perder uma bola, o computador lhe fornecerá mais três antes de o jogo acabar. No final, o computador mostra o número de blocos que você conseguiu destruir.
Fonte: Livro de Jogos em MSX
Editora: Lutécia
Autor: Jim Gregory (livro) – Bootsy (programa)
Ano: 1985
Digitação: Wilson e Willian Pilon – MSX Typer
Código fonte
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
1000 REM <<<< SUPER BREAKOUT - BOOTSY >>>> 1010 SCREEN 1,0,0:COLOR 15,0,0:CLS 1020 KEY OFF 1030 ON SPRITE GOSUB 1490:SPRITE ON 1040 CLS:LOCATE 0,10:PRINT "Raquete pequena ou grande ?";:I$=INPUT$(1) 1050 SZ=0:IF I$="g" OR I$="G" THEN SZ=2 1060 SCREEN ,SZ:CLS 1070 LM=240-(16 AND SZ=3):X=120-(8 AND SZ>0) 1080 RESTORE:SC=0:LI=5:GOSUB 1630 1090 GOSUB 1200 1100 CT=0 1110 B=100 1120 C=INT(RND(-TIME)*2) 1130 C=C+INT(RND(-TIME)*30)+16 1140 BD=5:AD=-5 1150 GOSUB 1270 1160 GOSUB 1350 1170 IF CT=280 THEN GOTO 1090 1180 GOTO 1150 1190 REM <<<<< TELA >>>>> 1200 LOCATE 0,0 1210 FOR N=216 TO 248 STEP 8 1220 PRINT STRING$(28,CHR$(N)) 1230 PRINT STRING$(28,CHR$(N)) 1240 NEXT N 1250 RETURN 1260 REM <<<< MOVIMENTO DA RAQUETE >>>> 1270 ST=STICK(0) OR STICK(1) OR STICK(2) 1280 TG=STRIG(0) OR STRIG(1) OR STRIG(2) 1290 I$=INKEY$ 1300 IF ST=7 AND X>4 THEN X=X-4 1310 IF ST=3 AND X<LM THEN X=X+4 1320 PUT SPRITE 0,(X,188),15,0 1330 RETURN 1340 REM <<<< MOVIMENTO DA BOLA >>>> 1350 A1=C:B1=B 1360 A1=A1+AD:B1=B1+BD 1370 IF A1<16 THEN A1=16:AD=-AD:PLAY "t255c16" 1380 IF A1>240 THEN A1=240:AD=-AD:PLAY "t255c16" 1390 IF B1<0 THEN B1=1 1400 IF B1>190 THEN GOTO 1520 1410 CP=&H1800+(INT(B/8)*32+C/8) 1420 CH=VPEEK(CP) 1430 IF CH<>32 THEN VPOKE CP,32:BEEP:SC=SC+10:BD=-BD:CT=CT+1 1440 IF B1=0 THEN BD=ABS(BD):PLAY"t255c16" 1450 C=C+AD:B=B+BD 1460 IF (240-B)/10<BD THEN BD=BD-1 1470 PUT SPRITE 1,(C,B),15,1 1480 RETURN 1490 BEEP:BD=-ABS(BD) 1500 GOTO 1450 1510 REM <<<< PERDE VIDA >>>> 1520 PLAY"t255l16edc" 1530 LI=LI-1:IF LI>0 THEN RETURN 1110 1540 REM <<<< FIM DO JOGO >>>> 1550 CLS:PUT SPRITE 0,(255,208),0,0 1560 LOCATE 10,7:PRINT "PARABENS" 1570 LOCATE 4,11:PRINT "Voce fez";SC;"PONTOS" 1580 LOCATE 5,17:PRINT "Quer jogar de novo ?";:I$=INPUT$(1) 1590 IF I$="S" OR I$="s" THEN RETURN 1040 1600 IF I$<>"N" AND I$<>"n" THEN 1580 1610 SCREEN0:END 1620 REM <<<< DEFINICAO DOS SPRITES >>>> 1630 GOSUB 1700:SPRITE$(0)=SP$:GOSUB 1700:SPRITE$(1)=SP$ 1640 FOR N=1728 TO 1984 STEP 64:RESTORE 1800:FOR M=0 TO 7 1650 READ H$:VPOKE N+M,VAL("&H"+H$) 1660 NEXT M,N 1670 FOR N=&H201B TO &H201F 1680 READ H$:VPOKE N,VAL("&H"+H$) 1690 NEXT N:RETURN 1700 SP$="":FOR N=1 TO 32:READ H$:SP$=SP$+CHR$(VAL("&H"+H$)):NEXT N:RETURN 1710 REM <<<< DADOS >>>> 1720 DATA FF,FF,FF,0,0,0,0,0 1730 DATA 0,0,0,0,0,0,0,0 1740 DATA FF,FF,FF,0,0,0,0,0 1750 DATA 0,0,0,0,0,0,0,0 1760 DATA F0,F0,F0,F0,0,0,0,0 1770 DATA 0,0,0,0,0,0,0,0 1780 DATA 0,0,0,0,0,0,0,0 1790 DATA 0,0,0,0,0,0,0,0 1800 DATA 0,7F,7F,7F,7F,7F,7F,7F 1810 DATA 80,90,A0,20,40 |