2

私はCから始めたばかりですが、PHPについてある程度の知識があったので、初心者向けに「もっと複雑な」ことをすることにしました:)

2つのネストされたループを使用して50x50配列を印刷しました。それほど遅くはありませんが、配列の周りで1つのシンボルX(プレーヤー)を移動するための矢印キー付きの移動を含めました。移動が行われるたびに、アレイ全体を更新する必要があります。これは、次の方法で行いました。

system("cls");
for(x=0;x<50;x++)
{
    for(y=0;y<50;y++)
    {
         printf("%c",table[x][y]);
    }
    printf("\n");
}

これは非常にずさんな解決策であり、移動するたびに更新される間、アレイ全体が「点滅」します。

Cでそれを行うより効率的な方法はありますか?

4

3 に答える 3

2

配列を再描画するときに点滅せずに配列内を移動するには、おそらくncursesなどのシェルグラフィックライブラリを使用する必要があります。グリッドを出力として表示するためにprintfを使用しているだけの場合、これを回避する簡単な方法はありません。

于 2012-10-13T00:16:28.370 に答える
1

私はあなたがWindowsを使用していると仮定します(clsのため)。

たぶん、ANSI.SYSエスケープシーケンスは、ライブラリがない最も簡単な方法です。

古い内容をクリアせずにカーソルを移動して表示内容を上書きすると、ちらつきを回避できる可能性があります。

于 2012-10-13T00:28:30.407 に答える
0

Win32コンソールを使用した「文字と属性のブロックの読み取りと書き込み」の例を次に示します。

http://msdn.microsoft.com/en-us/library/ms685032%28v=vs.85%29.aspx

編集:リンクを説明しました。

于 2012-10-13T00:52:19.553 に答える