Meu primeiro jogo no Micro Bug
O Micro Bug tem uma resolução gráfica de 200 pontos de
largura por 252 pontos de altura e as duas instruções
relacionadas a esta resolução são:
PLOT e
UNPLOT. Veja
a sintaxe:
10 CLS
20 PLOT 10,10
Esta instrução coloca um ponto gráfico nas coordenadas
x,y (10,10 no exemplo acima). Da mesma forma, a instrução
UNPLOT apaga esse ponto.
O que dá pra fazer com esses pontos, além de "ligar" e
"desligar" os mesmos? Dá pra fazer, por exemplo, um jogo
bem simples, do tipo "Acerte o Alvo".
O jogo funciona assim: uma letra "X" é colocada na lateral
direita da tela (numa posição aleatória) e na lateral
esquerda um "PLOT" vai colocando pontos até que o jogador
acredite que ele está na mesma linha do "X". Basta
pressionar uma tecla, clicar no monitor ou dedar a tela
que o sistema vai "plotar" a linha até o alvo. Se
acertar bem no meio da letra, ganha um ponto, se errar
perde um.
Pronto pro desafio? Então lá vai o passo a passo.
10 CLS
20 LET alvo=5
21 LET alvo=alvo&10
22 PRINT AT 24,alvo,"X"
Primeiro limpamos a tela (CLS) e sem seguida definimos uma
variável (alvo) que conterá a coordenada vertical da
posição do "X". Este número irá variar de 5 a 15 (pra
dificultar um pouco, senão fica fácil depois de um tempo).
Em seguida vamos criar a mecânica que plota os pontos
na vertical, ascendentes. Iremos usar duas variáveis
para isso: x e y. O valor de x será aleatório entre
0 e 10 e o valor de y será sempre a base da tela (250).
30 LET x=0
31 LET x=x&10
32 LET y=250
40 PLOT x,y
41 LET y=y-2
45 IF y>40 GOTO 40
Note que o programa ficará preso entre as linhas 40 e 45,
decrementando a variável y até que ela chegue no todo,
passando do alvo. Você acabou de perder um ponto.
Para contabilizar os erros e acertos, vamos criar duas
variáveis: errou e acertou e, no caso acima, vamos
incrementar a quantidade de erros.
11 LET errou=0
12 LET acertou=0
50 LET errou=errou+1
52 PRINT AT 8,15,"ERROOUU...."
60 PRINT AT 3,19,"Acertos= ";
61 PRINT acertou
62 PRINT AT 3,20,"Erros= ";
63 PRINT errou
Aproveitamos a ocasião e mostramos ao jogador não apenas
que ele errou, mas qual é o escore da partida até aquele
ponto.
Antes de fazer o processamento que irá determinar se
houve um acerto, precisamos usar um recurso ainda não
mencionado: a instrução
INKEY.
Ela nada mais faz do que "ler" o tecla, o mouse ou a
tela do celular pra saber que algo foi teclado, clicado
ou dedado. Para isso ela usa uma variável que irá
receber o código ascii dessa tecla.
Mas atenção: INKEY não para e espera por uma tecla. Ela
apenas verifica isso uma única vez e no momento que a
instrução foi executada. Se o jogador teclar um nano
segundo após a sua execução, ele perder a vez.
O primeiro uso desta instrução ocorrerá após a término
da partida, logo após a apresentação dos resultados. O
programa para num looping até que uma tecla seja
pressionada, ou seja, ele vai ficar executando INKEY até
que algo ocorra.
13 LET tecla=0
70 INKEY tecla
72 IF tecla=0 GOTO 70
73 CLS
75 GOTO 20
Caso alguma tecla seja pressionada, então o jogo recomeça a
partida, dando nova chance ao jogador de acertar a mira.
Para o disparo, usamos o mesmo conceito visto anteriormente
só que a "varredura" do teclado, monitor ou tela será
feita enquanto a linha de plot está "subindo" pela tela.
42 INKEY tecla
43 IF tecla>0 GOTO 80
80 PLOT x,y
81 LET x=x+4
82 IF x<192 GOTO 80
83 LET alvo=alvo*12
84 LET alvo=alvo+6
85 IF y=alvo GOTO 90
86 LET y=y+1
87 IF y=alvo GOTO 90
88 GOTO 50
Quando a linha de plot horizontal chegar perto do alinhamento
vertical do X, o sistema para e calcula se acerto bem no
meio da letra. Se sim, ponto pro jogador.
90 PRINT AT 8,15,"ACERTOU"
91 LET acertou=acertou+1
92 GOTO 60
Pronto. Finito. Acabado. Eu sei que você deve estar pensando
mas que joguinho bobo... Então tente acertar no alvo pra ver
como não é fácil. Você só precisa clicar no link abaixo.
::
Acerte o Alvo