quinta-feira, fevereiro 03, 2022

MSX Programas: Revista MSX Micro 03

Revista MSX Micro 03

Fevereiro de 1987

Programas: Duelo Espacial, Desenhista, 

Jogos:  Magical Tree, Highway Star, Comic Bakery, Thezeus


Errata

O programa Senha publicado em MSX Micro número 1, saiu com alguns erros.

  • Na linha 730, onde se lê IF P<7 THEN X1 = 7, é IF X1 < 7 THEN X1 = 7
  • Em 1030 NEXT X, é NEXT I.
  • Na linha 1330, saiu publicado DRAW "BM1,100":PRINT #1 "Voce acertou em":DRAW "BW10,112":PRINT #1, "CP" TENTATIVAS", o correto é DRAW "BM10,100":PRINT #1,"Voce acertou em": DRAW "BW10,112":PRINT #1, CP;"TENTATIVAS".
  • E por último, onde se lê 1350 REM, a forma certa é COLOR 7: DRAW "BM10,130"

(OC) Acredita que a errata saiu errada? Saiu como PRINT #1; onde o correto é PRINT #1,.

Duelo Espacial

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

Preparem-se para uma nova emoção nas profundezas do espaço. Cada jogador controla sua nave somente com o joystick numa tentativa de destruir seu oponente com  uma arma laser que é acionada com o botão de tiro. Se você desaparecer na tela, aparecerá no lado oposto.

Há um tempo limite (60 segundos) para o combate e somente 20 cargas de laser para atirar. Se você usar todas as cargas, terá de fugir do adversário, senão poderá ser destruído.

Como alternativa, não pode se chocar com a outra nave, o que ocasiona a destruição de ambas sem nenhuma perda de pontos para ambos os lados.

No program, há um texto explicativo que aparecerá logo no início após o título. Ao iniciar o programa, você verá uma barra vermelha no alto da tela, que significa o tempo que você terá para jogar. Após o final do tempo, surgirá uma nova tela com os pontos marcados pelos dois jogadores. Durante o jogo, cada jogador é informado sobre quantas foram derrubadas. Sua posição deverá ser sempre à direita do seu oponente, já que os tiros do canhão laser só funcionam no sentido direita para esquerda.

(OC) Este programa está extremamente bugado na revista.


Referência de Listagem

Listagem Arquivo
Listagem Únicaduelo.bas

Listagem

  
1 '**************
2 '*            *
3 '*   DUELO    *
4 '*            *
5 '*  ESPACIAL  *
6 '*            *
7 '*    MSX     *
8 '*            *
9 '**************
10 GOSUB 1870
20 T=251:P1=0:P2=0:B1=20:B2=20
30 SCREEN 2,2:STRIG(1)OFF:STRIG(2)OFF:SP
RITE OFF
40 SPRITE$(0)=S$(0)
50 FOR A=1 TO 80
60 X=RND(1)*255:Y=RND(1)*191
70 PSET(X,Y)
80 NEXT
90 ON INTERVAL=15 GOSUB 590:INTERVAL OFF
100 ON SPRITE GOSUB 1600
110 ON STRIG GOSUB ,860,730
120 LINE (50,0)-(T-1,5),8,BF
130 SPRITE$(2)=S$(3)
140 PRESET(9,0):PRINT#1,"TEMPO"
150 PRESET (20,183):PRINT#1,"JOGADOR 1";
P1:PRESET(150,183):PRINT#1,"JOGADOR 2";P
2
160 Y1=RND(1)*191:X1=20:Y2=RND(1)*191:X2
=220
170 STRIG(1)ON:STRIG(2)ON:SPRITE ON:INTE
RVAL ON
180 S1=STICK(1)
190 S2=STICK(2)
200 ON S1 GOSUB 330,340,350,360,370,380,
390,400
210 ON S2 GOSUB 410,490,500,510,520,530,
540,550
220 PUT SPRITE 0,(X1,Y1),7,0
230 PUT SPRITE 1,(X2,Y2),12,2
240 GOTO 180
250 :
260 :
270 :
280 :
290 ' MOVE JOGADOR 1
300 :
310 :
320 :
330 Y1=Y1-3:RETURN
340 SPRITE$(0)=S$(0):X1=X1+3:Y1=Y1-3:RET
URN
350 SPRITE$(0)=S$(0):X1=X1+3:RETURN
360 SPRITE$(0)=S$(0):X1=X1+3:Y1=Y1+3:RET
URN
370 Y1=Y1+3:RETURN
380 SPRITE$(0)=S$(1):Y1=Y1+3:X1=X1-3:RET
URN
390 SPRITE$(0)=S$(1):X1=X1-3:RETURN
400 SPRITE$(0)=S$(1):X1=X1-3:Y1=Y1-3:RET
URN
410 Y2=Y2-3:RETURN
420 :
430 :
440 :
450 ' MOVE JOGADOR 2
460 :
470 :
480 :
490 SPRITE$(2)=S$(2):X2=X2+3:Y2=Y2-3:RET
URN
500 SPRITE$(2)=S$(2):X2=X2+3:RETURN
510 SPRITE$(2)=S$(2):X2=X2+3:Y2=Y2+3:RET
URN
520 Y2=Y2+3:RETURN
530 SPRITE$(2)=S$(3):X2=X2-3:Y2=Y2+3:RET
URN
540 SPRITE$(2)=S$(3):X2=X2-3:RETURN
550 SPRITE$(2)=S$(3):X2=X2-3:Y2=Y2-3:RET
URN
560 :
570 :
580 :
590 'ATUALIZA TEMPO
600 :
610 :
620 :
630 IF T<50 THEN GOTO 1710
640 IF X1<0 THEN X1=255 ELSE IF X2<0 THE
N X2=255
650 IF Y1<0 THEN Y1=191 ELSE IF Y2<0 THE
N Y2=191
660 IF Y1>191 THEN Y1=0 ELSE IF Y2>191 T
HEN Y2=0
670 IF X1>255 THEN X1=0 ELSE IF X2>255 T
HEN X2=0
680 T=T-.5:LINE(T-.5,0)-(T,5),1,BF
690 RETURN
700 :
710 :
720 :
730 ' TIRO DO JOGADOR 1
740 :
750 :
760 :
770 IF B1=0 THEN RETURN ELSE B1=B1-1
780 IF SPRITE$(2)=S$(2) THEN GOSUB 1130:
RETURN ELSE GOSUB 1140:RETURN
790 :
800 :
810 :
820 'TIRO DO JOGADOR 2
830 :
840 :
850 :
860 IF B2=0 THEN RETURN ELSE B2=B2-1
870 IF SPRITE$(0)=S$(0) THEN GOSUB 1050:
RETURN ELSE GOSUB 1060:RETURN
880 RETURN
890 :
900 :
910 :
920 'DATA PARA SPRITES
930 :
940 DATA 0,128,192,224,240,254,195,97,48
,31,63,127,192,128,0,0,0,0,0,0,0,0,0,128
,192,254,192,128,0,0,0,0
950 DATA 0,0,0,0,0,0,0,1,3,127,3,1,0,0,0
,0,0,1,3,7,15,127,195,134,12,248,252,254
,3,1,0,0
960 DATA 0,0,48,152,204,102,51,31,15,31,
51,102,204,152,48,0,0,0,0,0,48,120,108,2
30,227,230,108,120,48,0,0,0
970 DATA 0,0,0,0,0,12,30,54,103,199,103,
54,30,12,0,0,0,0,6,12,25,51,102,204,248,
240,248,102,51,25,12,0
980 :
990 :
1000 :
1010 ' ROTINA DE TIRO
1020 'TIRO DO JOGADOR 1
1030 :
1040 :
1050 IF X1<2 AND (Y1=Y2 OR Y1>Y2-7 AND Y
1<Y2 OR Y1 > Y2 AND Y1<Y2+8) THEN LINE (
X1+16,Y1+10)-(X2+8,Y1+20),9:GOTO 1400 EL
SE LINE (X1+15,Y1+10)-(255,Y1+10),9:LINE
 (X1+15,Y1+10)-(255,Y1+10),1:RETURN
1060 IF X1>X2 AND (Y1=Y2 OR Y1>Y2-7 AND 
Y1<Y2 OR Y1>Y2 AND Y1<Y2+8) THEN LINE (X
1,Y1+10)-(X2+B,Y1+10),9:GOTO 1400 ELSE L
INE(X1,Y1+10)-(0,Y1+10),9:LINE (X1,Y1+10
)-(0,Y1+10),1:RETURN
1070 :
1080 :
1090 ' ROTINA DE
1100 'TIRO DO JOGADOR 2
1110 :
1120 :
1130 IF X2<X1 AND (Y2=Y1 OR Y2>Y1-8    A
ND Y2<Y1 OR Y2>Y1 + 6) THEN LINE (X2+16,
Y2+10)-(X1+8,Y2+10),9:GOTO 1210 ELSE LIN
E(X2+15,Y2+10)-(255,Y2+10),1:RETURN
1140 IF X2>X1 AND (Y2=Y1 OR Y2>Y1 - 8 AN
D Y2 <Y1 OR Y2>Y1 AND Y2<Y1+6) THEN LINE
 (X2,Y2+10)-(X1,Y2 + 10),9:GOTO 1210 ELS
E LINE(X2,Y2+10)-(0,Y2+10),9:LINE (X2,Y2
+10)-(0,Y2+10),1:RETURN
1150 :
1160 :
1170 :
1180 'MORTE DO PRIMEIRO
1181 '    JOGADOR
1190 :
1200 :
1210 STRIG(1)OFF:INTERVAL OFF:SOUND 8,0:
SOUND 7,55:SOUND 6,30:SOUND 12,50:SOUND 
11,0:SOUND 13,1:SOUND 8,16
1220 FOR A=1 TO 10
1230 R=RND(1)*50
1240 LINE (X1+8,Y1+8)-STEP (R,-50),7
1250 R=RND(1)*50
1260 LINE (X1+8,Y1+8)-STEP(R,50),7
1270 R=RND(1)*50
1280 LINE(X1+8,Y1+8)-STEP(-R,-50),7
1290 R=RND(1)*50
1300 LINE (X1+8,Y1+8)-STEP(-R,50),7
1310 NEXT
1320 P2=P2+1:GOTO 30
1330 :
1340 :
1350 :
1360 ' MORTE DO SEGUNDO
1370 '     JOGADOR
1380 :
1390 :
1400 STRIG(2)OFF:INTERVAL OFF:SOUND 8,0:
SOUND 7,55:SOUND 6,30:SOUND 12,50:SOUND 
11,0:SOUND 13,1:SOUND 8,16
1410 FOR A=1 TO 10
1420 R=RND(1)*50
1430 LINE(X2+8,Y2+8)-STEP(R,50),12
1440 R=RND(1)*50
1450 LINE(X2+8,Y2+8)-STEP(-R,50),12
1460 R=RND(1)*50
1470 LINE(X2+8,Y2+8)-STEP(R,-50),12
1480 R=RND(1)*50
1490 LINE(X2+8,Y2+8)-STEP(-R,-50),12
1500 NEXT
1510 P1=P1+1:GOTO 30
1520 :
1530 :
1540 :
1550 ' COLISAO DO SPRITE
1560 :
1570 :
1580 :
1590 P2=P2+1:GOTO40
1600 STRIG(1)OFF:STRIG(2)OFF:INTERVAL OF
F:SPRITE OFF:FOR A=1TO50
1610 CIRCLE(X1+16,Y1+16),A,9,,,1.3
1620 NEXT
1630 GOTO 30
1640 :
1650 :
1660 :
1670 'FORA DO TEMPO
1680 :
1690 :
1700 :
1710 STRIG(1)OFF:STRIG(2)OFF:INTERVAL OF
F
1720 SOUND 7,&B111000:SOUND 8,0:SOUND 9,
0:SOUND 10,0:SOUND 13,1:SOUND 12,190:SOU
ND 11,0
1730 SOUND 1,2:SOUND 0,100:SOUND 3,2:SOU
ND 2,110:SOUND 5,2:SOUND 4,105:SOUND 6,1
1740 SOUND 8,16:SOUND 9,16:SOUND 10,16
1750 SCREEN 0:LOCATE 10,6:PRINT"TUDO EM 
CIMA!!"
1760 IF P1>P2 THEN PRINT:PRINT"VOCE VENC
EU, JOGADOR 1 !" ELSE IF P2>P1 THEN PRIN
T :PRINT "VOCE VENCEU, JOGADOR 2 !" ELSE
 IF P1=P2 THEN PRINT:PRINT"HOUVE EMPATE 
!"
1770 PRINT:PRINT"SEUS PONTOS, JOGADOR 1 
:";P1:PRINT"SEUS PONTOS, JOGADOR 2 :";P2
1780 PRINT:PRINT "PRESS. QUALQUER TECLA 
P/ CONTINUAR"
1789 IF INKEY$<>"" THEN 1789
1790 IF INKEY$="" THEN 1790 ELSE RUN
1800 :
1810 :
1820 :
1830 :
1840 :
1850 :
1860 :
1870 COLOR 15,1,1:SCREEN 3,2:KEYOFF
1880 OPEN"grp:"AS#1
1890 R=RND(-TIME)
1900 DIM S$(3):DEFINT A-Z
1910 FOR A=0 TO 3
1920 FOR B=1 TO 32
1930 READ C:A$=A$+CHR$(C):NEXT
1940 SPRITE$(A)=A$:S$(A)=A$:A$=""
1950 NEXT
1960 COLOR 4:PRESET(50,20):PRINT #1,"DUE
LO"
1970 COLOR 13:PRESET(10,100):PRINT#1,"ES
PACIAL"
1980 SOUND 7,62
1990 PLAY"v13o4l8ed+ed+eo3bo4dco3a4.ceab
4.eg+o3bo4c4.o3eo4ed+ed+eo3bo4dco3a4.cea
b4.eo4co3ba1"
2000 FOR A=0 TO 1900:NEXT
2010 FOR A=1 TO 180
2020 LINE(RND(1)*255,RND(1)*191)-STEP(10
,10),RND(1)*14+1,BF
2030 NEXT
2040 SCREEN 0:WIDTH 40:COLOR 15
2050 PRINT "DUELO ESPACIAL":PRINT
2060 PRINT"O objetivo do jogo e simples:
":PRINT "Destrua o outro jogador antes  
 que ele o destrua.":PRINT
2070 PRINT"Cada jogador possui movimento
s  para    qualquer direcao, mas   so po
de atirar  horizontalmente":PRINT
2080 PRINT"Ambos os jogadores tem 20 car
gasde laser":PRINT
2090 PRINT"Sua nave pode ate sair da tel
a e apare-cer no lado oposto.":PRINT
2100 PRINT"Caso haja colisao, os dois  p
er-dem ":PRINT
2110 PRINT"O tempo e mostrado por uma ba
rra no al- to da tela.":PRINT
2120 PRINT"Press. qualquer tecla, e que 
venca o me-lhor!"
2129 IF INKEY$<>"" THEN 2129
2130 IF INKEY$="" THEN 2130 ELSE SCREEN 
2
2140 RETURN
Única

Desenhista

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

Utilize os excelentes recursos gráficos que este programa oferece além de todas as cores disponíveis do computador MSX. Há um cursor que permite a você o movimento por toda tela. Este cursor se torna um símbolo, representando o módulo do desenho, isto é, cada módulo possui seu próprio formato de cursor que aparece depois do cursor sair do módulo selecionado. Assim é possível saber o módulo que está sendo usado.

No início o programa pergunta se há alguma tela para carregar. Pressionando "N" ou "Não", ele entrará com a tela de desenho, pressionando F1, você pode mover o cursor sem desenhar. Para voltar ao desenho pressione F2. Selecione o módulo posicionando o cursor sobre o módulo escolhido e aperte a barra de espaço. O moviemento do cursor é feito pelas setas.

São cinco os módulos de desenho:

  • Círculo ou elipse - (DRAW CIR) no painel.
  • Linha - (DRAW LIN) no painel.
  • Quadrado - (DRAW) no painel.
  • Salvar tela - (TEP) no painel.
  • Mudar cor da tela - Retângulo à direita no painel.

Preencher o interior da figura - (FILL) no painel.

No módulo círculo, pressione F3 para marcar o centro da circunferência a ser desenhada, com um ponto. Mova o cursor no sentido horizontal quanto mais você se afastar do ponto marcado, maior será o desenho. Pressione o círculo. Se quiser uma elipse, o raio de aspecto pode ser aumentado pressionando F1 ou F2. Observe o aspecto através de um módulo no lado inferior direito da tela, que exibe estas modificações.

Para desenhar uma linha, mova o cursor para seu início e pressione F3, depois pressione F4 quando chegar até o final da linha. Se não fizer isto, ou seja, mover o cursor horizontalmente, será desenhada apenas uma linha.

Para preencher o interior da figura, é necessário que seja a mesma cor e possua todos os lados conectados. Se não for, mova o cursor para o módulo de cor, encontrado no lado inferior direito da tela, ao lado do módulo de modificações. O módulo no início do programa, se encontra com a cor branca no seu interior. Mova o cursor e posicione sobre o centro do módulo e pressione a barra de espaço, cada vez que pressionar, será exibida uma nova cor. Quando encontrar a cor referente, saia do módulo e vá para o módulo encontrado ao lado esquerdo FILL. Após centralizar o cursor no módulo e pressionar a barra de espaço, vá para o interior da figura e pressione F1.

Para desenhar em várias cores diferentes, simplesmente vá ao módulo de cor (siga as instruções acima referente ao módulo) e após isto, continue normalmente o programa.

Para mudar a cor da tela, vá para o módulo de cor e siga as instruções anteriores.

Após isto, posicione o cursor sobre o módulo e pressione a barra de espaço. Ao sair do módulo, pressione F1 e toda a tela ficará na cor escolhida. É necessário que você saiba a localização dos módulos, pois a tela é totalmente preenchida pela nova cor.

Para retornar ao normal, pressione a barra de espaço fora dos módulos. Fazendo isto o cursor não terá nenhuma ligação com os módulos e você poderá desenhar randomicamente. F1 você move o cursor sem desenhar e F2 volta a desenhar.

O movimento do cursor é feito através das setas que se encontram no lado direito do seu micro.

Observação: Se você pressionar F3 quando o cursor estiver normal, limpará a tela.

Para salvar a tela, posicione o cursor sobre o módulo TPE e pressione a barra de espaço. Gradualmente sua informação da tela será armazenada para uso futuro. Bons desenhos!




Referência de Listagem

Listagem Arquivo
Listagem Únicadeseno.bas

Listagem

  
50 CLS:FORP=1TO10
60 KEYOFF:PRINT"       J[A[Y[A[R[T";:NEX
TP:LOCATE 2,7
70 INPUT"ALGUM QUADRO P/ CARREGAR";LD$
80 IF LD$="" OR LD$="NAO" OR LD$="N" THE
N 110
90 GOSUB 2060
100 JOK=1:GOTO130
110 COLOR15,4,4:SCREEN2,0:COLOR15,4,4:PC
=15:DIMZX$(5)
120 ' AREA DE GRAFICOS
130 GOSUB440
140 IFJOK=1THEN250ELSE150
150 '
160 OPEN"grp:"AS#1
220 PSET(14,30):PRINT#1,"TECLAS."
225 FOR I=0 TO 400
226 NEXT
230 PLAY"o3a32g32a2gbfbf-20e60d8d-2d8r64
d4","o5a32g32a2g8f8f-20e60d8d-2d8r64d4"
240 LINE(7,5)-(200,70),4,BF:CLOSE#1:JOK=
1
250 XX=128:YY=96:PX=1
260 PUTSPRITE0,(128,96),PC,0
270 ON KEY GOSUB 940,960,1860
280 KEY(1)ON:KEY(2)ON:KEY(3)ON:DC=3
290 ONSTRIG GOSUB 980
300 STRIG(JK)ON
310 DR=STICK(JK):IFDR=0THEN290
320 ONDRGOTO330,340,350,360,370,380,390,
400
330 YY=YY-1:GOTO410
340 XX=XX+1:YY=YY-1:GOTO410
350 XX=XX+1:GOTO410
360 XX=XX+1:YY=YY+1:GOTO410
370 YY=YY+1:GOTO410
380 XX=XX-1:YY=YY+1:GOTO410
390 XX=XX-1:GOTO410
400 XX=XX-1:YY=YY-1
410 PUTSPRITE0,(XX,YY),PC,0
420 IFPX=1THENPSET(XX+5,YY+5),CL:GOTO310
430 GOTO310
440 '
450 REM SCREEN2,0:COLOR15,4,4
460 AR=1.4
470 CIRCLE(225,174),8,9,,,AR
480 LINE(30,0)-(225,0),5:LINE(30,192)-(2
25,192),5:LINE(5,30)-(5,162),5:LINE(255,
30)-(255,162),5
490 A$="r3d4l3u4r3c9r2c15r3d2g2u4d2f3"
500 B$="c9u1r2c15u4r3d4u2l3r4c9r2d1c15u3
d4u1r3d1u4"
510 C$="r32d3o32u30"
520 D$="r3l3d4r4c9r2c15u5c9r3d1c15r3d2g2
u4d2f2"
530 E$="d4r3c9r3c15u5c9r3d1c15d4u4f4u4"
540 F$="r8d6l8u6"
550 G$="r3l2d6c9r4u1"
560 H$="r3d3l3u3d6c9r5u1c15u4d5r3l3u3r2l
2u3r3"
570 I$="r3l3d4u2r2c9r4u2c15d5c9r3u1c15r3
l3u5c9r5d1c15d4r3"
580 CL=15:C1=1
590 FORP=1TO164STEP32
600 LINE(P+14,165)-(P+14+30,185),9,BF
610 NEXTP
620 LINE(180,170)-(200,180),15,BF
630 LINE(209,164)-(242,185),7,B
640 DRAW"bm17,170xa$;xb$;"
650 DRAW"bm20,177xd$;"
660 DRAW"bm50,170xa$;xb$;"
670 DRAW"bm53,177xe$;"
680 DRAW"bm83,170xa$;xb$;"
690 DRAW"bm90,177xf$;"
700 DRAW"bm120,170xg$;c4r1u5l1c15xh$;"
710 DRAW"bm150,170xi$;"
720 '
730 RESTORE:FORP=1TO8:READO
740 ZX$(1)=ZX$(1)+CHR$(O)
750 NEXTP:SPRITE$(0)=ZX$(1)
760 DATA195,129,0,28,20,28,129,195
770 '
780 FORP=1TO8:READZ1
790 ZX$(2)=ZX$(2)+CHR$(Z1)
800 NEXTP:SPRITE$(1)=ZX$(2)
810 DATA195,195,36,24,24,36,195,195
820 '
830 FORP=1TO8:READZ2
840 ZX$(3)=ZX$(3)+CHR$(Z2)
850 NEXTP:SPRITE$(2)=ZX$(3)
860 DATA8,8,8,8,247,8,8,8
870 '
880 FORI=1TO8:READZ3:ZX$(4)=ZX$(4)+CHR$(
Z3):NEXTI:SPRITE$(3)=ZX$(4)
890 DATA255,129,129,157,149,157,129,255
900 '
910 FORY=1TO8:READZ4:V$=V$+CHR$(Z4):NEXT
Y:SPRITE$(4)=V$
920 DATA255,129,255,3,15,24,24,24
930 RETURN
940 '
950 PX=0:YY=YY-1:XX=XX-1:PC=1:RETURN360
960 '
970 PX=1:YY=YY-1:XX=XX-1:PC=15:RETURN360
980 '
990 '
1000 IF(XX>15ANDXX<45)AND(YY>165ANDYY<18
5)THENSN=1:GOSUB1920:GOTO1200:RETURN270
1010 '
1020 IF(XX>47ANDXX<77)AND(YY>165ANDYY<18
5)THENID=0:SN=2:GOSUB1920:KEY(1)OFF:KEY(
2)OFF:KEY(5)OFF:KEY(3)ON:KEY(4)ON:GOTO15
40:RETURN270
1030 '
1040 IF(XX>79ANDXX<109)AND(YY>165ANDYY<1
85)THENID=1:SN=3:GOSUB1920:KEY(1)OFF:KEY
(2)OFF:KEY(5)OFF:KEY(3)ON:KEY(4)ON:GOTO1
540:RETURN270
1050 '
1060 IF(XX>142ANDXX<172)AND(YY>165ANDYY<
185)THENFL=1:SN=4:GOSUB1920:FORK=2TO5:KE
Y(K)OFF:NEXTK:KEY(1)ON:GOTO1540:RETURN27
0
1080 STRIG(JK)ON
1090 IF(XX>175ANDXX<205)AND(YY>165ANDYY<
185)THEN1100ELSE1150
1100 '
1110 BEEP:CL=CL+1:IFCL>15THENCL=1
1120 LINE(180,170)-(200,180),CL,BF
1130 LINE(205,165)-(205,185),9
1140 ONDCGOTO1200,1550,270
1150 '
1160 IF(XX>111 AND XX<141)AND(YY>165ANDY
Y<185)THENGOSUB1950
1170 '
1180 FORK=1TO5:KEY(K)OFF:NEXT K
1190 FORK=1TO5:KEY(K)OFF:NEXTK:FL=0:PRES
ET(CX,CY):PLAY"o3b32","o4c32","o4e32":PU
TSPRITE0,(XX,YY),PC,0:RETURN270
1200 'ROTINA DO CIRCULO
1210 DC=1:STRIG(JK)ON:PRESET(CX,CY)
1220 ONKEYGOSUB1440,1490,1370,1380
1230 KEY(1)ON:KEY(2)ON:KEY(3)ON:KEY(4)ON
1240 DR=STICK(JK):IFDR=0THEN1240ELSE1250
1250 ONDRGOTO1260,1270,1280,1290,1300,13
10,1320,1330
1260 YY=YY-1:GOTO1340
1270 XX=XX+1:YY=YY-1:GOTO1340
1280 XX=XX+1:GOTO1340
1290 XX=XX+1:YY=YY+1:GOTO1340
1300 YY=YY+1:GOTO1340
1310 XX=XX-1:YY=YY+1:GOTO1340
1320 XX=XX-1:GOTO1340
1330 XX=XX-1:YY=YY-1
1340 IFPOINT(XX+4,YY+5)=1THENSK=15ELSESK
=1
1350 PUTSPRITE0,(XX,YY),SK,1
1360 GOTO1240
1370 PRESET(CX,CY):CX=XX+4:CY=YY+5:PSET(
CX,CY),1:RETURN1240
1380 'DESENHA CIRCULO
1400 CIRCLE(CX,CY),ABS(XX+4-CX),CL,,,AR
1410 RETURN1240
1420 '
1440 '
1450 AR=AR-.1:IFAR<.1THENAR=1.4ELSE1460
1460 LINE(210,166)-(241,182),4,BF
1470 CIRCLE(225,174),8,9,,,AR
1480 RETURN1240
1490 '
1500 AR=AR+.1:IFAR>6THENAR=1.4ELSE1510
1510 LINE(210,166)-(241,182),4,BF
1520 CIRCLE(225,174),8,9,,,AR
1530 RETURN1240
1540 '
1550 DC=2:STRIG(0)ON:PRESET(CX,CY)
1560 ONKEYGOSUB1700,,1740,1770
1570 DR=STICK(JK):IFDR=0THEN1570
1580 ONDRGOTO1590,1600,1610,1620,1630,16
40,1650,1660
1590 YY=YY-1:GOTO1670
1600 XX=XX+1:YY=YY-1:GOTO1670
1610 XX=XX+1:GOTO1670
1620 XX=XX+1:YY=YY+1:GOTO1670
1630 YY=YY+1:GOTO1670
1640 XX=XX-1:YY=YY+1:GOTO1670
1650 XX=XX-1:GOTO1670
1660 XX=XX-1:YY=YY-1
1670 IFPOINT(XX+4,YY+5)=1THENSK=15ELSESK
=1
1680 PUTSPRITE0,(XX,YY),SK,SN
1690 GOTO1570
1700 '
1710 IFFL<>1THENRETURN1580ELSE1720
1720 PAINT(XX+4,YY+5),CL,CL
1730 RETURN1580
1740 '
1750 PRESET(MX,MY):MX=XX+4:MY=YY+5:PSET(
MX,MY),1
1760 RETURN1570
1770 'DESENHA LINHA OU
1775 '   QUADRADO
1780 IFID=1THEN1820ELSE1790
1790 'LINHA
1800 PRESET(MX,MY):LINE(MX,MY)-(XX+4,YY+
5),CL:XX=XX:YY=YY:JT=0
1810 RETURN1680
1820 'QUADRADO
1830 PRESET(MX,MY):LX=XX+4:LY=XX+5:LINE(
MX,MY)-(XX+4,YY+5),CL,B:XX=XX:YY=YY:JT=0
1840 RETURN1680
1850 'ROTINA DE TROCA
1855 '    DE COR
1860 '  REINICIO DO
1865 '  DO PROGRAMA
1870 CLS:RESTORE
1880 FORM=0TO5
1890 SPRITE$(M)=" "
1900 NEXTM
1910 ERASEZX$:GOTO110
1920 '
1930 PLAY"v5t120o6c18c18d18c7a7f7"
1940 RETURN
1950 'ARMAZENA QUADROS
1960 '
1970 LINE(5,0)-(255,192),4,B
1980 BEEP
1990 OPEN"art"FOROUTPUTAS#1
2000 FORP=0TO4704STEP256
2010 FORC=PTOP+256
2020 PRINT#1,VPEEK(C);",";VPEEK(8192+C)
2030 NEXTC,P
2040 CLOSE#1
2050 RETURN
2060 ' CARREGA DA FITA
2070 COLOR15,4,4:SCREEN2
2080 OPEN"art" FOR INPUT AS #1
2090 FORP=0TO4704STEP256
2100 FORC=PTOP+256
2110 INPUT#1,VP,VC
2120 VPOKEC,VP:VPOKE8192+C,VC
2130 NEXTC,P
2140 CLOSE#1
2150 RETURN:' O FIM!!
Única

Software

Wordstar em cartão ROM para MSX

Inglaterra - A versão doméstica do famoso processador de textos da Micropro já está sendo comercializada em cartão ROM para a linha MSX pela softwarehouse Cumana. O Poket Wordstar já se encontra à disposição dos usuários ingleses desde o início do ano e, faz parte de um projeto da Micropro que também inclui, para breve, o lançamento de um outro cartão, capaz de expandir a memória RAM dos micros MSX. Essa sofisticada tecnologia tem, no entanto, uma aparência muito simples lembrando mais um cartão de crédito, já que os chips vêm encapsulados por uma fina camada de plástico endurecido.

(OC) Apesar de existirem evidencias de que existiu esta versão do Pocket Wordstar para MSX, não encontrei nada além de algumas citações na MSX Computing inglesa, nada de ROM. Referências a versões para ZX-Spectrum e CPC também foram encontradas.



I Ching

Produção Independente, para MSX, Apresentação: Fita

Se chineses da era pré-cristã imaginassem que nos dias atuais o computador substituiria o mais conhecido oráculo de adivinhação e profecia, certamente o idealizariam de forma que a elaboração do software não desse tanto trabalho para ser programado. Mas se levarmos em conta que I Ching foi escrito na China nos idos de mais ou menos 3000 a.C., e ainda hoje é considerado como o mais antigo dos livros, onde se concentra toda a sabedoria que a cultura chinesa desenvolveu e acumulou durante vários séculos, podemos dizer que está tudo empatado e que valeu a pena.

O método de I Ching pelo computador consiste em se formular mentalmente uma pergunta, para em seguida pressionarmos RETURN para que os dados (aqui são dados mesmo, e não instruções para computador) octogonais sejam lançados. Não veremos os dados, mas ouviremos o som deles rolando, então aparece na tela a resposta obtida pelo hexagrama que está contido na memória da máquina, de acordo com o "resultado" dos dados.

Em sendo assim eliminamos as cansativas consultas a tabelas, códigos, etc..

As "respostas" serão sempre em forma de toques, vislumbres verbais, muito mais uma sábia e delicada orientação do que uma "resposta" propriamente falando, por isto não valem a pena aquelas perguntas que exijam um sim ou não como resposta. Um oráculo é para ser consultado, nunca inquirido.

Só para ilustrar, perguntamos qual seria o melhor caminho para a vida, e a "resposta" está abaixo:

A Fraternidade: A união e a confraternização trazem sucesso. Procurando a companhia dos outros, aumentam as oportunidades de se realizar coisas importantes. Deixando de lado os interesses individuais, os mal-entendidos serão superados.


Referência de Listagem

Listagem Arquivo
i-Chingi-ching.bas
Wordstar (MSX-DOS)start.bat

Games

Magical Tree

Nota 5

Este é um jogo em que o nosso herói, um guerreiro apache, tem como objetivo vencer uma escalada de uma árvore de 2000 metros de altura e, ao mesmo tempo enfrentar obstáculos como corujas, bichos perturbadores, relâmpagos e crisálidas. Mas, para consolo do guerreiro apache existem várias maneiras de se fazer pontos recolhendo-se os frutos da árvore, os cocares, as pedras preciosas, as facas, flechas e, com a morte da coruja e da crisálida. Além disso, ainda há uma bonificação ao se passar de estágio, o que é representado por meio de portais gigantes. O games consiste, basicamente, de dois desafios principais: vencer os animais que se colocam no caminho do guerreiro e, depois dos portais, escapar aos relâmpagos que são fatais. Existe ainda a simulação da sensação de dia e noite, dando uma boa aparência de realidade. Porém, o principal prazer consiste em matar a curiosidade, descobrindo o que é que existe no topo da gigantesca árvore. É nada mais, nada menos, que um forte apache com um chefe de tribo e uma índia, que se encontram na muralha do forte.

Dica: Depois de pegar as pedras preciosas, desça um pouco, fazendo o buraco mágico sair de sua visão e, então, volte pois os frutos estarão novamente no mesmo lugar, existindo a possibilidade de se repetir o processo.


Highway Star

Nota 4

Uma pacata cidadezinha é transformada, de repente, em pista de corrida. Seu carro, chamado Tomatinho, tem que evitar uma turma do barulho que minou certos pontos da pequena cidade e, com seus tratores tentarão esmagá-lo. Para manter seu carro, você terá ao seu dispor postos de gasolina para evitar que seu motor venha a fundir e explodir. O gráfico do jogo é excepcionalmente detalhado, sendo ótimo, principalmente se você é fã de Rally-X dos fliperamas. Corrida Maluca é muito bom para testar seu desempenho. Além disso, óleos lubrificantes e sacos de dinheiro estarão espalhados pela cidade. A cidadezinha não é composta apenas por ruas, mas, também por viadutos e, nesse aspecto, o detalhe impressiona.

Seu objetivo real é pegar as bandeirinhas brancas que se encontram pela cidade, sendo mostradas, no mapa ao lado, uma de cada vez. Estas fazem um total de cinco necessárias para a passagem de fase e, são represetnadas por um ponto branco, enquanto você é representado por um ponto vermelho. Existe ainda um indicador de combustível, no qual deve-se ficar de olho, para não dizer depois que o carro explodiu sem motivo. Dica: Depois de pegar a quarta bandeirinha, abasteça bem o carro e faça o caminho mais curto para a bandeirinha final, quando então fará bastante pontos pois, o combustível restante também conta ao seu favor. Outra dica: Decore o caminho mais fácil até as bandeirinhas em cada fase, se possível, porque elas estarão sempre nos mesmos lugares. Isto evitará muitas confusões e choques com os carros do comando negro.


Comic Bakery

Nota 3

Padeiro Maluco é um jogo que não pode ser considerado muito interessante, mesmo contando com um gráfico que apesar de simples pode ser avaliado como bom. O objetivo deste game é manter ligadas as chaves de força das esteiras do forno de pões e, algumas vezes, botar um guaxinim para dormir com um tiro de soporífero, a única arma à disposição do padeiro. O nosso personagem ainda tem, também, uma outra opção: a de dar pulos para salvar-se. Em cima do vídeo, aparece uma planta - em tamanho reduzido - indicando se a esteira desligou, a posição do padeiro em relação à esteira e, até um caminhãozinho que está do lado de fora, que quando termina o tempo do padeiro, parte para entregar a mercadoria. O maior inimigo, neste jogo, é o guaxinim que não só desliga as esteiras, destrói o pão ou outro produto, como também pode tirar o padeiro de ação, diminuindo suas vidas de reserva. Além dele, o segundo inimigo é o tempo, que corre.

O game é composto por dois cenários, sendo o primeiro a padaria e o segundo, a lanchonete onde existem quatro crianças esperando, no mínimo, quatro especialidades do padeiro. Se estas forem em número inferior e, você ainda tiver vidas extras, perderá uma para poder ir para a segunda fase. Mas, caso não tenha mais nenhuma vida extra, o jogo estará terminado para você. A cada passagem de fase, tome cuidado, pois os guaxinins ficam mais espertos, driblando seus tiros de soporífero e, em caso de terminar sua munição, a única opção será a fuga. Quanto a lanchonete, o padeiro aparece entrando com um carrinho de pães, e entrega quatro às crianças, sendo o restante convertido em pontos. Se você conseguir mais de cinco, surgirá uma coruja para parabenizá-lo pelo cumprimento da tarefa, além de ganhar um "nice" (bônus). Detalhe: repare nos pés das crianças, porque elas ficam balançando debaixo da mesa.

O som é razoável, mas não existe uma boa resposta dos tiros para cima. Importante: não dispare feito um louco, já que a cada tiro, o soporífero enfraquece, precisando de tempo para voltar à potência anterior. Existe ainda um indicador de quantidade de munição, que são azuis na parte de cima do vídeo.

Dica: Fique longe da fornalha que esteja com uma boa quantidade de pães, já que os guaxinins em cima das esteiras só destróem os pães se você estiver na mesma tela, mas, não se esqueça de verificar as esteiras.


Theseus

Nota 4

Um excelente "action game". Neste jogo o autor conseguiu, usando linguagem de máquina, unir gráficos bem elaborados com vários recursos sonoros, obtendo uma dosagem de diversão e emoção muito equilibrada.

O objetivo de nosso herói fica em conseguir pegar uma chave, um anel e abrir o acesso para entrar e encontrar sua namorada. Nós vamos ajudá-lo, mas só temos um guerreiro por cada jogo, e é preciso muito cuidado porque dificuldade é o que não falta.

Para começar, o placar, além do score e do tempo (em segundos), marca a capacidade de vida de Theseus, que começa em 600, e em qualquer vacilo, já era. Os perigos são os cubos (brancos, amarelos, azuis e vermelhos), as mortais piscinas de "transículas" águas vermelhas e os abomináveis insetos gigantes verdes. Qualquer encostadinha ou mergulho num destes obstáculos é a morte, pois em duas ínfimas frações de segundos, a capacidade de vida vai a zero.

A única arma do nosso herói é seu salto superpotente, que alcança todas as subidas e descidas exigidas pelos labirintos.

Todos os objetos recolhidos, anel, chave, bem como bandeirinhas amarelas, dão pontos. A única exceção fica para as estrelas brancas de seis pontas, que dão mais 127 números de vida para Theseus todas as vezes que for alcançada. E quando passamos de uma para outra fase, ganhamos mais 100 números.

Com o tempo, ocorre o inverso de muitos jogos, pois já que só temos uma vida, conforme subimos de nível (e consequentemente de dificuldade), o tempo aumenta. O score máximo é 99.999 pontos, o que é muito difícil, pois as dificuldades são diversas.

Merece destauqe a morte de Theseus, quando esta ocorre é cheia de charme. Quando ele vai caindo, seu boné fica no ar, para em seugida cair em cima dele.

Os controles são: Joystick = movimenta o boneco com a haste indo para a direita ou esquerda, empurrando para cima, acontece o salto ou "high jump". Teclado = as setas movimentam e "space" dá o salto.


Referência de Listagem

Listagem Arquivo
Magical Treemagitree.bas
Highway Starhwaystar.bas
Comic Bakerycbakery.bas
Theseustheseus.rom

Nenhum comentário:

Postar um comentário