我正在制作蛇和梯子游戏。我将屏幕划分为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()语句。有什么想法吗?
答案 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 ]