课程作业-用C语言制作一个第三场比赛的“糖果粉碎”游戏

课程作业-用C语言制作一个第三场比赛的“糖果粉碎”游戏,c,arrays,function,ansi-escape,C,Arrays,Function,Ansi Escape,我在一项任务上遇到了点麻烦,正在寻求一些建议。我应该创造一个游戏,类似于糖果粉碎或宝石。赋值采用一个.txt文件,该文件包含一个1-5之间的值矩阵,然后将每个值赋值给[10][10]数组中的一个点。然后,一个转义码函数打印出彩色像素来代替每个点的数值,从而创建一个看起来像游戏板的输出。最后,程序应该查找3个相同颜色像素的任何匹配,并用一个白色像素和XX替换它们。然后程序打印出正确的游戏板,并打印出匹配项X 我大部分都是编码的,但我遇到了几个问题 一,。我应该标记列和行0-9,虽然使用printf

我在一项任务上遇到了点麻烦,正在寻求一些建议。我应该创造一个游戏,类似于糖果粉碎或宝石。赋值采用一个.txt文件,该文件包含一个1-5之间的值矩阵,然后将每个值赋值给[10][10]数组中的一个点。然后,一个转义码函数打印出彩色像素来代替每个点的数值,从而创建一个看起来像游戏板的输出。最后,程序应该查找3个相同颜色像素的任何匹配,并用一个白色像素和XX替换它们。然后程序打印出正确的游戏板,并打印出匹配项X

我大部分都是编码的,但我遇到了几个问题

一,。我应该标记列和行0-9,虽然使用printf为列编码标签没有问题,但当我尝试打印行标签时,我会得到一个随机的数字字符串

二,。我通过将数组中的值重新指定为7(ANSI转义码为白色),将匹配项替换为白色像素。但是,我不确定如何在同一地点打印XX

我希望我可以发布一些图片作为例子,但我没有足够的声誉在这个网站上作为一个新的帐户。我已经在下面列出了我的代码

#include <stdio.h>

void printEscapeCode(int c);

int main(void)
{
    /* Declare an image array to be gameboard */
    int gameboard[10][10];

    /* Declare variables and load in how many rows and columns */
    int Nrows;
    int Ncols;

    scanf("%d %d",&Nrows, &Ncols);

    /* Load in candy values for each row */
    int row, col;
    for(row = 0; row < Nrows; row++)
    {
            /* Load in candy values for each column */
            for(col = 0; col < Ncols; col++)
            {
                   /* Declare variable to hold value */
                    int x;
                    scanf("%d",&x);
                   /* Tell where to store candy value */
                    gameboard[row][col] = x;
            }
    }
    /* Calls function to print candy colors for each row */
    printf("  0 1 2 3 4 5 6 7 8 9\n");
    for(row = 0; row < Nrows; row++)
    {
            printf("0 ");
            /* Calls function to print candy colors for each column */
            for(col = 0; col < Ncols; col++)
            {
                    /* If statement to look for three matching candies */
                    if(gameboard[row][col] == gameboard[row+1][col] && gameboard[row+1][col] ==  gameboard[row+2][col])
                    {
                            /* Sets matching candies to display white */
                            gameboard[row][col] = 7;
                            gameboard[row+1][col] = 7;
                            gameboard[row+2][col] = 7;
                    }
                    if(gameboard[row][col] == gameboard[row][col+1] && gameboard[row][col+1] == gameboard[row][col+2])
                    {
                            gameboard[row][col] = 7;
                            gameboard[row][col+1] = 7;
                            gameboard[row][col+2] = 7;
                    }
                    printEscapeCode(gameboard[row][col]);
            }
            printEscapeCode(7);
            printf("\n");
    }
    return 0;
}

/* Function that prints candy colors */
void printEscapeCode(int c){
    printf("\x1b[4%dm  ",c);

}

这更多是为了代码审查站点?@JoeBlow code review仅用于工作代码。您的问题之一是Nrows和Ncols没有初始化为正确的值。因为这些变量在堆栈上,所以for循环行