1

在分析了此链接中的一段代码(C# 部分)后,我尝试自己进行一些练习。
但是,我对以下部分如何转换为字符串列表中的 X、Y 索引以及为什么 if() 语句在 X 之前具有 Y 索引感到困惑。

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

列表如下所示:

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

任何帮助将不胜感激,在此先感谢您!

4

3 回答 3

3

第一个 [ ] 从数组中选择一个字符串。第二个 [ ] 从字符串中选择一个字符。

于 2013-07-01T18:10:47.337 回答
2

因为字符串本身就是数组,所以调用索引器函数,例如:string[n]将获取 position 处的字符n

因此,当您尝试获取玩家所在的角色时,您可以通过索引字符串数组来获得 Y 坐标,因为数组中的第一个字符串是地图的第一行。

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

然后,我们通过将 X 与字符串中 X 位置的字符进行匹配来挑选出 X:

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

所以[Y,X]会得到相应的字符。

于 2013-07-01T18:18:02.337 回答
1

Y索引选择哪个字符串,正如您对List. 索引实际上从该X字符串中选择一个字符。List这在 a of上不起作用,比如ints,因为这个例子实际上是在 the 上使用[]运算符List,然后StringList返回时再次使用它。

于 2013-07-01T18:10:11.100 回答