我正在用C语言开发一个国际象棋游戏,但在棋盘的黑色面上显示字母时遇到了问题。在白板的白色面上,它按预期工作。
您可以在这里看到问题:
这是我到目前为止的代码:
#include <stdio.h>
#include <stdlib.h>
// Matriz de 8 por 8 para fazer os quadrados do jogo
char xadrez[8][8] = {
{ 'T', 'C', 'B', 'Q', 'K', 'B', 'C', 'T'}, //Pretas em maiúsculas
{ 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P'},
{ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{ ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '},
{ 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'},//Brancas em minúsculas
{ 't', 'c', 'b', 'q', 'k', 'b', 'c', 't'}
};
// Função para pintar a tela e o texto dentro dos quadrados
int pintarTelaTexto() {
system("CLS");// verificar para que serve system cls
//linha - coluna e r para controle da casa central onde vamos por a letra
int lin, col, r;
for (lin=0; lin < 8; lin++) {
for (r=0; r < 3; r++) {
for (col=0; col < 8; col++) {
//char letra com problema nao aparece na casa central apa
char peca = xadrez[lin][col];
char letra = ((lin + col) % 2 == 0) ? '\xB2' : ' ';
letra = (r == 1 && peca != ' ') ? peca : letra; // operador ternário
if ((lin + col ) % 2 == 0) {
printf("\xB2\xB2%c\xB2\xB2", letra);
}
else {
// %c para inserção da letra
printf(" %c "), letra;
}
}
printf("\n");
}
}
}
int main() {
pintarTelaTexto();
getch();
return 0;
}
答案 0 :(得分:0)
解决了!
由@Someprogrammerdude回答
比较:您的printf(“%c”),letra;与正确的printf(“%c”,letra);