Você está na página 1de 53

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 i
R onaldo Sé rgio de Biasi

Sumário .
2 Introdução 24 Iceberg
4 Bomba Relógio 26 O Muro do Bruxo
6 Mensagem Decisiva 30 Míssil!: Versão TRS-80
8 Duelo 31 Míssil!: Versão Apple
10 Batalha no Deserto 32 Míssil!: Versão TK-85
12 O Castelo do Traidor 33 Míssil!: Versão TK-83
14 Invasão dos Robôs 34 Algumas Sugestões
16 Arm a Secreta 36 Como Programar Jogos
18 Fuga! 38 Instruções de BASIC
20 Avião Pirata 44 Tabela de Equivalência
22 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
25
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 )NEltl
os p ro g ra m a s são com patíveis com os ■I NB
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 Pontos importantes
m icro. O s m icros na c iona is são divididos
em três "famílias": a família Sinclair 1 Escreva as linhas exa ta m e nte com o na
(CP-200, TK-83, TK-85), a família TRS-80 listagem, in c luindo todos os e sp a ç o s e
(CP-300, DGT-1000, etc.) e a família sinais d e p o n tu a ç ã o .
A p p le (Maxxi, Ap-II, etc.). Se você não 2 Depois de b a te r c a d a linha, verifique
so u b e r a q u e família p e r te n c e o seu na tela se está tudo certo.
m icro, p o d e r á ob te r a inform ação em 3 A nies de c o m e ç a r um a nova linha,
q u a lq u e r loja e sp ecializada. a p e rte a tecla RETURN, ENTER ou
Neste livro, a listagem p r in c ip a l de NEWLINE.
c a d a p r o g r a m a é p a r a os m icros CP-200 4 C u id a d o p a r a não p u la r um a linha ou
e TK-83 (daqui po r diante, tudo o que m isturar duas linhas. Use um a r é g u a ou
dissermos do TK-83 tam bém se aplica ao 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
CP-200). As linhas q u e p re c isa m ser o n d e está na listagem.
m u d a d a s p a r a q u e o p r o g r a m a funcione 5 Preste a te n ç ã o nos símbolos q u e
em outros c o m p u ta d o re s estão in d ic a d a s identificam as diferentes famílias e use a
po r símbolos e as m odificações a p a r e c e m instrução a p r o p r ia d a p a r a o seu m odelo
no final d e c a d a listagem. d e micro.
P a ra c a d a jogo, há idéias p a r a 6 Se você está u sa n d o um m icro TK-83
m odificações e extensões dos p ro g ra m a s. ou TK-85, não de v e e sc re v e r as
No final do livro, você e n c o n tra rá instruções letra po r letra. Em vez disso,
a lgum as "d ic a s" p a r a e sc re v e r seus use as teclas c o rre sp o n d e n te s a c a d a
próprios p ro g ra m a s. Incluím os tam bém instrução.
um a tabela de e q u iv a lê n c ia p a r a ajudá-lo Talvez você pre fira q u e a lg u é m leia o
a a d a p ta r ao seu micro p ro g ra m a s 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
p u b lic a d o s em revistas e em outros teclas. Nesse caso, e x p liq u e p a r a o seu
livros, além d e um a lista das instruções am igo q u e ele de v e ler todas as vírgulas,
de BASIC usa da s neste livro, com as pontos, p a rê n te se s e espaços.
respectivas definições.
Como verificar os programas
Como carregar os programas Depois d e c a r r e g a r o
p ro g ra m a , c onsulte o
Se o seu m icro não é o TK-83, as linhas
m anual do micro p a r a
q u e devem ser m u d a d a s estão in d ic a d a s
ver com o fazê-lo
pelos seguintes símbolos:
a p a r e c e r na tela. (Em
A TK -85
ge ra l, ba sta e sc re v e r
H fam ília TRS-80 LIST.)
• família A p p le
V erifique se todas as
C a d a vez q u e você vir o símbolo da linhas estão corretas,
família a q u e p e r te n c e o seu micro, muito fácil co m e te r
p r o c u r e no final d a listagem u m a linha erros; não se adm ire fOR
com o mesmo símbolo e o mesmo se e n c o n tr a r alguns. (
núm ero. Use-a no lu g a r da linha C onsulte o m anual
c o r r e s p o n d e n te d a listagem p rincipal.

W ti& Êm
p a r a s a b e r com o fam iliarizado com eles. As instruçc
a lte ra r as letras ou p a r a isso estão n a p á g in a d e c a d a
símbolos q u e estão p ro g ra m a .
e rra d o s. Em muitos
casos, é mais fácil
to rn a r a e sc re v e r a Como executar os programas
linha inteira. A linha P a ra c o m e ç a r q u a lq u e r jogo, você deve
an tig a (com o mesmo e sc r e v e r RUN. Em alg u n s jogos, as
núm ero) é coisas a c o n te c e m muito d e p re ssa , de
auto m a tic a m e n te m odo q u e é m elhor ler a te ntam ente as
apagada. 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
Eis u m a lista dos e rros mais com uns: c o m p u ta d o r mostre na tela um c ó d ig o de
1 Linha faltando. erro, q u e você p o d e p r o c u r a r no
2 Linha com n ú m e ro e rra d o . m anual. Isso o a ju d a r á a localizar o erro.
3 O c o m e ç o d e u m a linha e m e n d a d o no Liste o p r o g r a m a de novo e c o m p a re as
final d a anterior. instruções com as do livro, um a a uma.
4 Falta de p a rê n te se s, vírgula, dois Q u a n d o o jogo term inar, a p a r e c e r á na
pontos, ponto-e-vírgula, ponto ou tela u m a m e n sa g e m (BREAK IN LINE
esp a ç o , e sp e c ia lm e n te nas linhas mais 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
c o m p rid a s. C u id a d o com os p a rê n te se s a p a r e c e no p r o g r a m a (105, p o r exem plo,
duplos. se vocc q u e r incluir um a m e n sa g e m
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 ". O
7 N úm eros e r r a d o s (com zeros a mais,
por exem plo).
\?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 e n tre as linhas 100 e 110), esc re v a PRINT
não tenha m e d o d e introduzir suas e de p o is o texto d a sua m e n sa g e m entre
p ró p ria s a lterações. Não há p e rig o de aspas.
da nific a r o c o m p u ta d o r; se sua idéia não Se o seu c o m p u ta d o r é c a p a z de g e r a r
d e r certo, você p o d e se m pre voltar ao c o re s ou sons, consulte o m anual p a r a
p r o g r a m a inicial. d e s c o b r ir com o fu ncionam as instruções
V ocê p ro v a v e lm e n te terá vo n ta d e de c o rr e s p o n d e n te s e e x p e rim e n te usá-las
m u d a r a v e lo c id a d e d e alg u n s jogos*, nos p ro g ra m a s deste livro.
e sp e c ia lm e n te de p o is q u e estiver

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 uartel-
G 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 PRINT "BOfIBA-RELDGIO"
28 PRINT Imprime o título e as
30 PRINT "ESCREVA O CODIGO" instruções.
40 PRINT "LETRA (A-Z> PARA"
50 PRINT "DESARMAR A BOMBA."
60 PRINT "VQCE TEM 4 CHANCES"
70 PRINT

88 LET C$=CHR$(37+INT(RND*26+1)) Escolhe um número entre 1


“ 9C transforma-o em letra
bdigo secreto") e
ia-a em CS.

Começo de um loop
que faz com que as
linhas de 100 a 140
sejam repetidas 4
90 FOR G=1 TO 4 vezes.
100 INP UT G$ Guarda seu palpite em G$.
110 IF G$=C$ THEN GOTO 210 Verifica se você escolheu a
letra certa; em caso
120 IF G*<C* THEN PRINT "DEPOIS"? afirmativo, pula para 210.
130 IF G*>C* THEN PRINT "ANTES"?
140 PRINT " DE "?G$ Verifica se a letra correta
fica antes ou depois da que
você escolheu e imprime
uma m ensagem apropriada.
150 NEXT G Fim do loop. Volta para
outra tentativa.
160 PRINT
170 PRINT "BUUUUUUUUflttfl.. . " Imprime isto se você errou
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))
.
Como aumentar o programa Problema
Você pode fazer o computador
imprimir uma m ensagem especial se
você acertar na última tentativa. C om o você modificaria o p r o g r a m a
Acrescente um ponto-e-vírgula no p a r a a u m e n ta r ou dim inuir o n ú m e ro de
f final da linha 220, assim; 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

'uardar na m em ória um
grupo de letras. O
V ocê é um operador de com putador p e d e a você
c o m u n ic a ç õ e s por la ser. S u a V um núm ero de d ific u ld a d e
m issão é intercep tar a s entre 4 e 10. Q u an d o v o cê
m e n sa g e n s dos robôs e transm iti- entra com a resp osta, as
la s para o Q u a rtel-G en era l. Um a letras a p a r e c em n a te la e
m e n sa g e m d e c isiv a em có d ig o lo g o d e sa p a r e ce m .
e stá sen d o e sp e r a d a . S e con segu ir M em orize-as e entre com
tran sm iti-la corretam en te, o e la s no com p utad or, na
a ta q u e dos robôs será r e ch a ça d o . m esm a ordem em que
N este jogo, v o cê p recisa 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 CLS- L im p a a te la .
20 PRINT "MENSAGEM DECISIVA"
38 PRINT
40 PRINT "DIFICULDADE? (4-10)" Pede um "número de dificuldade"
50 INPUT D J----e 9uarda emD’
60 IP D<4 DR D>10 THEN GOTO 40 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
70 LET M$="“- •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 .

30 FOR 1=1 TO D O c o m p u t a d o r e x e c u t a e s te loop D


90 LET M$=f1t+CHR$ ( INT (RND*26+38)) - v e z e s. De c a d a vez, e s c o lh e u m a
180 NEXT I __ 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.
118 CLS -i
—L im p a a te la e d e p o is im p r im e a
120 PRINT "ENVIE ESTA flENSAOEFi:" f m ensagem .
130 PRINT
140 PRINT n$ J 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
150 FOR 1=1 TO D*8 --d u ra n te um tem po q u e d e p e n d e
168 NEXT I d e D.
170 CLS------------------- - L im p a a t e la no f in a l do loop d e
130 INPUT Nt- espera.
190 IF N$=M$ THEN GOTO 24 0 ----- —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.
200 PRINT "VOCE ERROU" - V erifica se s u a m e n s a g e m é i g u a l
210 PRINT "A MENSAGEM ERA:" a q u e e s t á e m MS; e m c a so
220 PRINT M$ a f ir m a tiv o , p u l a p a r a 240.
230 GOTO 268 — C h e g a a q u i se vo c ê e r r o u e im p r im e
240 PRINT "MENSAGEM CORRETA" a m ensagem
258 PRINT "A GUERRA TERMINOU" c o r r e ta . /" H e p a r e q u e o'
^TK-83 u s a um
260 STOP c ó d ig o d if e r e n te
p a r a a s le tra s.
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
Todos os outros
os o u tro s c o m p u t a d o r e s , f a ç a a s m ic ro s u s a m o
m u d a n ç a s a b aix 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 P r o b le m a
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 . Como você modificaria o
P a r a isso, s u b s t i t u a a l i n h a 90 por: programa para fazer a mensagem
90 LET MS = MS + CHRS(INT(RND*43 + 21)) ficar mais tempo na tela?
90 LET M$ = M$ + CHR$(INT(RND(1)*43 + 48))
90 LET MS= MS + CHRS(ll\lT(RND(0)*43 + 48))
90 LET MS = MS + CHRS(INT(RND*43 + 48))
Duelo 10 CLS
Vocês estão de costas um 20 PRINT "DUELO"
para o outro. Caminham 30 PRINT "VOCES ESTÃO PRONTOS
dez passos, dão meia- 40 PRINT "UAO DAR 10 PASSOS..
volta e sacam as armas. 50 FOR 1= 1 TO 10 ' _____________
Quem será mais rápido no 60 PRINT I
gatilho? 70 NEXT I
O computador imprime 80 PRINT
os números de 1 a 10 para 90 FOR 1=1 TO RND*200 '
representar os 10 passos, 100 NEXT I J
íaz uma pausa e imprime 110 IF INKEYÍO"" THEN DOTO 160
| 1. ELE SACOU... Você deve
apertar uma tecla 120 PRINT "ELE SACOU......... "í J —
^ (qualquer tecla) no 130 FOR 1=1 TO 5
momento em que aé* 140 IF INKEYÍO"" THEN GOTO 190
palavras aparecerem na 150 NEXT I
j, tela. Se for
süficientemente rápido.
•^ conseguirá derrotãr seu
PARA 0
TECLADO ®

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
Como mudar a 65 FOR J=1 TO 300 : NEXT J
velocidade do jogo 90 FOR 1=1 TO RND<1>*1000
Para mudar o tempo de 90 FOR 1=1 TO RND(0)*1000
que você dispõe para •110 IF PEEK(-16384>>127 THEN GOTO 160
apertar uma tecla, basta 130 FOR 1=1 TO 20
mudar o último número da 1130 FOR 1 = 1 TO 50
linha 130. Quanto menor o 140 IF PEEK(-16384>>127 THEN DOTO 190
número, menor o tempo.

Como tornar o jogo mais difícil


Para incluir a possibilidade de você 220 IF RND > .3 THEN GOTO 190
errar o tiro, faça as seguintes mudanças 220 IF RNDI1) > .3 THEN GOTO 190
Na linha 140, mude 190 para 220. 220 IF RND(O) > .3 THEN GOTO 190
230 PRINT "E VOCÊ ERROU"
Acrescente as seguintes linhas: 240 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
18 PRINT "BATALHA RO OESERTO" en tre -90 e 90 p a r a a
28 LET T=INTíRND*ÍSÍ)-98 - - - ------- d ir e ç ã o .

38 LET D=RND-- - - - - - - - - - - - - ____ 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
48 POR 6=1 10 5 c a s te lo .
58 PRINI "DIRECAO (-98 A +98) ?"
68 1NP0T 11 ------- P e d e s e u s p a lp it e s e os
78 PRINT -ELEVACAO 18 A 98) ?■ g u a r d a e m TI e B.
88 INPUT 8 U sa o s e u â n g u lo d e
98 LEI D1=SIN(2*(B/188*3.Í416)) - ------- 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 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
118 PRINT "fllSSIL CAIU " im p r im e u m a m e n s a g e m
128 IF T K T THEN PRINT UA ESQUERDA “ ) a p r o p r ia d a .
138 IF T D T THEN PRINT “A DIREITA
148 IF A8S(DI-D)>.05 AND T 1 0 T THEN PRINT "E ■; -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
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 erc o rr eu co m o n ú m er o
p a r a ná o m u d a r de linha. e s c o lh id o n a lin h a 30.

158 1F D - 0 D . B 5 ÍHÈF7RIKI “M I E S " ; In fo rm a s e o m ís s il


168 IF 01~D>.85 THEH PRINT “DEPOIS"; ------------- c a iu a n te s ou
í78 PRINT d e p o is d o a lv o .
1S8 NEXT G
198 PRINT "RISSEIS
1 ACABARA»" ■C h e g a a q u i s e v o c ê
288 PRINT “ROBOS
1 RESISTIRA»" p erd eu .
218 STOP
228 PRINT "íBUUUUUUIMR*"
' -C h eg a a q u i se v o cê
238 PRINT 'HV0CE CONSEGUIU"
248 STOP 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 LET ]=INT(RND(l)*í81)-9§
■ 28 LET T=INTíRNDí8)*lSl)-98
• 38 LET D=RND( 1)
■ 38 LET 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=0-
3 0 F O R 0 = 1 T O 10-
40 LET Rt="

5 0 L E T T = I N T ( R N D * 9 * 1 )■
60 FOR L=1 TO 9
70 IF L =T THE N L ET R $= R í + " 0 "
30 IF L O T T H E N L E T R $ = R t + " . "
90 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 150 PRINT "ERROU"
maior inimigo, o Barão 160 GOTO 190
Traidor. Você é um dos 170 PRINT "NO ALVO"
arqueiros do Rei e neste exato
momento está escondido nos 130 LET S =S fi ■
arredores do castelo do Barão, 190 N E X T G.
tentando atingir os soldados 200 PRINT "VOCE ACERTOU "JS?" EM 10"-
que se encontram no interior 210 STOP
do castelo. A listagem acima é para o TK-83. Para
O computador imprime uma os outros computadores, faça as
fila contendo oito pontos e um mudanças abaixo.
0. As teclas de 1 a 9
correspondem à posição do 0 58 LET T=INT(RND(0)*9+1>
na fila. Você dispõe de pouco 50 LET T = I N T ( R N D ( 1 )*9+l)
tempo para apertar a tecla 110 F O R 1=1 TO 60
certa e atingir o 0 antes que 118 FOR 1=1 TO 90
ele desapareça. 115 LET 1$=""
Quantos dos soldados do 120 IF P E E K ( - 1 6 3 8 4 » 1 2 7 T H E N G E T 1$
Barão será caoaz de derrubar?
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
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.
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.
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 PRINT "INVASAO DOS ROBOS" I n ic ia a c o n t a g e m d e a c e r to s
20 LET H=0 - - - - - - - - - - - - - - - - - - e m zero.
38 FOR T=i TO 25 - - - - - - - - - - - - C o m e ç o d e u m loop d e 25
►40 FOR 1=1 TO I N T C R N D * 3 0 + 2 0 ) ten tativ as.
50 NEXT I -E sp e ra v ariáv el.
► 60 L E T f i = I N T ( R N D * 2 0 > ->- - - - - - E s c o lh e u m a p o s iç ã o n a t e la .
►78 L E T D = I N T ( R N D * 1 5 > -I ■E sc o lh e u m c a r a c t e r e .
► 80 L E T P Í=CHRÍ( I N T ( R . N D * 5 3 + 1 1 )) - L im p a a t e la .
► 90 C L S -- - - - - - - - F a z o c u rso r d e s c e r , l i n h a
100 F O R J = 0 TO D -por lin h a, a té c h e g a r à lin h a
110 PRINT n ú m e r o D (q u e foi e s c o l h i d a
120 NEXT J n a l i n h a 70).
130 P R I N T T A B (A )?P $ - - - - - - - - - - - - - - - - - F a z o c u rso r se d e s lo c a r A
140 F O R 1=1 TO 15 e s p a ç o s e im p r im e o
150 LET R$=INKEYÍ c a r a c t e r e e s c o lh id o n a l i n h a
160 IF R $ = P $ T H E N G O T O 2 1 0 - - - - 80.
170 IF R í - O " " T H E N G O T O 1 90 --- "V erifica se v o c ê e s tá
1S0 NEXT I __ a p e r t a n d o a l g u m a t e c l a e se
190 PRINT "ERROU" é a t e c l a c e r ta . Em s e g u i d a ,
200 GOTO 230 sa lta p a ra a lin h a
210 PRINT "ACERTOU" ap ro p riad a.
220 L E T H=Pi+l _________________________ " A u m e n ta a c o n t a g e m d e 1.
230 NEXT T - - - - - - - - - - - - - - - - - - - - - - - .
240 CLS 1 -V olta p a r a o u t r a t e n t a t i v a .
250 PRINT "DOCE ACERTOU EM 25" - I m p r i m e a c o n t a g e m d e p o is
260 STOP 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 Como aumentar a
|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 . velocidade do jogo
48 FOR 1=1 TO IHTÍRNDíi}*3Ü8*ÍíB0> P a ra torn ar o jo g o m a is
48 FOR 1=1 TO I N F ( R H D í 8 > * 3 8 8 + 2 8 8 ) r á p id o , s u b s titu a o ú ltim o
68,/fi gude RN D pare R N D U ) n ú m e r o d a lin h a 140 por u m
6 8 , 7 8 «ude RHD par a RNDÍS) núm ero m en or.
SB LE T P $ = C H R t U N T ( R N D ( i ) * 5 I U 3 3 ) ) Movimento do cursor
38 LE T F $ = C H R $ I I I i T ( R N D ( 8 ) * 5 í+ 3 ò ) ) T a lv e z h a ja u m a m a n e ir a
38 LET P t = C H R 4 í IJiTíRill)*5S+33->) m a is s im p le s d e m o v e r o
90, 2 4 3 H0f!E cu rsor p a r a u m d e te r m in a d o
.48 FOR 1=1 TO 158 p o n to d a t e la (lin h a s
.45 R í = a " 100-130). C o n s u lte o m a n u a l
158 1F P E E K ( - Í Ã 3 S 4 )> í 27 TH E N GE'! Ri 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 CLS C o m o o p r o g r a m a funciona
20 PRINT "ARRA SECRETA" P ed e um n ú m ero de
38 PRINT "DIGA A DIFICULDADE" d ificu ld ad e, g u a rd a em D e
48 INPUT D v e r if ic a se n ã o é m e n o r q u e
50 IF D < 4 T H E N G O T O 38 4.

60 LEI X=INT<RND*D+1> E sc o lh e n ú m e r o s p a r a X e Y.
70 LET Y = I NT (R N D* D+ 1>
S0 F O R G=1 TO D + 5 --- 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
98 P R I N T - P A L P I T E S P A R A X E Y" e s c o lh id a .
108 I N P U T XI
110 I N P U T Yi P ed e seus p alpites e g u a rd a
128 LET Z=BQR(ÍX-X1)*(X~X1>+ e m X I e Y l.
(Y-Yl)í(Y-Yl))
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.
C o n s u l t a Z p a r a s a b e r se o
1 38 IF Z = 0 T HE N G O T O 288 ” tiro p a s s o u p e r to e im p r im e
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 " u m a m e n s a g e m . {Se Z é
1 5 0 IF Z > 3 T H E N P R I N T " P A S S O U L0NGE'1_ zero, voc ê a c e r t o u n o a lv o .)

160 NEXT G ■F im d o loop. V olta p a r a


outra ten tativ a.
178 PRINT "OS ROBOS VIRAM VOCE" - C h e g a a q u i se v o c ê e s g o to u
180 PRINT "AHHHHHHHHHHHH..... " a s te n t a t i v a s .
198 STOP
288 PRINT "VOCE VENCEU DEPOIS"
218
220
PRINT
STOP
"DE "IG?" TENTATIVAS • 1 ■ C hega a q u i se vo c ê a c e r t o u ^
no a lv o .

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 I P ro b le m a
m u d a n ç a s ab aix o . 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 :
#10 HOME
#60 LET X=INTÍRND(1)*D+1) 1 p o n to c a d a vez q u e o tiro
p a s s a r p e rto .
B60 LET X=INT(RND(B)$D-t-l)
10 p o n to s c a d a se você
• 70 LET y=INT(RND<l)*D+Í>
a c e r t a r no a lv o .
B70 LET Y=INT(RND(0)*D+1)
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.
Como o programa funciona
10 CLS
20 PRINT "FUGA" 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.
30 LET F=INT(RND*100+1>
40 LET L=1 G u ard a 1 e m L e H. E ssas v a r iá v e is
50 LET H=1 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.
60 FOR G=1 TO 5
76 PRINT "PALPITE "? -C o m e ç o d e um loop d e 5 ten ta tiv a s .
80 INPUT F1
■P e d e a v o c ê um p a lp ite e g u a r d a e m
90 IF ABSÍF-Fl)<5 THEN GOTO 290 F l.
100 IF F—F1>40 THEN GOTO 170----
110 IF F1 - F)•40 THEN GOTO 230 — 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
120 PRINT "NENHUM EFEITO" para imprimir VOCÊ CONSEGUIU.
130 NEXT G
140 PRINT "VOCE DEMOROU DEMAIS" -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.
150 PRINT "A FREQUÊNCIA ERA ";F
160 STOP Pula para 230 se o s e u p a lp ite está
170 IF L=2 THEN GOTO 210 m a is d e 40 a c im a d e F.

180 PRINT "GRAVE DEMAIS.. .CUIDADO" C h e g a a q u i se o se u p a lp ite está


190 LET L=2 r a z o a v e l m e n t e próxim o d e F e volta
200 GOTO 130 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
210 PRINT "O EDIFÍCIO DESABOU" correta.
220 STOP
230 IF H=2 THEN GOTO 270 ' 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
240 PRINT "AGUDO DEMAIS...AI" co m p u tad o r im p rim e u m a
250 LET H=2 a d v e r tê n c ia , faz L ig u a l a 2 e volta
260 GOTO 130 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
270 PRINT "SUA CABECA DOI. . .DESISTA" informa q u e v o c ê p erd eu .
230 STOP
290 PRINT "VOCE CONSEGUIU" -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á
300 STOP 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 .
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>
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
E scolh e um n ú m ero entre -5 e +
20 PRINT "AVIAD PIRATA" para su a v e lo c i d a d e e m r e la ç ã o
30 LET V=INT(RND*ll-5>- pirata e g u a r d a e m V.

Escolhe um n ú m ero p a ra su a
40 LET 5=-INT(RND*3+l>- 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

50 IF ABS(3)>20 THEN GOTO 230 ------- 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,
160 CLS p u la p a ra 230 para informar q u e v o cê
70 PRINT "VOCE ESTA "f o p erd eu de vista.
80 IF S<0 THEN PRINT "ATRAS"
90 IF S>0 THEN PRINT "A FRENTE"
Verifica os v a lo r e s d e S e V e
100 IF S=0 THEN PRINT "JUNTO" im p rim e su a p o siç ã o e v e lo c i d a d e em
110 PRINT "SUA VELOCIDADE E “ í r e la ç ã o ao pirata.
120 IF V>0 THEN PRINT "RAIOR"
130 IF V<0 THEN PRINT "flENOR" Verifica q u a l a te c la q u e v o c ê está
140 IF V=0 THEN PRINT "IGUAL" — 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
150 LET I*=INKEY* v e lo c i d a d e de 1. S e é F e se S = 0 (isto
168 3F I$="A" THEN LET V=V+1 é, 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 é
170 IF I*="D" THEN LET V=V-1 zero e v o c ê a p erta F, n a d a a c o n te c e .)
180 IF I$="F" AND 8=0 THEN GOTO 250
-Loop de e s p e r a .

-Volta a 50 p a ra repetir.
200 FOR. 1= 1 TO 2B '
210 NEXT I 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
220 GOTO 5 0 ---------------------------------------- _a v e lo c i d a d e é m en or q u e 2
230 PRINT "DOCE O PERDEU DE DISTA" (ign o ran d o o sin a l). Em ca so
248 GOTO 330 afirm ativo, p u la para 290.
250 IF ABS( V><2 THEN GOTO 2 9 0 -------- Im prim e u m a m e n s a g e m se a
260 PRINT "DOCE SO CONSEGUIU" “ - v e l o c i d a d e era maior q u e 2 q u a n d o

r 270
230
290
300
310
PRINT "ASSUSTA-L.O"
GOTO 40
IF RND>.7 THEN GOTO 3 2 0 ------
PRINT "DOCE O ABATEU"
GOTO 330
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 ,
320 PRINT "ELE ATIROU PRIP1EIRO" d e acord o com o r esu ltad o do sorteio
338 STOP 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 145 Ií="“
38 LET V=INT(RND(l)*li-5) 158 1F PEEKÍ-Í63S4)>Í27 THEN 6ET TI
38 LET l/=lHT(RNDíBÍ*lí-5) 288 FOR 1=1 TO 288
48 LET S=-I1IT(RHD ü ) í 3+I) 2?B IF RND(0)>,7 THEN GOTO 328
48 LET S=-lNT(RNDí8)i3tl) 298 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, P ro b le m a
acrescente as linhas abaixo. Assim
você poderá ver na tela a posição
relativa dos dois aviões. O sorteio da linha 290 é favorável a
você. Sabe como mudá-lo para que
195 IF A8S(S)>18 THEN GOTO 288 você e o pirata tenham a mesma
196 PRINT TA8í»/2)í“ELE” probabilidade de vencer?
197 PRINT TA8(S+ k /2)í"VOCE"
Substitua w pela largura da tela.
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
PR1HT "BOHBAROEIRD aUPERBüNICü" variavel indexada, que pode guardar
<8 DIB 8(5) - - - - - - - - - - - - - - - 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).

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
40 LEI S-8 zerc.

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
58 FOR G=18 TO m a l (G = 10 d a p r i m e i r a vez, 9 d a
i STEP -i 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=í 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
►iití ÜLS M p a r a o valor a pr o p r ia do .
120 FOR 1=1 TO 5
130 PRIMT Íí I m p r i m e os 5 n ú m e r o s n a t e l a n a
148 FOR J=1 TO 8 U ) 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 Veri f i ca se vo c ê e s t á a p e r t a n d o u m a
178 PRIMT tecla: em caso afirmativo, vai p a r a
188 HEXT I 270.

►28RLET I^INKETÍ 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
210ÍF ISO:"" THEN GOTO 278 ------- - t e m p o , i m p r i m e TARDE DEMAIS e
228HEXT I — vol t a p a r a o u t r a t e n t a t i v a .
,238PRINT "TARDE DEflAIS" —
'248FOR J=1 TO 18 ---- —Verif ica se v o c ê a p e r t o u a t e c l a c e r t a;
258 HEXT J e m c a s o a f i r ma t i v o , a u m e n t a a
268 BOTO 288 — c o n t a g e m d e 1.
| | IF THEH LET S=S+1 ... ~ - V o lt a p a r a outra tentativa,
298 PRINT “VOCE ACERTOU “IS;" EH 18"
380 PRINT "ALVOS PREFERENCIAIS" —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
3i0 IF 3-18 THEN PRINT "VOCE E ÜH HERÓI" tentativas.
328 IF S<19 THEN PRINT “PENA...VOCE FRACASSOU"
338 STfiP
A listagem acima é para o TK-83. Para
os outros computadores, faça as mudanças abaixo.
• 18,118 H0»E « 1 9 5 ü = ' ,n
• 88 LET B(I)=INT(RNBÍ1)*10+1) • 2 8 0 IF PEEK(-163S4)>127 THEN SET
■ 88 LET B(I)=IHT(RND(8)*18+1) ■ • 2 4 8 FOR J=1 TO 488
196 FOR 1=1 TO 0*38
C o m o mudar a velocidade
do jogo
Problema
Para ter mais tempo para apertar
uma tecla, troque o último número
da linha 190 para um maior. Você sabe como mudar o programa
Quando tiver mais prática, para aumentar o número de alvos?
diminua o número da linha 190.
■ Verifique até onde consegue chegar.
"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, lÉÉP
mas não aos icebergs; assim, você
deve fazer tudo para que se
choque com um deles.
O computador mostra a posição \ 1
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 ''mfm j
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?

Como o programa funciona


18 PRINT "ICEBERG0
28 DIR S ( M ) - - - ■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.

•38 LET N=ÍNTiRND*8+4) 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.

48 FOR 1=1 IO N 23 é o c ó d ig o p a ra o a ste r isc o no


5B LET B(INT(RHDc8+i),IHT(RND»A+1))=23 ■TK-83, O co m p u ta d o r r e p e te o lo o p N
68 NEXT I 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 .
78 LEI SX=IHT(RHD*S+Í)
80 LET SY=INT(RND*3+1)
98 IF BíB X, SY ) OB THEN 6010 78 •C o lo c a o n a v io do in im ig o no m a p a
188 LEI 8(SÜ,SY)=43 p ara c o m eça r o jogo. 63 é o c ó d ig o
118 LET YX=INTÍRND*Ê+i) p a ra a letra Z no TK-83. A lin h a 90
128 LET YY=INT(RND*â*-I> v er ific a se e x is te um ic e b e r g na
138 IF B (YX,YY><>B THEN GOTO 110 p o siç ã o e sc o lh id a ; e m c a so
148 LET 9ÍYÍ,YY)=é2 a firm a tiv o , e s c o lh e outra p o siç ã o .
158 CLS
168 FOR Y=1 TO 8
178 FOR X=1 TO 8 C o lo ca o se u n a v io no m a p a . 62 é o
138 IF 805,15=8 THEN GOTO 218 c ó d ig o p a ra a letra Y no TK-83.
198 PRINT CHR$Í8(X,Y5);
288 GOTO 228
218 PRINT V ; Im prim e o m a p a com a s p o siç o e s
228 PRINT “ u; co rren tes d os n a v io s e ic e b e r g s .
238 NEXT X
248 PRINT
258 NEXT Y
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 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 .
278
PRINT “DIRECrtO <N,S,L,0) G u a rd a su a d ir e ç ã o e m DS.
238
INPUT 0$
C a lc u la su a n o v a p o s iç ã o , to m a n d o
298
LEI YY=YY+<D$=HSU ANO YVOS)— I c u id a d o para q u e n ã o c a i a fora do
388
LEI YY=YY-(D$=‘W ANO YYOl) -
318
LET YX=YX+(D$=HLMAND YXOÍ) mapa.
328
LEI YX=YX-(DÍ=“0" ANO YXOi)__I 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
▲ ■ • 338
IF B(YX,YY)=63 THEN GOTO 588
a B*348 IF 8(YX, YY)=23 THEN GOTO 688 3 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.
• 358 LET B(YX,YY)=62 L C o lo c a o s ím b o lo do s e u n a v io na
360 LET 8(SX,SY)=8 —T n o v a p o siç ã o .
37i
388 i m rnm h 3
■•398 IF fi(SX,SY)=6’ THEN GOTO 588—1__ _
C a lc u la a n o v a p o s i ç ã o do n a v io
in im ig o .
IF 8(SX, SY)=23 ~ ‘ 788_J^-
THEN GOTO Verifica a n o v a p o s iç ã o do n av io
▲■•418 LET B(SX,SY)=63 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
428 GOTO 158- afirm ativo , p u la para imprimir u m a
588 PRINT "VOCE FOI APANHADO1' m e n s a g e m a p rop riad a.
518 GOTO 888
688 PRINT "VOCE BATEU NUA ICEBERG" ■C o lo ca o s ím b o lo do n a v io in im ig o n a |
618 GOTO 888 n o v a p o siçã o .
788 PRINT "DOCE ESTA SALVO" Volta a 150 p a ra co m e ç a r u m a n o v a
718 PRINT “ELE BATEU NUA ICEBERG" jo g a d a .
888 STOP
A lista g e m a c im a é para o TK-83.
Para os outros com p u tad ores, fa ça
Os com putadores podem
a s m u d a n ça s a b a ix o . verificar se u m a expressão é
• 30,58,70,88,118,12b «ude RND para RND(l) 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 é
■38,58,78,38,118,128 «ude RND para RND18) verdadeira, alg u n s
▲■•58,348,488 «ude 23 para 42 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
▲ ■ • 188,338,418 «ude 63 para 98 290-320 t ê m q u e s e r m u d a d a s
▲■•148,358,398 «ude 62 para 89 e m a l g u n s m icros.

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)
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 CL3
20 PRINT "MURO DO BRUXO"
30 PRINT
40 PRINT "QUER INSTRUÇÕES?"
50 INPUT 1$
60 IF I$(1)="S" THEN GOSUB 740
78 PRINT "DIFICULDADE?"
80 PRINT "<5=FACIL, 1=DIFICIL)"
90 INPUT Q
100 DIM W (3,8)
110 DIM E (3>
120 FOR Y = 1 TO 3
130 FOR X=1 TO 4
140 LET W (X ,Y )=20
150 NEXT X
160 NEXT Y
170 LET 2=0
ISO FOR C=1 TO 3
190 LET D = I N T ( R N D * 3 0 + 2 1 >
200 GOSUB 430
210 IF Z=1 THEN GOTO 1150
220 PRINT "DOCE ESTA A "?D;" METROS DE DISTANCIA"
230 LET W = I N T < R N D * 4 1 >-20
240 IF W=0 THEN PRINT "SEM VENTO"
250 IF W<0 THEN PRINT "VENTO PARA A DIREITA"
260 IF W>0 THEN PRINT "VENTO PARA A ESQUERDA"
270 PRINT "DIGA A ELEVACAO (1-90)"
230 INPUT A
290 PRINT "DIGA A VELOCIDADE"
• • •
mj !J.
WUr- mm1 WÊfi l|f ■ru™
BM
i IS M » m : T f
tá ê m ‘

! I
300 INPUT V
310 LET A = A / 1 8 0 * 3 . 1416
320 LET 'H=T AN <A) *< D- W)- <5 *(D-W)**2)/<V*C 0S<A>>**2
330 LET H = I N T (H / Q )
340 IF H>0 AND H<9 THEN GOSUB 540
350 IF H <1 THEN PRINT "TIRO CAIU ANTES"
360 IF H<8 THEN PRINT "TIRO CAIU DEPOIS"
■•370 IF R N D > .2 THEN GOTO 200
380 PRINT "O MURO SE MEXEU..-. "
390 NEXT C
400 PRINT "UOCE FOI TRANSFORMADO"
410 PRINT "EM PEDRA"
420 STOP SUBSTITUA ** HA LINHA 320
■ • 430 FOR 1 = 1 TO 30 POR A PARA 0 APPLE E
440 NEXT I POR * PARA 0 TRS-80 E
• 450 CLS PARA 0 TK-S5
460 PRINT
470 FOR Y=8 TO 1 STEP -1
480 FOR X = 1 TO 8
■•490 PRINT C H R f ( W < X , Y ) ) í
500 NEXT X
510 PRINT
520 NEXT Y
530 RETLIRN
540 GOSUB 650
550 LET W(E<H)-1,H)=0
5ó0 IF V * C Ü S (A )>50 THEN LET W (E (H )-2,H )=0
■ • 570 IF R N D >.5 AMD H O 1 THEN LET W<E<1),1)=29
■•580 IF R N D > .5 AND H>5 AND H<8 THEN LET
W(E <H + l)-l,H + 1)=0
590 IF H > 1 THEN GOTO Ó30
Ó00 FOR Y=2 TO 8
■ • 610 IF R N D < .5 THEN LET U <E <Y )-1,Y >=0
620 NEXT Y
630 GOSUB 650
640 RETURN
650 FOR Y = 1 TO 8
660 LET X = 1
670 IF W íX ,Y )= 0 OR X = S THEN GOTO 700
680 LET X = X +1
690 GOTO 670
700 LET E (Y )= X
710 IF X=1 THEN LET Z=1
O Muro do Bruxo (continuação)
720 NEXT Y
73 0 REfURN
74 0 PRINT "VQCE ESTA ATACANDO 0"
75 0 PRINT "ULTIMO REDUTO DE UM"
76 0 PRINT "BRUXO FAMOSO, QUE"
770 PRINT "ESTA ESCONDIDO ATRAS"
73 0 PRINT "DE UM MURO DE PEDRA."
790 PRINT "CADA PEDRA E UMA"
300 PRINT " V I T I M A DO BRUXO."
310 PRINT "SO VOCE PODE ATACAR"
320 PRINT "E LIBERTÁ-LOS"
330 PRINT "DA MAGIA DO BRUXO."
340 PRINT "VOCE DEVE DESTRUIR A"
350 PRINT "PAREDE USANDO CATAPULTAS,"
330 PRINT "MAS CUIDADO, 0 BRUXO"
370 PRINT "PODE MOVER 0 MURO"
330 PRINT "PARA A FRENTE E PARA"
390 GOSUB 11 1 0
900 PRINT "TRAS, E UMA VEZ OU OUTRA"
91 0 PRINT "REBATER SEUS TIROS"
92 0 PRINT "DE V O L T A . "
93 0 PRINT "DEPOIS DE CADA T I R O , DOCE"
94 0 PRINT "VE UMA PLANTA D O MURO"
950 PRINT "MOSTRANDO OS DANOS"
960 PRINT "QUE JA CONSEGUIU"
97 0 PRINT "CAUSAR."
93 0 PRINT "REPARE QUE HA CERTAS"
99 0 PRINT "PEDRAS QUE PRODUZEM"
10 0 0 PRINT "MAIS DANOS, E TAMBÉM QUE,"
10 1 0 PRINT "QUANTO MAIS DEPRESSA 0"
10 2 0 PRINT "PROJÉTIL ESTIVER SE"
10 3 0 PRINT "MOVENDO HORIZONTALMENTE,"
1040 PRINT "MAIS DANOS VAI CAUSAR."
1050 GOSUB 11 1 0
106 0 PRINT "VOCE SERA CAPAZ DE"
10 7 0 PRINT "DERROTAR 0 BRUXO A TEMPO"
10 3 0 PRINT "DE SALVAR OS MILHARES"
10 9 0 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)
.tffv.»-9m
• 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
Míssil! Como jogar Míssil!

Este jogo é d iferen te dos V ocê d isp õ e d e três b a se s, ca d a


an teriores, p ois u tiliza instruções u m a c a p a z d e lan çar um m íssil.
g rá fica s. Com o e s s a s instruções Ao ver um a v iã o se ap roxim an d o,
variam m uito d e m icro para v o cê d e v e estim ar a su a a ltitu d e e
m icro, a p resen ta m o s um a v e lo c id a d e e lan çar os m ísse is
lista g e m se p a r a d a para c a d a contra e le .
m o d elo . Leia a d escriçã o do jogo Para lan çar um m íssil, b asta
n e sta p á g in a e procure n as apertar u m a te c la qu alq u er.

I
t p á g in a s s e g u in té s a versão
» aprop riad a ao se u com putador.
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 CLS 320 RETURN


20 DIM Y < 3 ) , F <3 > 400 FOR 0=1 TO 3
30 N=1 410 SET < 0 * 3 2 , 4 7 )
40 PS=IN T<RND <0)*3+1) 420 SET ( 0 * 3 2 + 1 , 4 7 )
50 P=INT(RN D<0)*3ó+5) 430 NEXT
60 GOSUB 4 0 0 440 RETURN»
70 FOR I= P S TO 100 STEP PS
80 GOSUB 30 0
90 F$=INK EY$
100 I F F $ = " " OR N>3 THEN 130
110 F ( N )=1
120 N=N+1
130 FOR > 1 TO 3
140 RESET( 3 2 * 0 , 4 ó - Y ( 0 ) )
150 I F F ( 0 ) = 0 OR Y ( 0 ) > 4 5 THEN 190
160 Y (0)=Y (0)+1
170 I F P 0 I N T ( 3 2 * 0 , 4 ó - Y ( 0 ) ) THEN 23 0
180 SET ( 3 2 * 0 , 4 6 - Y ( 0 ) )
190 NEXT
200 NEXT
210 PRINT 0 0 , "ERROU"
220 END
230 PRINT 0 0 , " IM P A C T O ! ! ! "
240 END
300 RESET < I - P S , P > : RESE1 ( I - P S + 1 , P )
310 SET ( I , P ) : SET < 1 + 1 , P)
10 HUÍÍE
20 HGR
30 HCOL0R=3
48 DIM Y < 3 ) , F ( 3 )
50 N=1 : MS = 5
60 PS=INT(RND<1 >*ó+4)
70 P=INT(RND<1 ) * 1 3 5 + 1 1 )
80 GOSUB 40 0
90 FOR I = P S TO 2 6 5 STEP PS
100 X = I - P S : Y = 1 5 9 - P : C=0 : GOSUB 30 0
110 x = i : c= 3 : g o s u b 300
120 F f = " " : I F PEEK<- 1 6 3 8 4 > > 1 2 7 THEN GET F$
130 I F F$ = " ” OR N>3 THEN 160
140 F ( N )=1
150 N=N + 1
160 FOR J=1 TO 3
170 C=0 : GOSUB 35 0
180 IF F (J )=0 OR Y (J >>145 THEN 230
190 Y<J)=Y(J)+M S
200 C= 3 : GOSUB 3 5 0 °
210 X = J * 7 0 -I : Y=P-Y(J)
220 I F X> —1 AND XC15 AND Y > - 9 AND Y<5 THEN 27 0
230 NEXT
240 NEXT
250 VTAB 22 : PRINT "ERROU"
260 END
270 UTAB 22 : PRINT "IMPACTO! ! ! "
280 END
300 HCOLOR=C
310 HPLOT X , Y TO X , Y - 3
< |> 3 2 0 HPLOT TO X + 3 , Y - 2 : HPLOT TO X + 1 2 , Y - 2
330 HPLOT TO X + 1 4 , Y : HPLOT TO X , Y
340 RETURN
350 HCOLOR=C
360 HPLOT 7 0 * J , 1 5 8 - Y ( J ) TO 7 0 * J , 1 5 4 - Y ( J )
370 RETURN
400 FOR J=1 TO 3
410 HPLOT 7 0 * J ~ 5 , 1 5 9 TO 7 0 * J + 5 , 1 5 9
420 NEXT
43 0 RETURN
Míssil!: Versão TK 85 460 FOR J=1 TO 3
470 PRINT AT 2 1 ,8*J;"CAB3"
10 CLS 480 NEXT J
15 INVERSE 0 490 RETURN
20 DIN Y (3) 500 DATA 8,0,0,0,255,255,
30 D IN F(3) 127,63
40 LET N=1 510 DATA 0,252,252,252,
50 LET Í1S=8 255,255,254,252
60 LET PS=INT(RND*6+5)
70 LET P = I N T ( R N D * 140+20)
80 GOSUB 400
90 FOR 1=PS TO 240 STEP PS
100 LEá^C=l : LET X=I-PS
110 GOSUB 308
120 LET C~0 : LET X=I
130 GOSUB 300
140 LET F$=INKEY$
150 IF F$ = "" OR N :>3 THEN GOTO 170
160 LET F (N )=1 : LET N=N + 1
170 FOR J=1 TO 3
ISO LET C=1 : GOSUB 350
190 IF F <J )=0 OR Y (J )>148 THEN GOTO 240
2ü0 LET Y(J)=Y<J)+ivlS
210 LET C=0 : GOSUB 350
220 LET X=J*Ó4-I : LET Y=P-Y(J)
230 IF X>— 1 AND X <12 AND Y<10 AND Y>-5 THEN GOTO 28
240 NEXT J
250 NEXT I
260 PRINT AT 0 , 0 ; "ERROU"
270 STOP
280 PRINT AT’ 0,0; "IMPACTO ! ! !"
290 STOP
300 INVERSE C
310 PLOT X,P
320 DRAW 0,8 : DRAW 3,-6
330 DRAW 8,0 : DRAW 2,-2
340 DRAW -13,0 : RETURN
350 INVERSE C
360 PLOT 6 4 * J + 4 ,Y (J >+4
370 DRAW 0,6 : DRAW -2,-2
380 DRAW 2,2 : DRAW 2,-2
390 RETURN
400 FOR A=65 TO 66
410 FOR B=0 TO 7
420 READ C
430 POKE USR CHR$(A)+B,C
440 NEXT B
450 NEXT A
10 CLS
20 DIM Y ( 3 )
30 DIM F <3)
40 LET N=1
50 LET P = I N T < R N D * 1 9 + 2 > * 2
60 FOR 1=1 TO 4S
70 PLOT I , P
30 PLOT I + 1 , P
90 UNPLOT I - 1 , P
100 LET B$=INKEY$
110 I F B $ = " " OR N>3 THEN GOTO 140
120 LET F ( N )=1
130 LET N=N + 1

140 FOR J=1 TO 3


150 I F F ( J ) = 0 THEN GOTO 190
160 UNPLOT J * 1 Ó , Y < J >
170 I F Y <J ) = 4 2 THEN GOTO 2 1 0
130 LET Y <J ) = Y ( J ) + 1
190 PLOT J * 1 Ó , Y < J )
200 I F P = Y ( J ) AND < J * 1 Ó = I OR J * 1 Ó = I + 1 >
THEN GOTO 260
210 NEXT J
220 NEXT I
230 CLS •
240 PRINT "ERROU"
250 STOP
260 CLS
270 PRINT "IMPACTO"
280 STOP

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 no-
vo 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 Faça o computador
v o cê p od erá usar nos p rogram as parar e esperar
d e ste livro ou em se u s próprios por você
program as.
Ao incluir n o v a s in struções em Se h o u v er m uitas lin h as d e in stru çõ es,
um program a já pronto, v o cê tem talvez você p re c ise in clu ir a sub -ro tin a
d u as opções: utilizar a p e n a s ab aix o , q u e faz com q u e o co m p u ta d o r
lin h a s v a g a s ou num erar d e novo p a re d e e x e c u ta r o p ro g ra m a até você
todo o p rogram a. No se g u n d o a p e rta r um a tecla. Assim , ev itará que
c a so , não se e s q u e ç a d e m udar 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
tod as a s in struções GOTO e
d e lê-las. C o lo q u e um a linha G O SU B
GOSUB.
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
Faça o computador seg u in te sub-rotina:
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 1888 PRINT “APERTE ÜAA TECLA"
im prim a in stru ç õ e s so b re o jogo. P ara 1818 PRINT “PARA CONTINUAR"
isso, basta a c re s c e n ta r alg u m as l i r 1'130 118.1328 IF 1NKEYí= ”11 THEX GOTO 1828
no início do p ro g ra m a , com o no • 1828 GET U
exem plo ab aix o , e c o lo c a r 1838 PRINT
um a su b -ro tin a no final. 1640 RETURN

Faça o computador
'conversar

18 PRÍNT "N0«E CÜ JOGO"


ií PRINT "VOCE QUFR SABER11
12 PRINT "COftO JOGAR?"
15 INPUT 1$ V ocê p o d e p ro g ra m a r o co m p u ta d o r
TKÍ7 1F HÍS)="S" THEN GOSUB 1088 p a ra fazer p e rg u n ta s e a g ir d e a c o rd o
I# 1 IF LEfT$i li, 1 '-"3" IHEN 60SÜB 1888 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
O p ro g ra m a p rin c ip a l e n tra aq u i 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
1888 PR1N1 ‘'VOCE TEU SüE FAZER11 com a letra J:
1818 PRÍNT “0 SEGUINTE : .....“ 1 PRINT "COÍIO VOCE SE LHAflA?"
1??? RETURN 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
V ocê p o d e u sa r q u a n ta s linhas q u ise r 5 PRINT "ESTÁ PRONTO?1'
p a ra as in stru çõ es. Não se e s q u e ç a de é INPUT J*
c o lo c a r um n ú m ero e a p a la v ra PRINT i V IF J K D O - S " ÍHEN GOTO 5
no início d e c a d a lin h a. O n ú m ero de • / IF L EF Tt íJÍ,1K>“S" THEN GOTO 5
c a ra c te re s e n tre asp as d ev e ser m en o r O p ro g ra m a p rin c ip a l en tra a q u i
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 1888 PRINT "DESCULPE.FSTE JOGO E"
linha. Não se e s q u e ç a tam bém de 1818 PRINT "50 PARA PESSOAS"
c o lo c a r um a lin h a RETURN no final da 1828 PRINT "CUJOS NOIÍFS CORECAN"
su b-rotin a. 1838 PRINT "COS A LETRA J"
A qui está um p ro g ra m a em q u e o m an u al do seu m icro. Em certo s casos,
c o m p u ta d o r d esco n fia d e q u e v o cê não v o cê p o d e a c re s c e n ta r um a ú n ic a linha
tem c o ra g e m su ficien te p a ra jo g ar. 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
18 PRIHT "J060 NU1TÜ PERIGOSO" linhas; nesse caso, é m elhor u sa r um a
12 PRINT “VOCE TER CORAGEH" su b -ro tin a.
14 PRINT "DE ENFRENTAR" A lin h a ab aix o m ostra, p o r exem plo,
15 PRINT “0 R0NSTRÜ CABELUDO?" 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
lí INPUT 14
um co m p u ta d o r do tipo TRS-80:
ÍK17 IF I4(1)="S“ THEN GOTO 20
■•17 IF LEFTÍ(I$,l)s"S" THEN GOTO 28
lí PRINT “COVARDE" SOUND 89,188
1? STOP
V ocê p o d e c o m b in a r o p ro g ra m a acim a V ocê p o d e u sar q u an tas in stru çõ es
com a su b -ro tin a d e in stru çõ es, q u iser p a ra g e ra r sons, m as não se
co lo c a n d o as lin h as 11 a 17 do e sq u e ç a d e c o lo c a r um n úm ero no
p ro g ra m a d a p á g in a a n te rio r com o início d e c a d a instru çã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.

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 PRINT "flüER JOGAR DE NOVO ■"
1810 INPtli 14
Ti- ih 26 IF I4íl) = "S" THEN RUN
1028 IF LEFT4(IÍ,1!='!S" THEN RUN
1036 PRINT "0IÍ...ÍCKAU" IMota especial para os
M ude os n ú m ero s das usuários do TK-85
linhas d e a c o rd o
com o seu p ro g ra m a .
Se o seu m icro é um TK-85, talvez
alg u n s dos jogos deste livro sejam
Efeitos sonoros 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
M uitos m ic ro c o m p u ta d o res disp õ em de d im in u ir a v elo cid ad e a p a re c e m na
re c u rso s p a ra g e ra r sons. V ocê p o d e m esm a p á g in a q u e o jogo
u tilizar esses re c u rso s em q u a lq u e r c o rre sp o n d e n te . C om o re g ra g eral,
ponto d os seus p ro g ra m a s. q u an to m aior o n ú m ero q u e você
E x p erim en te, p o r exem p lo , sim ular o u sar no loop d e e sp e ra , m ais lento
ruído d e um a ex p lo são ou fazer com será o jogo.
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
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 P o d e p e d ir novas inform ações.
não p o d e .

‘Pode g u a rd a r info rm 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.

Q u a n d o estiver p la n e ja n d o o
*Pode m o strar os resu ltad o s dos p ro g ra m a d e um jogo, não in c lu a n a d a
cálc u lo s e d e c isõ e s e tam bém o q u e q u e o seu m icro não seja c a p a z de
está g u a rd a d o na m em ória. 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 O passo seg u in te consiste em tra d u z ir o


jo g a r um jogo, v o cê p re c is a sa b e r seu p lan o p a ra a lin g u ag em BASIC.
ex atam e n te com o se rá jo g ad o e q u ais C a d a p a rte do p lan o p o d e c o rre sp o n d e r
serão as re g ra s. C om o o c o m p u ta d o r a v árias linhas d e B A SIC. D eixe
vai n e c e ssita r d e u m a série d e n ú m ero s vagos en tre os nú m ero s das
in stru ç õ e s sim ples e ló g ic a s, é m elh o r linhas do p ro g ra m a , p a ra p o d e r
im a g in a r p rim eiro todo o jogo e d ep o is a c re sc e n ta r m ais ta rd e novas in stru çõ es,
dividi-lo em p e q u e n a s p a rte s. se for n ecessário .
Em se g u id a , v o cê d ev e e sc re v e r to d as E screva um rascu n h o do p ro g ra m a e
as p a rte s do jogo, n a o rd em em q u e c o m ece a testá-lo no co m p u tad o r. O
serão e x e c u ta d a s (escrev a em c o m p u ta d o r é c ap az d e d e te c ta r m uitos
p o rtu g u ê s; a in d a n ão está n a h o ra de erro s d e p ro g ra m a ç ã o e m esm o, em
u sa r BA SIC ). c erto s casos, d e in d ic a r exatam en te
A ilu stra ç ã o ab aix o m ostra o p la n o de o n d e está o e rro . Se o seu p ro g ra m a
um jogo sim ples d e a tira r, q u e p o d e ser não d e r certo logo d a p rim eira vez, não
u sad o p a ra d is p a ra r b a la s d e c a n h ã o d esan im e; " a c e rta r" um p ro g ra m a é um
c o n tra um navio p ira ta ou raios laser p ro cesso lento e tedioso, até m esm o
c o n tra u m a n av e a lie n íg e n a . 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 T ÍT U L O

E 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 Depois que o programa básico estiver
funcionando, você pode aperfeiçoá-lo,
5 ) V ER IFIC A R SE O acrescentando mensagens, comentários,
alvos diferentes etc. Também pode
T IR O A C E R T O U incluir partes dos programas deste livro
nos seus jogos.
6 ) IM P R IM IR UMA Não espere que os seus primeiros
jogos sejam muito movimentados e
MENSAGEM SOBRE O originais. Comece com idéias simples e
RESULTADO DO TIR O esteja preparado para modificá-las se
for necessário. E provável que você
descubra que incluiu alguma coisa no
7 ) VO LTAR PA RA jogo que é muito fácil para uma pessoa
A T E N T A T IV A mas muito difícil para um computador.
Quando adquirir experiência, saberá
S E G U IN T E ^ 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 sub-
rotina. 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.

ASC é u sa d a p a ra o b te r o n ú m ero do c ó d ig o A SC II
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.
gflflBBQl

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).
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 Número Caractere Número Caractere
de código correspondente de código correspondente de código correspondente de código correspondente

32 espaço 62 > 11 B 41 D
33 l 63 o 12 £ 42 E
34 » 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
j *
44 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 Q 30 2 60 w
52 4 82 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

Tabela de tamanhos de tela


Número máximo de Número máximo de
caracteres na horizontal caracteres na vertical
(ou número de colunas) (ou número de linhas)
TRS-80 64 16
TK-83 32 22
TK-85 32 22
Apple 40 25
Tabela de equivalência
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
CL
<D
o,

•o

•a
c
a
o

o
■o
•1

■i
O
O

Q
Q

Q
O
e
3

3
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________ _____________________________________________________________________________________________ _
Escolha um
núm ero ao RND(1)*N+1 RND(N) RND*N + 1 RND*N+1
a ca so entre 1 e N
aoCacasoU^ t r Í e Aae Z CHR$(INT(RND(l)*26 + 65)) CHR$(RND(26)+ 64) CHR$(INT(RND*26 + 65)) CHR$(INT(RND*26 + 38))
Limpe a te la HOME CLS CLS CLS
V erifique a X$ = " "
tecla q ue está IF PEEK(-16384) INKEY$ INKEYf INKEY$
send o ap ertad a___________________> 1 2 7 THEN GET X$
Transforme ASC(”X") ASC("X") CODE ("X") CODE ("X")
caracteres em números (código ASCII) (código ASCII) (código ASCII) (código TK-83)
d e cod igo
Mova o cursor para cim a CALL - 993 ~~ PRINT CHR$(27) PRINT CHR}(11) ~ PRINT CHR$(112)
Mova o cursor para baixo _________ PRINT CHR$(10)_____________ PRINT CHR$(26) PRINT CHR$(10) PRINTCHR$(113)
p a r a ^ e s q u e íd a PRINT CHR$(8) PRINT CHR$(24) PRINT CHR$(8) PRINTCHR$(114)
p a ra V d ^ r eiú í PRINT CHRÍ(21) PRINT CHR$(25) PRINT CHR$(9) PRINTCHR$(115)
caracteres d í ” m a str in g LEFT$(A$,N) LEFT$(A$,N) A $ (l TO N) A $ (l TO N)
caracteres d e um a string ____________ RIGHT$(A$,N) RIGHT$(A1N) A$(N TO ) A$(N TO )
d rm e1oNd rú m a esterin g MID$(A$,N1,N2) MID$(A$,N1,N2) A$(N1 TO N2) A$(N1 TO N2)
Respostas
P ode ser q u e a s su a s resp ostas 155 IF RNDÍ.l THEN GOTO 258
para a lg u n s p rob lem as sejam 258 FRIHT "ELE ATIROU, «AS ERROU"
d iferen tes d a s qu e a p a r e c em a q u i. 2é8 GOTO 98
Isto n ã o im porta, con tan to que
fu n cion em no se u com putador.
A linha 155 p o d e rer RN D (l) ou
Entretanto, verifiq u e se sã o tão
RND(0), d e p e n d e n d o do seu
sim p le s e c o n c isa s com o as
co m p u tad o r.
resp ostas do livro.

Página 11
Batalha no Deserto
Página 5
Bomba-Relógio
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
A lin h a 90 diz ao c o m p u ta d o r q u a n ta s abaixo.
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 175 IF RHD<.05 THEH GOTO 258
d a lin h a 90 p o r um n ú m ero m aior. P ara 258 PRÍNT "ELES VIRAH VOCE...AHHHHHHH!”
d im in u ir o n ú m ero d e tentativas, use
268 STOF
um n ú m ero m enor.

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
Página 7 num ero en tre 0 e 0.999, mas não se
Mensagem Decisiva 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ê.
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
Página 13
in stru ç ã o se g u in te , q u e é lim p ar a tela. O Castelo do Traidor
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 Este e um p ro b lem a m uito d ifícil; não
au m e n ta r o n ú m ero de vezes q u e o loop se a b o rre ç a se não tiver c o n seg u id o
é re p e tid o . P ara isso, b asta tro c a r o resolvê-lo sozinho. De q u a lq u e r form a,
últim o n ú m ero d a lin h a 150 p o r um vale a p e n a e x p e rim e n ta r a so lução no
n ú m ero m aior. 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.

Página 9 55 LET P=IMT(8HD+.5)í4+l


Duelo 57 LET PÍ=CHRMP+5i>
AB*57 LET P*=CHRíÍP+78)
P a ra q u e o c o m p u ta d o r possa tam bém 78 IF L=T THEH LET R$=R$+P*
e rra r o tiro, a c re s c e n te as linhas 18B LET E=S+P
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".
Página 15 Página 21
Invasão dos Robôs Avião Pirata

P ara g a n h a r 100 p ontos p elo s robôs U, P ara fazer com q u e você e o p ira ta
V, W , X e Y e 10 p o n to s p elo s outros, tenham a m esm a p ro b a b ilid a d e d e
la ç a as m o d ificaçõ es ab aix o . 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 23
Bombardeiro Supersônico

P a ra au m e n ta r o n ú m ero d e alvos,
Página 17 tro q u e o 5 d as lin h as 30, 70 e 120 p o r
Arma Secreta 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 .
Página 25
15 LET S=8 "Iceberg”
145 IF Z<=3 THEH LET S=S+1
198 BOTO 217 V ocê p o d e a u m e n ta r o tam an h o do
215 LET S=S+18 m apa tro c a n d o o 8 d as lin h as 20, 50,
217 PRIHT "VOCE FEZ “JS? n PONTOS' 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,
Página 19 tro q u e o 4 na lin h a 30 p o r um n ú m ero
m aior.
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 FOR R=i TO 3
25 PRINT “ROBO ':R
388 NEXT R
318 STOP
T ítu lo orig in a l inglês EDITO RA LU TÉC IA LTDA.
C O M P U TE R B A T T LE G A M E S Rua A rg e n tin a 171 —
C o p y rig h t © 1982 by 20921 Rio de Ja neiro, RJ —
U sborne P ublishing Ltd. Tel.: 580-3668
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 literária desta tra d u çã o
em to d o o m u n d 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 Um guia passo a passo de 13 programas fascinantes e


melhor compreendermos os programação para os ao mesmo tempo simples,
microcomputadores — absolutamente iniciantes. para todo tipo de
como trabalham e o que Apresenta as diferentes microcomputadores; Jogos
fazem, apresentando idéias linguagens e aprofunda no Intergaláticos, Módulo Lunar,
de coisas que podem ser BASIC, incluindo pequenos Viagem ao Futuro,
feitas com o micro. programas, simples e Salvamento no Espaço e
Apresenta um utilíssimo guia divertidos. Profusamente muitos outros, com
comparativo dos diversos ilustrado a cores. respostas dos problemas.
micros existentes no

r-PROGRAMASOCJOGOSDf-,

\m w i

13 listagens de programas
Introduz o leitor na de jogos, para serem Um verdadeiro caderno a
programação BASIC, através “ rodados” nos micros cores de problemas e
de exemplos didáticos, e é pessoais mais difundidos no exercícios, com jogos e
sobretudo indicado ao jovem Brasil. Muito útil para quebra-cabeças , ideais
que começa a programar. ensinar o leitor a para todo curso de
Substitui com vantagens os desenvolver seus próprios programação em BASIC.
manuais dos fabricantes. programas. Além disso, é Todas as respostas e
Apresenta dezenas de dicas um passatempo fascinante. explicações estão incluídas,
utilíssimas para aprimorar a para ajudar a esclarecer
técnica de programação. todo e qualquer problema.
PROGRAM AS DE JOGOS DE GUERRA LUTÉCIA 92326/8

Você também pode gostar