0

私は蛇とはしごのゲームを作っています。画面を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()ステートメントを使用する必要があります。何か案は?

4

2 に答える 2

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);
}
于 2012-09-01T12:13:01.607 に答える
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;
}

ここで、配列内の値を表示する場合は、配列に応じて 2 つの選択肢があります。2次元配列の場合、次のようになります

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

1 次元配列の場合:

cout << arr[ (r * cols) + c ]
于 2012-09-01T12:14:45.740 に答える