terça-feira, junho 21, 2022

MSX Programas: Revista MSX Micro 04

Revista MSX Micro 04

1986

Programas: Duplicador, Bilot, Guie o Balão

Jogos:  Funky Mouse, Lazy Jones, Galaga.


Errata

O programa Aprendendo a Somar publicado em MSX Micro número 3, saiu com alguns erros.

  • A linha 9 deve ser substituída por: 9 color 1,1:clear 2000:open "grp:" for output as #1:lm=10:dim AB(30),BA(30),C(30):screen 2,1:c=5

Duplicador 

Artigo Orignal: MSX Micro, Digitação: Wilson Pilon

O armazenamento de dados no MSX pode ser feito por 2 comandos distintos: SAVE e CSAVE, e pela instrução PRINT #1.

O comando SAVE transfere um programa BASIC carregado na memória do computador para um dispositivio, seja gravador ou disco, e salvando o programa em ASCII. A leitura poderá ser feita através dos comandos LOAD ou MERGE. Alguns tipos de acesso têm que ser em formato ASCII e programas gravados em ASCII podem ser lidos como Arquivos de Dados BASIC ou Arquivos Texto.

A instrução PRINT # escreve dados em  um arquivo sequencial. O arquivo deve ser aberto através do comando OPEN e no modo OUTPUT.

O comando CSAVE salva um arquivo de programa BASIC em cassete, no formato binário (comprimido) e só pode ser utilizado com gravador, sendo que a leitura será feita através do comando CLOAD.

Este utilitário copia um arquivo que foi criado em ASCII por um comando PRINT #1 existente no BASIC, ou então no próprio programa que foi salvo com SAVE (não CSAVE). O novo arquivo será idêntico ao original.

Para isso o arquivo original precisa ser menor ou igual a 1000 registros.

O duplicador lhe dará também o número de registros lidos, além de você poder copiar o arquivo ou programa em cassete, ou em cassete e impressora ao mesmo tempo. A cada registro ou bloco carregado, o Duplicador o exibirá na tela para sua verificação. Em caso de erro de leitura, o programa lhe dirá se foi proveniente de periférico, arquivo muito longo ou registro muito longo.

Variáveis Principais

  • F$ → Nome do arquivo de entrada ou saída.
  • X → Registro sendo transferido.

Referência de Listagem

ListagemArquivo
Listagem Únicaduplica.bas

Listagem

  
1 '    ****            ****
2 '    **** Duplicador ****
3 '    ****            ****
4 CLS:SCREEN0' *  *   MSX  4   *  *
5 KEYOFF:WIDTH 40:CLEAR 17000:DIM A$(1000)
6 ON ERROR GOTO 54
7 PRINT TAB(13);"Duplicador"
8 PRINT TAB(13);"----------"
9 PRINT"   Este programa tem como funcao copi-":PRINT"ar um arquivo criado pelo comando":PRINT"print#n ou o proprio programa BASIC"
10 PRINT"que tenha sido salvo com SAVE (nao     CSAVE)":PRINT
11 PRINT"   O novo arquivo tera formato identicoao original":PRINT
12 PRINT"   O arqiuvo original precisa ser <=   1000 registros.":PRINT
13 GOSUB 62
14 PRINT"   Coloque a fina no gravador, ajuste ovolume e press. <PLAY>"
15 OPEN F$ FOR INPUT AS#1
16 PRINT"Tecle 'C' - le fita original"
17 IF INKEY$<> "" THEN 17
18 I$=INKEY$
19 IF I$="" THEN 18
20 IF I$="C" OR I$="c" THEN CLS:GOTO 21 ELSE GOTO 16
21 X=X+1:LINE INPUT#1,A$(X)
22 PRINTA$(X)
23 IF EOF(1)=0 THEN 21
24 FOR I=1 TO 2000:NEXT I
25 CLS
26 PRINT:PRINT"****** EOF ******":PRINT"Registros lidos= ";X+1;" do ";F$:PRINT
27 CLOSE#1
28 GOSUB 66
29 PRINT"  Mude p/ uma fita virgem, ajuste o       volume e prepare p/ gravar."
30 PRINT:PRINT"  Tecle 'P' - p/ impressora enquanto      a fita e copiada.":PRINT
31 PRINT"  Tecle 'C' - p/ copiar somente."
32 IF INKEY$ <> "" THEN 32
33 I$=INKEY$
34 IF I$="" THEN 33
35 IF I$="P" OR I$="p" THEN SW=1:GOTO 37
36 IF I$="C" OR I$="c" THEN 37 ELSE GOTO 30
37 OPEN F$ FOR OUTPUT AS#1
38 FOR I=1 TO X
39 PRINT#1,A$(I)
40 IF SW>0 THEN LPRINT A$(I)
41 NEXT I
42 PRINT:PRINT"Transferencia completa"
43 CLOSE#1
44 PRINT"Registros copiados - ";I;" do ";F$
45 PRINT"Tecle 'Q' - sai do programa."
46 PRINT"Tecle 'C' - p/ copiar outra fita"
47 IF INKEY$<>"" THEN 47
48 I$=INKEY$
49 IF I$ = "" THEN 48
50 IF I$ = "C" OR I$ = "c" THEN SW=0:GOTO 1
51 IF I$="Q" OR I$="q" THEN 52 ELSE 45
52 CLS:PRINT"-- Parada Normal do Programa --"
53 STOP
54 PRINT"!!!!!!!!!!!!!!!!!!!!!!!"
55 IF ERR=19 THEN PRINT"Erro E/S"
56 IF ERR=7 THEN PRINT "Insuficiencia de Memoria":PRINT"* Arquivo provavelmente muito largo"
57 IF ERR=15 THEN PRINT"String muito longa"
58 PRINT"Linha ";ERL;"   erro ";ERR
59 PRINT"Nao sera possivel a copia por este pro-grama"
60 CLOSE#1:PRINT
61 RESUME 45
62 F$="cas:"
63 PRINT"   Entre com nome do original (<= 6 ca-racteres).";:INPUT"Se nao houver nome, entao    <RETURN>";I$
64 F$=F$+MID$(I$,1,6)
65 RETURN
66 F$="cas:":I$=""
67 PRINT"Entre nome da BACKUP (<= 6 caracteres).":INPUT"Apos isto, press. <RETURN>";I$:PRINT
68 IF I$="" THEN PRINT"A BACKUP precisa ter nome!":GOTO 67
69 F$=F$+MID$(I$,1,6)
70 RETURN
Única

Bilot

Artigo Original: MSX Micro, Digitação: Wilson Pilon

Bilot é um show de gráficos aplicado em conhecidos jogos e u m dos raros exemplos de software ambivalente. Isto é, tanto pode ser considerado como um aplicativo ou um game, tudo dependendo de como e onde for empregado.

Escrito em BASIC claro e nítido, sem o esoterismo de POKEs e PEEKs, ele demonstra como usar a maioria das instruções gráficas da linha MSX. Dividido em dois jogos que são selecionados a partir do menu principal, traz, ainda, a novidade do item de demonstração, para que possa ser usado na vitrine de uma loja ou em uma casa lotérica.

O primeiro jogo é o Bingo de clube que extrai em ordem aleatória consecutivamente cem números (0 a 99) e, como o próprio nome indica, pode substituir com vantagem a tradicional roleta de bola, já que espalhando-se TVs pelo salão do clube todos os participantes poderão tomar conhecimento do sorteio sem a necessidade do alto-falante e de constantes verificações dos que pensaram ter ganho. O segundo jogo do programa é ideal para donos de casas lotéricas colocarem à disposição dos apostadores em potencial, incentivando-os a jogar. Com o Loto, o apostador seleciona o número de aposta que deseja visualizar num gráfico quase que idêntico ao próprio cartão de apostas. Prestem atenção especial na ilusão de ótica gerada pelo girar da roleta esférica, na sub-rotina que em BASIC consegue selecionar em tempo hábil cem números aleatórios sem nenhuma repetição e, na maneira pela qual os números que aparecem na cartela da Loto foram desenhados com o uso da instrução DRAW.

Uma última observação: Para voltar ao menu principal, tecle [CTRL]+[STOP] em qualquer uma das quatro funções.


Referência de Listagem

ListagemArquivo
Listagem Únicabilot.bas

Listagem

  
60 REM por J.Canali
70 CLEAR 2000:OPEN "grp:"AS#1
80 STOP ON
90 DIM Y%(110),CO%(110),LI%(100):CLS:KEY OFF:COLOR 15,1,1:R=RND(-TIME)
100 ON STOP GOSUB 1860
110 SCREEN0:LOCATE16,12:PRINT"Aguarde";SPC(32);"       ":GOSUB 1250:CLS
120 LOCATE 7,5:PRINT "                      ",,,TAB(15)"Loto",,,TAB(7)"                      "
130 PRINT ,,TAB(10)"1-Bingo de Clube",,,TAB(10)"2-Cartela de Loto",,,TAB(10)"3-Demonstrando",,,TAB(10)"4-Fim de Programa",,,TAB(7)"        Escolha       "
140 FOR I=5 TO 18:LOCATE 5,I:PRINT " ":LOCATE 30,I:PRINT " ":NEXT I
150 E$=INKEY$
160 IF VAL(E$)<1 OR VAL(E$)>4 THEN 150
170 IF E$="3" THEN DD=1 ELSE DD=0
180 ON VAL(E$) GOTO 200,1320,200,1850
190 REM Boca no Virar
200 DATA 0,3,15,31,60,120,112,112,112,112,120,56,31,15,7,0,0,96,240,248,60,28,14,14,14,14,14,28,248,240,224,0
210 SCREEN0
220 REM 1 Parte do Bocal pra Baixo
230 DATA 128,192,255,255,255,255,255,127
240 REM 2 Parte do Bocal par Baixo
250 DATA 1,3,255,255,255,255,255,254
260 REM Haste do Bocal pra Baixo
270 DATA 0,0,252,240,224,0,0,0
280 REM 1 Parte do Bocal pra Cima
290 DATA 127,255,255,255,255,255,192,128
300 REM 2 Parte do Bocal pra Cima
310 DATA 254,255,255,255,255,255,3,1
320 REM Haste do Bocal pra Cima
330 DATA 0,0,0,224,240,252,0,0
340 REM Bolinha
350 DATA 60,126,255,255,255,126,60,0
360 SCREEN2,2:RESTORE 200
370 FOR I=1 TO 32
380 READ D: S$=S$+CHR$(D):PRINTCHR$(D);
390 NEXT I
400 SPRITE$(1)=S$
410 S$=""
420 FOR A=2 TO 8
430 FOR B=1 TO 8
440 READ D: S$=S$+CHR$(D)
450 NEXT B: SPRITE$(A)=S$
460 S$="":NEXT A
470 CIRCLE (128,52),31,10
480 FOR I=1 TO 23:READ C,L:CIRCLE(C,L),2,15:NEXT I
490 DATA 107,70,149,70,128,62,128,81,111,69,115,72,120,68,125,64,132,64,140,66,145,68,128,67,128,72,124,71,132,70,114,76,119,78,124,77,129,76,133,78,140,72,138,76,144,73
500 LINE (103,34)-(153,34),10:LINE (97,52)-(159,52),11:LINE (103,70)-(153,70),10
510 LINE (103,33)-(103,71),11:LINE (108,28)-(108,76),10:LINE (113,24)-(113,80),11
520 LINE (118,22)-(118,82),10:LINE (123,21)-(123,82),11:LINE(128,21)-(128,83),10:LINE(133,21)-(133,82),11:LINE(138,22)-(138,82),10
530 LINE(143,24)-(143,80),11:LINE(148,28)-(148,76),10:LINE(153,33)-(153,71),11
540 PSET (86,106)
550 DRAW "c11u5r5u65l2u2r5d2l2d16r3d1l3d48r72u48l3u1r3u16l2u2r5d2l2d65rd5l84"
560 LINE(86,107)-(170,107),12:PAINT(128,105),11
570 LINE(0,111)-(86,107),12:LINE(170,107)-(255,111),12:LINE(255,111)-(0,111),12:PAINT(128,110),12
580 FOR I=111TO191STEP8:LINE(0,I)-(110,I),12:LINE(145,I)-(255,I),12:NEXTI
590 FORI=0TO110STEP22:LINE(I,111)-(I,191),12:NEXTI
600 FORI=145TO255STEP22:LINE(I,111)-(I,191),12:NEXT
610 PAINT(128,191),12:LINE(110,112)-(145,112),1
620 PUTSPRITE2,(122,82),10,2:PUTSPRITE3,(126,82),15,3:PUTSPRITE4,(134,82),10,4
630 PRESET(47,0):PRINT#1,"Aperte qualquer tecla"
640 LINE (110,111)-(110,191),12:LINE(145,111)-(145,191),12
650 IF DD=1 THEN 670
660 IF INKEY$="" THEN 660
670 GOSUB 1220
680 IF SO%=100 THEN GOSUB 1860
690 RESTORE 490:SL%=82
700 PUTSPRITE2,(0,209):PUTSPRITE3,(0,209):PUTSPRITE4,(0,209)
710 FOR MO=1 TO 4
720 SL%=SL%-16:C1%=C1%+2:C2%=C2%-2
730 PUTSPRITE1,(120,SL%),11,1
740 IF MO=2 THEN PUTSPRITE1,(121,43):CIRCLE(128,52),21,10:CIRCLE(128,52),11,10
750 IF MO=2 THEN CIRCLE(128,52),21,1:CIRCLE(128,52),11,1
760 CIRCLE(128,52),31,15
770 CIRCLE(128,52),31,10
780 NEXT MO
790 PUTSPRITE1,(0,209)
800 PUTSPRITE5,(122,13),10,5:PUTSPRITE6,(126,13),15,6:PUTSPRITE7,(134,13),10,7
810 CIRCLE(128,52),31,11
820 PUTSPRITE5,(0,209):PUTSPRITE6,(0,209):PUTSPRITE7,(0,209)
830 FOR DE=1TO54 STEP 13
840 CIRCLE(128,52),31,15
850 PUTSPRITE1,(120,SL%+DE),10,1
860 IF DE=27 THEN CIRCLE(128,52),21,11:CIRCLE(128,52),11,10:CIRCLE(128,52),21,1:CIRCLE(128,52),11,1
870 CIRCLE(128,52),31,10
880 NEXT DE
890 PUTSPRITE1,(0,209):PUTSPRITE2,(122,82):PUTSPRITE3,(126,82):PUTSPRITE4,(134,82)
900 LINE(103,71)-(103,33),10:LINE(108,76)-(108,28),11:LINE(113,80)-(113,24),10:LINE(118,82)-(118,22),11:LINE(123,82)-(123,21),10
910 LINE(128,83)-(128,21),11:LINE(133,82)-(133,21),10:LINE(138,82)-(138,22),11:LINE(143,80)-(143,24),10:LINE(148,76)-(148,28),11:LINE(153,71)-(153,33),10
920 LINE (103,34)-(153,34),10:LINE (159,52)-(97,52),11:LINE (103,70)-(153,70),10
930 GOSUB 1230
940 IF DD=1 THEN 960
950 IF INKEY$="" THEN 950
960 PUTSPRITE 4,(134,81):FORT=1TO150:NEXTT:PUTSPRITE4,(134,82)
970 FOR BA=1 TO 11:PUTSPRITE8,(124,82+BA):FORT=1TO20:NEXTT:NEXTBA:GOSUB1240
980 PUTSPRITE8,(124,88):FORT=1TO110:NEXTT:PUTSPRITE8,(124,100):GOSUB1240:FORT=1TO110:NEXTT
990 PUTSPRITE8,(124,94):FORT=1TO110:NEXTT:PUTSPRITE8,(124,105):GOSUB1240:FORT=1TO110:NEXTT
1000 PUTSPRITE8,(124,95):FORT=1TO110:NEXTT:FOR I=109TO183:PUTSPRITE8,(124,I):FORT=1TO5:NEXTT:NEXTI:GOSUB1240
1010 FORI=183TO151STEP-1:PUTSPRITE8,(124,I):FORT=1TO5:NEXTT:NEXTI:PUTSPRITE8,(0,209)
1020 PRESET(114,136),12:COLOR12:PRINT#1,CHR$(1);CHR$(219);CHR$(219);CHR$(219):SO%=SO%+1:OS%=OS%+1:COLOR15
1030 IF Y%(SO%)=0 THEN 1060
1040 IF Y%(SO%)<10 THEN 1070
1050 PRESET(114,136),12:PRINT #1,Y%(SO%):GOTO1080
1060 PRESET(122,136),12:PRINT#1,"00":GOTO 1080
1070 PRESET(122,136),12:PRINT#1,"0":PRESET(122,136),12:PRINT#1,Y%(SO%)
1080 CIRCLE(128,140),10
1090 C$=STR$(Y%(SO%))
1100 IF Y%(SO%)<=10 THEN 1170
1110 L%=VAL(MID$(C$,2,1))*8+112
1120 IF VAL(MID$(C$,3,1))>=6 THEN W%=40 ELSE W%=0
1130 C%=VAL(MID$(C$,3,1))*21+W%-21
1140 IF MID$(C$,3,1)="0" THEN L%=L%-8:C%=232
1150 IF DD=1 AND OS%>=6 THEN OS%=0:GOTO 1320
1160 BEEP:PRESET(C%,L%),0:PRINT#1,Y%(SO%):GOTO 640
1170 IF Y%(SO%)=10 THEN :BEEP:PRESET(233,112),0:PRINT#1,Y%(SO%):GOTO 640
1180 IF VAL(C$)>=6 THEN W%=41 ELSE W%=0
1190 L%=112:C%=VAL(C$)*21+W%-14
1200 IF Y%(SO%)=0 THEN C%=236:L%=184
1210 BEEP:PRESET(C%,L%),0:PRINT#1,CHR$(48):PRESET(C%,L%):PRINT#1,C$:GOTO640
1220 FOR I=0TO13:SOUNDI,30:NEXTI:RETURN
1230 FOR I=0TO13:SOUNDI,0:NEXTI:RETURN
1240  FOR I=0TO6:SOUNDI,18:NEXTI:FORJ=6TO13:SOUNDJ,16:NEXTJ:RETURN
1250 A$="000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798999"
1260 I%=INT(RND(1)*LEN(A$)+1)
1270 IF INT(I%/2)=I%/2 THEN I%=I%-1
1280 V%=V%+1:Y%(V%)=VAL(MID$(A$,I%,2))
1290 C$=MID$(A$,1,I%-1):D$=MID$(A$,I%+2,ABS(LEN(A$)-LEN(C$)-2)):A$=C$+D$
1300 IF DD=1 AND V%=100 THEN V%=0:SO%=0:GOTO 200
1310 IF V%=100 THEN V%=0:SO%=0:RETURN ELSE 1260
1320 SCREEN 3
1330 FOR I=0 TO 191 STEP 16:COLOR 10:PSET(80,I),1:PRINT#1,"Loto":COLOR1:PSET(80,I),1:PRINT#1,"Loto":NEXTI
1340 PSET(50,95):COLOR 4:PRINT#1,"Loto":FORT=1TO1000:NEXTT:COLOR 15,1,1
1350 IF DD=1 THEN 1410
1360 SCREEN0:LOCATE3,5:PRINT"              Use:              ",,,TAB(9)"Teclas do Cursor",,,TAB(2)"Direita & Esquerda n. de apostas"
1370 LOCATE 6,11:PRINT"Para baixo obter dezenas",,,TAB(3)"Para cima preparar novo sorteio",,,TAB(5)"CTRL-STOP voltar para menu"
1380 LOCATE 6,18:PRINT "Pressione qualquer tecla":PRINT"                              "
1390 IF DD=1 THEN 1410
1400 I$=INKEY$:IF I$="" THEN 1400
1410 SCREEN2:RESTORE 1420
1420 DATA 16,56,124,254,56,56,56,0
1430 FORI=1TO8:READ A:D$=D$+CHR$(A):NEXTI
1440 SPRITE$(10)=D$:D$=""
1450 PSET(59,11),1:DRAW"c6r135d132l135u132":N=0
1460 DW$(1)="r3d4l3u4":RESTORE 1530:FOR J=2TO10:READ A$:DW$(J)=A$:NEXTJ
1470 FOR L=14 TO 131 STEP 13:RESTORE 1530
1480 FOR C=64 TO 183 STEP 13:BEEP
1490 LINE(C,L)-(C+10,L+8),6,BF:G%=G%+1:CO%(G%)=C:LI%(G%)=L
1500 READ A$:PSET(C+6,L+1),6:DRAW"c1"+A$
1510 NEXT C:GOTO1540
1520 NEXT L
1530 DATA bd2e2d4l2r3,r3d2l3d2r3,r3d2l2r2d2l3,d2r3u2d4,r4l4d2r3d2l3,r3l3d2r3d2l3u3,d1u1r3d4,r3d2l3d2r3u2l3u2,r3d4u2l3u2,r3d4l3u4
1540 N%=N%+1
1550 FOR J=63 TO 170 STEP 13
1560 PSET(J+1,L+1),6:DRAW"c1"+DW$(N%):BEEP:NEXT J
1570 IF L=131 THEN PSET(J+1,L+1),6:DRAW"c1"+DW$(1):GOTO 1600
1580 PSET(J+1,L+1),6:DRAW "c1"+DW$(N%+1)
1590 GOTO 1520
1600 PSET(59,150),1:DRAW"c6r135d40l135u40bd13r135d13l135r23u13r22d13r23u13r22d13r23u13"
1610 PSET(113,153),1:PRINT#1,"Loto":PSET(68,166),1:PRINT#1,"5  6":PSET(113,166),1:PRINT#1,"7  8"
1620 PSET (158,166),1:PRINT#1,"9":PSET(178,166),1:PRINT#1,"10"
1630 PSET(104,163),6:DRAW"u13r45d13":PAINT(82,162),6:PAINT(170,162),6
1640 IF DD=1 THEN PUTSPRITE10,(93,176),11,10:F%=6:GOTO 1790
1650 X%=66:BEEP:PUTSPRITE10,(X%,176),11,10
1660 S=STICK(0)
1670 IF S=0 THEN 1660
1680 IF S=7 AND X%>=66 THEN X%=X%-1
1690 IF S=3 AND X%<=177 THEN X%=X%+1
1700 IF S=5 THEN 1730
1710 IF S=1 THEN G%=0:N%=0:GOTO 1470
1720 PUTSPRITE10,(X%,176):GOTO 1660
1730 IF X%<=82 THEN F%=5
1740 IF X%>82 AND X%<=104 THEN F%=6
1750 IF X%>104 AND X%<=127 THEN F%=7
1760 IF X%>127 AND X%<=149 THEN F%=8
1770 IF X%>149 AND X%<=172 THEN F%=9
1780 IF X%>172 THEN F%=10
1790 FOR I=1TOF%:M%=INT(RND(1)*100)+1:LINE(CO%(M%),LI%(M%))-(CO%(M%)+10,LI%(M%)+7),1,BF:PSET(CO%(M%),LI%(M%)),1:DRAW "c10r10d7l10u7":BEEP:NEXT I
1800 IF DD=1 THEN G%=0:N%=0:FORT=1TO5000:NEXTT:PUTSPRITE10,(93,209):GOTO 1870
1810 S=STICK(0):IF S=1 THEN BEEP:G%=0:N%=0:GOTO 1470
1820 IF S=7 OR S=3 THEN 1720
1830 IF S=5 THEN 1790
1840 GOTO 1810
1850 CLS:END
1860 BEEP:G%=0:N%=0:V%=0:SO%=0:DD=0:E$="":RETURN 110
1870 IF SO%<90 THEN 200 ELSE SO%=0:GOTO 1250
Única

Guie o Balão

Artigo Original: MSX Micro, Digitação: Wilson Pilon

Você está em apuros, seu balão está com uma fenda e é preciso fazer uma longa viagem. Você possui 3 vidas para completar 3 telas. Para ultrapassar cada espaço é necessário guiar o balão sem tocar em nenhum dos obstáculos espalhados pelo caminho. Jogue usando o joystick ou teclado. Para joystick tecle "J" e "C" para começar. Para teclado, tecle somente "C", boa viagem!

O program é auto-explicativo, com todas as instruções. Após o OK, teclar F5 e escolher no menu a asua opção.

OBS: O [CAPS LOCK] precisa estar ligado antes de se iniciar o programa.


Referência de Listagem

ListagemArquivo
Listagem Únicabalao.bas

Listagem

  
1 REM *******************
2 REM *                 *
3 REM *     GUIE O      *
4 REM *                 *
5 REM *      BALAO      *
6 REM *                 *
7 REM *      -MSX-      *
8 REM *        3        *
9 REM *******************
10 COLOR1,15,15:KEYOFF:HI=0:PLAY"o2g#f#bo3c#gd#c#f#d#o2bc#c#f#":Q=0:GOSUB1300:OPEN"grp:"AS#1:N$="M S X"
20 LI=3:S=1:CLS:SC=0
30 SCREEN2,0
40 RESTORE:A$="":FORF=0TO7:READD$:A$=A$+CHR$(VAL("&b"+D$)):NEXTF:SPRITE$(0)=A$
50 DATA00001000
60 DATA00011100
70 DATA00111110
80 DATA00111110
90 DATA00010100
100 DATA00010100
110 DATA00011100
120 DATA00011100
130 REM*  Tela  *
140 TIME=0
150 CLS
160 GOSUB1910
170 ONSGOSUB380,530,680,830,1140
180 DRAW"bm230,11c1r10d10l10u10f10l10e10"
190 COLOR15:PRESET(10,3):PRINT#1,"Vidas = ";LI:PRESET(10,180):PRINT#1,"Pontos = ";SC
200 REM*Loop Principal*
210 ST=STICK(Q):IFST=0THEN250
220 IFST=1THENY=Y-1:GOTO260
230 IFST=3THENX=X+1:GOTO260
240 IFST=7THENX=X-1:GOTO260
250 Y=Y+1
260 PUTSPRITE0,(X,Y),3
270 IFPOINT(X,Y)=6THENGOTO330
280 IFPOINT(X,Y)=1THENGOTO360
290 X%=X+7:Y%=Y+8
300 IFPOINT(X%,Y%)=6THEN330
310 IFPOINT(X%,Y%)=1THEN360
320 GOTO210
330 LI=LI-1:IFLI<1THEN1710
340 PLAY"o4l5cccd#ddcccc":FORT=1TO100:NEXTT
350 GOTO130
360 IFTIME<3000THENSC=SC+3000-TIME
370 PLAY"o6db":S=S+1:GOTO130
380 REM  Tela 1
390 A$="e10f10h5g5"
400 LINE(0,100)-(100,108),6,BF:LINE(111,100)-(250,108),6,BF
410 LINE(111,0)-(119,30),6,BF:LINE(111,43)-(119,100),6,BF
420 DRAW"bm84,70c6xa$;"
430 FORT=30TO200STEP20
440 DRAW"bm=t;,165c6xa$;"
450 NEXTT
460 DRAW"bm70,50c6xa$;"
470 DRAW"bm18,68c6xa$;"
480 DRAW"bm18,60c6xa$;"
490 DRAW"bm220,40c6xa$;":DRAW"bm122,50c6xa$;":DRAW"bm142,40c6xa$;"
500 DRAW"bm165,33c6xa$;"
510 X=150:Y=130
520 RETURN
530 REM  Tela 2
540 B$="r10h5g5d10r4u4r2d4r4u10d10l10"
550 FORT=30TO230STEP11
560 DRAW"bm=t;,50c6xb$;"
570 NEXT
580 FORT=10TO220STEP11
590 DRAW"bm=t;,100xb$;"
600 NEXT
610 FORT=30TO230STEP11
620 DRAW"bm=t;,145xb$;"
630 NEXT
640 X=220:Y=160
650 DRAW"bm109,78xb$;":DRAW"bm130,70xb$;":DRAW"bm160,78xb$;"
660 DRAW"bm109,128xb$;":DRAW"bm130,120xb$;":DRAW"bm160,128xb$;"
670 RETURN
680 REM Tela 3
690 LINE(30,50)-(45,190),6,BF
700 DRAW"bm32,25c6xb$;"
710 LINE(60,0)-(75,147),6,BF
720 DRAW"bm62,165xb$;"
730 LINE(90,50)-(105,190),6,BF
740 DRAW"bm92,25xb$;"
750 LINE(120,0)-(135,147),6,BF
760 DRAW"bm122,165xb$;"
770 LINE(150,50)-(165,190),6,BF
780 DRAW"bm152,25xb$;"
790 LINE(200,0)-(230,100),6,BF
800 LINE(200,112)-(215,190),6,BF
810 X=15:Y=150
820 RETURN
830 REM Tela 4
840 LINE(120,0)-(126,60),6,BF
850 X=200:Y=160
860 LINE(120,72)-(126,135),6,BF
870 LINE(120,147)-(126,190),6,BF
880 LINE(0,90)-(70,96),6,BF
890 LINE(80,90)-(250,95),6,BF
900 C$="u10r12u5r3d15l15"
910 DRAW"bm90,62xc$;"
920 DRAW"bm97,75xc$;"
930 DRAW"bm78,82xc$;"
940 DRAW"bm73,57xc$;"
950 DRAW"bm200,140xa$;"
960 DRAW"bm185,130xa$;"
970 DRAW"bm157,140xa$;"
980 DRAW"bm215,135xa$;"
990 DRAW"bm132,151xa$;"
1000 FORT=20TO115STEP11
1010 DRAW"bm=t;,156xb$;"
1020 NEXT
1030 DRAW"bm82,105xb$;"
1040 DRAW"bm60,105xb$;"
1050 DRAW"bm73,105xb$;"
1060 D$="u30r10d30l10u26br3r3d3l3u3bd5r3d3l3u3bd5r3d3l3u3bd5r3d3l3u3bd5r3d3l3u3"
1070 DRAW"bm220,78xd$;"
1080 DRAW"bm205,46xd$;"
1090 DRAW"bm136,45xd$;"
1100 DRAW"bm136,87xd$;"
1110 DRAW"bm157,67xd$;"
1120 DRAW"bm188,82xd$;"
1130 RETURN
1140 REM Fim do Jogo
1145 REM Volta p/ inicio
1150 SCREEN0:COLOR1
1160 CLS
1170 PRINT"     Parabens, balonista ! Voce   "
1180 PRINT
1190 PRINT"     Completou todas as telas !"
1200 PRINT"
1210 PRINT"     Seus pontos foram:"
1220 PRINT
1230 PRINT"          ";SC
1240 PRINT
1250 PRINT"     Press. Espaco ou Tiro"
1260 PRINT
1270 PRINT"     Para a proxima jornada"
1280 S=1:IFSTRING(Q)THENSCREEN2,0:GOTO40
1290 GOTO1280
1300 COLOR1:CLS
1310 PRINT"           Guie o Balao":PRINT
1320 PRINT:PRINT:PRINT:PRINT:PRINT
1330 PRINT" "
1340 PRINT
1350 K$="       'D' p/ ver telas "
1360 X$="Guie o Balao ...........'C' p/ comecar ........'J' p/ joystick ........'I' para instrucoes."
1370 COLOR1:J$=K$+X$
1380 FORT=1TOLEN(J$)
1390 LOCATE4,15:PRINTTAB(2);MID$(J$,T,18)
1400 LOCATE4,15:FORK=1TO100:NEXT
1410 A$=INKEY$:IFA$=""THENNEXT
1420 IFA$="C"THENRETURN
1430 IFA$="J"THENQ=1
1440 IFA$="I"THEN1470
1450 IFA$="D"THEN1960
1460 GOTO1380
1470 CLS
1480 PRINT"        Guie o Balao "
1490 PRINT
1500 PRINT"   Seu balao esta furado e voce "
1510 PRINT"   Precisa viajar atraves de"
1520 PRINT"   quatro telas de suspense"
1530 PRINT"   para continuar no ar."
1540 PRINT
1550 PRINT"   Para completar a tela voce "
1560 PRINT"   precisa pousar na cruz"
1570 PRINT"   negra no topo direito "
1580 PRINT"   da tela":PRINT
1590 PRINT"   Tocando em qualquer coisa"
1600 PRINT"   resulta na perda de uma "
1610 PRINT"   vida.":PRINT
1620 PRINT"   Cuidado ! O balao inicia "
1630 PRINT"   caindo quando a tela   "
1640 PRINT"   e desenhada.":PRINT
1650 PRINT"        Boa Sorte !"
1660 PRINT
1670 PRINT"    -Press. Espaco-"
1680 A$=INKEY$:IFA$=""THEN1680
1690 IFA$<>""THEN1680
1700 CLS:GOTO1380
1710 COLOR1:SCREEN0
1720 CLS:PRINT"    Voce bateu mas seus pontos sao :"
1730 PRINT:PRINT
1740 PRINT"              ";SC
1750 IFSC>HITHENGOSUB1850
1760 PRINT:PRINT
1770 PRINT"         O record agora e: "
1780 PRINT:PRINT
1790 PRINT"              ";HI
1800 PRINT:PRINT"       Por:- ";N$
1810 PRINT:PRINT"   Press. 'C' p/ jogar novamente"
1820 A$=INKEY$:IFA$=""THEN1820
1830 IFA$="C"ORA$="c"THENGOTO20
1840 GOTO1820
1850 PRINT"      Um novo recorde !":PRINT
1860 PRINT"Digite seu nome ":PRINT
1870 LINEINPUTN$
1880 IFLEN(N$)>15THENPRINT:PRINT"Muito longo ":GOTO1860
1890 HI=SC
1900 RETURN
1910 LINE(0,0)-(250,10),6,BF
1920 LINE(0,0)-(10,190),6,BF
1930 LINE(250,0)-(240,190),6,BF
1940 LINE(0,190)-(250,180),6,BF
1950 RETURN
1960 SCREEN2,0:CLS:D=1
1970 ONDGOSUB380,530,680,830
1980 IFD=5THENFORT=1TO1000:NEXT:CLS:SCREEN0:GOTO1380
1990 GOSUB1910:D=D+1:FORT=1TO1000:NEXT:CLS:GOTO1970
Única

Games

Funky Mouse

Nota 4

Você é um homem ou um rato? Não adianta tentar responder, já que neste jogo você será um ratinho muito ligeiro que terá de driblar gatos para poder alimentar-se e saborear seu queijo predileto. Além dos adversários felinos, ainda terá o tempo contra você já que quanto menos tempo levar, mais pontos faz (bônus). O jogo é composto de duas telas básicas: uma casa azul com escadas e uma verde, ladrilhada, com tubulações contendo escadas. A estratégia consiste na memorização dos locais onde se encontram os pedaços de queijo em cada fase e, o melhor trajeto para pegar todos, sem gastar muito tempo. Lembre-se também, que em cada fase os queijos não se encontram no mesmo local.

Funky Mouse requer muita agilidade, pois, tudo acontece muito em cima, mas, existe a possibilidade do ratinho pular, livrando-se dos vidros de veneno e imobilizando os gatos. Para imobilizar os famintos felinos, basta cair em cima da cabeça deles, que ficará rosa na mesma hora. Você também encontrará uma armadilha, que poderá ser usada par prender os gatos, mas, não perca muito tempo com isso já que você não o terá suficiente para dedicar-se à caça aos gatos.

O gráfico deste jogo é simples, mas bem estruturado e, o som também é simples - não chegando a chtear - valendo mesmo pela sua ação. Acredito que o jogo deve ter sido criado visando o público infantil, com o objetivo de estimular a memorização e os reflexos, mas, mesmo assim, não deixa de ser uma aquisição interessante para sua coleção de games.



Lazy Jones

Nota 5

Este jogo se passa em um hotel com 18 quartos distribuídos em três andares com diferentes níveis de dificuldade. O interessante, no caso, é que este game se passa dentro de outro, que é o que você está jogando.

A história começa com um boneco, obedecendo a seu comando, que joga um videogame, sendo que através dele é que você vai penetrar nos diferentes quartos, subir ou descer de elevador e, até mesmo entrar num banheiro para fazer pipi. A cada porta aberta, as dificuldades aparecem na tela e o boneco some durante algum tempo, passando-se a enfrentar os obstáculos diretamente.

Este game pode ser controlado por joystick ou teclado, apresentando além disso, uma novidade: o boneco pode ter de uma a nove vidas, sendo você que escolhe o número que mais lhe convier. Este é mais um bom jogo para a linha MSX e, vale a pena tê-lo em casa.

DICA: Para subir ou descer do elevador, basta se posicionar em frente à porta e pressionar a barra de espaço. Boa sorte!



Galaga

Nota 5

Este deverá estar entre os cinco melhores da coleção de todos que gostam de jogos de ação, habilidade e reflexos rápidos. Galaga é um jogo que se torna gradativamente rápido, difícil e implacável, sendo baseado num tema que já inspirou famosos jogos de ação: o homem contra alienígenas, principalmente mutantes como moscas, répteis, etc..

Conheça suas variações, sendo promovido a cada estágio e, só tomando cuidado para não se deixar destruir e não ser capturado no momento errado. O gráfico é ótimo, não seguindo à risca seu original no fliperama, o que não quer dizer que haja alguma perda significante em termos de qualidade, particularmente porque o som é idêntico e muito bom também.


Referência de Listagem

ListagemArquivo
Funky Mousefunkymou.bas
Lazy Jonesl-jones.bas
Galagagalaga.bas

Nenhum comentário:

Postar um comentário