在c#中用true和false布尔值随机填充数组(以及其他问题)



目前正在大学学习编程,我有一个家庭作业,我真的无法解决。

我的任务是创建康威的《生命游戏》,你可以制作一个数组,你必须用"细胞"填充这些细胞可以是死的也可以是活的,你可以用随机的死细胞和活细胞随机填充数组。我的第一个难题是用0和1填充细胞,0代表死细胞,1代表活细胞。

游戏有一些规则,例如

  • 如果一个活细胞有2个或更少的活邻居,它就会死亡
  • 如果一个活的小区有2个或3个活的邻居,它仍然是活的
  • 如果一个活细胞有3个或更多的活邻居,它就会死亡
  • 如果一个死细胞有3个活着的邻居,它就会变成活着的

这个游戏继续进行,有多个回合,所有这些细胞都会根据规则改变它们的状态。我必须跟踪细胞状态的变化,并且必须跟踪它存活时的最多数字。

我的问题是:

  • 我应该上一个新课吗
  • 我应该用true/false或0/1来声明它们的状态吗。如果我应该使用true/false,我如何用true和false值随机填充矩阵
  • 正如你在规则中看到的那样,在我实现规则并改变细胞的状态之前,我必须判断细胞是活的还是死的。你会怎么做

很抱歉我问了很多问题。提前感谢!Tamas

是否应该创建一个新类?如果你愿意的话,你可以。我知道在一些课堂上,当他们教c#时,他们希望你学会创建类和对象,但如果这不是你作业的要求,你可以在不创建的情况下进行管理。

您应该使用true/false还是0/1?我真的看不出两者有什么大的区别。True/false可能使用的系统资源比0/1少一点,但我只是猜测,这可能取决于您如何检查它们的值。

如何用随机布尔值填充数组?如果你使用一个矩阵有2层的数组我会做一些类似的事情:

        int NumberOfColumns = 10;
        int NumberOfRows = 10;
        bool[,] Matrix = new bool[NumberOfRows, NumberOfColumns];
        Random rng  = new Random();
        for (int i = 0; i < NumberOfRows; i++)
        {
            for (int j = 0; j < NumberOfColumns; j++)
            {
                if (rng.Next(0, 2) == 1)
                {
                    Matrix[i,j] = true;
                }
                else
                {
                    Matrix[i,j] = false;
                }
            }
        }

最简单的方法是创建单元格的类。每个单元格都必须包含一个bool(如果是死的则为false,如果是活的则为true(。(当你调用构造函数时,你可以随机化bool(

下一步是创建一个单元格数组。

现在你可以在while true上使用一个线程,然后在它内部使用foreach(ArrayofCell中的Cell c(。。。。。做某事(例如遵守规则(

最新更新