Você está visualizando atualmente Jogo da velha com a linguagem de programação C – Parte IV

Jogo da velha com a linguagem de programação C – Parte IV

Olá programadores, programadoras e curiosos de plantão. Vamos dar continuidade ao desenvolvimento do nosso jogo da velha com a linguagem de programação C?

Se você perdeu o início de nossa série, você pode acessar cada uma das partes pelos links abaixo. Corre lá:

Parte I

Parte II

Parte III

Hoje trabalharemos na parte da impressão do nosso jogo na tela. Para isso, precisaremos ter atenção em alguns detalhes e não apenas imprimir nossa matriz na tela.

Queremos que a impressão seja muito semelhante ao jogo real no papel. Contudo, como é um jogo no computador e o usuário precisará digitar os índices de linha e coluna onde ele deseja jogar, também precisaremos imprimir estes índices. Queremos que a impressão se pareça com a figura a seguir.

Impressão do Jogo da velha.

Observe que a primeira linha a ser impressa é a linha com os índices das colunas. Como queremos que estes índices sejam impressos apenas uma vez, esta impressão é feita antes da primeira instrução for.

Antes da segunda instrução for, mas depois da primeira, fazemos a impressão dos índices das linhas, um por vez. Em seguida, imprimimos a linha da matriz, uma por vez.

Observe que a impressão é feita baseada no caractere presente em cada posição da matriz. Se for um x ou um 0 (verificado com a função eValido()), então o próprio caractere é impresso. Caso contrário é impresso um espaço.

Observe também que verificamos os índices de linha e coluna para decidir se devemos ou não imprimir a barra vertical “|”, separando as colunas, e uma sequência de traços “———”, separando as linhas.

Espaços, tabulação e quebra de linhas são utilizadas para conseguir a formatação desejada.

Este procedimento é trabalhoso de ser escrito e, quando está sendo elaborado do zero, é preciso testar e fazer as alterações necessárias várias e várias vezes até se atingir o objetivo desejado. O código completo para a impressão do jogo é apresentado a seguir.

void imprimir() {
    int lin, col;

    printf("\n\t    0  1  2\n");
    for(lin = 0; lin < 3; lin++) {
        printf("\t%d ", lin);
        for(col = 0; col < 3; col++) {
            if(eValido(jogo[lin][col])) {
                if(col < 2)
                    printf(" %c |", jogo[lin][col]);
                else
                    printf(" %c ", jogo[lin][col]);
            } else {
                if(col < 2)
                    printf("   |");
                else
                    printf("   ");
            }
        }
        if(lin < 2)
            printf("\n\t   ---------\n");
    }
}

Se ficou alguma dúvida, compartilhe nos comentários que faremos o possível para esclarecer. Um grande abraço, bons estudos e até o próximo.

Deixe um comentário

dezesseis − 8 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.