我在任务上遇到一些麻烦,我正在寻找一些建议。我应该创造一个"游戏"这类似于Candy Crush或Bejeweled。赋值采用.txt文件,该文件包含1-5的值矩阵,然后将每个值分配给[10] [10]数组中的某个点。然后,转义码功能打印出彩色像素代替每个点的数值,创建一个游戏板"看输出。最后,该程序应该寻找3个相同颜色像素的任何匹配,并用白色像素和" XX"替换它们。然后程序打印出校正的游戏板,其中匹配X' d out。
我主要编码,但我遇到了一些问题...
1。)我应该标记列和行0-9,虽然我使用printf()编码列的标签没有问题,当我尝试打印行标签时,我得到一个随机字符串号。
2。)我通过将数组中的值重新分配给7来替换带有白色像素的匹配,其中ANSI转义码为白色。但是,我不确定如何打印" XX"在同一个地方。
我希望我可以发布一些图片作为例子,但我没有足够的声誉和#34;在这个网站上作为一个新帐户。我到目前为止已经包含了我的代码。
#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);
}