列表<string>中的X和Y轴指数用于Roguelike </string>

时间:2013-07-01 18:08:49

标签: c# roguelike

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

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

这是列表的样子:

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

任何帮助将不胜感激,谢谢你提前!

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

由于字符串本身就是数组,因此调用索引器函数(例如:string[n])将使字符位于n位置。

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

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

然后我们通过将X匹配到字符串中X位置的字符来选择X:

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

所以[Y,X]会得到合适的角色。

答案 2 :(得分:1)

Y索引选择哪个字符串,正如您对List所期望的那样。 X索引实际上从该字符串中选择一个字符。这不适用于List,例如ints,因为此示例实际上是使用[]上的List运算符,然后在String上再次使用它{1}} List返回。