C# 使用C创建类似扫雷舰的图案时遇到的问题#
首先,我是C#的新手,所以,如果我问一些有点“新手”的问题,我很抱歉。好吧,事情是这样的: 我正在尝试创建一个模式,就像游戏一样:扫雷舰,因为我在做一个简单的游戏,一个国际象棋游戏,所以我现在的大问题是我不能有效地创建列,所以,我的代码如下:C# 使用C创建类似扫雷舰的图案时遇到的问题#,c#,loops,design-patterns,nested,C#,Loops,Design Patterns,Nested,首先,我是C#的新手,所以,如果我问一些有点“新手”的问题,我很抱歉。好吧,事情是这样的: 我正在尝试创建一个模式,就像游戏一样:扫雷舰,因为我在做一个简单的游戏,一个国际象棋游戏,所以我现在的大问题是我不能有效地创建列,所以,我的代码如下: class chessGame { static void Main(string[] args) { const string EX = "X"; const string OU = "O";
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();
}
}
类棋类游戏
{
静态void Main(字符串[]参数)
{
常量字符串EX=“X”;
常量字符串OU=“O”;
常数int值_X=8;
int numRows=0;
int numCol=0;
while(numRows
另外,我完全不知道这是否是使用嵌套循环创建列和行的方式,因此,如果有人可以帮助我,或者有人可以帮助我正确地使用实际代码,非常感谢
为了记录在案,我现在在控制台中看到:
在此之前,谢谢你们给大家的建议 要开始,您需要将两个内部
WriteLine()
调用更改为Write()
但实际上,您需要开始考虑整个电路板的状态,其中有一个2D数组来表示电路板的状态。然后编写一个函数来输出整个数组。要开始,您需要将两个内部
WriteLine()
调用更改为write()
但实际上,您需要开始考虑整个电路板的状态,其中有一个2D数组来表示电路板的状态。然后编写一个函数来输出整个数组。
WriteLine
,顾名思义,写一整行(并在末尾加一个换行)。在设置中执行多个列不是很好
典型的解决方案是只使用控制台。编写,有时使用,以便一次可以编写单个“单元格”
另一个相当简单的方法是将每一行作为单个字符串进行预计算,然后WriteLine
无论采用哪种方式,您都需要对循环进行相当大的修改,以获得正确的效果。WriteLine
,顾名思义,它会写一整行(并在末尾换行)。在设置中执行多个列不是很好
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();
典型的解决方案是只使用控制台。编写,有时使用,以便一次可以编写单个“单元格”
另一个相当简单的方法是将每一行作为单个字符串进行预计算,然后WriteLine
无论采用哪种方法,您都需要对循环进行相当大的修改,以获得正确的效果。const string EX=“X”;
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();
常量字符串OU=“O”;
常数int值_X=8;
bool writeToggle=true;
int numRows=0;
int numCol=0;
对于(numRows=0;numRows
下面是一些应该生成您的模式的代码。注意使用Console.Write
而不是Console.WriteLine
,这样它不会在每次打印字符时跳过一行。此外,boolwriteToggle
用于在X和O之间切换。const string EX=“X”;
常量字符串OU=“O”;
常数int值_X=8;
bool writeToggle=true;
int numRows=0;
int numCol=0;
对于(numRows=0;numRows
下面是一些应该生成您的模式的代码。注意使用Console.Write
而不是Console.WriteLine
,这样它不会在每次打印字符时跳过一行。此外,boolwriteToggle
用于在X和O之间交替。当你说做多个列并不好时,我的意思是。。我必须做一个8 x 8的模式,所以,这比你说的典型解决方案更好,但是,我也会尝试将每一行作为单个字符串来处理!:)@Diego他指的是你使用控制台的方式。WriteLine()
对于你想要实现的目标来说,这不是一件好事。您的逻辑执行方式可以使用他给出的解决方案进行修复,但如果您愿意更改循环的工作方式,您可以设法使用Console.WriteLine()
properly@Franck谢谢,现在我明白了,我要多练习,谢谢你的建议。:)当你说做一个以上的专栏并不好时,我的意思是。。我必须做一个8 x 8的模式,所以,这比你说的典型解决方案更好,但是,我也会尝试将每一行作为单个字符串来处理!:)@Diego他指的是你使用控制台的方式。WriteLine()
对于你想要实现的目标来说,这不是一件好事。您的逻辑执行方式可以使用他给出的解决方案进行修复,但如果您愿意更改循环的工作方式,您可以设法使用Console.WriteLine()
properly@Franck感谢