Cursos / Informática para Internet / Programação Estruturada / Aula

arrow_back Aula 13 - Desenvolvendo um jogo da velha

3. Desenhando o Tabuleiro

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:

AخA
1
public static void desenha(int x, int y) { 
2
    if (casa[x][y] == 1) { 
3
        // campo marcado pelo jogador 1 aparece com “X” 
4
        System.out.print("X"); 
5
    } else if (casa[x][y] == 2) { 
6
        // campo marcado pelo jogador 2 aparece com “O” 
7
        System.out.print("O"); 
8
    } else { 
9
        // campo não marcado aparece em branco (“ ”) 
10
        System.out.print(" "); 
11
    } 
12
}

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:

40
1
public static void jogo() { 
2
    // aqui,são mostrados os números das colunas do tabuleiro 
3
    System.out.print("\n  1   2   3\n"); 
4
    // aqui é mostrado o número da primeira linha 
5
    System.out.print("1 "); 
6
    // aqui é exibido o campo que cruza a linha 1 com a coluna 1
7
    desenha(0, 0); 
8
    // caractere de divisão entre dois campos 
9
    System.out.print("  | "); 
10
    // aqui é exibido o campo que cruza a linha 1 com a coluna 2 
11
    desenha(0, 1); 
12
    // caractere de divisão entre dois campos 
13
    System.out.print("  | "); 
14
    // aqui é exibido o campo que cruza a linha 1 com a coluna 3 
15
    desenha(0, 2); 
16
    // desenha linha horizontal e mostra número da linha 2 
17
    System.out.print("\n -----------\n2 "); 
18
    // aqui é exibido o campo que cruza a linha 2 com a coluna 1 
19
    desenha(1, 0); 
20
    // caractere de divisão entre dois campos 
21
    System.out.print("  | "); 
22
    // aqui é exibido o campo que cruza a linha 2 com a coluna 2 
23
    desenha(1, 1); 
24
    // caractere de divisão entre dois campos 
25
    System.out.print("  | "); 
26
    // aqui é exibido o campo que cruza a linha 2 com a coluna 3 
27
    desenha(1, 2); 
28
    // desenha linha horizontal e mostra número da linha 3 
29
    System.out.print("\n -----------\n3 "); 
30
    // aqui é exibido o campo que cruza a linha 3 com a coluna 1 
31
    desenha(2, 0); 
32
    // caractere de divisão entre dois campos 
33
    System.out.print("  | "); 
34
    // aqui é exibido o campo que cruza a linha 3 com a coluna 2 
35
    desenha(2, 1); 
36
    // caractere de divisão entre dois campos
37
    System.out.print("  | "); 
38
    // aqui é exibido o campo que cruza a linha 3 com a coluna 3 
39
    desenha(2, 2); 
40
}

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.

Figura 03 - Tabuleiro “desenhado” pela rotina desenha
Tabuleiro “desenhado” pela rotina <span class='italico'>desenha</span>

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.

play_circle_filled
Vídeo 02 - imprime Tabuleiro

Versão 5.3 - Todos os Direitos reservados