Atlântida MSX
Você já deve ter visto este jogo em uma versão para outra máquina, dentre as quais a mais conhecida talvez seja a do vídeo game Atari.
Teste o programa no WebMSX – The Online MSX Emulator
Neste jogo você comandará três canhões laser e deverá defender sua cidade, Atlântida, de um ataque alienígena.
Você irá dispor de 100 tiros iniciais, sendo que a cada tiro disparado por um dos canhões laterais, será descontado um ponto deste total e, a cada tiro do canhão central, este total será diminuído em dois pontos.
Cada inimigo atingido contará 10 pontos ao seu Score e, a cada 100 pontos, os alienígenas enviarão uma nave especial que, se destruída, irá somar 15 tiros a sua atual munição. Se três naves inimigas conseguirem passar sem serem atingidas, a cidade será destruída, o mesmo acontecendo caso sua munição acabe.
Somente um canhão poderá ser acionado por vez. A seta para cima aciona o canhão central e as laterais acionam os canhões dos lados para os quais apontam.
A nave especial só pode ser destruída com o canhão central.
Caso você queira tornar o jogo mais lento, aumente o valor da variável ‘D’.
Boa sorte!
Fonte: Revista CPU MSX nr. 8
Editora: Águia Informática
Ano: 1989
Autor: Silvio Chan
Digitação: Marcos Daniel
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 83 84 85 86 |
10 ' ------- ATLANTIDA ------- 20 ' --- SILVIO CHAN 1989 --- 30 ' 40 DEFINTA-Z:KEYOFF:COLOR15,1,1 50 DATACD,6F,0,21,0,8,CD,4A,0,57,F,B2,CD,4D,0,2B,11,0,0,ED,52,20,EF,C9 60 DATA3,15,27,63,107,127,175,255,192,240,248,252,254,254,255,255 70 DATA255,255,255,231,231,231,231,255,0,129,219,231,219,129,0,0 80 DATA0,0,24,36,60,126,255,126 90 DATA16,16,16,16,16,16,16,16 100 DATA128,64,32,16,8,4,2,1 110 DATA1,2,4,8,16,32,64,128 120 DATA80,106,80,150,76,42,212,34 130 FORI=0TO23:READA$:POKE&HD000+I,VAL("&H"+A$):NEXT:DEFUSR=&HD000 140 A=USR(0):WIDTH32 150 ' 160 ' REDEFINE CARACTERES 170 ' 180 FORI=1472TO1535:READA:VPOKEI,A:NEXT 190 FORI=1984TO1991:READA:VPOKEI,A:NEXT 200 VPOKE8215,113:VPOKE8216,166:VPOKE8219,33:VPOKE8223,97 210 ' 220 ' TELA DE ABERTURA 230 ' 240 CLS:LOCATE12:PRINT"ATLANTIDA":LOCATE15,8:PRINTCHR$(184)CHR$(186)CHR$(185) 250 FORI=5TO25STEP2:LOCATE16-(I-1)/2,7+(I-1)/2:PRINTSTRING$(I,195):NEXT 260 PRINTSTRING$(32,219):PRINT" COPYRIGHT 1989 BY SILVIO CHAN. 270 IFINKEY$<>""THEN270 280 A$=INKEY$:IFA$=""THEN280 290 CLS:LOCATE13,10:PRINT"PRONTO!":PLAY"T240S10M4000O4DCDFDCCFCCECDCFCECDCC 300 IFPLAY(0)<>0THEN300 310 Z=1:X=16:Y=16:F=100:S=0:E=0:N=0:D=100 320 ' 330 ' TELA DO JOGO 340 ' 350 CLS:LOCATE15,16:PRINTCHR$(184)CHR$(186)CHR$(185):FORI=17TO20:LOCATE31-I,I:PRINTSTRING$(I*2-29,194):NEXT 360 LOCATE,16:PRINTCHR$(185):FORI=17TO20:LOCATE,I:PRINTSTRING$(I-15,194):NEXT 370 LOCATE31,16:PRINTCHR$(184):FORI=17TO20:LOCATE47-I,I:PRINTSTRING$(I-15,194);:NEXT 380 PRINTSTRING$(32,219):GOSUB720 390 ' 400 ' PROCESSAMENTO ATAQUE 1 410 ' 420 IFN=1THEN570ELSEY=16:X=Y:FORI=0TO511:VPOKE6144+I,188:VPOKE6144+I-1,32 430 A=STICK(0):IFA=1ANDT=0ANDF>1THENT=1:F=F-2:GOSUB730 440 IFA=3ANDT=0ANDF>0THENT=3:F=F-1:GOSUB730 450 IFA=7ANDT=0ANDF>0THENT=2:F=F-1:GOSUB730 460 IFT=1ANDY>0THENY=Y-1:GOSUB510:LOCATEX,Y:PRINTCHR$(189)ELSEIFT=1ANDY=0THENFORY=15TO0STEP-1:LOCATE16,Y:PRINT" ":NEXT:T=0:Y=16:X=Y 470 IFT=2ANDY>0THENY=Y-1:X=15-Y:GOSUB520:LOCATEX,Y:PRINTCHR$(191)ELSEIFT=2ANDY=0THENFORY=15TO0STEP-1:X=15-Y:LOCATEX,Y:PRINT" ":NEXT:T=0:Y=16:X=Y 480 IFT=3ANDY>0THENY=Y-1:X=16+Y:GOSUB530:LOCATEX,Y:PRINTCHR$(190)ELSEIFT=3ANDY=0THENFORY=15TO0STEP-1:X=16+Y:LOCATEX,Y:PRINT" ":NEXT:T=0:Y=16:X=Y 490 FORJ=0TOD:NEXT 500 NEXT:BEEP:E=E+1:LOCATE31,15:PRINT" ":GOSUB730:GOTO420 510 C=32*Y+X:IFVPEEK(BASE(5)+C)=188THENGOSUB710:FORY1=15TOYSTEP-1:LOCATEX,Y1:PRINT" ":NEXT:T=0:RETURN420ELSERETURN 520 C=32*Y+X:IFVPEEK(BASE(5)+C)=188THENGOSUB710:FORY1=15TOYSTEP-1:X=15-Y1:LOCATEX,Y1:PRINT" ":NEXT:T=0:RETURN420ELSERETURN 530 C=32*Y+X:IFVPEEK(BASE(5)+C)=188THENGOSUB710:FORY1=15TOYSTEP-1:X=16+Y1:LOCATEX,Y1:PRINT" ":NEXT:T=0:RETURN420ELSERETURN 540 ' 550 ' PROCESSAMENTO ATAQUE 2 560 ' 570 FORI=0TO1000:NEXT:FORI=0TO10:BEEP:NEXT:FORI=0TO511:J=BASE(5)+I:VPOKEJ,187:VPOKEJ-1,32 580 IFSTICK(0)=1ANDT=0ANDF>1THENT=1:X=16:Y=16:F=F-2:GOSUB730 590 IFT=1ANDY>0THENY=Y-1:GOSUB630:LOCATEX,Y:PRINTCHR$(189)ELSEIFT=1ANDY=0THENFORY=15TO0STEP-1:LOCATEX,Y:PRINT" ":NEXT:T=0 600 FORJ=0TOD:NEXT 610 NEXT:BEEP:LOCATE31,15:PRINT" ":FORY=15TO0STEP-1:LOCATEX,Y:PRINT" ":NEXT:E=E+1:GOSUB730 620 D=D-25:N=0:GOTO420 630 C=32*Y+X:IFVPEEK(BASE(5)+C)=187THENF=F+15:GOSUB710:FORY1=15TOYSTEP-1:LOCATEX,Y1:PRINT" ":NEXT:T=0:RETURN620ELSERETURN 640 ' 650 ' E X P L O S A O 660 ' 670 SOUND6,21:SOUND7,183:SOUND8,16:SOUND11,100:SOUND12,60:SOUND13,0:RETURN 680 ' 690 ' ATUALIZA/VERIFICA PLACAR 700 ' 710 GOSUB670:VPOKEBASE(5)+C,248:S=S+10 720 IFS>HTHENH=S 730 LOCATE0,22:PRINT"SCORE:"S" TOP:"H:LOCATE0,23:PRINT"FIRE:"F" ENEMY:"E; 740 IFE=3ORF=0THENGOSUB670:LOCATE15,16:PRINTSTRING$(3,248):LOCATE12,10:PRINT"GAME OVER":FORI=0TO6000:NEXT:BEEP:T=0:GOTO240 750 S1=S/100:IFS1=INT(S1)ANDS1=ZTHENZ=Z+1:N=1:RETURN 760 RETURN 770 ' FUNCOES DE VARIAVEIS 780 ' X,Y - COORD. X/Y DO RAIO 790 ' Z - AUX. P/ ENVIAR NAVE 800 ' F - N. DE TIROS RESTANTE 810 ' E-INIMIGOS NAO ATINGIDOS 820 ' C - POS. DO INIMIGO 830 ' T - FLAG DE TIRO 840 ' N - FLAG NAVE 2 850 ' D - DIFICULDADE 860 ' S - SCORE H - TOP |