我正在尝试使用2D数组将象棋设计制作成控制台。 我用“|”做边界和“ - ”来设计一个运动场。 但是,我在切换场的颜色时遇到问题(白色|黑色|白色) 这是我的代码(没有更改编号字段的颜色)
public class Program
{
static void Main(string[] args)
{
int[] array = new int[10];
int[,] array2 = new int[6, 9];
for(int i = 0;i < array2.GetLength(0); i++)
{
if (i == array2.GetLength(0)-1 || i == 0)
{
for (int h = 0; h < array2.GetLength(1); h++)
decidingColors(false);
Console.Write("|" + "-");
}
else
for (int x = 0;x < array2.GetLength(1); x++)
{
decidingColors(false);
Console.Write("|");
decidingColors(true);
Console.Write(array2[i, x]);
}
decidingColors(false);
Console.Write("|");
Console.WriteLine();
}
Console.ReadLine();
}
public static void decidingColors(bool wentThrough)
{
if(wentThrough == true)
{
Console.BackgroundColor = ConsoleColor.White;
Console.ForegroundColor = ConsoleColor.Black;
}
else
{
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.White;
}
}
}
我尝试使用不同的方法,但它总是以某种方式进入代码并打破它。你有一个很好的解决方案吗?
提前致谢!
答案 0 :(得分:2)
您的循环可能无法正确打印您认为正在打印的内容。您应该在索引h
的循环中添加花括号,以便缩进与实际逻辑匹配。
for (int h = 0; h < array2.GetLength(1); h++) {
decidingColors(false);
Console.Write("|" + "-");
}
答案 1 :(得分:1)
您可以使用x%2 == 0设置备用,以确定需要的奇数或偶数元素。
for (int x = 0;x < array2.GetLength(1); x++)
{
decidingColors(false);
Console.Write("|");
decidingColors(x % 2 == 0);
Console.Write(array2[i, x]);
}