Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C创建类似扫雷舰的图案时遇到的问题#_C#_Loops_Design Patterns_Nested - Fatal编程技术网

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";

首先,我是C#的新手,所以,如果我问一些有点“新手”的问题,我很抱歉。好吧,事情是这样的:

我正在尝试创建一个模式,就像游戏一样:扫雷舰,因为我在做一个简单的游戏,一个国际象棋游戏,所以我现在的大问题是我不能有效地创建列,所以,我的代码如下:

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
,这样它不会在每次打印字符时跳过一行。此外,bool
writeToggle
用于在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
,这样它不会在每次打印字符时跳过一行。此外,bool
writeToggle
用于在X和O之间交替。当你说做多个列并不好时,我的意思是。。我必须做一个8 x 8的模式,所以,这比你说的典型解决方案更好,但是,我也会尝试将每一行作为单个字符串来处理!:)@Diego他指的是你使用控制台的方式。WriteLine()
对于你想要实现的目标来说,这不是一件好事。您的逻辑执行方式可以使用他给出的解决方案进行修复,但如果您愿意更改循环的工作方式,您可以设法使用
Console.WriteLine()
properly@Franck谢谢,现在我明白了,我要多练习,谢谢你的建议。:)当你说做一个以上的专栏并不好时,我的意思是。。我必须做一个8 x 8的模式,所以,这比你说的典型解决方案更好,但是,我也会尝试将每一行作为单个字符串来处理!:)@Diego他指的是你使用控制台的方式。WriteLine()
对于你想要实现的目标来说,这不是一件好事。您的逻辑执行方式可以使用他给出的解决方案进行修复,但如果您愿意更改循环的工作方式,您可以设法使用
Console.WriteLine()
properly@Franck感谢