You are on page 1of 24
Wd ‘i \ a ‘ im Ty if i Hii lal g = : ie i) Ff 7 F é - PROGRAMACAO DE JOGOS - CODIGO DE MAQUINA +H ao 7 eV Ne Xela NESTE NUMERO MARQUE O TEMPO E OS PONTOS Como fazer para tornar seus jogos mais emocio- nantes. A funcao da cronometragem e da conta- gem de pontos. Jogue o jogo do campo minado @ aprenda a montar um placar. O relégio interno, do computador. Como salvar um péra-quedista da acao destruidora de um tanque........... 61 ORGANIZE AS SUAS COLECOES Vocé costuma colecionar selos, discos, borbo- letas ou revistas de histérias em quadrinho? Sai- ba como trabalhar com arquivos e coloque em ordem suas colecées, programando 0 computa- dor. Aprenda a armazenar informacées..... 68 AS PLACAS DE SINALIZACAO Sinais de transito e declaraces GOTO e GOSUB. Programas para calculo, adivinhacao de nomes e jogos de dados. O que sao sub-rotinas. Quan- do e como criar desvios num programa. Evite ci ladas na programagao com GOTO ........... 76 PLANO DA OBRA. NPUT” é uma obra editada em fasciculos semanais, e cada conjuntode 5 fasciculoscompde um volume. A capa para enca ernagao de cada volume estard a venda oportunamente, COMPLETE SUA COLECAO: Exemplaresatrasados, até ses meses aposoencerramentadacolesdo,poderio ser comprados a prevosatualzados, daseguinte forma: Pessoalmente — por ‘meio desu jornsleir ou drigindo-s a0 distibuidor local. eujoenderevo po eraser faciimenteconsesuido junto a qualquer jornalero de sua cidade Em ‘So Paule ox endereso sa Rua Brigadeto Tablas, 773 (Cerro, Av Industral 117 (Santo Andre)e no Riode Jane: RuadaPassagem, 93 (Bovafogo) 2 Por carta ~ Poderio ser soisiados exemplars atrasados tamiben por aa, gue deve ‘Screnviada para DINAP — Distibuidor Nacional de Publicagbes_— Nurmeros ‘Avrasados Estrada Vetba de Osaso, 132 larch Tereza) ~ CEP 03000. Osasco— Sto Paulo 3. Por telex Uulize on (O11) 33670 ABSA. Em Porta 9s pedidos devem sr feos Distibuidora Jardim de Publicacdes Lt Gua-Pau Vara, Azinhagade Fetal 2688,Camarate Lisboa; Tel 2572542 SVaparad $7 ~ Telex $5069 JARLISP: ‘io eve pgamento antec. Oatendimento ser feito pelo remboso posal ‘eopagamento,ineuindo as espests potas, dever ser efetuado apse ear dencomendama Agénca do Correo. Alenlo: Aposseismeses doencerameno oN Todo jogo de acdo realiza algum tipo / de contagem de pontos ou de tempo, de modo a tomar a competicéo mais emocionante. Nesta licéo vocé aprender como fazer isso com a ajuda de programas bem simples. Quase todos os jogos de computado res precisam de alguma forma de mar (0 de pontos ou de cronometragem —ou ambos. Sem eles vocé nao podera saber se est se saindo bem no jogo, se esta melhorando, ou quem ¢ 0 melhor jogador. Além disso, sao esses elemen- tos de medida de desempenho que dao ‘raga aos jogos de computador. Seria possivel, evidentemente, obri- gar alguém a sentar-se 40 seu lado ¢ fi- car contando os disparos que vocé faz. A melhor solucdo, no entanto, ¢ progra- mar 0 computador para fazer isso por vocé. Umas poucas linhas a mais no programa dardo cabo dessa tarefa, nao importa a complexidade do esquema de marcagdo de pontos. Da mesma forma, no existe neces- sidade de recorrer a um crondmetro pa- ra marcar o tempo. Como se viu nos programas para 0 jogo de labirinto (pag. 46 a 52), quase todos os tipos de com- putador tém um relégio embutido, que ode ser utilizado para melhorar seus jo- B05 (a excecio € o Apple II, que precisa de uma placa especial), Ci) Para que voct possa ver como mon- tar esquemas praticos de contagem e cronometragem, apresentamos a seguir um jogo adequado a todas as maquinas, com excegdo das compativeis com 0 ZX81, e ao qual acrescentaremos pro- gressivamente todas as rotinas necessa- rias. Os esquemas so simples e podem ser colocados também em outros jogos. ‘© jogo é chamado Campo Minado, enele voce é um comandante de tanque cuja missio é resgatar os para-quedistas que esto pousando imprudentemente em um campo minado. Por onde quer que passe, o tanque corre o risco de de- tonar uma mina escondida ao acaso pe- Jo computador. Assim como em campo de bataiha real, as minas sao invisiveis; portanto, mova-se com cuidado! © tangue (apenas um caractere #, infelizmente, pois voc® ainda ndo apren: deu tudo sobre combinar graficos e mo- ‘vimentos em um programa BASIC) exe- cuta movimentos por meio das seguin- tes teclas: Z para a esquerda, X para a direita, P para cima e L para baixo. O mago do programa esta na rotina de movimentagao de um caractere na tela estudada numa ligfo anterior. ‘Quando voct digitarerodarestasegao do jogo vera que ele ainda nao esté com- pleto, pois nada acontece depois que 0 pira-quedistaéresgatado. Apenas otan- ue continua a vagar, sem rumo, através dattela. O programa deve serinterrompi do pressionando-seasteclas , ou , ouvoctte” 4 que esperar até que o tanque detone ‘uma mina escondida a0 acaso. Nesse mo- mento, 0 jogo terminard. Mas no se preocupe, essa situagio melhorard tiolo- Bo voct acrescenteasrotinasdecontagem cronometragem que se seguer. 50 LET po-210 60 cis 70 PRINT €256, STRINGS (32,"-") 90 LET x=RND(256)-1 110 IF XC>PO THEN PRINT ex,70" ELSE coTo 90 120 PRINT €P0,747; 130 Let Le-Po 140 IF PEEK (340)=247 THEN LET O=P0-1:G0TO 190 150 IF PEEK (338)=247 THEN LET O=POt1:coTO 210 160 IF PEEK (336)=251 THEN LET o=P0-32:G0T0 220 170 IF PEEK (342)=253 THEN LET 90+32:G0TO 220 180 GoTo 140 190 TF (LP AND 31)=0 THEN LET o=Le 200 Goro 220 210 TF (PO AND 31)=0 THEN LET P O-tP 220 IF PO>255 OR POCO THEN LET PO=LP:GOTO 140 230 PRINT @LP,” 240 PRINT @P0,7 47: 250 LET M=RND(256) -1 270 TF M=PO THEN PRINT @PO." * PRINT €130,"B00M!!! VOCE ACERTO U-UMA MINA!” :S70P- 310 Goro 130 O movimento do tanque pela tela & controlado pelas linhas 140 a 170, que verificam quais foram as teclas pressio- BF nadas (veja a pag. 33, se nao se lembra de como isso € feito). A linha 220 testa I PO > 255... para manter o tanque no alto da parte central da tela, Ora, a it- ma locagdo de tela no alto da parte cen- tral do video € 255; assimoo IF... impe- de que o tanque avance abaixo da linha pontilhada, desenhada pela linha 70, Esta ultima traga a linha através da tela, utilizando. uma nova funeao — STRINGS. OSTRINGSG2,""~"),como ‘aparece na linha 70, diz a0 TRS-Color para desenhar um cordao (string, em in- les) de 32 travess6es (se voc® quisesse dez pontos de interrogacao deveria uti- lizar STRINGS(O,"?”), ¢ assim por iante). O lugar em que 6 para-quedis- ta cai € escolhido por um nuimero alea- t6rio na linha 90, e a linha 110 exibe o pira-quedas na tela se a posicdo esco- Thida jé nao estiver ocupada pelo tan- aque. Se estiver, a linha 90 escolheré ou- tra. posigao. Finalmente, a posi¢o da mina escon- dida €escolhida pela linha 250. 4 linha 270 checa entio se o tanque ea mina es- to na mesma locagdo de tela. Se est- verem, a mensagem de explosio serdexi- bida, 0 programa parard. 50 LEY tx-16 60 CLs 70 PRINT AT 11,0;7---- ier tyss 90 LET px-INT (RND*30)+1 100 LET py-INT (RND*10) 110 TF pxetx AND pyrty THEN Goro 90 120 PRINT AT py.px:TO"sAT ty, te: 130 aao 145 1 150 Ler tyysty NKEWS THEN LET ty-ty- THEN LET ty-ty+ THEN LET txete- 160 i 170 THEN LET ta=tet 190 IF tystyy 200 IF tx30 THEN Uxetax 230 PRINT AT tyy.taxs7 * 240 PRINT AT ty, txs"8" 250 LET ma=INT (RND*30) +1 260 LET my=INT (RND*10) 270 IF mx=tx AND mi PRINT AT ay,mx: 8,0; "BOOM!!! ~ voce acertou um a’minal™: GoTo 330 310 Goro 130 ty<0 oR ty>10 THEN LET ter No programa do Spectrum, a tela é dividida ao meio pela linha 70, que im- prime uma série de 32 travessdes a0 lon- ‘20 do video. As linhas 145 a 170 con- trolam os movimentos do tanque. Uma explicagdo completa desse processo es ta na pagina 31. As linhas 196 e 200 impedem que 0 tanque saia da drea situada acima da li- nha (pontilhada) tragada pela linha 70, impede que ele desapareca da tela. A posicdo de queda dos péra-quedistas ¢ . ‘escolhida aleatoriamente pelas linhas 90 ¢ 100. A linha 110 verifica se o tanque ‘¢ um dos para-quedistas ocupam a mes- ‘ma locagao de tela. Se isso ocorrer, uma nova posigao de queda sera escolhida, indo-se para a linha 90. As linhas 250 ¢ 260 escolhem um lugar para a mina. A linha 270 compara a posigao da mina com a do tanque. Se eles estiverem no mesmo lugar, o tanque serd exibido na tela e apareceré uma mensagem de ex- plosdo. Neste caso, o programa parard. 50 LET PO=220 60 cLs 70 LOCATE 0,12:PRINT STRINGS (39 peed 90” LET X=INT(RND(1)*480) 110 TF X<>PO THEN UPOKE BASE (0) 4X, A5C("O") ELSE GOTO 90 120 VPOKE BASE (0) +P0,ASC("#") 130 LET LP=Po 135 LET KS-INKEYS:IF KS="" THEN Goro 135 140 TP KS=CHRS (29) PO-1:GoTO 190 150 IF KS=CHRS (28) Pori:coto 210 160 TF KS@CHRS (30) P0-40:coTo 220 170 TF KS=CHRS (31) Po+ad:coTo 220, 180 GoTo 140 190 IF (LP/40-INT(LP/40))=0 THE N LET PO=LP 200 GoTo 220 210 IF (P0/40-INT(PO/40))=0 N LET PO=LP 220 IF PO>479 OR POCO THEN PO=L P:coTo 130 230 VPOKE BASE(0)+LP,ASC(" 7) 240 UPOKE BASE(0)+P0,ASC("#") 250 LET MeINT(RND(1)*480) 270 IF m=PO THEN UPOKE BASE(0)+ PO,ASC(" ") :LOCATE 5,4: PRINT "B OOM! !-Voce acertou numa mina”:E ND 310 Goro 130 ‘THEN LET Po ‘THEN LET Po ‘THEN LET Po ‘THEN LET Po- THE © movimento do tanque pela tela é, como no caso anterior, controlado p Jas linhas 140 a 170, que verificam quais foram as teclas pressionadas. A linha 220 testa IF PO > 479... a fim de restrin Bir 0 campo de acdo do tanque & parte alta do meio do video. Agora, porém, a ultima locagao de tela nessa posigao € 4479; assim, O IF... impede que ela avance abaixo da linia pontithada de- senhada pela linha 70. ‘Também como no caso anterior a fungio STRINGS é empregada pela li- nha 70 para tracar a linha a0 longo da tela, OSTRINGS(9, “—"), como apa rece na linha 70, diz simplesmente a0 MSX para desenhar um cordao de 39 travessdes (veja na pag. anterior, abai- x0 do programa para 0 TRS80. 0 TRS- Color, como Fazer para obter dez pon- tos de interroga¢ao). O lugar em que 0 péra-quedista cai € escolhido por um numero na linha 90; a linha 110 mostra o para-quedas na te- la se a posi¢ao escolhida ja nao estiver ‘ocupada pelo tanque. Se éstiver, a linha ‘90 escolherd outra posigdo, Nao se preo- ‘cupe em entender, por enquanto, 0 co- mando VPOKE BASE, na linha 110. Ele serve para colocar um caractere co- ‘mum (ou grafico) em uma certa posicao da tela, e é usado aqui por ser mais ré- pido que o LOCATE. A linha 250, escolhea posigao da mina escondida. A linha 270 verifica se o tan queea mina esto na mesmalocagaoda tela. Sendo positivo, a mensagem de ex- plosdo ¢ exibida, eo programa termina, 50 LET TX = 20 60 HOME 70 FORT = 1 70 40 74 HTAB I: UTAB 13 78 NEXT 1 90 LET Px = 0 +1 100. LET py = 32) +1 110 TF Px < > TX AND PY < > TY THEN HTAB PX: UTAB PY: PRIN Goto 120 070 90 HTAB TX Ler TY = 10 PRINT "="; INT (BND (2) * 4 INT ( RND (1) * VTAB TY: PRINT “4 LET x = 1%: LET Ly = TY TET K = PEEK ( - 16384) = 16368,0 IF K = 208 1 TF K = 204 i IF K = 218 1 If K = 216 1 IF 1% ¢ 1 on 1x 1% = Lk IF TY < Ty Ly HTAB LX: WEN Let Ty = THEN Let TY = THEN LET TX = THEN LET TX = THEN 1 on TY ‘THEN TAB LY: PRINT * BTAB TX: UTAB TY: PRINT "4 Let mx = 40) +1 260 Let my = a2) +1 270 IF MX = TX AND MY = TY THE No RTAB MX: VTAB MY: PRINT” * : HTAB 7: UTAB 7: PRINT "BOOM! “voce acertou uma mina”;: GOTO 330 310 Goro 130 INT ( RND (1) * INT ( RND (1) * © movimento do tanque pela tela € controlado pelas linhas 140 a 170, que cchecam as teclas pressionadas (lembre- se da explicacdo da pag. 33). Os coman- dos PEEK e POKE da linha 140 sao ne- cessdrios porque o Apple nao tem uma fungao em BASIC, como 0 INKEYS, que serve para fazer a varredura do te- clado. A fim de restringir as manobras do tanque, as linhas 190 e 200 testam se as suas coordenadas (TX e TY) niio ex. cedem 40 ¢ 12 posigdes, respectivamen- A te (margem dircita da tela e posigdio de linha acima da linha pontilhada). As linhas 70 a 78 desenham uma li- nha pontilhada ao longo da tela. Um mimero aleatdrio nas linhas 90 € 100 escolhe o lugar em que o pari ‘quedista cai; a linha 110 exibe o par ‘Quedas na tela se a posicdo escolhida ja ‘do estiver ocupada pelo tangue, Se ¢s- tiver, entdo a linha 90 escolherd uma ou- tra posicdo. Neste caso, a posicdo da mi- za escondida ¢ escolhida plas linhas 250 260, A linha 270 entao verifica se 0 tanque ¢ a mina estdo na mesma loca- so da tela. Se eles estiverem, sera exi- ida uma mensagem de explosio, ¢ 0 Programa se deterd. Mie Em jogos do tipo videogame, a con- tagem normalmente ¢ aumentada quan- do as posigdes de tela de dois objetos so iguais. Os objetos podem ser um missil €, 0 seu alvo, 0 “'come-come" ¢ um monstrinho, um tanque © um para- quedista, um cavalo e 0 poste de chega- da, ou qualquer outra coisa. ‘Assim, actescente estas linhas ao seu programa, para ver como um mecani mo de contagem funciona na pritica 40 LET 5-0 280 IF X=PO THEN LET S-S+1:coTO 90. 330 PRINT €295,5;"PARAQUEDISTAS. 40 LET 9-0 280 IF px=tx AND py-ty THEN LET g-atl : GOTO 90 330 PRINT AT 14,8;5;" PARAQUED Istas” mM 40 Ler s-0 280 IF X-PO THEN LET S#5+1:c0TO ‘90 330 LOCATE 8,16:PRINT 5;" paraq uediet i) 40 ters = 0 280 IF PX = TX AND PY = TY THE N Lets = § + 1: GoTo 90 330 HTAB 12: UTAB 15: PRINT S: * PARAQUEDISTAS” Vocé precisara substituir 0 STOP ou END na linha 270 por GOTO 330. A li- nha 270 deverd ficar assim, agora: 270 IF M=PO THEN PRINT @P0," ": PRINT @ 130, "BOOM!!! VOCE ACERTOU UMA INAI":G 0T0 330 270 IF mx=tx AND my=ty THEN PRINT AT my.mx;"!": PRINT AT 8 13;"BOOM!!! = VOCE ACERTOU UMA MINAI™: GOTO 310 mM 270 IF M=PO THEN VPOKE BASE(O) + PO,ASC(” "):LOCATE 5,4:PRINT "B OOM! 1-Voce acertou numa mina”:G oro 330, (é) 270. IF MK = TX AND MY = TY THE No WTAB MX: VTAB MY: PRINT "7; BTAB 7: VTAB 7: PRINT "BOOM! ! “VOCE ACERTOU NUMA MINA";: GOTO 330 A linha 280 & a mais importante. Ela ccheca se o tanque ¢ 0 paira-quedista es- to na mesma locagao da tela. Se esti- verem, entdo o placar serd incrementa- do de'l ponto. ‘A linha 40 volta o placar para zero, antes de 0 jogo comecar, e a linha 330 exibe a contagem, Ao modificar-se 0 fi- nal da linha 270, 0 computador exibe a contagem depois que a mina tiver sido detonada. ( jogo funciona assim: o jogador re- cebe continuamente para-quedistas pa- ra resgatar. Quando um é resgatado, ou- tro pira-quedista cai do céu. jogo termina quando o tanque em ‘movimento passa sobre a mina, provo- cando uma explosao. Acrescentar um dispositivo de regis- tro do recorde de pontos no jogo nao € dificil. Tudo 0 que vocd precisa é de ‘uma variavel para armazenar o recorde, e algum modo de atualizé-la assim que este for quebrado. Fora isso, é necessd- ria ainda uma rotina de exibigdo do re- corde. Estas so as linhas que voce de- ve acrescentar para aumentar a capaci- dade de registrar e exibir recordes no jo- g0 “Campo Minado"”: 30 LET Hs-0 350 IF S>HS THEN LET Hs~s 370 PRINT €424,"RECORDE=";HS; 30 LET hs=0 350 IF she THEN LET ho-s 370 PRINT AT 18,8;"RECORDE: mM 30 LET Hs-0 350 IF SHS THEN LeT HS~s 370 LOCATE 12,20:PRINT "Recorde (a) 30. LET HS = 0 350 IF $ > HS THEN LET Hs = 5 370 HTAB 12: VTAB 20: PRINT “R ecorde=" 88s Primeiro o programa deve introdu- zir a varidvel contendo o recorde com tum valor o mais baixo possivel. Assim, a linha 30 iguala HS a zero. Quando 0 jogo termina, a linha 350 compara 0 uk ‘timo escore (S) com o recorde (HS). Se ‘escore for maior do que 0 recorde, en- to HS serd atualizada, recebendo o va- lor em. Finalmente, a linha 370 exibe © recorde na tela. Pode-se pensar que essas linhas serio suficientes para incorporar sempre no- vos recordes ao jogo. Infelizmente isso I : "e 0 0 no ¢ verdade. Sempre que o programa € rodado, 0 computador zera automa- ticamente o valor de HS registrado no jogo anterior, assim como os valores de todas as outras varidveis. Para manter ‘valor de HS entre uma partida e ou- tra do jogo, voc# precisa acrescentar li seers ck pune jor se ele quer jogar outra vez, como as que foram usadas em jogos ante- riores. 390 FOR Fe1 TO 1000:NEXT F 400 PRINT €130 410 PRINT €135,"OUTRA VEZ (S/N)? 420 LET KS*INKEY:1F KS="* THEN Goto 420 430 IF KS="S" THEN GOTO 40 440 IF KS="N" THEN END 450 Goro 420 390 PAUSE 100 400 PRINT AT 8,3;7AB 32 410 PRINT AT 8,7:"Quer jooar é © novo (5/N)?" 420 LET aS~INKEYS 430 IF ag-"8" THEN GoTo 40 440 IF ag="n" THEN STOP 450 Goro 420, mM 390 FOR F=1 TO 1000:NEXT F 400 LOCATE 0,4:PRINT STRINGS (39 (se) 4io paInr TAB(10);"outra vez? ( 8m)" 420 LET KS@INKEYS:IF KS="" THEN ‘coro 420 430 TF KS="S" OR KS="s" THEN GO To 40 440 IF KS="N" OR KS="n" THEN EN D. 450 coro 420 (af) 390 FOR F = 1 TO 1000: Next F 400 FOR T= 1 70 40: HTAB I: v TAR 7: PRINT * ";: NEXT I 410 “HTAB 11: UTAB 8: PRINT “ou tra vez? (3/N) 420 GET AS 430 IF AS = "S" THEN GoTo 40 440° IF AS = "N" THEN END 450 Goro 420 Isto 0 que a linha extra faz: Cria-se um pequeno retardo de tem- po, introduzido pelo lago FOR...NEXT. na linha 390, nos programas para todos os computadores, exceto para o Spec- trum, que usa o comando PAUSE. A li- ‘nha 400 limpa uma parte da tela, de mo- do a preparé-la para que a mensagem “MAIS UMA VEZ? (S/N)” seja im- pressa pela linha 410. ‘A rotina que pergunta ao jogador se quer jogar de novo e colhe a sua respos- ta esid nas linhas 410 a 450 (a linha 430 reiniciard 0 programa na linha 40 se S for pressionado, e a linha 440 pararé.o programa se N for pressionado). A li- ttha 450 assegura que qualquer outra te- cla sera ignorada. Como agora nao exis- te necessidade de digitar RUN cada vez que vocé desejar jogar de novo, o valor de HS ¢ preservado. Do jeito que esta, 0 jogo depende muito da sorte — 0 jogador simples- mente continua andando com o tanque, até encontrar uma mina escondida. Podemos, entretanto, introduzir no- vvos elementos no jogo, transformando- ©, se quisermos, em ima corrida con- tra o reldgio, Um desses elementos po- deria ser, por exemplo, um dispositivo interno para marcar o tempo gasto em resgatar dez para-quedistas 80 TIMER=0 290 IF S<10 AND X=PO THEN GoTo 90 300 IF S910 THEN GOTO 320 320 Let T=TIMER 330 PRINT €295,5:"PARAQUEDISTAS 340 IF S-10 THEN PRINT €327,7EM *1/50;" SEGUNDOS" 10 Let t=0 80 POKE 23672,0: POKE 23673,0 290 IF s¢10 AND pxetx AND py: ¥ THEN GoTo 30 300 IF s=10 THEN Goro 320 320 LET t-PEEK 23672+256*PEEK 23673 340 IF s-10 THEN PRINT AT 16 8; "EM ";t/50;" SEGUNDOS" nM 80 TIME-0 290 IF S10 AND X=PO THEN GoTo 90 300 IF S<10 THEN GoTo 320 320 LET T=TIME 340 IF S+10 THEN LOCATE 10,18:P RINT "em ";1/50;" segundos” relogio existente em cada um dos tipos de micros acima corre durante to- do 0 tempo em que 0 computador esti- ver ligado. Para iniciar a cronometragem do jo-j 80, voce precisa apenas zerar uma va- ridyel de tempo. A linha que coloca em zero o cronémetro € a linha 80 — voce notard que para zerar o cronémetro do ‘TRS.Color e do MSX basta fazer TI MER = Q. No Spectrum é mais com- plicado: a linha do programa zera duas locagdes especificas na memoria de tra- balho do micro, através de POKE 23 672,0 ¢ POKE 23 673,0. (6 reldgio € “‘parado”” pela linha 320. Na verdade, ele ndo se detém; assim, vo- c@ simplesmente instrui_a maquina a “Jembrar-se”” do valor de tempo mar- cado em um determinado momento — quando dois objetos coincidem na tela, por exemplo. Nesses programas, a variével que contém a leitura do relégio é chamada de T — no MSX e no TRS-Color, isso € feito com a linha LET T = TIMER, € no Spectrum, com LET T = PEEK 23672 + 256*PEEK 23673. ‘O comando PEEK, como aprendere- mos em uma ligdo posterior, ‘“olha"” os valores numéricos contidos nas mesmas locagdes de meméria zeradas no inicio do programa, A locagio 23672, como qualquer lo- cago de meméria em um micro de 8 bits, pode conter nimeros inteiros en- tre 0 e255. A locacdo 23673 & incremen- tada de 1, toda vez que esse niimero for excedido na locasdo 23672. Assim, para caicular o valor total do tempo em que o crondmetro do Spec- trum esteve correndo, vocé deve multi- plicar 0 valor da locagao 23673 por 256 e acrescentar o valor armazenado na lo- cago 23672. Esta é a razio da expres: sd numérica na linha 90, na versao pa- ra o Spectrum. O relégio deve ser parado quando 0 jogador tiver resgatado dez_para- {quedistas; assim, a linha 300 checa se es- te valor foi atingido e salta para a linha 320, que ‘‘paira”” 0 cronémetro. Se o total de resgatados for menor que dez, a linha 290 manda outro pé- ra-quedista para ser salvo pelo jogador A linha 340 s6 exibird o tempo total de jogo se os dez para-quedistas tiverem sido recuperados. A leitura do crondme- tro € dividida por $0 no programa. As- sim, 0 tempo exibido sera expresso, aproximadamente, em segundos. iw 80 LETT =O 290 ‘IF 5 < 0 AND Px = TX AND P Y= TY THEN GoTo 90 300 IF § = 10 THEN GoTo 330 340 IF S = 10 THEN HTAB 12: V TAB 16: PRINT "em ";T / 6;" seo undoa” ‘A contagem de tempo na versio do programa para os microcomputadores da linha Apple é feita de forma inteira- mente diferente das outras maquinas, pois eles ndo tém relégio interno. Neste caso, definimos uma varidvel denominada TIME, que conteré 0 va- lor cronometrado, ¢ uma varidvel T, que € incrementada de | a cada ciclo de var- redura do teclado. Este é um truque muito facil de ser implementado, e que serve para qualquer computador que nao tenha reldgio interno. ‘A varidvel reldgio é zerada na linha 80 ¢ recebe o valor do tempo gasto na linha 320. Para calcular o valor do tem: po em segundos, divide-se 0 conteido de T por 6. enced Da mesma forma que adicionamos 0 registro de recordes de pontos ao pro- grama anterior, poderiamos agora acrescentar um registro do recorde de tempo (no caso, 0 menor tempo gasto para salvar dez péra-quedistas). O prin- ipio geral de registro de recordes de tempo pode ser aplicado em muitos ou- tros jozos Estas sto as linhas a serem acrescen- tadas ao programa: 20 LET LT=999999 360 IF CLT AND Se10 THEN LET C Tet 380 PRINT e452, 1/50;* SEGUNDOS 20 LET 1t=999999 360 IF tM THEN PRINT €266, "voc E ESTA MORTO” 160 IF T=4 THEN PRINT €264, "voc ES ESTAO AMBOS MORTOS" 20 cus 30 LET NeINT (RND*400)+2 40 PAUSE n 60 PRINT AT 11,14; "SAQUE!!* 70 POKE 23672,0: POKE 23673.0 80 IF INKEYS="" THEN GoTo 80 90 LET T=PEEK 23672+256*PEEK 23673 100 PRINT AT 11,14;"BANG!!* 110 PAUSE 50 130 LET m=INT (RNDN35)+1 140 IF t 127 THEN GoTo 100 85 Ler T= T+1 90 GoTo 80 100 HTAB 17: VTAB 13: PRINT "B anti” 110 FOR F = 1 70 1000 120. NEXT F 130 LET M = RND () * 20 140 IF T M THEN HTAB 12: vr AB 13: PRINT “VOCE ESTA MORTO" 160 IF T= M THEN HTAB 12: UT AB 13: PRINT "AMBOS MORRERAM * O programa é muito simples. Apés a linha 20 ter limpado a tela, uma pau- 0 aleatoria ¢ introduida pelas linhas 30 50. A linha 60 exibe “SAQUE!”, € 0 crondmetro ¢ acionado imediatamente pela linha 70. A linha 80 faz com que a maquina espere até que uma tecla se- ja pressionada. A linha € exatamente igual a que foi utilizada nos programas de jogos com controle pelo teclado (ve- ja pag. 28). Assim que qualquer tecla tena sido pressionada, 0 programa continua pa- ra a linha 90, que para efetivamente 0 Existe algum limite maximo para 0 pe- iodo de medida de tempo? ‘Sim, existe — embora normalmen: te seja to longo que, na pratica, no faz diferenga. © rel6gio interno da ‘maioria dos computadores domésticos corre a velocidades semelhantes. O fa- tor limitante, portanto, 6 o numero mé- ximo de impulsos de relégio que o com- utador pode armazenar. As linhas ‘TAS.-Color e MSX utllizam dois bytes: por isso podem contar até 65 535 im: Pulsos de relégio, um a cada 1/50 de Segundo. Isso d4 uma capacidade ma- ima de temporizacdo de cerca de 22 minutos. J4 os micros da linha Spec- trum usam 3 bytes, o que Ihes dé cer- ca de quatro dias de medida continua de tempo! ‘Como funciona © cronémetro interno de um microcomputador? Todo microcomputador tem um dis- positiva interno para sineronizaggo das ividades da Unidade Central de Pro- ‘cessamento, que 6 chamado de relégio ‘u clock. Esse relégio interno tem por fungdo gerar pulsos elétricos repetidos ‘a uma freqdéncia constante para cada micro: essa frequéncia ¢ chamada de velocidade de reldgio, alor va- ria conforme a marca do computador. Por exemplo, o Apple I de | MHz (megahertz, ou se Io de ““batidas"” de rel6gio por segun- do); 0 TRS-80 tem 2,7 MHz, e assim or diante, Mas esse temporizador in- temo no pode ser aproveitado para medir 0 tempo como um verdadeiro crondmetro, crondmetro, armazenando o seu valor naquele momento na varidvel T. A linha 100 exibe “BANG! Existe uma pausa introduzida pelas Jinhas 110 e 120 (a linha 110 somente no Spectrum) antes que um novo retardo inicial de tempo seja sorteado pelo pro- grama, Isto ¢ feito pela linha 130 do programa. Em seguida, 0 computador sorteia uma varidvel aleatéria M, que conterd © tempo levado pelo computador para “sacar” sua arma. As linhas 140 a 160 comparam os valores T (do jogador) € M (da méquina) e declaram quem foi o vencedor do duelo (ou se ambos os due- listas morreram!).. Seu caderninho de enderecos esté uma bagunea? Sua colegdo de discos tem mais problemas do que discos? Eis As pessoas que nunca utilizaram um ‘computador pessoal sempre perguntam {que tipo de aplicagdes domésticas ele po- deria ter. As respostas dadas, porém, ra- ramente s4o convincentes. Neste artigo apresentamos um pro- ‘grama que pode ser ‘itil para muitas pes- soas. Ele é um programa de banco de dados, ou seja, de organizacao e recu- peragdo de qualquer tipo de informagao ‘ue possa ser fichada. F um sistema de arquivamento t2o flexivel que pode en- contrar dezenas de aplicagdes no seu dia-a-dia. Ele € muito util, por exemplo, para armazenar os nomes e 0s endere~ {G08 de amigos ou membros de um clu- be, ou tomar notas dos aniversdrios da familia e dos amigos, ou armazenar de- talhes sobre suas colegdes de moedas, borboletas, discos ou receitas, ou até mesmo organizar melhor a sua crescen- te colegio de jogos de computador O nico limite para 0 que se pode fa- zet com esse programa esta no tamanho da meméria RAM do seu micro. Na maioria das vezes, o minimo necessario para aplicagdes praticas ¢ uma maqui- na com 32K. Seja como for, € necessario lembrar sempre 0 seguinte: como as memérias dos computadores domésticos so pe~ {uenas, em comparacdo com as das mi- uinas profissionais, quanto menos vo- Iumosa a informagao a ser mantida pe- To computador, melhor. CE Assim que vocé rodar 0 programa pe- Ja primeira vez, através do comando RUN, o menu principal sera imediata: mente impresso na tela. Ele consiste nu. ma lista de coisas que se pode fazer com © arquivo, como ‘entrar um registro”, or exemplo, ou “'pesquisar o arquivo” CSE ‘Os computadores necessitam de de- talhes precisos do que se quer, antes de qualquer operaco. Para abrir um no- ¥o arquivo é necessdrio primeiro dizer 20 computador o niimero de registros ;que se quer e a extensdo maxima que ca~ da registro pode ter. “ABRIR UM AR- QUIVO" €a opeao 1 do menu princi pal; assim, para seleciond-la, vocé deve pressionar a tecla 1: as palavras ‘“VO- CE TEM CERTEZA?” apareceréo na tela. Essa reagdo da maquina ¢ uma pre caugio contra o pressionamento aciden tal da tecla 1, pois chamar a rotina dé *ABRIR UM ARQUIVO" quando ® sistema de arquivamento ja estiver ar mazenando dados pode comprometer todo 0 trabalho. Se vocé tiver certeza de que quer abrir um novo arquiyo, pressione S. Mags se (© arquivo ja estiver armazenandg dads € voc’ nao deseja apagé-los, piessione qualquer outra tecla, e 0 proggama re- tornard ao menu principal PEt Uma vez que voce tenha pressiona= do 0 § para continuar, © computador perguntard quantos campos vocé quer. “Campos” sio os itens de inform: que voc® quer armazenados em cada re- gistro. Por exemplo, se vocé quer regis- trar dados sobre os seus amigos, pode- riam ser definidos os seguintes campos: nome, endereco, cidade e mimero do te- lefone — quatro ao todo. Este programa s6 permite um mime- ro maximo de oto campos para um re- sgistro individual; do contrario, ele nao poderia exibi-los, todos, na tela ao mes- ‘mo tempo. Uma vez fornecido 0 nime- ro de campos a pergunta seguinte do computador serd: ‘‘Qual 0 nome do campo 1”. (No exemplo acima, a res- posta poderia ser NOME.) ‘A seguir, o programa pede a exten- so do primeiro campo, isto é, o nime- ro maximo de caracteres que ele pode conter. ‘A extensdo maxima para qualquer ‘campo permitida no programa é de de- zenave caracteres. Isso significa que, se a informagdo que se quer arquivar — uum endereco, por exemplo — nio cou- ber nessa extensdo, é preciso dividir 0 ‘campo em duas ou mais partes. No ca- so de um endereyo isso pode ser feito por meio da definigdo de campos sepa- rados para a rua, numero da casa, ci- dade, cédigo postal, etc. ‘aqui um programa que o ajudard 1 colocar ordem nesse caos. De posse da informacao sobre o pri- meiro campo, computador fard a mes- ma pergunta sobre o segundo campo, 0 terceiro, ¢ assim por diante. Obviamen- te, quanto menores forem os nomes dos campos ¢ os niimeros dos caracteres em cada campo, mais reistros poderdo ser retidos no arquivo. Isto feito, 0 computador calculard para quantos registros ele tem espaco na memoria, Esse mimero sera exibido na tela. No programa para 0 TK-90X, vo- cé deve especificar quantos registros quer armazenar, evitando que o compu: {ador gaste tempo excessivo gravando ou lendo longos arquivos da fita COs Terminado o processo de criagiio de um novo arquivo, o programa trara de volta o menu principal, onde vocé deve selecionar a opedo 2 (tecla 2), para ini- ciar a entrada da informacao em seus re- gistros. No alto da tela, o computador man- terd uma contagem dos registros que vo: c@ jd entrou, juntamente com 0 espaco total disponivel na meméria. Essa linha de informagao dird, por exemplo: “Vo- & utilizou 10 dos 100 registros” Logo abaixo disso, na tela, serao exi- 1 — MANTENHA EM ORDEM AS SUAS COLECOES — UM PROGRAMA PRATICO DE bidos os nomes dos campos. O cursor ‘parecer na iiltima linha do video, de tal modo que tudo que vocé escrever pe- lo teclado sera registrado no campo exi- bido. Lembre-se de manter a informa- ‘co digitada to curta quanto possivel € dentro da extensdo maxima de carac- teres que vocé estabeleceu para cada campo. ‘Quando vocé pressionar a tecla ou , a informacao digitada sera impressa prdxima ao nome do campo. A linha inferior da tela ser limpa e ficard pronta para o préximo campo. Esse procedimento comeca com o primeiro campo no alto da tela e pros: = MEMORIA DISPONIVEL ESTABELECA UM NOVO ARQUIVO a = REVEJA SEU ARQUIVO M_— COMO ARMAZENAR E B____ RECUPERAR INFORMAGOES segue por toda a tela cada vez que voce digita uma informacao ¢ pressiona ou . Quan- do voc’ tiver entrado o iltimo campo do registro, 0 computador ird para 0 pré- ximo registro a ser entrado. Se voce pres- sionar a tela ou novamente, antes de comecar adigitar o primeiro campo, o computa: dor trara o menu principal de volta. Emisnesn Bara examinar os registros que voct sefttOh, selecione a opcao niimero 3 do meni principal, “VER REGISTROS pressiamando a tecla 3. O primeiro re ‘gisito sf entdo exibido na tela —ndio neeessariamente o primeiro que voce in- foduaitiyamils 0 primeiro de acordo com © propria método de selesio do programa, {Os met6Hds de arranjo dos compu- adores variam muito pouco. Mas, de Todo geral, cles selecionam os registros em ordem alfabética através do primei- Fo campo, o qual, em muitos casos, se- ra “NOME”, Para fazer isso, 0 com- putador examina a primeira letra do pri- meiro campo de todos 0s registros € os ordena alfabeticamente. Se mais de um registro tiver a mesma inicial, ele os or- dena em fungao da segunda letra, e as- sim por diante. Quando o primeiro campo contiver algarismos, 0 computador selecionaré sempre um deles antes de qualquer le- tra; mas prosseguiré com o mesmo mé- todo de ordenagao, digito por digito, quando estiver decidindo entre nuime- ros, além de olhar para o mimero como um todo. Em outras palavras, se voce colocar os mimeros de 1 a 100 no pri- ‘meiro campo, por exemplo, 0 compu: tador ordenara em primeiro lugar os nt- meros 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ¢ 100 antes de movimentar-se pa- ra 02, 20, 21, etc. A maneira de se con- tornat esse problema é evitar 0 empre- ‘go de mimeros no primeiro campo ou entrar 0s nlimeros com zeros a esquer- da, como, por exemplo: 001, 002 ...010, O11... até 100. Quando, por outro lado, se utiliza uma mistura de letras maiusculas e mi- niisculas, @ computador escolhe prim ro as maitisculas. Assim, “ABC Limi tada” ‘Companhia’ ‘do que o ar- quivo de dados ser que ‘mais convenient sej ligitar to- das as informagdes apenas em letras maitisculas, para resolver o problema. Se o seu computador aceitar caracteres acentuados, vocé poderd ter problemas na ordenacdo, pois na codificagao bra- sileira para os caracteres (adotada, por exemplo, para os micros da linha MSX) as letras acentuadas aparecem depois das minisculas, na ordem alfabética. Quando vocé pedir para ver 05 regis- tos, aparecerao as seguintes opgdes: PROSSEGUE MENU REI escritas na parte inferior da tela. Se vo- cé pressionar a tecla P, o computador exibiré 0 registro seguinte; se vocé pres- sionar o R varias vezes, ele se movimen- tard rapidamente através de todo o ar- quivo, registro por registro. ‘Uma presséo na tecla tela o registro anterior at sim, usando apenas 0 P 0 R, voce po- de percorrer 0 arquivo, registro por re- gistro, para a frente e para tras. Jé a te- cla M provoca 0 retorno ao pprin- cpa gulsues que en © ot ends TEmbaxo da primeira lina de ops aparece. uma segunda com as sepuin- tes alternativas Imai a “ate Essas fungdes nao constam do atual programa ¢ serdo explica Oxi: mo artigo desta série. Pot acontecerd se voce tentar sente versio do program: CORRIGE APAGA Pra a A medida que vocé fofentrando da- dos nos registros do,seu arquivo, eles se- ria aa rao armazenados (meméria RAM) lor, den- foo linke mane atta Be re gistros, calculado pelo oa rama. E ne- cessério, portantoyartmazatar ese ar- quivo e neice, se vocé quiser desi ne aso contrario, per informacio digitada. Poster quando. vocé quiser modificar tar dados, consul- tar ou listar 0 arquivo, podera carfegar de volta 0 arquivo para a memoria RAM do computador, lendo-o ett Na maioria das verses listadas abaixo, 0 poderd ser antes de ‘‘Aardo ¢ dados. A iinica excegdo é a versio para ‘osmicros da linha Sinclair, que gravam © programa juntamente com os dados sontidos em meméria Quando-vocé quiser salvar o seu ar quivo nos micros das linhas TRS-Color ou MSX, pressione a tecla 5 para sele cionar a’ opcao de armazenamento no ment principal, € 0 computador Ihe pe dird que d® um nome qualquer ao arqui vo. Uma vez que voré tenha teclado 0 nome do arquivo e pressionado em septida. Enquanto gra- ya, o computador mantém voce infor- _ mado. O tempo de gravagio depende do ~ niimero de registros a ser armazenado, Nos micros da linha Sinclair, a fun flo de gravacdo ¢ ativada de forma di Ferente da anterior. Neste caso, selecio ne primeiro a oped 7 (SAIDA) no me- nu principal. Em seguida, usando 0 co- mando SAVE normal, digitado direta mente pelo teclado, acione o gravadore grave o programa, dando-Ihe um nome adequado. Os dados serdo gravados con: juntamente, conforme jé foi explicado. Posteriormente, quando quiser con: sultar 0 arquivo, voce deve (nos micros das linhas citadas acima) carregar 0 ‘computador em dois estdgios. Inicial: mente, & necessirio carregar 0 progra ‘ma, wtlizando 0 comando normal LOAD (ou CLOAD) de sua maquina. Em seguida, deve-se mandar executar 0 Programa, acionando o comando RUN, € selecionar a opcdo 6 no menu princ pal, “CARREGAR ARQUIVO”. O computador pedird entdo o nome do ar

You might also like