1

このリンクからコードのスニペット(C# の部分) を分析した後、練習のために自分でこれを実行してみました。
ただし、以下の部分が文字列リストの X、Y インデックスに変換される方法と、if() ステートメントで X の前に Y インデックスが含まれる理由について混乱しています。

if (Map[playerY][playerX] == ' ')

リストは次のようになります。

List<string> Map = new List<string>()
        {
            "##########",
            "#        #",
            "#   >    #",
            "#   >    #",
            "#        #",
            "##########"
        };

どんな助けでも大歓迎です、事前に感謝します!

4

3 に答える 3

2

文字列は配列自体であるため、次のようなインデクサー関数を呼び出すと、string[n]位置の文字が取得されnます。

したがって、プレーヤーが乗っているキャラクターを取得しようとする場合、配列の最初の文字列がマップの一番上の行であるため、文字列の配列にインデックスを付けることで Y 座標を取得します。

 Y |
------------------
 0 | ##########
 1 | #        #
 2 | #   >    #
 3 | #   >    #
 4 | #        #
 5 | ##########

次に、文字列内の X 位置の文字に X を一致させて X を選択します。

 X | 0123456789
------------------
   | ##########
   | #        #
   | #   >    #
   | #   >    #
   | #        #
   | ##########

したがって[Y,X]、適切な文字が取得されます。

于 2013-07-01T18:18:02.337 に答える