Para computadores das famílias TK, Apple, CP e TRS8Ü 2? EDIÇÃO
EDITORA
LUTÉCIA
PROGRAMAS DE JO G 0 0 E
Daniel Isaaman e Jenny Tyler
—.
Tradução e A d ap taçã o de R onaldo Sé rgio de Biasi
i
Sumário
.
2 4 6 8 10 12 14 16 18 20 22
Introdução 24 Iceberg Bomba Relógio 26 O Muro do Bruxo Mensagem Decisiva 30 Míssil!: Versão TRS-80 Duelo 31 Míssil!: Versão Apple Batalha no Deserto 32 Míssil!: Versão TK-85 O Castelo do Traidor 33 Míssil!: Versão TK-83 Invasão dos Robôs 34 Algumas Sugestões Arm a Secreta 36 Como Programar Jogos Fuga! 38 Instruções de BASIC Avião Pirata 44 Tabela de Equivalência Bombardeiro Supersônico 45 Respostas dos Problemas Ilustrações Rex Archer, Jim Bamber, Tony Baskeyfield, M artin Newton e Graham Round Diagramação Graham Round e Roger Priddy Programa "Invasão dos Robôs": Bob M erry 2? EDIÇÃO
LUTECIA
Introdução a
q p
Este livro c ontém p r o g r a m a s de jogos de g u e r r a p a r a m ic ro c o m p u ta d o re s . Todos os p ro g ra m a s são com patíveis com os m icros fa b ric a d o s no Brasil. E m bora os micros na c iona is utilizem a lin g u a g e m BASIC, existem três dialetos ou va ria ç õe s dessa lin g u a g e m , d e p e n d e n d o d a m a rc a e m odelo do m icro. O s m icros na c iona is são divididos em três "famílias": a família Sinclair (CP-200, TK-83, TK-85), a família TRS-80 (CP-300, DGT-1000, etc.) e a família A p p le (Maxxi, Ap-II, etc.). Se você não so u b e r a q u e família p e r te n c e o seu m icro, p o d e r á ob te r a inform ação em q u a lq u e r loja e sp ecializada. Neste livro, a listagem p r in c ip a l de c a d a p r o g r a m a é p a r a os m icros CP-200 e TK-83 (daqui po r diante, tudo o que dissermos do TK-83 tam bém se aplica ao CP-200). As linhas q u e p re c isa m ser m u d a d a s p a r a q u e o p r o g r a m a funcione em outros c o m p u ta d o re s estão in d ic a d a s po r símbolos e as m odificações a p a r e c e m no final d e c a d a listagem. P a ra c a d a jogo, há idéias p a r a m odificações e extensões dos p ro g ra m a s. No final do livro, você e n c o n tra rá a lgum as "d ic a s" p a r a e sc re v e r seus próprios p ro g ra m a s. Incluím os tam bém um a tabela de e q u iv a lê n c ia p a r a ajudá-lo a a d a p ta r ao seu micro p ro g ra m a s p u b lic a d o s em revistas e em outros livros, além d e um a lista das instruções de BASIC usa da s neste livro, com as respectivas definições.
25 )NEltl ■I NB
Pontos importantes 1 Escreva as linhas exa ta m e nte com o na listagem, in c luindo todos os e sp a ç o s e sinais d e p o n tu a ç ã o . 2 Depois de b a te r c a d a linha, verifique na tela se está tudo certo. 3 A nies de c o m e ç a r um a nova linha, a p e rte a tecla RETURN, ENTER ou NEWLINE. 4 C u id a d o p a r a não p u la r um a linha ou m isturar duas linhas. Use um a r é g u a ou p e d a ç o d e p a p e l p a r a m a rc a r o lu g a r o n d e está na listagem. 5 Preste a te n ç ã o nos símbolos q u e identificam as diferentes famílias e use a instrução a p r o p r ia d a p a r a o seu m odelo d e micro. 6 Se você está u sa n d o um m icro TK-83 ou TK-85, não de v e e sc re v e r as instruções letra po r letra. Em vez disso, use as teclas c o rre sp o n d e n te s a c a d a instrução. Talvez você pre fira q u e a lg u é m leia o p r o g r a m a p a r a você e n q u a n to a p e rta as teclas. Nesse caso, e x p liq u e p a r a o seu am igo q u e ele de v e ler todas as vírgulas, pontos, p a rê n te se s e espaços.
Como verificar os programas Como carregar os programas Se o seu m icro não é o TK-83, as linhas q u e devem ser m u d a d a s estão in d ic a d a s pelos seguintes símbolos: A TK -85 H fam ília TRS-80 • família A p p le C a d a vez q u e você vir o símbolo da família a q u e p e r te n c e o seu micro, p r o c u r e no final d a listagem u m a linha com o mesmo símbolo e o mesmo núm ero. Use-a no lu g a r da linha c o r r e s p o n d e n te d a listagem p rincipal.
W ti& Êm
Depois d e c a r r e g a r o p ro g ra m a , c onsulte o m anual do micro p a r a ver com o fazê-lo a p a r e c e r na tela. (Em ge ra l, ba sta e sc re v e r LIST.) V erifique se todas as linhas estão corretas, muito fácil co m e te r erros; não se adm ire se e n c o n tr a r alguns. ( C onsulte o m anual
fOR
p a r a s a b e r com o a lte ra r as letras ou símbolos q u e estão e rra d o s. Em muitos casos, é mais fácil to rn a r a e sc re v e r a linha inteira. A linha an tig a (com o mesmo núm ero) é auto m a tic a m e n te apagada.
Eis u m a lista dos e rros mais com uns: 1 Linha faltando. 2 Linha com n ú m e ro e rra d o . 3 O c o m e ç o d e u m a linha e m e n d a d o no final d a anterior. 4 Falta de p a rê n te se s, vírgula, dois pontos, ponto-e-vírgula, ponto ou esp a ç o , e sp e c ia lm e n te nas linhas mais
c o m p rid a s. C u id a d o com os p a rê n te se s duplos. 5 Linha e r r a d a p a r a o seu m odelo de micro. 6 T roca de zero p e la letra "O ". 7 N úm eros e r r a d o s (com zeros a mais, por exem plo).
fam iliarizado com eles. As instruçc p a r a isso estão n a p á g in a d e c a d a p ro g ra m a .
Como executar os programas P a ra c o m e ç a r q u a lq u e r jogo, você deve e sc r e v e r RUN. Em alg u n s jogos, as coisas a c o n te c e m muito d e p re ssa , de m odo q u e é m elhor ler a te ntam ente as in stru ç õ e s antes de c o m e ç a r. E b a sta n te p ro v á v e l q u e o p r o g r a m a a in d a c o n te n h a a lg u n s erros. Nesse caso, não a c o n te c e r á n a d a ou o jogo d a rá re sultados imprevistos. P ode ser q u e o c o m p u ta d o r mostre na tela um c ó d ig o de erro, q u e você p o d e p r o c u r a r no m anual. Isso o a ju d a r á a localizar o erro. Liste o p r o g r a m a de novo e c o m p a re as instruções com as do livro, um a a uma. Q u a n d o o jogo term inar, a p a r e c e r á na tela u m a m e n sa g e m (BREAK IN LINE 200, p o r exem plo). P a ra jogar de novo, voc ê de ve e sc re v e r RUN. V ocê p o d e m u d a r à v ontade o texto e n tre a spas q u e a p a r e c e depois de q u a lq u e r instrução PRINT. T am bém p o d e a c r e s c e n ta r novas m e n sa g e n s. P a ra isso, e sc re v a o n ú m e ro d e u m a linha que não a p a r e c e no p r o g r a m a (105, p o r exem plo, se vocc q u e r incluir um a m e n sa g e m
O
\?9SW
Experiências com os jogos Este livro c ontém várias sugestões p a r a m odificar e am plia r os p r o g ra m a s, mas não tenha m e d o d e introduzir suas p ró p ria s a lterações. Não há p e rig o de da nific a r o c o m p u ta d o r; se sua idéia não d e r certo, você p o d e se m pre voltar ao p r o g r a m a inicial. V ocê p ro v a v e lm e n te terá vo n ta d e de m u d a r a v e lo c id a d e d e alg u n s jogos*, e sp e c ia lm e n te de p o is q u e estiver
e n tre as linhas 100 e 110), esc re v a PRINT e de p o is o texto d a sua m e n sa g e m entre aspas. Se o seu c o m p u ta d o r é c a p a z de g e r a r c o re s ou sons, consulte o m anual p a r a d e s c o b r ir com o fu ncionam as instruções c o rr e s p o n d e n te s e e x p e rim e n te usá-las nos p ro g ra m a s deste livro.
5QtA\
*Na página 35 há uma nota especial para os usuários do TK-85.
(PM .
Bomba-relógio Em 2585. os h u m an os e stã o em guerra contra um a raça d e robôs. Um m íssil la n ç a d o p e lo s robôs a c a b o u d e cair e v o cê p recisa descobrir o có d ig o secreto q u e d esarm a o g iv a n u clear. S e n ão co n seg u ir, o Q uartelG en eral d a Terra será destruído. O seu com putador s a b e q u a l é a letra correta do c ó d ig o . Entre com um p a lp ite e e le lh e dirá se a letra vem a n te s ou d ep o is no a lfa b e to . V ocê tem direito a quatro ten ta tiv a s a n te s d e a b om b a exp lod ir.
Como o programa funciona 10 28 30 40 50 60 70
PRINT PRINT PRINT PRINT PRINT PRINT PRINT
"BOfIBA-RELDGIO"
Imprime o título e as instruções.
"ESCREVA O CODIGO" "LETRA (A-Z> PARA" "DESARMAR A BOMBA." "VQCE TEM 4 CHANCES"
Escolhe um número entre 1 “ 9C transforma-o em letra bdigo secreto") e ia-a em CS.
88 LET C$=CHR$(37+INT(RND*26+1))
Começo de um loop que faz com que as linhas de 100 a 140 sejam repetidas 4 vezes.
90 FOR G=1 TO 4 100 INP UT G$
Guarda seu palpite em G$.
110 IF G$=C$ THEN GOTO 210 120 IF G*<C* THEN PRINT "DEPOIS"? 130 IF G*>C* THEN PRINT "ANTES"? 140 PRINT " DE "?G$
150 NEXT G
Verifica se você escolheu a letra certa; em caso afirmativo, pula para 210. Verifica se a letra correta fica antes ou depois da que você escolheu e imprime uma m ensagem apropriada. Fim do loop. Volta para outra tentativa.
160 PRINT Imprime isto se você errou 170 PRINT "BUUUUUUUUflttfl.. . " 180 PRINT "EXPLODIU." quatro vezes. 190 PRINT "O CODIGO CERTO ERA "?Ci 208 STOP Imprime isto se você 218 PRINT " T I C . . . T I C . . . T I C . . . " acertou. 220 PRINT "VOCE CONSEGUIU" 230 STOP A listagem acim a é para o TK-83. Para os outros computadores, faça as mudanças abaixo. 80 LET C$=CHR$(64+INT(RND(1>*26+1)> 80 LET Ct*CHR*(64+INT<RND(0)#26+l>> 80 LET C$=CHR$(64+INT(RND*26+1)) .
f *
Como aumentar o programa
Problema
Você pode fazer o computador imprimir uma m ensagem especial se você acertar na última tentativa. Acrescente um ponto-e-vírgula no final da linha 220, assim;
C om o você modificaria o p r o g r a m a p a r a a u m e n ta r ou dim inuir o n ú m e ro de tentativas?
220 PRINT "V O C Ê C O N S E G U IU "; e substitua a linha 230 por: 230 IF G = 4 THEN PRINT "(EM CIM A DA HO RA !)" 1___í; rv -.
—
Mensagem Decisiva
V ocê é um operador de c o m u n ic a ç õ e s por la ser. S u a V m issão é intercep tar a s m e n sa g e n s dos robôs e transm itila s para o Q u a rtel-G en era l. Um a m e n sa g e m d e c isiv a em có d ig o e stá sen d o e sp e r a d a . S e con segu ir tran sm iti-la corretam en te, o a ta q u e dos robôs será r e ch a ça d o . N este jogo, v o cê p recisa
'uardar na m em ória um grupo de letras. O com putador p e d e a você um núm ero de d ific u ld a d e entre 4 e 10. Q u an d o v o cê entra com a resp osta, as letras a p a r e c em n a te la e lo g o d e sa p a r e ce m . M em orize-as e entre com e la s no com p utad or, na m esm a ordem em que foram m ostradas n a te la .
speapr
s
C o m o o p r o g r a m a fu n c io n a
10 20 38 40 50 60
CLSPRINT "MENSAGEM DECISIVA" PRINT PRINT "DIFICULDADE? (4-10)" INPUT D IP D<4 DR D>10 THEN GOTO 40
L im p a a te la .
Pede um "número de dificuldade"
J----e 9uarda emD’
Verifica se o número não é menor q u e 4 ou m a io r q u e 10. D e fine u m a s tr in g v a z i a , n a q u a l •s e r á g u a r d a d a a m e n s a g e m s e c r e ta .
70 LET M$="“-
30 FOR 1=1 TO D 90 LET M$=f1t+CHR$ ( INT (RND*26+38)) 180 NEXT I __ 118 120 130 140
CLS -i PRINT "ENVIE ESTA flENSAOEFi:" f PRINT PRINT n$
150 168 170 130 190
FOR 1=1 TO D*8 NEXT I CLS------------------INPUT NtIF N$=M$ THEN GOTO 24 0 -----
200 210 220 230 240 258 260
PRINT "VOCE ERROU" PRINT "A MENSAGEM ERA:" PRINT M$ GOTO 268 PRINT "MENSAGEM CORRETA" PRINT "A GUERRA TERMINOU" STOP
J
A l i s t a g e m a c i m a é p a r a o TK-83. P a r a os o u tro s c o m p u t a d o r e s , f a ç a a s m u d a n ç a s a b aix o .
O c o m p u t a d o r e x e c u t a e s te loop D - v e z e s. De c a d a vez, e s c o lh e u m a le tr a e a a c r e s c e n t a à s q u e já e s tã o g u a r d a d a s e m MS. —L im p a a te la e d e p o is im p r im e a m ensagem . A m e n s a g e m fica n a t e la e n q u a n to o com p u tad o r e sp e ra --d u ra n te um tem po q u e d e p e n d e d e D. - L im p a a t e la no f in a l do loop d e espera. —G u a r d a s u a v e r s ã o d a m e n s a g e m e m NS. - V erifica se s u a m e n s a g e m é i g u a l a q u e e s t á e m MS; e m c a so a f ir m a tiv o , p u l a p a r a 240. — C h e g a a q u i se vo c ê e r r o u e im p r im e a m ensagem c o r r e ta . /" H e p a r e q u e o' ^TK-83 u s a um c ó d ig o d if e r e n te p a r a a s le tra s. Todos os outros m ic ro s u s a m o ycodigo ASCII.
1 0, 11 0, 17 0 HOME 90 LET M$=m+CHR*UNT(RND(1 >*26+65) > 90 LET Pl$=f1$+CHR$ ( INT(RNO(0>*26+65)) 90 LET N$=n$+CHR$(INT(RND*26+65)> 150 FOR 1=1 T0 D *160 ) o m o tornar o j o g o m a is difícil Voce p o d e m u d a r o p r o g r a m a p a r a fa z e r com q u e a m e n s a g e m s e c r e t a c o n t e n h a t a m b é m n ú m e r o s e s i n a i s de p o n t u a c a o . P a r a isso, s u b s t i t u a a l i n h a 90 por: 90 90 90 90
LET LET LET LET
MS = MS + CHRS(INT(RND*43 + 21)) M$ = M$ + CHR$(INT(RND(1)*43 + 48)) MS= MS + CHRS(ll\lT(RND(0)*43 + 48)) MS = MS + CHRS(INT(RND*43 + 48))
P r o b le m a
Como você modificaria o programa para fazer a mensagem ficar mais tempo na tela?
Duelo
| 1.
^
j, •^
10 20 30 40 50 60 70 80 90 100 110
Vocês estão de costas um para o outro. Caminham dez passos, dão meiavolta e sacam as armas. Quem será mais rápido no gatilho? O computador imprime os números de 1 a 10 para representar os 10 passos, íaz uma pausa e imprime ELE SACOU... Você deve apertar uma tecla (qualquer tecla) no momento em que aé* palavras aparecerem na tela. Se for süficientemente rápido. conseguirá derrotãr seu
CLS PRINT "DUELO" PRINT "VOCES ESTÃO PRONTOS PRINT "UAO DAR 10 PASSOS.. FOR 1= 1 TO 10 ' _____________ PRINT I NEXT I PRINT FOR 1=1 TO RND*200 ' NEXT I J IF INKEYÍO"" THEN DOTO 160
120 PRINT "ELE SACOU.........
"í J —
130 FOR 1=1 TO 5 140 IF INKEYÍO"" THEN GOTO 190 150 NEXT I
PARA 0 TECLADO ®
Como mudar a velocidade do jogo Para mudar o tempo de que você dispõe para apertar uma tecla, basta mudar o último número da linha 130. Quanto menor o número, menor o tempo.
160 PRINT "ELE ATIROU." --------------------170 PRINT "VOCE flDRREU." 180 GOTO 210 190 PRINT "MAS VOCE ATIROU PRIMEIRO" } 200 PRINT "E O MATOU." 210 STÜP A listagem acima é para o TK-83. Para os outros computadores, faça as mudanças abaixo. 10 HOME 65 FOR J=1 TO 300 : NEXT J 90 FOR 1=1 TO RND<1>*1000 90 FOR 1=1 TO RND(0)*1000 •110 IF PEEK(-16384>>127 THEN GOTO 160 130 FOR 1=1 TO 20 1130 FOR 1 = 1 TO 50 140 IF PEEK(-16384>>127 THEN DOTO 190
Como tornar o jogo mais difícil Para incluir a possibilidade de você errar o tiro, faça as seguintes mudanças Na linha 140, mude 190 para 220. Acrescente as seguintes linhas:
220 220 220 230 240
IF RND > .3 THEN GOTO 190 IF RNDI1) > .3 THEN GOTO 190 IF RND(O) > .3 THEN GOTO 190 PRINT "E VOCÊ ERROU" GOTO 90
---- Este loop é repetido 10 vezes. O computador imprime um número e dois pontos de cada vez. -----Este é um loop de espera. O computador passa um certo tempo, que depende do valor de RND, sem fazer nada. -----Verifica se você não se precipitou, apertando uma tecla antes de ELE SACOU aparecer na tela. -----Imprime o sinal de que você pode apertar uma tecla. -----Verifica o teclado para ver se você está apertando uma tecla; em caso afirmativo, pula para 190. (Observe que a linha 140 está no meio de um loop. Isto faz com que o computador verifique o teclado várias vezes, o que lhe dá uma oportunidade razoável de apertar uma tecla.) -----Chega aqui se você perdeu. (Ou se se precipitou ou não - apertou nenhuma tecla a tempo.) T— Chega aqui se você ganhou. Loops de espera podem ser escritos er uma linha, como na linha 65, a não ser nc Um loop de espera adicional para os micros mais rápidos. Para verificar o ^ teclado, alguns micros usam a instrução INKEYS, outros PEEK e outroí GET.
Mude o programa para que o computador também possa errar o tiro.
Batalha no Deserto A últim a fortaleza dos robôs fora dos EUR* fica n a s ruínas d e um a n tig o c a ste lo , no m eio do deserto. V ocê é o co m a n d a n te do grupo de ta n q u es q u e foi e n v ia d o para d estru í-la. Só lh e restam cin co m ísse is. V ocê p recisa ca lcu la r a d ireção e a e le v a ç ã o a n te s d e c a d a d isparo. O com putador p e d e para você fornecer um â n g u lo d e d ireção entre -90° (tudo para a esq u erd a) e + 9 0 ° (tudo para a direita) e um â n g u lo de e le v a ç ã o entre 0o (horizontal) e 90° (vertical). A e le v a ç ã o d eterm in a a q u e d istâ n c ia do ponto d e la n ça m en to o m íssil v a i cair. C on segu irá destruir a fortaleza dos robôs?
E s c o lh e um n ú m er o in te ir o en tre -90 e 90 p a r a a ------- d ir e ç ã o .
18 PRINT "BATALHA RO OESERTO" 28 LET T=INTíRND*ÍSÍ)-98 - - -
____ E s c o lh e u m n ú m er o e n tr e 0 e 1 p a r a a d is t â n c ia do c a s te lo .
38 LET D=RND-- - - - - - - - - - - - 48 58 68 78 88 98
POR 6=1 10 5 PRINI "DIRECAO (-98 A +98) ?" 1NP0T 11 PRINT -ELEVACAO 18 A 98) ?■ INPUT 8 LEI D1=SIN(2*(B/188*3.Í416)) -
------- P e d e s e u s p a lp it e s e os g u a r d a e m TI e B. U sa o s e u â n g u lo d e ------- e l e v a ç ã o p a r a c a lc u la r a d is t â n c ia p erc o rr id a p e lo m ís s il. (A r e s p o s ta e s tá e n tr e 0 e 1.)
188 IF A8S ÍT -T 1 X2 ANO A8S10-01 X . 0 5 THEN GOTO 228
118 128 138 148
PRINT "fllSSIL CAIU " IF T K T THEN PRINT UA ESQUERDA “ ) IF T D T THEN PRINT “A DIREITA IF A8S(DI-D)>.05 AND T 1 0 T THEN PRINT "E ■; O ponto-e-vírgula no final de u m a i n s t r u ç ã o PRINT a v i s a a o c o m p u t a d o r p a r a ná o m u d a r de linha.
158 168 í78 1S8 198 288 218 228 238 248
1F D - 0 D . B 5 ÍHÈF7RIKI “M I E S " ; IF 01~D>.85 THEH PRINT “DEPOIS"; PRINT NEXT G PRINT "RISSEIS 1 ACABARA»" PRINT “ROBOS 1 RESISTIRA»" STOP PRINT "íBUUUUUUIMR*" ' PRINT 'HV0CE CONSEGUIU" STOP
V e r ific a s e v o c ê a c e r to u e n e s s e c a s o p u la p a r a 220.
C o m p a r a o s e u â n g u lo d e d ir e ç ã o c o m o n ú m er o e s c o lh id o n a lin h a 20 e im p r im e u m a m e n s a g e m a p r o p r ia d a . -V e r ific a s e d e v e im p rim ir ”E" o u n ã o , c o m p a r a n d o a d is t â n c ia q u e o m íssil p erc o rr eu co m o n ú m er o e s c o lh id o n a lin h a 30. In fo rm a s e o m ís s il ------------- c a iu a n te s ou d e p o is d o a lv o . ■C h e g a a q u i s e v o c ê p erd eu . -C h eg a a q u i se v o cê la n h o u .
A lis t a g e m a c im a é p a r a o TK-83. P a ra o s o u tro s c o m p u ta d o r e s , f a ç a a s m u d a n ç a s a b a ix o .
• ■ • ■
28 28 38 38
LET LET LET LET
]=INT(RND(l)*í81)-9§ T=INTíRNDí8)*lSl)-98 D=RND( 1) D=RNDÍ8) Problema C o m o v o c ê fa r ia p a r a in c lu ir a p o s s ib ilid a d e d e o s ro b ô s a tir a r e m em v o c ê a n te s d e s u a m u n iç ã o a c a b a r ?
* E s ta d o s U n i d o s d o s R o b ô s
O Castelo do Traidor
10 PRINT " CA ST EL O DO TRAIDOR" 20 LET S=03 0 F O R 0 = 1 T O 1040 LET Rt=" 5 0 L E T T = I N T ( R N D * 9 * 1 )■ 60 70 30 90
FOR L=1 TO 9 IF L =T THE N L ET R $= R í + " 0 " IF L O T T H E N L E T R $ = R t + " . " NEXT L
100 PRINT R $ , ‘ 110 F OR 1=1 TO 12 *128 L E T I $ = I N K E Y $ J 130 IF V A L ( " 0 " + I $ ) = T T HEN G O T O 1 7 0 ~ n 140 NEXT I O Rei está envolvido em uma guerra sangrenta com o seu maior inimigo, o Barão Traidor. Você é um dos arqueiros do Rei e neste exato momento está escondido nos arredores do castelo do Barão, tentando atingir os soldados que se encontram no interior do castelo. O computador imprime uma fila contendo oito pontos e um 0. As teclas de 1 a 9 correspondem à posição do 0 na fila. Você dispõe de pouco tempo para apertar a tecla certa e atingir o 0 antes que ele desapareça. Quantos dos soldados do Barão será caoaz de derrubar?
150 PRINT "ERROU" 160 GOTO 190 170 PRINT "NO ALVO" 130 190 200 210
LET S =S fi ■ N E X T G. PRINT "VOCE ACERTOU "JS?" EM 10"STOP
A listagem acima é para o TK-83. Para os outros computadores, faça as mudanças abaixo.
58 50 110 118 115 120
LET T=INT(RND(0)*9+1> LET T = I N T ( R N D ( 1 )*9+l) F O R 1=1 TO 60 FOR 1=1 TO 90 LET 1$="" IF P E E K ( - 1 6 3 8 4 » 1 2 7 T H E N G E T 1$
Como mudar a velocidade do jogo P a r a m u d a r o te m p o d e q u e v o c ê d is p õ e p a r a a p e r ta r u m a t e c la , b a s t a m u d a r o ú ltim o n ú m e r o d a lin h a 110. Q u a n to m en o r o n ú m e r o , m en o r o te m p o .
Problema M ude o p rogram a p ara q u e p ossam ap arecer
dois tipos de alvos: O (os soldados ordinários
Como o programa funciona
— Inicia a c o n t a g e m de a certo s e m zero
— C o m eço d e u m loo p d e 10 te n ta tiv a s .
— Cria u m a string v a z ia , RS. Escolhe um n ú m ero entre 1 e 9 e gu a rd a e m T. R ep ete e s t e lo op 9 v e z e s , _a c r e s c e n t a n d o d e c a d a v ez um caractere à string RS. O ca ra ctere é 0 para a p o s iç ã o corresp o n d en te a o número q u e e s t á e m T e um ponto para a s outras p o siç õ e s.
— Im prim e a string RS.
— Espera um certo tem p o para ver se v ocê e stá a p e r ta n d o u m a te c la . (Finall do lo op n a lin h a 140.)
— Verifica s e e s t á a p e r ta n d o a tecla certa. Em c a s o afirm ativo, p u la para 170. — C h e g a a q u i s e v o cê a p ertou a tecla errada ou n ã o a p ertou n e n h u m a tecla. Im prim e a m e n s a g e m e p u la para 190. — A u m en ta a su a c o n t a g e m de Volta p ara a lin h a 30 p ara n o va ten ta tiva. — Im prime a c o n ta g e m d e p o is de 10 ten tativas ___ R ep are como''e feita^a c o n t a g e m (lin h a s 20 e 180). V ocê p o d e usar o m es m o m éto d o em outros p ro gra m as.
d o B a rã o ), v a le n d o 1 p o n to , e S (os s o ld a d o s s e le c io n a d o s d o B a r ã o ), v a le n d o 5 p o n to s.
Invasão dos Robôs A Terra está sen d o in v a d id a por robôs de vários tipos. Você dispõe de m uitas arm as, m as c a d a um a só faz efeito contra um certo tipo de robô. Um sím bolo de código, identificando o robô a ta ca n te , a p a r e c e na tela. Aperte im e d ia ta m e n te a tecla com o m esm o sím bolo — em a lg u n s casos é preciso apertar tam bém a tecla SHIFT — e veja quantos robôs c o n s e g u e destruir. C o m o o p ro g ra m a fu n c io n a
10 20 38 ►40 50 ► 60 ►78 ► 80 ► 90 100 110 120 130 140 150 160 170 1S0 190 200 210 220 230 240 250 260
PRINT "INVASAO DOS ROBOS" LET H=0 - - - - - - - - - - - - - - - - FOR T=i TO 25 - - - - - - - - - - FOR 1=1 TO I N T C R N D * 3 0 + 2 0 ) NEXT I L E T f i = I N T ( R N D * 2 0 > ->- - - - L E T D = I N T ( R N D * 1 5 > -I L E T P Í=CHRÍ( I N T ( R . N D * 5 3 + 1 1 )) C L S -- - - - - - - F O R J = 0 TO D PRINT NEXT J P R I N T T A B (A )?P $ - - - - - - - - - - - - - - - F O R 1=1 TO 15 LET R$=INKEYÍ IF R $ = P $ T H E N G O T O 2 1 0 - - - IF R í - O " " T H E N G O T O 1 90 --NEXT I __ PRINT "ERROU" GOTO 230 PRINT "ACERTOU" L E T H=Pi+l _________________________ NEXT T - - - - - - - - - - - - - - - - - - - - - - - . CLS 1 PRINT "DOCE ACERTOU EM 25" STOP
I n ic ia a c o n t a g e m d e a c e r to s - e m zero. - C o m e ç o d e u m loop d e 25 ten tativ as. -E sp e ra v ariáv el. - E s c o lh e u m a p o s iç ã o n a t e la . ■E sc o lh e u m c a r a c t e r e . - L im p a a t e la . F a z o c u rso r d e s c e r , l i n h a -por lin h a, a té c h e g a r à lin h a n ú m e r o D (q u e foi e s c o l h i d a n a l i n h a 70). - F a z o c u rso r se d e s lo c a r A e s p a ç o s e im p r im e o c a r a c t e r e e s c o lh id o n a l i n h a 80. "V erifica se v o c ê e s tá a p e r t a n d o a l g u m a t e c l a e se é a t e c l a c e r ta . Em s e g u i d a , sa lta p a ra a lin h a ap ro p riad a. " A u m e n ta a c o n t a g e m d e 1. -V olta p a r a o u t r a t e n t a t i v a . - I m p r i m e a c o n t a g e m d e p o is d e 25 t e n t a t i v a s .
lA lis t a g e m a c im a é p a r a o TK-83. P a ra |o s o u tro s c o m p u ta d o r e s , f a ç a a s m u d a n ç a s a b a ix o .
48 FOR 1=1 TO IHTÍRNDíi}*3Ü8*ÍíB0> 48 FOR 1=1 TO I N F ( R H D í 8 > * 3 8 8 + 2 8 8 ) 68,/fi gude RN D pare R N D U ) 6 8 , 7 8 «ude RHD par a RNDÍS) SB LE T P $ = C H R t U N T ( R N D ( i ) * 5 I U 3 3 ) ) 38 LE T F $ = C H R $ I I I i T ( R N D ( 8 ) * 5 í+ 3 ò ) ) 38 LET P t = C H R 4 í IJiTíRill)*5S+33->) 90, 2 4 3 H0f!E .48 FOR 1=1 TO 158 .45 R í = a " 158 1F P E E K ( - Í Ã 3 S 4 )> í 27 TH E N GE'! Ri
Como aumentar a velocidade do jogo P a ra torn ar o jo g o m a is r á p id o , s u b s titu a o ú ltim o n ú m e r o d a lin h a 140 por u m núm ero m en or.
Movimento do cursor T a lv e z h a ja u m a m a n e ir a m a is s im p le s d e m o v e r o cu rsor p a r a u m d e te r m in a d o p o n to d a t e la (lin h a s 100-130). C o n s u lte o m a n u a l d o s e u m icro .
E
l
Problema E ste s s ã o o s ro b ô s > m ais p e r ig o s o s .
u
M ecan os
G a lip õ e s
S u c a tin o s
C h a ra n g o sl
M o d ifiq u e o p r o g r a m a p a r a g a n h a r 100 p o n to s p e lo s r o b ô s a c im a e a p e n a s 10 p o n to s p e lo s ou tros.
,Ci,
Arma Secreta Se v o cê con segu ir destruir o d ep ósito subterrâneo de p e ç a s dos robôs, q u e fica em a lg u m lu gar dos EUR, os h u m an os v en cerão a guerra. V ocê d isp õ e de um a arm a secreta qu e é ca p a z de abrir buracos no ch ã o , v ap orizan d o tudo o qu e encon tra. Entretanto, o d ep ósito está m uito bem esco n d id o . Só lh e resta disparar a arm a c e g a m e n te , na e sp e ra n ça de atingir o alv o . O com putador p e d e a v o cê um núm ero d e d ific u ld a d e (o m enor núm ero perm itido é 4) e d ep o is lh e p ergu n ta q u a is sã o as c o o rd en a d a s X e Y do a lv o . (Entre com a s co o rd en a d a s se p a r a d a m e n te , ap ertan d o RETURN, ENTER ou NEWLINE d ep o is de c a d a núm ero.) Para sab er q u a is sã o os valores p o ssív e is de X e Y, |e i a com a ten çã o a lista g e m do program a.
________
18 20 38 48 50
CLS PRINT "ARRA SECRETA" PRINT "DIGA A DIFICULDADE" INPUT D IF D < 4 T H E N G O T O 38
____
P ed e um n ú m ero de d ificu ld ad e, g u a rd a em D e v e r if ic a se n ã o é m e n o r q u e 4.
60 LEI X=INT<RND*D+1> 70 LET Y = I NT (R N D* D+ 1> S0 F O R G=1 TO D + 5 --98 108 110 128
-■
C o m o o p r o g r a m a funciona
E sc o lh e n ú m e r o s p a r a X e Y. C o m e ç o d e u m lo o p q u e lh e d á um nú m ero de ten tativ as q u e d e p e n d e d a d ificu ld ad e e s c o lh id a .
P R I N T - P A L P I T E S P A R A X E Y" I N P U T XI I N P U T Yi LET Z=BQR(ÍX-X1)*(X~X1>+ (Y-Yl)í(Y-Yl))
P ed e seus p alpites e g u a rd a e m X I e Y l. C a lc u la a d istâ n c ia en tre o s e u tiro e o a lv o e g u a r d a a r e s p o s t a e m Z.
1 38 IF Z = 0 T HE N G O T O 288 ” 1 4 8 IF Z < = 3 T H E N P R I N T " P A S S O U P E R T O " 1 5 0 IF Z > 3 T H E N P R I N T " P A S S O U L0NGE'1_ 160 NEXT G 178 180 198 288 218 220
PRINT PRINT STOP PRINT PRINT STOP
■F im d o loop. V olta p a r a outra ten tativ a.
"OS ROBOS VIRAM VOCE" "AHHHHHHHHHHHH..... " "VOCE VENCEU DEPOIS" "DE "IG?" TENTATIVAS •
A .lis ta g e m a c i m a é p a r a o TK-83. P a r a os o u tr o s c o m p u t a d o r e s , í a ç a a s m u d a n ç a s ab aix o .
#10 #60 B60 • 70 B70
HOME LET LET LET LET
C o n s u l t a Z p a r a s a b e r se o tiro p a s s o u p e r to e im p r im e u m a m e n s a g e m . {Se Z é zero, voc ê a c e r t o u n o a lv o .)
X=INTÍRND(1)*D+1) X=INT(RND(B)$D-t-l) y=INT(RND<l)*D+Í> Y=INT(RND(0)*D+1)
- C h e g a a q u i se v o c ê e s g o to u a s te n t a t i v a s .
1
■ C hega a q u i se vo c ê a c e r t o u ^ no a lv o .
I P ro b le m a V eja se c o n s e g u e a c r e s c e n t a r „ s e g u i n t e s is te m a d e c o n ta g e m : 1 p o n to c a d a vez q u e o tiro p a s s a r p e rto . 10 p o n to s c a d a se você a c e r t a r no a lv o .
Fuga Os robôs o capturaram e o trancaram em um a c e la , d ep o is de lhe tom ar tod as a s arm as. De rep en te, v o cê se lem bra de q u e a in d a está com o reló g io de sonar, que p od e ser aju stad o para gerar q u a lq u e freq ü ên cia. Se con segu ir encontrar a freq ü ên cia de r e sso n â n cia dos seu s g u ard as robôs, p oderá destruí-los Você p recisa tom ar cu id a d o para não usar freq ü ên cias m uito b a ix a s, ca so contrário o e d ifício pod erá d esa b a r, soterrando-o. Por outro lad o, se a freq ü ên cia for a lta d e m a is, su a c a b e ç a doerá tanto q u e v o cê terá que desistir. C on segu irá e sca p a r a o s horrores da prisão dos robôs? (Para saber q u a is são os v a lo res de freq ü ên cia Jm^e d e v e esco lh er, le ia com a ten çã o a lista g em do program a. 10 CLS 20 PRINT "FUGA" 30 LET F=INT(RND*100+1> 40 LET L=1 50 LET H=1 60 76 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 230 290 300
FOR G=1 TO 5 PRINT "PALPITE "? INPUT F1 IF ABSÍF-Fl)<5 THEN GOTO 290 IF F—F1>40 THEN GOTO 170---IF F1 - F)•40 THEN GOTO 230 — PRINT "NENHUM EFEITO" NEXT G PRINT "VOCE DEMOROU DEMAIS" PRINT "A FREQUÊNCIA ERA ";F STOP IF L=2 THEN GOTO 210 PRINT "GRAVE DEMAIS.. .CUIDADO" LET L=2 GOTO 130 PRINT "O EDIFÍCIO DESABOU" STOP IF H=2 THEN GOTO 270 PRINT "AGUDO DEMAIS...AI" LET H=2 GOTO 130 PRINT "SUA CABECA DOI. . .DESISTA" STOP PRINT "VOCE CONSEGUIU" STOP
A listagem acima é para o TK-83. Para os outros computadores, faça as mudanças abaixo. • 1 0 HOME • 3 0 LET F=INT(RND(1)*100+1) ■3ü LET F=INT(RND(0)*Í00+1>
Como o programa funciona Escolhe um n ú m ero entre 1 e 100 para ■a freq ü ên cia dos robôs e g u a r d a e m F. G u ard a 1 e m L e H. E ssas v a r iá v e is sã o u s a d a s q u a n d o v o c ê e s c o l h e u m a freq ü ên cia m uito a lta ou muito b a ix a - veja lin h a s 170 a 190 e 230 a 250. -C o m e ç o d e um loop d e 5 ten ta tiv a s . ■P e d e a v o c ê um p a lp ite e g u a r d a e m F l. Verifica se se u p a lp ite está muito proxim o d e F. S e está , p u la p a ra 290 para imprimir VOCÊ CONSEGUIU. -P u la para 170 se o s e u p a lp ite está m a is de 40 a b a ix o d e F. Pula para 230 se o s e u p a lp ite está m a is d e 40 a c im a d e F. C h e g a a q u i se o se u p a lp ite está r a z o a v e l m e n t e próxim o d e F e volta para outra te n ta tiv a . S e a s te n ta tiv a s a c a b a r a m , im p rim e a freq ü ên cia correta. ' Verifica o valor d e L. Na prim eira vez q u e o p ro g ra m a c h e g a aq u i, L é 1. O co m p u tad o r im p rim e u m a a d v e r tê n c ia , faz L ig u a l a 2 e volta para outra te n ta tiv a . Na vez s e g u i n t e , o p rog ra m a p u la direto para 210 e jj informa q u e v o c ê p erd eu . -V erifica o valor d e H. Na prim eira vez, a d v e r te q u e a fr e q ü ê n c ia está a lta d e m a is; n a s e g u n d a , inform a q u e v o c ê p erd eu .
Problema Cada um dos três guardas robôs tem uma freqüência de ressonância diferente. Você só pode escapar depois de destruir os três. Mude o programa que ele funcione desta forma.
Como tornar o jogo mais difícil M u d e o 5 n a l i n h a 90 p a r a u m n u m e r o m e n o r. Isto s ig n if ic a q u e você terá q u e ch eg ar m a i s p e r to d e F p a r a g a n h a r . Você t a m b é m p o d e a u m e n t a r a f a ix a de v a lo r e s p o s s ív e is d e F m u d a n d o o 100 d a l i n h a 30 p a r a u m n ú m e r o m a io r.
Avião Pirata E v o c ê contra o Pirata N egro. Ele se a d ia n ta , v o c ê a c e le r a ; e le fica para trás, v o c ê freia. V ocê d e v e em p a relh a r com e le e atirar, torcendo p ara q u e e le n ã o d isp a re prim eiro. U se a s te c la s A p ara a celera r, D p ara frear e F p ara atirar. O com putador lh e dirá q u a l a su a p o siçã o e v e lo c id a d e em r e la ç ã o ao p irata. C u id ad o para n ã o d eixar o pirata se afastar d e m a is d e vo cê.
Como o programa funcio 10 CLS 20 PRINT "AVIAD PIRATA" 30 LET V=INT(RND*ll-5>40 LET 5=-INT(RND*3+l>-
50 160 70 80 90 100 110 120 130 140
IF ABS(3)>20 THEN GOTO 230 ------CLS PRINT "VOCE ESTA "f IF S<0 THEN PRINT "ATRAS" IF S>0 THEN PRINT "A FRENTE" IF S=0 THEN PRINT "JUNTO" PRINT "SUA VELOCIDADE E “ í IF V>0 THEN PRINT "RAIOR" IF V<0 THEN PRINT "flENOR" IF V=0 THEN PRINT "IGUAL" —
150 168 170 180
LET I*=INKEY* 3F I$="A" THEN LET V=V+1 IF I*="D" THEN LET V=V-1 IF I$="F" AND 8=0 THEN GOTO 250
E scolh e um n ú m ero entre -5 e + para su a v e lo c i d a d e e m r e la ç ã o pirata e g u a r d a e m V. Escolhe um n ú m ero p a ra su a d is tâ n c ia do pirata e g u a r d a No in ício o n úm ero é portanto v o c ê e stá atrás
Verifica s e a d is tâ n c ia entre v o c ê s é maior q u e 20. Em c a s o afirm ativo, p u la p a ra 230 para informar q u e v o cê o p erd eu de vista.
Verifica os v a lo r e s d e S e V e im p rim e su a p o siç ã o e v e lo c i d a d e em r e la ç ã o ao pirata. Verifica q u a l a te c la q u e v o c ê está a p e r ta n d o . Se é A, a u m e n t a sua v e lo c i d a d e de 1. S e é D, d im in u i su a v e lo c i d a d e de 1. S e é F e se S = 0 (isto é, s e v o c ê e sta e m p a r e l h a d o com o pirata), p u la para 250. (Se S n ão é zero e v o c ê a p erta F, n a d a a c o n te c e .)
-Loop de e s p e r a .
r
200 210 220 230 248 250 260 270 230 290 300 310 320 338
-Volta a 50 p a ra repetir.
FOR. 1= 1 TO 2B ' NEXT I GOTO 5 0 ---------------------------------------PRINT "DOCE O PERDEU DE DISTA" GOTO 330 IF ABS( V><2 THEN GOTO 2 9 0 -------PRINT "DOCE SO CONSEGUIU" “ PRINT "ASSUSTA-L.O" GOTO 40 IF RND>.7 THEN GOTO 3 2 0 -----PRINT "DOCE O ABATEU" GOTO 330 PRINT "ELE ATIROU PRIP1EIRO" STOP
C h e g a a q u i s e v o c ê atirou e e s t a v a e m p a r e l h a d o com o pirata. Verifica se _a v e lo c i d a d e é m en or q u e 2 (ign o ran d o o sin a l). Em ca so afirm ativo, p u la para 290. Im prim e u m a m e n s a g e m se a - v e l o c i d a d e era maior q u e 2 q u a n d o v o c ê d isp arou . Volta a 40 para reco m eça r com um n ov o valor d e S. -S o rteia p a ra ver se v o c ê atirou a n te s do pirata. -Im p rim e u m a m e n s a g e m a d e q u a d a , d e acord o com o r esu ltad o do sorteio d a lin h a 290.
A listagem acim a é para o TK-83. Para os outros computadores, faça as mudanças abaixo. 18,68 HQ«E
38 38 48 48
LET LET LET LET
V=INT(RND(l)*li-5) l/=lHT(RNDíBÍ*lí-5) S=-I1IT(RHD ü ) í 3+I) S=-lNT(RNDí8)i3tl)
145 158 288 2?B 298
Ií="“ 1F PEEKÍ-Í63S4)>Í27 THEN 6ET TI FOR 1=1 TO 288 IF RND(0)>,7 THEN GOTO 328 IF RND(1)>.7 THEN GOTO 328
C o m o to rn ar o jo g o m a is fácil
Este jogo é bastante difícil. Para torná-lo um pouco mais fácil, acrescente as linhas abaixo. Assim você poderá ver na tela a posição relativa dos dois aviões.
195 IF A8S(S)>18 THEN GOTO 288 196 PRINT TA8í»/2)í“ELE” 197 PRINT TA8(S+ k /2)í"VOCE" Substitua w pela largura da tela.
P ro b le m a
O sorteio da linha 290 é favorável a você. Sabe como mudá-lo para que você e o pirata tenham a mesma probabilidade de vencer?
Bombardeiro Supersônico
!
V ocê está sob revoan d o os EUR em um a m issão d e b om b ard eio. O com putador d e bordo m ostra um gráfico d a p o p u la ç ã o d e robôs n as v á ria s c id a d e s, b a se a d o em fotografias tirad as por s a té lite s . V ocê só tem tem po d e atacar um a lv o em c a d a cin co, de m odo qu e d e v e esco lh er ra p id a m en te a c id a d e qu e tem a m aior p o p u la ç ã o d e robôs e lan çar sobre e la um a d a s su a s bom b as d e "Corrodapalm ". (Essas b om b as con têm um a su b stâ n c ia tão corrosiva q u e p o d e d issolver o corpo d e um robô em q u estã o de seg u n d o s.) Para la n ça r um a b om b a, ap erte a te c la com o núm ero q u e está ao lad o d a c id a d e com m aior p o p u la ç ã o de robôs. No ca so de d u as p o p u la ç õ e s ig u a is , e s c o lh a o núm ero m enor. C on segu irá voltar à b a s e com o herói?
Es t a i n s t r u ç ã o d e f i n e B c o m o u m a variavel indexada, que pode guardar cinco n ú m er o s diferentes, i d e n t i f i c a d o s c o m o B(l), Bi2), B(3), B(4) B(5).
PR1HT "BOHBAROEIRD aUPERBüNICü" <8 DIB 8(5) - - - - - - - - - - - - - - -
40 LEI S-8
I ni ci a a c o n t a g e m d o s a c e r t o s e m zerc.
58 FOR G=18 TO i STEP -i
C o m e ç a u m l oop d e 10 t e n t a t i v a s . O l oop v a r i a a o c o n t r a r i o do m a l (G = 10 d a p r i m e i r a vez, 9 d a u n d a vez, etc.) C o m isso. o loop e s p e r a d a l i n h a 190 r e s e r v a m a i s tem p o p a r a as p ri mei ra s tentativas.
éfi LET ft=l
---------
Coloca a mai or p o p u l a ç ã o em 1 p a r a começar.
*88 LEI 8(!)=INfÍR.NDíie+l) 98 IF JU)>B(fl) THEN LET H=í ►iití 120 130 148
Es c o l h e 5 n ú m e r o s e g u a r d a e m B(l( a B(5). Verif ica q u a l e o m a i o r e m u d a M p a r a o valor a pr o p r ia do .
ÜLS FOR 1=1 TO 5 PRIMT Íí FOR J=1 TO 8 U )
I m p r i m e os 5 n ú m e r o s n a t e l a n a f o r m a d e fi las d e a s t er i s c o s .
150 PRIMT “H";
168 «EXT J 178 PRIMT 188 HEXT I ►28R 210 228 ,238 '248
LET I^INKETÍ ÍF ISO:"" THEN GOTO 278 ------HEXT I — PRINT "TARDE DEflAIS" — FOR J=1 TO 18 ---258 HEXT J 268 BOTO 288 — | | IF THEH LET S=S+1 ... ~
298 380 3i0 328 338
PRINT “VOCE ACERTOU “IS;" EH 18" PRINT "ALVOS PREFERENCIAIS" IF 3-18 THEN PRINT "VOCE E ÜH HERÓI" IF S<19 THEN PRINT “PENA...VOCE FRACASSOU" STfiP
Veri f i ca se vo c ê e s t á a p e r t a n d o u m a tecla: em caso afirmativo, vai p a r a 270. Se v o c ê n ã o a p e r t a r n e n h u m a t e c l a a - t e m p o , i m p r i m e TARDE DEMAIS e vol t a p a r a o u t r a t e n t a t i v a . —Verif ica se v o c ê a p e r t o u a t e c l a c e r t a; e m c a s o a f i r ma t i v o , a u m e n t a a c o n t a g e m d e 1. - V o lt a p a r a outra tentativa, —I m p r i m e a c o n t a g e m d e p o i s d e 10 tentativas.
A listagem acima é para o TK-83. Para os outros computadores, faça as mudanças abaixo.
• 18,118 H0»E • 88 LET B(I)=INT(RNBÍ1)*10+1) ■ 88 LET B(I)=IHT(RND(8)*18+1) 196 FOR 1=1 TO 0*38 C o m o mudar a velocidade do jogo
Para ter mais tempo para apertar uma tecla, troque o último número da linha 190 para um maior. Quando tiver mais prática, diminua o número da linha 190. ■ Verifique até onde consegue chegar.
« 1 9 5 ü = ' ,n • 2 8 0 IF PEEK(-163S4)>127 THEN SET ■ • 2 4 8 FOR J=1 TO 488
Problema
Você sabe como mudar o programa para aumentar o número de alvos?
"Iceberg" Seu navio está muito avariado e a munição acabou. Quando está voltando lentam ente para casa, navegando em águas traiçoeiras, coalhadas de icebergs, você descobre que está sendo seguido por um navio inimigo. Curiosamente, ele pode detectá-lo, mas não aos icebergs; assim, você deve fazer tudo para que se choque com um deles. O computador mostra a posição do seu navio (Y), do inimigo (Z) e dos icebergs (*). Você pode andar um espaço para o norte, sul, leste ou oeste de cada vez. O inimigo sempre se dirige para você pelo caminho mais curto (ele também pode se mover em diagonal). Se você ficar em uma das 8 posições em volta do inimigo, será capturado; se bater em um iceberg, afundará. Conseguirá escapar e voltar para casa?
lÉÉP \
''mfm
1
j
Como o programa funciona 18 PRINT "ICEBERG0 28 DIR S ( M ) - - •38 LET N=ÍNTiRND*8+4)
48 FOR 1=1 IO N 5B LET B(INT(RHDc8+i),IHT(RND»A+1))=23 68 NEXT I 78 80 98 188 118 128 138 148 158 168 178 138 198 288 218 228 238 248 258
LEI SX=IHT(RHD*S+Í) LET SY=INT(RND*3+1) IF BíB X, SY ) OB THEN 6010 78 LEI 8(SÜ,SY)=43 LET YX=INTÍRND*Ê+i) LET YY=INT(RND*â*-I> IF B (YX,YY><>B THEN GOTO 110 LET 9ÍYÍ,YY)=é2 CLS FOR Y=1 TO 8 FOR X=1 TO 8 IF 805,15=8 THEN GOTO 218 PRINT CHR$Í8(X,Y5); GOTO 228 PRINT V ; PRINT “ u; NEXT X PRINT NEXT Y
■B é u m a v a r iá v e l in d e x a d a com d im e n sõ e s 8 por 8.
N é o n ú m ero d e ic e b e r g s , q u e v a ria d e 4 a 11, d e p e n d e n d o do v a lo r de RND.
23 é o c ó d ig o p a ra o a ste r isc o no ■TK-83, O co m p u ta d o r r e p e te o lo o p N v e z e s , c o lo c a n d o a ste r isc o s em p o n to s a le a tó r io s do m a p a . •C o lo c a o n a v io do in im ig o no m a p a p ara c o m eça r o jogo. 63 é o c ó d ig o p a ra a letra Z no TK-83. A lin h a 90 v er ific a se e x is te um ic e b e r g na p o siç ã o e sc o lh id a ; e m c a so a firm a tiv o , e s c o lh e outra p o siç ã o . C o lo ca o se u n a v io no m a p a . 62 é o c ó d ig o p a ra a letra Y no TK-83.
Im prim e o m a p a com a s p o siç o e s co rren tes d os n a v io s e ic e b e r g s .
Problema V ocê sa b e com o au m en tar o ta m a n h o do m apa? V eja se c o n se g u e tam b ém au m en tar o núm ero de
iceb erg s.
V,
268 LET B(YX,YY)=B 278 238 298 388 318 328 ▲ ■ • 338
PRINT “DIRECrtO <N,S,L,0) INPUT 0$ LEI YY=YY+<D$=HSU ANO YVOS)— I LEI YY=YY-(D$=‘W ANO YYOl) LET YX=YX+(D$=HLMAND YXOÍ) LEI YX=YX-(DÍ=“0" ANO YXOi)__I IF B(YX,YY)=63 THEN GOTO 588 a B*348 IF 8(YX, YY)=23 THEN GOTO 688
3
• 358 LET B(YX,YY)=62 L 360 LET 8(SX,SY)=8 —T 37i 3 388 ■•398 IF fi(SX,SY)=6’ THEN GOTO 588—1__ _ ‘ 788_J^IF 8(SX, SY)=23 ~ THEN GOTO ▲■•418 LET B(SX,SY)=63
i m rnm h
428 588 518 688 618 788 718 888
GOTO 158PRINT "VOCE FOI APANHADO1' GOTO 888 PRINT "VOCE BATEU NUA ICEBERG" GOTO 888 PRINT "DOCE ESTA SALVO" PRINT “ELE BATEU NUA ICEBERG" STOP
A lista g e m a c im a é para o TK-83. Para os outros com p u tad ores, fa ça a s m u d a n ça s a b a ix o . • 30,58,70,88,118,12b «ude RND para RND(l) ■38,58,78,38,118,128 «ude RND para RND18) ▲■•58,348,488 «ude 23 para 42 ▲ ■ • 188,338,418 «ude 63 para 98 ▲■•148,358,398 «ude 62 para 89 158 HOAE r 290 LET YY=ÍY-ÍD$=“S" AND YY<>8) 388 LET YY-YY+(D$=HN“ AND YYOl) 318 LET YX-YX-(0$=“L" AND YXOS) 328 LET YX=YXt(Dí=“0“ AND YXOI)
A p a g a s u a p o siç ã o corrente do m a p a p a ra q u e v o c é p o s s a e sp e c ific a r u m a n o v a p o siçã o . G u a rd a su a d ir e ç ã o e m DS. C a lc u la su a n o v a p o s iç ã o , to m a n d o c u id a d o para q u e n ã o c a i a fora do mapa. Verifica su a n o v a p o s i ç ã o para ver s e | v o c ê co lid iu com o n a v io in im ig o ou com um i c e b e r g . Em c a s o afirm ativo, p u la p a ra imprimir u m a m e n s a g e m a p rop riad a. C o lo c a o s ím b o lo do s e u n a v io na n o v a p o siç ã o . C a lc u la a n o v a p o s i ç ã o do n a v io in im ig o . Verifica a n o v a p o s iç ã o do n av io in im ig o para ver se ca p tu rou v o c ê ou | c o lid iu com um i c e b e r g . Em c a so afirm ativo , p u la para imprimir u m a m e n s a g e m a p rop riad a. ■C o lo ca o s ím b o lo do n a v io in im ig o n a | n o v a p o siçã o . Volta a 150 p a ra co m e ç a r u m a n o v a jo g a d a .
Os com putadores podem
verificar se u m a expressão é v e rd a d e ira ou falsa. Se é f a l s a . eles. d ã o o v a l o r 0. S e é verdadeira, alg u n s c o m p u tad o res d ã o o valor + 1 , ' o u t r o s -1. Po r isso , a s l i n h a s 290-320 t ê m q u e s e r m u d a d a s e m a l g u n s m icros.
O Muro do Bruxo O muro que o Bruxo construiu em volta de seu castelo n ão é um muro com um . E leito de p e sso a s, p a r a lis a d a s p elo olhar do Bruxo, e a lé m disso pode se mover para a frente e para trás. Se voce conseguir abrir um buraco n e le com o a u x ílio de sua fiel catap u lta, c a p a z de arrem essar pedras g ig a n te s c a s , anulará os poderes m á g ic o s do Bruxo e devolverá à vida os prisioneiros. Entretanto, isto não é tão fácil com o parece; o Bruxo e stá trab alhan do em um feitiço c a p az de rebater os tiros de volta e às v e z e s é c a p a z de fazê-lo funcionar... Se você fracassar, tam bém p assará a fazer parte do muro do Bruxo!
10 20 30 40 50 60 78 80 90 100 110 120 130 140 150 160 170 ISO 190 200 210 220 230 240 250 260 270 230 290
CL3 PRINT "MURO DO BRUXO" PRINT PRINT "QUER INSTRUÇÕES?" INPUT 1$ IF I$(1)="S" THEN GOSUB 740 PRINT "DIFICULDADE?" PRINT "<5=FACIL, 1=DIFICIL)" INPUT Q DIM W (3,8) DIM E (3> FOR Y = 1 TO 3 FOR X=1 TO 4 LET W (X ,Y )=20 NEXT X NEXT Y LET 2=0 FOR C=1 TO 3 LET D = I N T ( R N D * 3 0 + 2 1 > GOSUB 430 IF Z=1 THEN GOTO 1150 PRINT "DOCE ESTA A "?D;" METROS DE DISTANCIA" LET W = I N T < R N D * 4 1 >-20 IF W=0 THEN PRINT "SEM VENTO" IF W<0 THEN PRINT "VENTO PARA A DIREITA" IF W>0 THEN PRINT "VENTO PARA A ESQUERDA" PRINT "DIGA A ELEVACAO (1-90)" INPUT A PRINT "DIGA A VELOCIDADE"
•
mj !J. mm1 WUri IS M » m : T f tá ê m
!
300 310 320 330 340 350 360 ■•370 380 390 400 410 420 ■ • 430 440 • 450 460 470 480 ■•490 500 510 520 530 540 550 5ó0 ■ • 570 ■•580 590 Ó00 ■ • 610 620 630 640 650 660 670 680 690 700 710
‘
•
WÊfi ■
•
l|f ■ru™
BM I
INPUT V LET A = A / 1 8 0 * 3 . 1416 LET 'H=T AN <A) *< D- W)- <5 *(D-W)**2)/<V*C 0S<A>>**2 LET H = I N T (H / Q ) IF H>0 AND H<9 THEN GOSUB 540 IF H <1 THEN PRINT "TIRO CAIU ANTES" IF H<8 THEN PRINT "TIRO CAIU DEPOIS" IF R N D > .2 THEN GOTO 200 PRINT "O MURO SE MEXEU..-. " NEXT C PRINT "UOCE FOI TRANSFORMADO" PRINT "EM PEDRA" STOP SUBSTITUA ** HA LINHA 320 FOR 1 = 1 TO 30 POR A PARA 0 APPLE E NEXT I POR * PARA 0 TRS-80 E CLS PARA 0 TK-S5 PRINT FOR Y=8 TO 1 STEP -1 FOR X = 1 TO 8 PRINT C H R f ( W < X , Y ) ) í NEXT X PRINT NEXT Y RETLIRN GOSUB 650 LET W(E<H)-1,H)=0 IF V * C Ü S (A )>50 THEN LET W (E (H )-2,H )=0 IF R N D >.5 AMD H O 1 THEN LET W<E<1),1)=29 IF R N D > .5 AND H>5 AND H<8 THEN LET W(E <H + l)-l,H + 1)=0 IF H > 1 THEN GOTO Ó30 FOR Y=2 TO 8 IF R N D < .5 THEN LET U <E <Y )-1,Y >=0 NEXT Y GOSUB 650 RETURN FOR Y = 1 TO 8 LET X = 1 IF W íX ,Y )= 0 OR X = S THEN GOTO 700 LET X = X +1 GOTO 670 LET E (Y )= X IF X=1 THEN LET Z=1
O Muro do Bruxo (continuação) 720 73 0 74 0 75 0 76 0 770 73 0 790 300 310 320 330 340 350 330 370 330 390 900 91 0 92 0 93 0 94 0 950 960 97 0 93 0 99 0 10 0 0 10 1 0 10 2 0 10 3 0 1040 1050 106 0 10 7 0 10 3 0 10 9 0
NEXT Y REfURN PRINT "VQCE ESTA ATACANDO 0" PRINT "ULTIMO REDUTO DE UM" PRINT "BRUXO FAMOSO, QUE" PRINT "ESTA ESCONDIDO ATRAS" PRINT "DE UM MURO DE PEDRA." PRINT "CADA PEDRA E UMA" PRINT " V I T I M A DO BRUXO." PRINT "SO VOCE PODE ATACAR" PRINT "E LIBERTÁ-LOS" PRINT "DA MAGIA DO BRUXO." PRINT "VOCE DEVE DESTRUIR A" PRINT "PAREDE USANDO CATAPULTAS," PRINT "MAS CUIDADO, 0 BRUXO" PRINT "PODE MOVER 0 MURO" PRINT "PARA A FRENTE E PARA" GOSUB 11 1 0 PRINT "TRAS, E UMA VEZ OU OUTRA" PRINT "REBATER SEUS TIROS" PRINT "DE V O L T A . " PRINT "DEPOIS DE CADA T I R O , DOCE" PRINT "VE UMA PLANTA D O MURO" PRINT "MOSTRANDO OS DANOS" PRINT "QUE JA CONSEGUIU" PRINT "CAUSAR." PRINT "REPARE QUE HA CERTAS" PRINT "PEDRAS QUE PRODUZEM" PRINT "MAIS DANOS, E TAMBÉM QUE," PRINT "QUANTO MAIS DEPRESSA 0" PRINT "PROJÉTIL ESTIVER SE" PRINT "MOVENDO HORIZONTALMENTE," PRINT "MAIS DANOS VAI CAUSAR." GOSUB 11 1 0 PRINT "VOCE SERA CAPAZ DE" PRINT "DERROTAR 0 BRUXO A TEMPO" PRINT "DE SALVAR OS MILHARES" PRINT "DE PR IS IO NE IR OS ?"
1100 RETURN 1110 PRINT "APERTE UMA TECLA " í • 1120 I F IN K E Y $ = “ " THEN GOTO 11 2 0 • 11 3 0 c i ç 114 0 RETURN 11 5 0 PRINT " VOCE CONSEGUIU ABRIR 11Ó0 PRINT "UM BURACO NO MURO" 1 1 7 0 PRINT "DO BRUXO. VOCE" 118 0 PRINT "LIBERTOU TODAS" 119 0 PRINT "AS V I T I M A S . " 1200 STOP A lis ta g e m a c im a é para o TK-83. Para os outros com p utad ores, faça a s m u d a n ç a s a b a ix o .
■ t o d o s os RND p a r a RND(0) • t o d o s os RND p a r a R N D ( l ) • 1 0 , 4 5 0 , 1 1 3 0 HOME ■ • 60 I F L E F T $ ( 1 $ , 1 ) = " S " THEN GOSUB 74 0 ■ • 140 LET W( X , Y ) =29 ■ • 4 3 0 FOR 1 = 1 TO 2 0 0 ■ • 49 0 PRINT CHR$<U <X , Y ) + 3 2 ) ? • 1 1 2 0 GET 1$
liÉ S ife S
Como tornar o jogo mais difícil Você pode aumentar a espessura do muro mudando as seguintes linhas: Linha 100: troque o primeiro número por um número maior, 10, por exemplo. Linha 130: subtraia 4 do número que usou na linha 100 e coloque o resultado no final da linha 130. Linha 480: troque o último número para o mesmo número que usou na linha 100. Se você tornar o muro muito mais grosso, precisará de mais tempo para perfurá-lo. Assim, é melhor trocar o último número da linha 180 por um número maior
.tffv.»-9m
Míssil! Este jogo é d iferen te dos an teriores, p ois u tiliza instruções g rá fica s. Com o e s s a s instruções variam m uito d e m icro para m icro, a p resen ta m o s um a lista g e m se p a r a d a para c a d a m o d elo . Leia a d escriçã o do jogo n e sta p á g in a e procure n as t p á g in a s s e g u in té s a versão » aprop riad a ao se u com putador.
I
Como jogar Míssil! V ocê d isp õ e d e três b a se s, ca d a u m a c a p a z d e lan çar um m íssil. Ao ver um a v iã o se ap roxim an d o, v o cê d e v e estim ar a su a a ltitu d e e v e lo c id a d e e lan çar os m ísse is contra e le . Para lan çar um m íssil, b asta apertar u m a te c la qu alq u er. Prim eiro é la n ç a d o o m íssil da e sq u erd a , d e p o is o do centro e d ep o is o da direita. Veja q u an tos a v iõ e s in im ig o s v o c ê c o n s e g u e derrubar.
Míssil!: Versão TRS-80 10 20 30 40 50 60 70 80 90 100
CLS DIM Y < 3 ) , F <3 > N=1 PS=IN T<RND <0)*3+1) P=INT(RN D<0)*3ó+5) GOSUB 4 0 0 FOR I= P S TO 100 STEP PS GOSUB 30 0 F$=INK EY$ I F F $ = " " OR N>3 THEN 130
320 400 410 420 430 440
110 120 130 140 150 160 170 180 190 200 210 220 230 240 300 310
F ( N )=1 N=N+1 FOR > 1 TO 3 RESET( 3 2 * 0 , 4 ó - Y ( 0 ) ) I F F ( 0 ) = 0 OR Y ( 0 ) > 4 5 THEN 190 Y (0)=Y (0)+1 I F P 0 I N T ( 3 2 * 0 , 4 ó - Y ( 0 ) ) THEN 23 0 SET ( 3 2 * 0 , 4 6 - Y ( 0 ) ) NEXT NEXT PRINT 0 0 , "ERROU" END PRINT 0 0 , " IM P A C T O ! ! ! " END RESET < I - P S , P > : RESE1 ( I - P S + 1 , P ) SET ( I , P ) : SET < 1 + 1 , P)
RETURN FOR 0=1 TO 3 SET < 0 * 3 2 , 4 7 ) SET ( 0 * 3 2 + 1 , 4 7 ) NEXT RETURN»
10 20 30 48 50 60 70 80 90 100 110 120 130 140 150 160 170
HUÍÍE HGR HCOL0R=3 DIM Y < 3 ) , F ( 3 ) N=1 : MS = 5 PS=INT(RND<1 >*ó+4) P=INT(RND<1 ) * 1 3 5 + 1 1 ) GOSUB 40 0 FOR I = P S TO 2 6 5 STEP PS X = I - P S : Y = 1 5 9 - P : C=0 : GOSUB 30 0 x = i : c= 3 : g o s u b 300 F f = " " : I F PEEK<- 1 6 3 8 4 > > 1 2 7 THEN GET F$ I F F$ = " ” OR N>3 THEN 160 F ( N )=1 N=N + 1 FOR J=1 TO 3 C=0 : GOSUB 35 0
180 IF F (J )=0 OR Y (J >>145 THEN 230 190 200 210 220 230 240 250 260 270 280 300 310 < |> 3 2 0 330 340 350 360 370 400 410 420 43 0
Y<J)=Y(J)+M S C= 3 : GOSUB 3 5 0 ° X = J * 7 0 -I : Y=P-Y(J) I F X> —1 AND XC15 AND Y > - 9 AND Y<5 THEN 27 0 NEXT NEXT VTAB 22 : PRINT "ERROU" END UTAB 22 : PRINT "IMPACTO! ! ! " END HCOLOR=C HPLOT X , Y TO X , Y - 3 HPLOT TO X + 3 , Y - 2 : HPLOT TO X + 1 2 , Y - 2 HPLOT TO X + 1 4 , Y : HPLOT TO X , Y RETURN HCOLOR=C HPLOT 7 0 * J , 1 5 8 - Y ( J ) TO 7 0 * J , 1 5 4 - Y ( J ) RETURN FOR J=1 TO 3 HPLOT 7 0 * J ~ 5 , 1 5 9 TO 7 0 * J + 5 , 1 5 9 NEXT RETURN
Míssil!: Versão TK 85 10 15 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 ISO 190 2ü0 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450
460 470 480 490 500
FOR J=1 TO 3 PRINT AT 2 1 ,8*J;"CAB3" NEXT J RETURN DATA 8,0,0,0,255,255, 127,63 510 DATA 0,252,252,252, 255,255,254,252
CLS INVERSE 0 DIN Y (3) D IN F(3) LET N=1 LET Í1S=8 LET PS=INT(RND*6+5) LET P = I N T ( R N D * 140+20) GOSUB 400 FOR 1=PS TO 240 STEP PS LEá^C=l : LET X=I-PS GOSUB 308 LET C~0 : LET X=I GOSUB 300 LET F$=INKEY$ IF F$ = "" OR N :>3 THEN GOTO 170 LET F (N )=1 : LET N=N + 1 FOR J=1 TO 3 LET C=1 : GOSUB 350 IF F <J )=0 OR Y (J )>148 THEN GOTO 240 LET Y(J)=Y<J)+ivlS LET C=0 : GOSUB 350 LET X=J*Ó4-I : LET Y=P-Y(J) IF X>— 1 AND X <12 AND Y<10 AND Y>-5 THEN GOTO 28 NEXT J NEXT I PRINT AT 0 , 0 ; "ERROU" STOP PRINT AT’ 0,0; "IMPACTO ! ! !" STOP INVERSE C PLOT X,P DRAW 0,8 : DRAW 3,-6 DRAW 8,0 : DRAW 2,-2 DRAW -13,0 : RETURN INVERSE C PLOT 6 4 * J + 4 ,Y (J >+4 DRAW 0,6 : DRAW -2,-2 DRAW 2,2 : DRAW 2,-2 RETURN FOR A=65 TO 66 FOR B=0 TO 7 READ C POKE USR CHR$(A)+B,C NEXT B NEXT A
10 20 30 40 50 60 70 30 90 100 110 120 130
CLS DIM Y ( 3 ) DIM F <3) LET N=1 LET P = I N T < R N D * 1 9 + 2 > * 2 FOR 1=1 TO 4S PLOT I , P PLOT I + 1 , P UNPLOT I - 1 , P LET B$=INKEY$ I F B $ = " " OR N>3 THEN GOTO 140 LET F ( N )=1 LET N=N + 1
140 150 160 170 130 190 200
FOR J=1 TO 3 I F F ( J ) = 0 THEN GOTO 190 UNPLOT J * 1 Ó , Y < J > I F Y <J ) = 4 2 THEN GOTO 2 1 0 LET Y <J ) = Y ( J ) + 1 PLOT J * 1 Ó , Y < J ) I F P = Y ( J ) AND < J * 1 Ó = I OR J * 1 Ó = I + 1 > THEN GOTO 260 NEXT J NEXT I CLS • PRINT "ERROU" STOP CLS PRINT "IMPACTO" STOP
210 220 230 240 250 260 270 280
N o t a p a r a o s u s u. a r i a s d a T K - 8 5 s Os caractares grafi cos sao indi cados na listagem de acordo com a seguinte convencaos um caractere C sigrúfica ■a p e r t. e a t e c 1 a. G R A P H I C S e depo is escreva as letras ou numeras s eguin tes com a tecla SHIFT apertada ate chegar a um 1'. Então aperte de novo a tecl a G R A P H I C S , v o 1 1 a n d o a o rn o do
n o rm a l.
é
Algumas sugestões A qui e stã o a lg u m a s id é ia s qu e v o cê p od erá usar nos p rogram as d e ste livro ou em se u s próprios program as. Ao incluir n o v a s in struções em um program a já pronto, v o cê tem d u as opções: utilizar a p e n a s lin h a s v a g a s ou num erar d e novo todo o p rogram a. No se g u n d o c a so , não se e s q u e ç a d e m udar tod as a s in struções GOTO e GOSUB.
Faça o computador explicar como se joga V ocê p o d e fazer com q u e o c o m p u ta d o r im prim a in stru ç õ e s so b re o jogo. P ara isso, basta a c re s c e n ta r alg u m as l i r 1'130 no início do p ro g ra m a , com o no exem plo ab aix o , e c o lo c a r um a su b -ro tin a no final.
Faça o computador parar e esperar por você Se h o u v er m uitas lin h as d e in stru çõ es, talvez você p re c ise in clu ir a sub -ro tin a ab aix o , q u e faz com q u e o co m p u ta d o r p a re d e e x e c u ta r o p ro g ra m a até você a p e rta r um a tecla. Assim , ev itará que as in stru çõ es d e sa p a re ç a m na p a rte su p e rio r d a tela an tes q u e ten h a tem po d e lê-las. C o lo q u e um a linha G O SU B no ponto em q u e d eseja q u e o p ro g ra m a p a re e a c re sc e n te no final a seg u in te sub-rotina:
1888 1818 118.1328 • 1828 1838 1640
PRINT “APERTE ÜAA TECLA" PRINT “PARA CONTINUAR" IF 1NKEYí= ”11 THEX GOTO 1828 GET U PRINT RETURN
Faça o computador 'conversar
18 ií 12 15 TKÍ7 I# 1
PRÍNT "N0«E CÜ JOGO" PRINT "VOCE QUFR SABER11 PRINT "COftO JOGAR?" INPUT 1$ 1F HÍS)="S" THEN GOSUB 1088 IF LEfT$i li, 1 '-"3" IHEN 60SÜB 1888
O p ro g ra m a p rin c ip a l e n tra aq u i
1888 PR1N1 ‘'VOCE TEU SüE FAZER11 1818 PRÍNT “0 SEGUINTE : .....“ 1??? RETURN
V ocê p o d e u sa r q u a n ta s linhas q u ise r p a ra as in stru çõ es. Não se e s q u e ç a de c o lo c a r um n ú m ero e a p a la v ra PRINT no início d e c a d a lin h a. O n ú m ero de c a ra c te re s e n tre asp as d ev e ser m en o r ou ig u a l ao n ú m ero d e c a ra c te re s q u e o seu co m p u ta d o r p o d e im p rim ir em um a linha. Não se e s q u e ç a tam bém de c o lo c a r um a lin h a RETURN no final da su b-rotin a.
V ocê p o d e p ro g ra m a r o co m p u ta d o r p a ra fazer p e rg u n ta s e a g ir d e a c o rd o com as suas resp o stas. A qui está, p o r ex em plo, um p e q u e n o p ro g ra m a q u e faz com q u e o co m p u ta d o r se re c u se a jo g ar, a m enos q u e seu nom e co m ece com a letra J:
1 PRINT "COÍIO VOCE SE LHAflA?" 2 INPUT 1$ TKi IF Jí(l)<>“j" IHEN GOTO 1888 3 IF LEFT$< í $ , í )<>“ j “ THEX GOTO 1888 4 PRINT “D L . . VOCE PODE JOGAR'1 5 PRINT "ESTÁ PRONTO?1' é INPUT J* i V IF J K D O - S " ÍHEN GOTO 5 • / IF L EF Tt íJÍ,1K>“S" THEN GOTO 5 O p ro g ra m a p rin c ip a l en tra a q u i
1888 1818 1828 1838
PRINT PRINT PRINT PRINT
"DESCULPE.FSTE JOGO E" "50 PARA PESSOAS" "CUJOS NOIÍFS CORECAN" "COS A LETRA J"
A qui está um p ro g ra m a em q u e o c o m p u ta d o r d esco n fia d e q u e v o cê não tem c o ra g e m su ficien te p a ra jo g ar.
18 12 14 15 lí ÍK17 ■•17 lí 1?
PRIHT "J060 NU1TÜ PERIGOSO" PRINT “VOCE TER CORAGEH" PRINT "DE ENFRENTAR" PRINT “0 R0NSTRÜ CABELUDO?" INPUT 14 IF I4(1)="S“ THEN GOTO 20 IF LEFTÍ(I$,l)s"S" THEN GOTO 28 PRINT “COVARDE" STOP
V ocê p o d e c o m b in a r o p ro g ra m a acim a com a su b -ro tin a d e in stru çõ es, co lo c a n d o as lin h as 11 a 17 do p ro g ra m a d a p á g in a a n te rio r com o lin h as 20 a 26 do p ro g ra m a acim a. C o m ec e o p ro g ra m a p rin c ip a l na linha 30 e a c re s c e n te a su b -ro tin a d e in stru çõ e s no final.
m an u al do seu m icro. Em certo s casos, v o cê p o d e a c re s c e n ta r um a ú n ic a linha ao p ro g ra m a no lo cal o n d e d eseja o som. Em outros, vai p re c isa r d e várias linhas; nesse caso, é m elhor u sa r um a su b -ro tin a. A lin h a ab aix o m ostra, p o r exem plo, a in stru ção p a ra p ro d u z ir o som do dó c e n tra l do pian o d u ra n te 6 seg u n d o s em um co m p u ta d o r do tipo TRS-80:
SOUND 89,188 V ocê p o d e u sar q u an tas in stru çõ es q u iser p a ra g e ra r sons, m as não se e sq u e ç a d e c o lo c a r um n úm ero no início d e c a d a instru ção .
Quer jogar de novo? Em lu g a r d e e sc re v e r RUN c a d a vez q u e d e se ja c o m e ç a r um jogo, você p o d e fazer com q u e o co m p u ta d o r p e rg u n te se q u e r jo g a r d e novo. C o lo q u e as lin h as ab aix o no final do p ro g ra m a , an tes do últim o STO P.
1088 1810 Ti- ih 26 1028 1036
PRINT "flüER JOGAR DE NOVO ■" INPtli 14 IF I4íl) = "S" THEN RUN IF LEFT4(IÍ,1!='!S" THEN RUN PRINT "0IÍ...ÍCKAU"
M ude os n ú m ero s das linhas d e a c o rd o com o seu p ro g ra m a .
Efeitos sonoros M uitos m ic ro c o m p u ta d o res disp õ em de re c u rso s p a ra g e ra r sons. V ocê p o d e u tilizar esses re c u rso s em q u a lq u e r ponto d os seus p ro g ra m a s. E x p erim en te, p o r exem p lo , sim ular o ruído d e um a ex p lo são ou fazer com q u e o c o m p u ta d o r to q u e um a m usiq u in h a to d a vez' q u e alg u ém g a n h a r. C om o as in stru ç õ e s p a ra g e ra r sons variam d e c o m p u ta d o r p a ra c o m p u ta d o r, você te rá q u e c o n su lta r o
IMota especial para os usuários do TK-85 Se o seu m icro é um TK-85, talvez alg u n s dos jogos deste livro sejam ráp id o s dem ais p a ra o seu c o m p u tad o r. As in stru çõ es p a ra d im in u ir a v elo cid ad e a p a re c e m na m esm a p á g in a q u e o jogo c o rre sp o n d e n te . C om o re g ra g eral, q u an to m aior o n ú m ero q u e você u sar no loop d e e sp e ra , m ais lento será o jogo.
Como programar jogos D ep ois q u e v o c ê estiver fa m ilia riza d o com os jogos d e ste livro, certa m en te terá v o n ta d e de program ar outros jogos. N estas d u a s p á g in a s , d iscu tim os a lg u n s co n ceito s b á sic o s d e q u e v a i n ecessita r para isso. A ntes d e m ais n a d a , vale a p e n a p e n s a r um p o u c o no q u e o seu co m p u ta d o r p o d e fazer e no q u e ele não p o d e .
‘Pode g u a rd a r info rm açõ es.
P o d e p e d ir novas inform ações.
*Pode e sc o lh e r um n ú m ero ao acaso , u san d o RND.
‘P o d e fazer co n tas.
15 *Não p o d e fazer n a d a q u e não esteja no p ro g ra m a .
*Pode to m ar d ecisõ es c o m p a ra n d o de várias form as info rm açõ es a n te rio re s.
*Se você u sar in stru çõ es v álidas d e B A SIC , não p o d e d istin g u ir in stru çõ es "sen satas" d e in stru çõ es tolas. *Pode m o strar os resu ltad o s dos cálc u lo s e d e c isõ e s e tam bém o q u e está g u a rd a d o na m em ória.
Q u a n d o estiver p la n e ja n d o o p ro g ra m a d e um jogo, não in c lu a n a d a q u e o seu m icro não seja c a p a z de fazer.
Como planejar um jogo
Como escrever o programa
A ntes d e p ro g ra m a r o c o m p u ta d o r p a ra jo g a r um jogo, v o cê p re c is a sa b e r ex atam e n te com o se rá jo g ad o e q u ais serão as re g ra s. C om o o c o m p u ta d o r vai n e c e ssita r d e u m a série d e in stru ç õ e s sim ples e ló g ic a s, é m elh o r im a g in a r p rim eiro todo o jogo e d ep o is dividi-lo em p e q u e n a s p a rte s. Em se g u id a , v o cê d ev e e sc re v e r to d as as p a rte s do jogo, n a o rd em em q u e serão e x e c u ta d a s (escrev a em p o rtu g u ê s; a in d a n ão está n a h o ra de u sa r BA SIC ). A ilu stra ç ã o ab aix o m ostra o p la n o de um jogo sim ples d e a tira r, q u e p o d e ser u sad o p a ra d is p a ra r b a la s d e c a n h ã o c o n tra um navio p ira ta ou raios laser c o n tra u m a n av e a lie n íg e n a .
O passo seg u in te consiste em tra d u z ir o seu p lan o p a ra a lin g u ag em BASIC. C a d a p a rte do p lan o p o d e c o rre sp o n d e r a v árias linhas d e B A SIC. D eixe n ú m ero s vagos en tre os nú m ero s das linhas do p ro g ra m a , p a ra p o d e r a c re sc e n ta r m ais ta rd e novas in stru çõ es, se for n ecessário . E screva um rascu n h o do p ro g ra m a e c o m ece a testá-lo no co m p u tad o r. O c o m p u ta d o r é c ap az d e d e te c ta r m uitos erro s d e p ro g ra m a ç ã o e m esm o, em c erto s casos, d e in d ic a r exatam en te o n d e está o e rro . Se o seu p ro g ra m a não d e r certo logo d a p rim eira vez, não d esan im e; " a c e rta r" um p ro g ra m a é um p ro cesso lento e tedioso, até m esm o p a ra os p ro g ra m a d o re s e x p erien tes.
PLANO D E JOGO 2)
IM P R IM IR E
T ÍT U L O
IN S T R U Ç Õ E S
£ ) ESCOLHER UM A LV O 3 ) C O M EÇ A R U M LO O P QUE P E R M ITA AO JOGADOR N TENTATIVAS
4)
P E D IR AO JO G A D O R PARA DAR U M T IR O
5 ) V ER IFIC A R SE O T IR O A C E R T O U 6 ) IM P R IM IR UMA MENSAGEM SOBRE O RESULTADO DO TIR O
7 ) VO LTAR PA RA A T E N T A T IV A S E G U IN T E
^
Depois que o programa básico estiver funcionando, você pode aperfeiçoá-lo, acrescentando mensagens, comentários, alvos diferentes etc. Também pode incluir partes dos programas deste livro nos seus jogos. Não espere que os seus primeiros jogos sejam muito movimentados e originais. Comece com idéias simples e esteja preparado para modificá-las se for necessário. E provável que você descubra que incluiu alguma coisa no jogo que é muito fácil para uma pessoa mas muito difícil para um computador. Quando adquirir experiência, saberá instintivamente o que o seu computador é capaz de fazer.
Instruções de BASIC Este c a p ítu lo e x p lic a com o fu n cion am a lg u m a s in struções com u n s de BASIC. Q u a se tod as foram u sa d a s n os p rogram as d e ste livro, d e m odo q u e v o c ê p o d e consultar a s lista g e n s dos jogos para ver o q u e e s sa s in stru ções fa zem nos p rogram as. N em tod as a s in stru ções p od em ser u sa d a s em todos os m icros m en cio n a d o s n e ste livro. A ta b e la de e q u iv a lê n c ia d a p á g in a 44 m ostra a s d iferen ça s entre os vários m od elos. LET diz ao c o m p u ta d o r p a ra d a r um nom e a um a p a rte d a m em ória e g u a rd a r n esta p a rte um n úm ero q u e você e sp ecifica. A ssim , p o r ex em p lo , LET A = 6 sig n ifica q u e o co m p u ta d o r d ev e c h a m a r d e "A " um a p a rte d a m em ória e g u a rd a r n esta p a rte o n ú m ero 6. "A " é c h am ad o d e "v ariáv el" e c o lo c a r alg u m a coisa em A é c h am ad o d e "a trib u ir um valo r a um a variáv el". A lg u n s nom es d e v ariáveis são seg u id o s p o r um cifrão (A$, p o r exem plo). Isto sig n ifica q u e a v ariáv el é do tipo string e a m em ória c o rre s p o n d e n te p o d e c o n te r um n úm ero q u a lq u e r d e c a ra c te re s (letras, nú m ero s e sím bolos).
PRINT diz ao co m p u ta d o r p a ra m ostrar alg u m a coisa n a tela. Esta in stru ção p o d e ser u sad a de v árias form as: U m a m en sag em e n tre aspas p re c e d id a p o r PRINT é m o strad a na tela ex atam en te com o foi e scrita. A p a rte e n tre asp as não p re c isa ser em B A SIC , p o d e ser q u a lq u e r coisa. A in stru ç ã o PRINT se g u id a pelo nom e d e um a v ariáv el (PRINT A ou PRINT A$, p o r exem plo) diz ao c o m p u ta d o r p a ra m o strar n a tela o valor da variáv el.
PRINT também pode ser usada para fazer cálculos e mostrar o resultado. Assim, por exemplo, a instrução PRINT 6*4 faz o computador mostrar na tela o número 24. Você pode usar PRINT sozinha para deixar uma linha em branco na tela. RND diz ao computador para escolher um número ao acaso. Computadores diferentes usam diferentes formas de RND (essas diferentes formas estão na tabela da pág. 44). Nos computadores TK, RND gera um número entre 0 e 0,99999999. Você pode mudar os limites dos números gerados por RND multiplicando-os por uma constante e somando-os a outra constante. Assim, por exemplo, RND*20 gera um número entre 0 e 19,99999999, enquanto que RND *20 + 1 gera um número entre 1 e 20,99999999. Para gerar apenas números inteiros, use a instrução INT. Para gerar letras e símbolos, use a instrução CHR$.
INT é a a b re v ia ç ã o d e in teiro . No caso d e n ú m eros positivos, diz ao c o m p u ta d o r p a ra ig n o ra r tu d o q ue está à d ire ita do p onto d ecim al. A ssim , p o r ex em plo , INT (20.999) é o n ú m ero 20. No caso d e nú m ero s n eg ativ o s, tu d o q u e está à d ire ita do ponto é ig n o ra d o e o n ú m ero q u e está à e s q u e rd a é "a u m e n ta d o " d e um a u n id a d e . A ssim , p o r exem plo, INT(-3.6) é o n ú m ero -4. A in stru ç ã o INT é fre q ü e n te m e n te u sa d a junto com RND, com o em INT(RND*20 + 1), q u e diz ao c o m p u ta d o r p a ra e sc o lh e r ao acaso um nú m ero inteiro e n tre 1 e 20.
CHRS é u sa d a p a ra tran sfo rm ar n ú m ero s em letras. Com e x c e ç ã o do TK-83, todos os c o m p u ta d o re s m en cio n ad o s neste livro utilizam o c ó d ig o ASCII* p a ra a c o rre s p o n d ê n c ia e n tre n ú m ero s e c a ra c te re s. A ssim , p o r ex em p lo , o n ú m ero d e c ó d ig o p a ra a letra A é 65 e a in stru ç ã o CHR$(65) faz a letra A a p a re c e r n a tela. V ocê p o d e u sar as in stru ç õ e s CH R$, INT e RND p a ra fazer o c o m p u ta d o r e sc o lh e r letras ao acaso , com o em CHR$(INT(RND*26 + 65)), q u e no co m p u ta d o r TK-85 g e ra um a le tra q u a lq u e r en tre A e Z (p a ra os outros co m p u ta d o re s, co n su lte a tab ela d a p á g in a 44).
FOR é u sa d a p a ra c o m e ç a r um loop q u e faz o c o m p u ta d o r re p e tir um a p a rte do p ro g ra m a um certo n ú m e ro de vezes. D eve ser se g u id a p elo nom e d e u m a v ariáv el (G , p o r exem plo) e pelos valores in icial e final d a m esm a v ariáv el ( = 1 TO 10, p o r exem plo). O final do loop é in d ic a d o p e la in stru ç ã o NEXT (NEXT G , neste ex em p lo ), q u e faz o v alo r da variáv el a u m e n ta r d e um a u n id a d e e m a n d a o co m p u ta d o r de volta p a ra a in stru ç ã o FOR. Q u a n d o o valo r d a v ariáv el c h e g a ao valor final, o co m p u ta d o r ig n o ra a in stru ç ã o NEXT e p assa p a ra a linha se g u in te . P ara c a d a in stru ç ã o FOR d ev e h av er um a in stru ç ã o NEXT, caso c o n trá rio o p ro g ra m a não fu n c io n a rá .
INPUT diz ao c o m p u ta d o r p a ra d a r um nom e a um a v ariável, m o strar n a tela um pon to d e in te rro g a ç ão e e s p e ra r q u e v o cê e sc re v a o valo r d a v ariáv el. A e x e c u ç ã o do p ro g ra m a só p ro sse g u e se você a p e rta r a te c la RETURN, ENTER ou NEWLINE. V ocê p o d e u sa r v ariáv eis n u m é ric a s (sem o cifrão) ou variáv eis tipo strin g (com um cifrão rio final) em um a in stru ç ã o INPUT, m as se u sa r um a variáv el n u m é ric a o c o m p u ta d o r n ão a c e ita rá letras. O código completo está na pág. 43.
39
INKEY$ diz ao co m p u ta d o r p a ra v erificar se você está a p e rta n d o alg u m a te cla e, em caso afirm ativo, q u al é essa tecla. O c o m p u ta d o r não e sp e ra você a p e rta r a lg u m a tecla, com o no caso da in stru ção INPUT. A in stru ção INKEY$ é g eralm en te u sad a d e n tro d e um loop q u e faz o c o m p u ta d o r verificar m uitas vezes o tec la d o . Isto é n ecessário p o rq u e os c o m p u ta d o res fu ncionam m uito d e p re ssa e você n ão teria tem po d e a p e rta r um a te cla no tem po q u e o c o m p u ta d o r leva p a ra fazer um a ú n ica v erificação . Q u a n d o o loop term ina sem q u e você ten h a a p e rta d o n e n h u m a tecla, o c o m p u ta d o r p ro sseg u e com um a string q u e não co n tém nen h u m sím bolo (a c h a m a d a strin g vazia).
GOTO faz o co m p u ta d o r p u la r p a ra um a in stru ção m ais acim a ou m ais ab aix o , ig n o ra n d o as in stru çõ es in te rm e d iá rias. G O T O d ev e sem p re ser seg u id a p elo n ú m ero d a linha p a ra o n d e o co m p u tad o r d ev e p u la r.
GOSUB diz ao co m p u ta d o r p a ra sair do p ro g ra m a p rin c ip a l e ir p a ra um a su b -ro tin a. G O SU B deve ser s e g u id a pelo n ú m ero d a p rim e ira linha d a subrotina. A últim a in stru ção d e q u a lq u e r su b -ro tin a d ev e ser RETURN, q u e m an d a o co m p u ta d o r d e volta ao p ro g ra m a p rin c ip a l, p a ra a linha seg u in te à da in stru ç ão G O SU B .
IF...THEN diz ao co m p u ta d o r p a ra v erificar se um a ex p ressão é v e rd a d e ira ou falsa e fazer coisas d iferen tes, d e p e n d e n d o d a resp o sta. E u sad a com os seg u in tes sinais, além das p ala v ra s AND e OR: = ig u a l a < m en o r q u e > m aio r q u e < — m en o r ou ig u a l a > = m aio r ou ig u a l a < > d ife re n te d e
Se o computador verifica que a expressão é verdadeira, executa a instrução que se segue à palavra THEN. Se a expressão é falsa, ignora o resto da linha e passa para a linha seguinte.
CLS é u sa d a p a ra a p a g a r tu d o q u e está n a tela, sem a fetar o q u e se e n c o n tra n a m em ória do co m p u ta d o r. E útil p a ra lim p ar a tela an tes de e x e c u ta r um p ro g ra m a ou p a ra m an ter um a m en sag em na tela a p e n a s p o r um p e río d o lim itado d e tem po d u ra n te um jogo.
HOME é u sad a p a ra lim p a r a tela nos c o m p u ta d o re s do tipo A p p le , em lu g a r d e CLS.
ABS diz ao c o m p u ta d o r p a ra ig n o ra r os sinais de m ais e d e m enos n a fren te dos n ú m ero s e tom ar o seu v alo r "ab so lu to ". A ssim , p o r ex em p lo , ABS(-IO) é 10 e ABS ( + 10) tam bém é 10.
VAL é u sa d a p a ra o b te r o v alo r n u m é ric o d e um n ú m ero a sso ciad o a u m a v ariáv el strin g . Em outras p ala v ra s, a in stru ç ã o VAL diz ao c o m p u ta d o r p a ra ig n o ra r o cifrão e c o n s id e ra r a v ariáv el com o se ■fosse um a v ariáv el n u m é ric a . A ssim , p o r exem plo, se 1$ = "60", en tã o VAL(I$) é o n ú m ero 60.
c o rre s p o n d e n te a um d a d o n ú m ero , le tra ou sím bolo. A ssim , p o r ex em p lo , A SC ("3") é ig u al a 51. A e x p re ssã o e n tre p a rê n te se s d ev e ser do tipo strin g , com o "20" ou A$. O s m icros d a fam ília S in clair não têm a in stru ção A S C , e m b o ra o TK-85 u se o c ó d ig o A SC II.
CODE é a in stru ç ã o u sa d a nos m icros d a fam ília S in clair em lu g a r d e A S C . C om o no caso da in stru ç ã o A S C , C O D E d ev e ser se m p re se g u id a por um a ex p ressão do tipo strin g , e n tre p a rê n te se s. O b se rv e q u e os n ú m ero s d e c ó d ig o dos c a ra c te re s no m icro TK-83 n ão são os m esm os q u e nos outros c o m p u ta d o re s.
TAB é uma instrução usada para mover o cursor na tela até a coluna desejada. Geralmente é usada em conjunto com PRINT para mostrar alguma coisa no meio da tela. O número de espaços de deslocamento do cursor é colocado entre parênteses depois de TAB. O número máximo que pode ser usado depende do modelo de computador (vide tabela na pág. 43).
gflflBBQl
ASC é u sa d a p a ra o b te r o n ú m ero do c ó d ig o A SC II
SGN diz ao c o m p u ta d o r p a ra v erificar o sinal d e um n ú m ero . O resu ltad o é -1 se o n úm ero é n eg ativ o , 0 se o n ú m ero é zero e + 1 se o n ú m ero é positivo. Assim , p o r ex em plo, SG N (-30) é -1, SGN(7) é + 1 e SGN(O) é 0. DIM diz ao c o m p u ta d o r p a ra re se rv a r e sp a ç o na m em ória p a ra um a m atriz (variável in d e x a d a ). Assim, p o r exem plo, DIM X(6) diz ao co m p u tad o r p ara re se rv a r um esp aço suficien tem en te g ra n d e p a ra c o n te r 6 elem en to s, q u e serão c h am ad o s d e X (l), X(2), X(3), etc. DIM A (8,8) reserv a um e sp a ç o na m em ória p a ra 64 elem entos, q u e serão c h am ad o s d e A ( l ,l ) , A (l,2 ), etc. U m a variáv el in d e x a d a n u n c a p o d e ser u sad a em um p ro g ra m a com um núm ero e n tre p a rê n te se s m aior q u e o esp e c ific ad o na in stru ç ão DIM. SQR é u sad a p a ra o b te r a raiz q u a d ra d a d e um n ú m ero . Assim , p o r ex em plo, SQR(16) é ig u al a 4.
SIN é u sad a p a ra c a lc u la r o seno d e um ân g u lo . Em um triân g u lo re tâ n g u lo , o co m p rim en to do lado oposto a um ân g u lo d iv id id o p elo co m p rim en to da h ip o te n u sa (lado oposto ao â n g u lo reto) é c h am ad o de seno d esse ân g u lo . P ara u sar SIN em um p ro g ra m a , o ân g u lo d ev e ser ex p resso em rad ian o s, e não em g raus.
ATN é um a das fun çõ es trig o n o m étricas q u e os c o m p u ta d o res são c a p a z es d e c a lc u la r (a o u tra é o seno, d e q u e falam os acim a). ATN é a a b re v ia ç ão d e a rc o ta n g e n te . Em a lg u n s co m p u ta d o re s, esta in stru ção é c h a m a d a d e ARCTAN.
STOP diz ao c o m p u ta d o r p a ra p a ra r d e e x e c u ta r o p ro g ra m a . Em todos os co m p u ta d o re s, a não ser o TK-83, a in stru ção END faz o m esm o efeito.
PEEK é usada para descobrir o que existe em uma certa região da memória do computador. Esta instrução é sempre seguida por um número entre parênteses, que especifica um "endereço" na memória. POKE é uma forma especial de guardar informações na memória do computador, usando o "endereço" de uma memória.
Número Caractere Número Caractere de código correspondente de código correspondente
Número Caractere Número Caractere de código correspondente de código correspondente
62
>
11
B
41
D
63
o
12
£
42
E
34
l »
64
13
$
43
F
35
#
65
@ A
14
:
44
G
36
$
66
B
15
45
H
37
%
67
C
16
(
46
I
38
&
68
D
17
47
J
39
’
69
E
18
) >
48
K
40
(
70
F
19
<
49
L
41
71
G
20
=
50
M
42
) *
72
H
21
+
51
N
43
+
73
I
22
-
52
O
44
j
74
J
23
*
53
P
45
-
75
K
24
/
54
0
46
-
76
L
25
55
R
47
/
77
M
26
j
56
S
48
0
78
N
27
•
57
T
49
í
79
O
28
0
58
U
50
2
80
P
29
1
59
V
51
3
81
30
2
60
w
52
4
82
Q R
31
3
61
X
53
5
83
S
32
4
62
Y
54
6
84
T
33
5
63
Z
55
7
85
U
34
6
56
8
86
V
35
7
57
9
87
w
36
8
58
:
88
X
37
9
59
j
89
Y
38
A
60
<
90
Z
39
B
61
=
40
C
32
espaço
33
Tabela de tamanhos de tela Número máximo de caracteres na horizontal (ou número de colunas) TRS-80 TK-83 TK-85 Apple
64 32 32 40
Número máximo de caracteres na vertical (ou número de linhas) 16 22 22 25
Tabela de equivalência
■o Q •1 Q O
o
•a
3
e
CL
Esta tabela mostra algumas das variações nas instruções de BASIC usadas pelos micros mencionados neste livro. Não foram incluídas as instruções para gerar gráficos, sons e cores, pois variam de fabricante para fabricante. Observe também que embora quase todos os micros usem as instruções PEEK e POKE, os endereços da memória variam de acordo com o fabricante, de modo que os números usados com essas instruções variam
•o c a a o
Q
O ■i
Escolha um núm ero ao a ca so entre 1 e N aoCacasoU^ t r Í e Aae Z
RND(1)*N+1
RND(N)
RND*N + 1
CHR$(INT(RND*26 + 65))
RND*N+1
CHR$(INT(RND*26 + 38))
INKEYf
CODE ("X") (código TK-83)
INKEY$
CLS INKEY$
CODE ("X") (código ASCII)
CLS
ASC("X") (código ASCII)
_
PRINT CHR$(25)
PRINT CHR$(24)
A $ (l TO N)
PRINT CHR$(9)
PRINT CHR$(8)
A$(N TO )
A $ (l TO N)
PRINTCHR$(115)
PRINTCHR$(114)
PRINTCHR$(113)
PRINT CHR$(112)
PRINT CHR}(11)
PRINT CHR$(8)
LEFT$(A$,N)
A$(N TO )
A$(N1 TO N2)
PRINT CHR$(10)
PRINT CHR$(27)
CLS
CHR$(RND(26)+ 64)
~~
CHR$(INT(RND(l)*26 + 65))
CALL - 993
ASC(”X") (código ASCII)
Limpe a te la HOME V erifique a X$ = " " tecla q ue está IF PEEK(-16384) send o ap ertad a___________________> 1 2 7 THEN GET X$ Transforme caracteres em números d e cod igo Mova o cursor para cim a
PRINT CHRÍ(21)
RIGHT$(A1N)
A$(N1 TO N2)
Mova o cursor para baixo _________ PRINT CHR$(10)_____________ PRINT CHR$(26)
LEFT$(A$,N)
MID$(A$,N1,N2)
d rm e1oNd rú m a esterin g
p a ra V d ^ r eiú í
caracteres d e um a string ____________ RIGHT$(A$,N)
caracteres d í ” m a str in g
MID$(A$,N1,N2)
p a r a ^ e s q u e íd a
~
_________________________________ Apple_______________ TRS-80________________ TK-85________________ TK-83_______ Escolha um núm ero ao a ca so RND(l) RND(O) RND RND entre 0 e 0,99999999________ _____________________________________________________________________________________________
o, <D O O 3
Respostas P ode ser q u e a s su a s resp ostas para a lg u n s p rob lem as sejam d iferen tes d a s qu e a p a r e c em a q u i. Isto n ã o im porta, con tan to que fu n cion em no se u com putador. Entretanto, verifiq u e se sã o tão sim p le s e c o n c isa s com o as resp ostas do livro.
Página 5 Bomba-Relógio A lin h a 90 diz ao c o m p u ta d o r q u a n ta s vezes d ev e re p e tir o loop e p e d ir um p a lp ite . Assim , p a ra a u m e n ta r o núm ero d e tentativ as, tro q u e o últim o n ú m ero d a lin h a 90 p o r um n ú m ero m aior. P ara d im in u ir o n ú m ero d e tentativas, use um n ú m ero m enor.
Página 7 Mensagem Decisiva N este p ro g ra m a , as lin h as 150 e 160 constituem um loop d e e sp e ra . Elas fazem o c o m p u ta d o r ficar " p a ra d o " um ce rto tem po antes d e p a ssa r p a ra a in stru ç ã o se g u in te , q u e é lim p ar a tela. P a ra fazer com q u e a m en sag em liq u e m ais tem po na tela, você p re c isa au m e n ta r o n ú m ero de vezes q u e o loop é re p e tid o . P ara isso, b asta tro c a r o últim o n ú m ero d a lin h a 150 p o r um n ú m ero m aior.
Página 9 Duelo P a ra q u e o c o m p u ta d o r possa tam bém e rra r o tiro, a c re s c e n te as linhas ab aix o , além das q u e a p a re c e m em "C om o to rn a r o jogo m ais difícil".
155 IF RNDÍ.l THEN GOTO 258 258 FRIHT "ELE ATIROU, «AS ERROU" 2é8 GOTO 98 A linha 155 p o d e rer RN D (l) ou RND(0), d e p e n d e n d o do seu co m p u tad o r.
Página 11 Batalha no Deserto P ara in clu ir a p o ssib ilid ad e d e os robôs atirarem em você, a c re sc e n te as linhas abaixo.
175 IF RHD<.05 THEH GOTO 258 258 PRÍNT "ELES VIRAH VOCE...AHHHHHHH!” 268 STOF Use a form a de RND na linha 175 que se;a com patível com o seu co m p u tad o r. V ocê p o d e substituir .05 por q u a lq u e r num ero en tre 0 e 0.999, mas não se e sq u e ç a d e q u e q u an to m aior for o n um ero, m aior a p ro b a b ilid a d e d e os robôs atirarem em você.
Página 13 O Castelo do Traidor Este e um p ro b lem a m uito d ifícil; não se a b o rre ç a se não tiver c o n seg u id o resolvê-lo sozinho. De q u a lq u e r form a, vale a p e n a e x p e rim e n ta r a so lução no p ro g ra m a . A c re sc e n te as linhas abaixo p a ra fazer com q u e a p a re ç am dois tipos de alvos.
55 57 AB*57 78 18B
LET P=IMT(8HD+.5)í4+l LET PÍ=CHRMP+5i> LET P*=CHRíÍP+78) IF L=T THEH LET R$=R$+P* LET E=S+P
Página 15 Invasão dos Robôs
Página 21 Avião Pirata
P ara g a n h a r 100 p ontos p elo s robôs U, V, W , X e Y e 10 p o n to s p elo s outros, la ç a as m o d ificaçõ es ab aix o .
P ara fazer com q u e você e o p ira ta tenham a m esm a p ro b a b ilid a d e d e v e n c e r, tro q u e o .7 d a lin h a 290 p a ra .5.
228 LET H=H+18 225 1F PF>“T* AND Pí<"Z" THEH LET H=Ht?8
Página 17 Arma Secreta
Página 23 Bombardeiro Supersônico P a ra au m e n ta r o n ú m ero d e alvos, tro q u e o 5 d as lin h as 30, 70 e 120 p o r um n ú m ero m aior. V ocê d ev e u sar o m esm o n ú m ero nas três linhas.
P a ra a c re s c e n ta r o sistem a d e co n tag em , b a sta c o lo c a r as linhas ab aix o no p ro g ra m a .
15 145 198 215 217
LET S=8 IF Z<=3 THEH LET S=S+1 BOTO 217 LET S=S+18 PRIHT "VOCE FEZ “JS? n PONTOS'
Página 19 Fuga! Esta é a form a m ais sim ples d e in c lu ir três robôs, e m b o ra to rn e o jogo b astan te difícil.
22 25 388 318
FOR R=i TO 3 PRINT “ROBO ':R NEXT R STOP
Página 25 "Iceberg” V ocê p o d e a u m e n ta r o tam an h o do m apa tro c a n d o o 8 d as lin h as 20, 50, 70, 80, 110, 120, 160, 170, 290 e 310 p o r um n ú m ero m aior. (U se o m esm o n ú m ero em todas essas lin h as.) P ara a u m e n ta r o n ú m ero d e icebergs, tro q u e o 4 na lin h a 30 p o r um n ú m ero m aior.
T ítu lo orig in a l inglês C O M P U TE R B A T T LE G A M E S
EDITO RA LU TÉC IA LTDA.
C o p y rig h t © 1982 by U sborne P ublishing Ltd.
20921 Rio de Ja neiro, RJ — Tel.: 580-3668
Rua A rg e n tin a 171 —
D ireitos de p u b lica çã o exclusiva
que se reserva a pro p rie d a d e
em língua p o rtu g u e sa em to d o o m u n d o
literária desta tra d u çã o
a d q u irid o s pela
Im presso no Brasil
P ED ID O S PELO REEM BO LSO POSTAL Caixa Postal 23.052 — Rio de Ja n e iro , RJ 20922
ImpressĂŁo e Acabamento
GRftPHOS
Guias Práticos de fnicrocpniputaEJorES ü que é capaz de fazer um microcomputador! Calcular, evidentemente, mas ta m bém organizar perguntas, escrever poemas, jogar uma quantidade de jogos cada qual mais palpitante, até mesmo com por música... Pequenos guias práticos de in trodução à microinformática, as obras desta nova coleção nos perm item descobrir todas as possibilidades que os microcomputadores nos oferecem. Eles nos iniciam na linguagem e no funcionamento do computador, na aprendizagem da programa ção e — por que não? — na criação de programas originais: a clareza dos textos, a alegria das cores, a graça dos desenhos, tudo é concebido nestes livros para fa zer desta iniciação um prazer.
Um colorido guia para melhor compreendermos os microcomputadores — como trabalham e o que fazem, apresentando idéias de coisas que podem ser feitas com o micro. Apresenta um utilíssimo guia comparativo dos diversos micros existentes no
Um guia passo a passo de programação para os absolutamente iniciantes. Apresenta as diferentes linguagens e aprofunda no BASIC, incluindo pequenos programas, simples e divertidos. Profusamente ilustrado a cores.
13 programas fascinantes e ao mesmo tempo simples, para todo tipo de microcomputadores; Jogos Intergaláticos, Módulo Lunar, Viagem ao Futuro, Salvamento no Espaço e muitos outros, com respostas dos problemas.
r-PROGRAMASOCJOGOSDf-,
\m
Introduz o leitor na programação BASIC, através de exemplos didáticos, e é sobretudo indicado ao jovem que começa a programar. Substitui com vantagens os manuais dos fabricantes. Apresenta dezenas de dicas utilíssimas para aprimorar a técnica de programação.
w
i
13 listagens de programas de jogos, para serem “ rodados” nos micros pessoais mais difundidos no Brasil. Muito útil para ensinar o leitor a desenvolver seus próprios programas. Além disso, é um passatempo fascinante.
Um verdadeiro caderno a cores de problemas e exercícios, com jogos e quebra-cabeças , ideais para todo curso de programação em BASIC. Todas as respostas e explicações estão incluídas, para ajudar a esclarecer todo e qualquer problema.
PROGRAM AS DE JOGOS DE GUERRA
LUTÃ&#x2030;CIA
92326/8