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á:
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.
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.