在分析了this链接(C#部分)的代码片段之后,我尝试自己做一些练习。
但是,我对下面的部分如何转换为字符串列表中的X,Y索引以及为什么if()语句在X之前具有Y索引感到困惑。
if (Map[playerY][playerX] == ' ')
这是列表的样子:
List<string> Map = new List<string>()
{
"##########",
"# #",
"# > #",
"# > #",
"# #",
"##########"
};
任何帮助将不胜感激,谢谢你提前!
答案 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
返回。