将2维数组输出到控制台

时间:2015-11-10 11:46:48

标签: c# arrays

首先,我想创建一个" oldschool"使用控制台在c#中使用桌面游戏。

我已经创建了一个2维数组,其中包含我希望控制台显示为控制台的字段,您可以在其中移动您的英雄"。

Feld[,] result = new Feld[,] {
    {null,null,null,null,null,null,null,null,new Feld(Richtungen.UNTEN),null,null,null,null,null,null,null,null },
    {new Feld(Richtungen.UNTEN|Richtungen.RECHTS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.OBEN|Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.UNTEN|Richtungen.LINKS) },
    {new Feld(Richtungen.OBEN|Richtungen.UNTEN),null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,new Feld(Richtungen.OBEN|Richtungen.UNTEN) },
    {new Feld(Richtungen.OBEN|Richtungen.RECHTS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.UNTEN|Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.OBEN|Richtungen.LINKS)  },
    {null,null,null,null,null,null,null,null,new Feld(Richtungen.UNTEN|Richtungen.OBEN),null,null,null,null,null,null,null,null  },
    {null,null,null,null,null,null,new Feld(Richtungen.RECHTS|Richtungen.UNTEN),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.LINKS|Richtungen.OBEN|Richtungen.RECHTS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.LINKS|Richtungen.UNTEN),null,null,null,null,null,null   },
    {null,null,null,null,null,null,new Feld(Richtungen.OBEN|Richtungen.UNTEN),null,null,null,new Feld(Richtungen.OBEN|Richtungen.UNTEN),null,null,null,null,null,null   },
    {null,null,null,null,new Feld(Richtungen.UNTEN|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.UNTEN),null,null,null,null   },
    {null,null,null,null,new Feld(Richtungen.OBEN|Richtungen.UNTEN),null,null,null,null,null,null,null,new Feld(Richtungen.OBEN|Richtungen.UNTEN),null,null,null,null   },
    {null,null,new Feld(Richtungen.UNTEN|Richtungen.RECHTS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.LINKS|Richtungen.OBEN|Richtungen.RECHTS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS|Richtungen.UNTEN),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS|Richtungen.UNTEN),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.RECHTS|Richtungen.LINKS|Richtungen.OBEN),new Feld(Richtungen.RECHTS|Richtungen.LINKS),new Feld(Richtungen.LINKS|Richtungen.UNTEN),null,null   },
    {null,null,new Feld(Richtungen.OBEN|Richtungen.UNTEN),null,null,null,new Feld(Richtungen.OBEN|Richtungen.UNTEN),null,null,null,new Feld(Richtungen.OBEN|Richtungen.UNTEN),null,null,null,new Feld(Richtungen.OBEN|Richtungen.UNTEN),null,null   },
    {new Feld(Richtungen.UNTEN|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.OBEN),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.UNTEN),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.OBEN),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.UNTEN|Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.OBEN),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.UNTEN),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.OBEN),new Feld(Richtungen.LINKS|Richtungen.RECHTS),new Feld(Richtungen.LINKS|Richtungen.UNTEN)   },
    {new Feld(Richtungen.UNTEN|Richtungen.OBEN),null,null,null,new Feld(Richtungen.UNTEN|Richtungen.OBEN),null,null,null,new Feld(Richtungen.UNTEN|Richtungen.OBEN),null,null,null,new Feld(Richtungen.UNTEN|Richtungen.OBEN),null,null,null,new Feld(Richtungen.UNTEN|Richtungen.OBEN)   },
    {new Feld(Richtungen.OBEN|Richtungen.RECHTS,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.UNTEN,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.OBEN,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.UNTEN,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS,false),new Feld(Richtungen.OBEN|Richtungen.LINKS|Richtungen.RECHTS,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.UNTEN,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.OBEN,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS|Richtungen.UNTEN,false),new Feld(Richtungen.LINKS|Richtungen.RECHTS,false),new Feld(Richtungen.LINKS|Richtungen.OBEN,false) }
  };

Null是空格,Feld(Richtungen.XYZ)表示在方向中写入连接的字段。 (Richtungen.Oben = Direction.Up中的连接)。

现在我遇到了一个问题 - 我不知道如何将我的数组放入控制台。

2 个答案:

答案 0 :(得分:1)

您需要使用两个For循环来运行数组并使用Console.Write()绘制Board。

class Program
{
    static void Main(string[] args)
    {
        Feld[,] result = new Feld[,] { } ;

        for (int x = 0; x < 100; x++)
        {
            for (int y = 0; y < 100; y++)
            {
                if (result[x, y].IsFilled)
                {
                    Console.Write("x");
                }
                else
                {
                    Console.Write("O");
                }
            }
            Console.Write(Environment.NewLine);
        }
        Console.Read();
    }
}

public class Feld
{
    public bool IsFilled { get; set; }
    public Feld(bool isFill)
    {
        IsFilled = isFill;
    }
}

使用Propertiesif语句来决定需要打印的内容。将100值更改为数组的X和Y长度。

答案 1 :(得分:1)

尝试这样的事情:

for (int y = 0 y < result.GetLength(1); y++)
{  
  for (int x = 0 x < result.GetLength(0); x++)
  {
    Console.Write(result[x,y]?.ToString())
  }
  Console.WriteLine();
}