蛇和梯子,编号块

时间:2012-09-01 12:00:12

标签: c++ graphics

我正在制作蛇和梯子游戏。我将屏幕划分为10条水平线和10条垂直线,但我发现的下一个问题是对特定的插槽进行编号。

使用outextxy()函数我只能显示特定数字并尝试使用数组不起作用:

int a[100];
for(i=0;i<100;i++)
{
    a[i]=i;
    outtextxy( x,y,a[i]);
}

此方法不起作用,因为outtextxy()显示char值 所以我也这样做了:

char a[100];
for(i=0;i<100;i++)
{
    a[i]=i;
    outtextxy( x,y,a[i]);
}

然后我才知道outtextxy()仅适用于字符串。

这样我将不得不使用100个outtextxy()语句。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您需要在将整数转换为字符串之前将其转换为outtextxy,因此您需要以下内容:

int a[100];
char output[MAX_OUTPUT_SIZE]; // For 0 to 99, MAX_OUTPUT_SIZE = 5 is more than enough
for(i=0;i<100;i++)
{ 
   a[i]=i;
   sprintf( output, "%d", i );
   outtextxy( x,y,output);
}

请注意,数组a完全是偶然的,所以除非您以后需要该数组,否则以下内容也可以正常工作:

char output[MAX_OUTPUT_SIZE]; // For 0 to 99, MAX_OUTPUT_SIZE = 5 is more than enough
for(i=0;i<100;i++)
{ 
   sprintf( output, "%d", i );
   outtextxy( x,y,output);
}

答案 1 :(得分:1)

基本理念是:

int rows = 10;
int cols = 10;

for(int r = 0; r < rows; ++r){
 for(int c = 0; c < cols; ++c){
   cout << r << ", " << c;
   if(c != cols-1) cout << " ";
 }
cout << endl;
}

现在,如果要在数组中显示值,则根据数组有两个选择。如果它是一个二维数组,它看起来像

cout << arr[r][c]; // you should understand the difference between row-major / column major

如果是一维阵列:

cout << arr[ (r * cols) + c ]