c中表格中的不同颜色

时间:2017-04-30 01:31:18

标签: c arrays colors

我正在做一个学校项目,我们需要编写棋盘游戏(麦地那)。它进展顺利,但我遇到了一些麻烦。

有四种不同颜色的宫殿碎片(在游戏板上显示为“P”)需要出现在阵列中。在控制台应用程序中显示颜色不是问题,除非在数组

阵列需要完全是白色的,但程序需要区分哪个'P'需要哪种颜色。

这是我选择玩家的开关盒(只有宫殿碎片):

switch(c)
{
case 1:
    printf("What color? 1 - red, 2 - grey, 3 - black, 4 - brown\n");
    scanf ("%d", &d);
    switch(d)
    {
        case 1:
            printf("Where would you like to place your palace? X Y\n");
            scanf ("%d %d",&y, &x);
            tab[x-1][y-1]='P';
            player[t].po--;
            break;
        case 2:
            printf("Where would you like to place your palace? X Y\n");
            scanf ("%d %d",&y, &x);
            tab[x-1][y-1]='P';
            player[t].pg--;
            break;
        case 3:
            printf("Where would you like to place your palace? X Y\n");
            scanf ("%d %d",&y, &x);
            tab[x-1][y-1]='P';
            player[t].pn--;
            break;
        case 4:
            printf("Where would you like to place your palace? X Y\n");
            scanf ("%d %d",&y, &x);
            tab[x-1][y-1]='P';
            player[t].pb--;
            break;
    }
    break;

这是我的展示:

void display(char tab[DIMH][DIMV])
{
int i, j, k;


for(i=0; i<9; i++)
{
    printf("  %d ", i+1);
}
for(i=0; i<9; i++)
{
    printf(" %d ", i+10);
}
printf(" \n");
for(i=0; i<DIMV; i++)
{
    printf("+---");
}
printf("+\n");
for(i=0; i<DIMH; i++)
{
    for(j=0; j<DIMV; j++)
    {
        printf("| %c ", tab[i][j]);
    }
    printf("| %d \n", i+1);

    for(k=0; k<DIMV; k++)
    {
        printf("+---");
    }
    printf("+\n");
}

}

我有一个结构播放器,概述了每个玩家拥有的棋子数量(例如,player.pb是玩家黑色宫殿)。

或者,如果有人知道如何在桌子上显示多个字母(Pb =黑宫等),同时在电路板上保持正确的间距,那将非常有用。

谢谢

1 个答案:

答案 0 :(得分:0)

颜色问题特定于您的硬件和软件环境。如果您知道您正在输出到ANSI终端,则可以使用转义码,但使用像ncurses这样的curses库可能是类UNIX操作系统上最好的选择。在Windows上,许多命令行编译器都有这种类型的库。检查您的文档。

要打印多个字符,您需要更改为打印字符串。您可以使用字段宽度说明符来帮助,或使所有字符串具有相同的长度(例如,两个字符长)。