首先,我是C#的新手,所以如果我问一些“如此新手”,我深表歉意。好吧,这件事:
我正尝试创建一种模式,就像游戏一样: Minesweeper “因为我正在做一个简单的游戏,一个国际象棋游戏,所以我现在的大问题是我可以做到” t有效地创建列,所以,这是我的代码:
class chessGame
{
static void Main(string[] args)
{
const string EX = "X";
const string OU = "O";
const int VALUE_X = 8;
int numRows = 0;
int numCol = 0;
while (numRows < VALUE_X)
{
for (numCol = 0; numCol < VALUE_X; numCol++)
{
Console.WriteLine(OU);
}
for (numRows = 0; numRows < numCol; numRows++)
{
Console.WriteLine(EX);
}
Console.WriteLine();
}
Console.ReadLine();
}
}
而且,我根本不知道是否是使用嵌套循环创建列和行的方式,因此,如果有人可以帮助我,或者只是有人可以帮助我,用我的实际代码正确执行,非常感谢!
记录下来,这是我现在在控制台中看到的内容:
事先,谢谢您对所有人的建议!
答案 0 :(得分:5)
WriteLine
会写整行(并在末尾添加换行符)。对于在您的设置中完成不止一列不是很好!
典型的解决方案是仅使用Console.Write
,有时使用Console.SetCursorPosition
,这样您就可以一次编写单个“单元格”。
另一种相当简单的方法是将每行预先计算为一个字符串,然后WriteLine
。
无论哪种方式,您都需要对循环进行相当大的修改才能获得正确的效果。
答案 1 :(得分:3)
要开始使用,您需要将两个内部WriteLine()
调用更改为Write()
。
但是,实际上,您要开始考虑整个电路板的问题,在该电路板上您有一个2D数组来表示电路板的状态。然后编写一个函数以输出整个数组。
答案 2 :(得分:1)
const string EX = "X";
const string OU = "O";
const int VALUE_X = 8;
bool writeToggle = true;
int numRows = 0;
int numCol = 0;
for (numRows = 0; numRows < VALUE_X; numRows++)
{
for (numCol = 0; numCol < VALUE_X; numCol++)
{
if (writeToggle)
{
Console.Write(EX);
}
else
{
Console.Write(OU);
}
writeToggle = !writeToggle;
}
Console.WriteLine();
}
Console.ReadLine();
这是一些应生成模式的代码。请注意使用Console.Write
而不是Console.WriteLine
,因此它不会在每次打印字符时都跳过一行。另外,布尔writeToggle
用于在X和O之间交替。