我正在尝试使用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用于更多的数学问题。