我正在尝试使用c#和visual studio制作一个棋盘,它可以根据输入进行移动,类似于国际象棋。我不确定这是否是最好的方法,但我正在尝试使用一个4x42d数组来绘制一个带有可以修改的位值的网格。我的问题的焦点是如何使用4x4图形构建后的循环打印出完整的网格,其中不仅行"a“和列"1”的占位符显示数组值。同样,使用二维数组来绘制具有每个空间上的值的电路板是明智的,还是更容易手动制作电路板并使用手动绘制的电路板为每个数组赋值。这是一个控制台项目,我现在只是在寻找代码的基础,我的总体目标是类似于棋盘游戏的风险。我应该补充一点,我对编程是个新手,任何关于我应该使用什么和不应该使用什么的建议都是有帮助的。我已经标出了我计划使用的原始代码,其中x和y将使用循环来生成"[]“来显示图形,因为我意识到它不会标记4x4图形的每个占位符。
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();
}
}发布于 2015-08-30 03:46:12
在写这篇文章的时候,我试图让它变得尽可能高效。所以就像这样:
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#中的新行。每次你在一个维度中删除一个finish数组,它都会打印一个新的行。
我更喜欢使用for而不是foreach,因为对于这种情况,它更快。Foreach用于对象,for用于更多的数学问题。
当然,你可以按你认为合适的方式改变它。
https://stackoverflow.com/questions/32289989
复制相似问题