Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Informática para Internet / Programação Estruturada / Aula
Após a declaração das variáveis globais, para armazenar dados referentes aos jogadores e ao tabuleiro, precisamos “desenhar” o tabuleiro. O procedimento desenha, representada a seguir, faz isso. Veja:
public static void desenha(int x, int y) {
if (casa[x][y] == 1) {
// campo marcado pelo jogador 1 aparece com “X”
System.out.print("X");
} else if (casa[x][y] == 2) {
// campo marcado pelo jogador 2 aparece com “O”
System.out.print("O");
} else {
// campo não marcado aparece em branco (“ ”)
System.out.print(" ");
}
}
Você viu que declaramos uma matriz de inteiros para construir o tabuleiro. Mas, no jogo da velha, não utilizamos números nas marcações. Utilizamos os símbolos “X” e “O”. Na rotina desenha, dizemos basicamente que no campo de valor 1 da matriz que declaramos (escolhido pelo jogador 1) será marcado o símbolo “X” e no campo de valor 2 (escolhido pelo jogador 2) será marcado o símbolo “O”. Note o uso de System.out.print ao invés de System.out.println, já que este último realiza uma quebra de linha, o que não é desejado para o procedimento desenha.
É importante determinar, no código, que os campos que não estiverem marcados ainda (ou seja, contiverem o valor inicial zero) devem ser exibidos com o caractere espaço em branco. Isso está sendo feito através do último comando else no código, que imprime um caractere em branco para qualquer valor diferente de 1 ou 2.
A rotina “desenha” é do tipo void, pois não retornará valor após a sua execução e recebe como argumentos dois valores inteiros, que são referentes à posição da matriz que se quer desenhar na tela.
Você já viu também que uma função pode ser chamada pela rotina main ou por outra função. É o que ocorre no procedimento jogo, apresentado a seguir, que chama o procedimento desenha para que o tabuleiro do jogo seja efetivamente exibido na tela. Veja:
public static void jogo() {
// aqui,são mostrados os números das colunas do tabuleiro
System.out.print("\n 1 2 3\n");
// aqui é mostrado o número da primeira linha
System.out.print("1 ");
// aqui é exibido o campo que cruza a linha 1 com a coluna 1
desenha(0, 0);
// caractere de divisão entre dois campos
System.out.print(" | ");
// aqui é exibido o campo que cruza a linha 1 com a coluna 2
desenha(0, 1);
// caractere de divisão entre dois campos
System.out.print(" | ");
// aqui é exibido o campo que cruza a linha 1 com a coluna 3
desenha(0, 2);
// desenha linha horizontal e mostra número da linha 2
System.out.print("\n -----------\n2 ");
// aqui é exibido o campo que cruza a linha 2 com a coluna 1
desenha(1, 0);
// caractere de divisão entre dois campos
System.out.print(" | ");
// aqui é exibido o campo que cruza a linha 2 com a coluna 2
desenha(1, 1);
// caractere de divisão entre dois campos
System.out.print(" | ");
// aqui é exibido o campo que cruza a linha 2 com a coluna 3
desenha(1, 2);
// desenha linha horizontal e mostra número da linha 3
System.out.print("\n -----------\n3 ");
// aqui é exibido o campo que cruza a linha 3 com a coluna 1
desenha(2, 0);
// caractere de divisão entre dois campos
System.out.print(" | ");
// aqui é exibido o campo que cruza a linha 3 com a coluna 2
desenha(2, 1);
// caractere de divisão entre dois campos
System.out.print(" | ");
// aqui é exibido o campo que cruza a linha 3 com a coluna 3
desenha(2, 2);
}
Veja que na linha que nomeamos “1”, são “desenhados” os campos (0,0), (0,1) e (0,2), separados pelo caractere “|”. Na linha 2, são “desenhados” os campos (1,0), (1,1) e (1,2), também separados por “|”. Na linha 3, por fim, temos os campos (2,0), (2,1) e (2,2). Veja os comentários no trecho de código exibido. Dessa forma, quando o jogo é carregado, o tabuleiro é exibido conforme a Figura 3.
Veja que, na Figura 3, o tabuleiro é mostrado com os números das colunas acima e os números das linhas ao lado. As linhas desenhadas para separar os campos na vertical são os caracteres “|” e as linhas horizontais foram desenhadas no momento da inserção dos números das linhas. Por exemplo, após completar o desenho da linha 1, temos “printf("\n -----------\n2 ");” que dá uma quebra de linha (causada pelo caractere especial “\n”), desenha a linha horizontal e dá outra quebra de linha para, então, exibir o número da linha seguinte.
Versão 5.3 - Todos os Direitos reservados