O Mina 2 é executado em modo texto no qual a tela é dividida em 25 linhas e 80 colunas. Cada posição da tela pode ser ocupada por um caractere ou símbolo.
As procedures abaixo são muito utilizadas no Mina 2:
- textcolor(cor): Define a cor do texto que será utilizada.
- textbackground(cor): Define a cor de fundo do texto.
- gotoxy(coluna,linha): Coloca o cursor na posição especificada.
- write(texto): Escreve um texto na posição atual do cursor usando as cores que estão definidas.
Existem 16 cores que podem ser utilizadas nas procedures textcolor(cor) e textbackground(cor). Basta passar o número da cor como parâmetro. A imagem abaixo mostra as cores disponíveis. Para saber o número da cor, conte da esquerda para a direita começando em 0. Exemplos: preto = 0, vermelho escuro = 4, verde claro = 10 e branco = 15.
Como exemplo, o código abaixo escreve o texto "1 JOGADOR" na posição (coluna = 30, linha = 15) usando a cor branca com a cor de fundo vermelho escuro.
textcolor(15);
textbackground(4);
gotoxy(30,15);
write(' 1 JOGADOR ');
Para usar o Modo Texto de uma forma efetiva é preciso conhecer o código ASCII que é uma representação numérica dos caracteres usados no computador. O padrão ASCII define o código de 128 caracteres baseado no alfabeto inglês. Existe a versão estendida do ASCII que incluem mais 128 caracteres. Esta versão estendida era usada principalmente em países que utilizam acentuação como aqui no Brasil. Consulte a página www.asciitable.com para ver os símbolos existentes no padrão ASCII normal e estendido.
O problema é que na codificação atualmente usada pelos computadores foi mantida a compatibilidade apenas com o código ASCII original, dessa forma os caracteres que utilizavam a versão estendida do ASCII aparecem trocados. Por exemplo, no código fonte do Mina 2 eu utilizo muito o símbolo █ que representa um bloco do jogo. Este símbolo possui o código ASCII 219. No padrão atual, o código 219 representa o caracter Û.
Por isso que no código da Procedure menu do Mina 2 aparecem diversos caracteres estranhos, como pode ser visto abaixo.
O problema é que na codificação atualmente usada pelos computadores foi mantida a compatibilidade apenas com o código ASCII original, dessa forma os caracteres que utilizavam a versão estendida do ASCII aparecem trocados. Por exemplo, no código fonte do Mina 2 eu utilizo muito o símbolo █ que representa um bloco do jogo. Este símbolo possui o código ASCII 219. No padrão atual, o código 219 representa o caracter Û.
Por isso que no código da Procedure menu do Mina 2 aparecem diversos caracteres estranhos, como pode ser visto abaixo.
write('Ü Ü Ü Ü Ü ÜÜÜÜÜ ÜÜÜÜÜ'); gotoxy(20,4);
write('ÛÛ ÛÛ Û ÛÛ Û Û Û Û'); gotoxy(20,5);
write('Û Û Û Û Û Û Û ÛßßßÛ Ûßßßß'); gotoxy(20,6);
write('Û Û Û Û ßÛ Û Û ÛÜÜÜÜ');
O que deveria aparecer era algo assim:
Mas na hora da execução do programa, os caracteres são interpretados corretamente de acordo com a tabela ASCII.
Outra forma possível de utilizar os caracteres ASCII estendidos é através da função chr() que recebe um código ASCII e retorna o caractere equivalente. Como exemplo a linha abaixo escreverá o símbolo █ na tela.
write(chr(219));