【问题标题】:X and Y Axis Indices in List<string> for RoguelikeRoguelike 的 List<string> 中的 X 和 Y 轴索引
【发布时间】:2013-07-01 18:08:49
【问题描述】:

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

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

列表如下所示:

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

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

【问题讨论】:

  • 如果它有助于解释下面的答案(Map[playerY]) [playerX],必须承认,这是使用字符串列表的一种非常聪明的方法
  • 我现在也喜欢,因为我懂了哈哈。

标签: c# roguelike


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    所以[Y,X] 会得到合适的字符。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-08
        • 1970-01-01
        • 1970-01-01
        • 2019-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多