如何打印数组的每一行与一个循环的图形映射板



我正在尝试使用c#和visual studio制作一个允许基于输入的移动的棋盘,类似于国际象棋。我不确定这是否是最好的方法去做,但我试图使用一个4x4二维数组来映射出一个网格的位置值,可以修改。我的问题的焦点是我如何打印一个完整的网格与循环,遵循4x4图形构建,其中不仅行"a"和列"1"占位符显示数组值。此外,使用2d数组在每个空间上绘制带有值的板是否明智,或者手动制作板并在手动绘制的板中为每个数组分配值是否更容易。这是一个主机项目,我现在只是在寻找代码的基础,我的总体目标是类似于桌面游戏的风险。我应该补充一点,我对编程有点陌生,任何关于我应该使用和不应该使用的建议都是有帮助的。在意识到它不会标记4x4图形的每个占位符之后,我已经标记了我计划使用的x和y将使用循环来使"[]"显示图形的原始代码。

 class game
{
    int[,] board;
    string y;
    int x;
    static void Main(string[] args)
    {
        //for (int y = 0; y < 6; y++)
        {
         //   Console.Write("[]");
        }
        //for (int x = 0; x < 6; x++)
        {
          //  Console.WriteLine("[]");
        }

        int[,,] map = new int[,,]{
            {
            {0,0}, {1,0}, {2,0}, {3,0},
            {0,1}, {1,1}, {2,1}, {3,1}
            }
        };

        foreach (var item in map)
        {
            Console.Write("[" + item.ToString() + "]");
        }
        Console.ReadKey();
    }
}

在写这篇文章时,我试图使它尽可能有效。像这样:

    int[,,] map = new int[,,]{
        {
        {0,1,2,3},
        {0,1,2,3},
        {0,1,2,3},
        {0,1,2,3}
        }
    };

int width = map.GetLength(0);
int height = map.GetLength(1);
    for(int i=0;i < width;i++)
    {
       for(int j=0;j < height;j++)
       {
                Console.Write("[" + map[i,j] + "]");
       }
     Console.Write("n");
    }

n表示c#中的新行。每次你在一个维度上放下一个数组,它都会打印一个新的行。

我更喜欢使用for而不是foreach,因为它在这种情况下更快。Foreach用于对象,for用于更多的数学问题。

相关内容

  • 没有找到相关文章

最新更新