0

多次元配列を単純に読み取るプログラムを作成しようとしています(「for」ループを使用)。特定の文字(「A」など)に遭遇すると、長方形を描画します(キャンバスライブラリと関数を使用して描画します)形)。

canvasを使って迷路のような地図を実際に描いてみました。しかし、何らかの奇妙な理由で、それはうまくいきません。理由はわかりませんが、配列の読み取りに問題があると思います。

多次元配列は、次のようなテキスト ファイルから入力を読み取ります (サンプル): これは、canvas を使用して作成しようとしている迷路マップのレイアウトです。

AAAAAAAAAAAAAAAAAAAAA
A.........A.........A
A.........A.........A
A...............AAAAA
AAAAA...............A
AAAAAAAAAAAAAAAAAAAAA

もちろん、「A」は壁を表す塗りつぶされた長方形に置き換えられます

「。」パスを表します。

ここに私のコードがあります:

void MazeGame::DrawMap(Canvas &canvas, char (&map)[20][26]) 
{ 
    double drawx = 200; 
    double drawy = 200;

    for(int i = 0; i < 20; i++)
    {
        for(int j = 0; j < 26; j++)
        {
            if(map[i][j] == 'A') 
            {
                canvas.DrawFillRect(drawx+10, drawy, 10, 10);
            } 

            if(map[i][j] == '.')
            {
                map[i][j] = ' ';  
            }
        }
    }
}

この関数をクラスに書きました。

drawx と drawy という 2 つの「double」変数を 200 に初期化しました。これは、形状が描画される x と y の原点座標と見なされます。もちろん、文字の配列が読み取られているため、x & y 座標は、迷路レイアウトがテキスト ファイルにどのように表示されているかに応じて移動する必要があります。形状。私はそれをしたくない

これはとても単純だと思いますが、出力は本当に混乱しています。助言がありますか?

4

3 に答える 3