【问题标题】:Chess board positions棋盘位置
【发布时间】:2016-12-27 18:51:45
【问题描述】:

我怎样才能做到这一点,以便用户在控制台(表 [4,5])中键入位置,我希望用户键入?

int[,] table = new int[8, 8];
         for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    if ((i + j) % 2 == 0)
                    {
                        table[i, j] = 0;
                    }
                    else
                    {
                        table[i, j] = 1;
                    }
                }
            }
           Console.WriteLine("4 - king");
           Console.WriteLine("3 - queen");
           Console.WriteLine("4 - hunter");

           table[4,5] = 2;
           table[6,7] = 3;
           table[2,2] = 4;

           for (int i = 0; i < 8; i++)
                {
                    for (int j = 0; j < 8; j++)
                    {
                        Console.Write(table[i, j] + " ");
                    }
                    Console.WriteLine();
                }

我应该怎么做才能使这个工作?如果我输入这个它不起作用: 这就是为什么我必须将数字放在不同的行或列中我该如何解决这个问题

       table[4,5] = 2;
       table[4,7] = 3;
       table[2,2] = 4;

【问题讨论】:

  • 我什么都不懂。你想做什么?请花点时间解释您的问题,我们无法猜测
  • “它不起作用”是什么意思?我们不知道您在这里要做什么,您必须实际解释问题。
  • 您在第一个循环中覆盖了table[4,5]。只需将table[4,5] = 2; 移动到第一个循环之后?此外,您正在测试与== 的相等性。分配是=
  • 对不起,我的板子在 8x8 中看起来像 01010101,我希望它在某个地方是 01010121 和 01013101,还有一个可以更改 1 01040101
  • @БогданБогојевић:这听起来是一个很好的机会,您可以在调试器中单步执行代码并检查运行时值和行为。

标签: c# arrays multidimensional-array


【解决方案1】:

您将赋值运算符“=”与逻辑比较运算符“==”混淆了。您的第二行只是将 table[4,5] 与 2 进行比较,可能返回 false。

改成:

table[4,5] = 2;

此外,即使您设法为 table[4,5] 分配了一个值,您也会在下一行中覆盖它。您应该将该行移到第一个嵌套循环的末尾。就在第二个“for (int i = 0; i

【讨论】:

  • 我怎样才能使职位在控制台中插入购买用户
  • 你知道怎么做吗?
  • 可以使用 Console.ReadLine() 与用户交互
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多