首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >康威的生活游戏规则Java

康威的生活游戏规则Java
EN

Stack Overflow用户
提问于 2015-11-08 04:32:43
回答 1查看 585关注 0票数 0

我正在制作Conway的“生活的游戏”,就像其他的初学者一样。我的主要问题是我不知道如何实现游戏规则,这些规则是:恰好有三个活的邻居的死细胞变成了活的,恰好有一个活的邻居的活的细胞变成了死的,一个有三个以上活的邻居的活的细胞变成了死的。我以前从来没有操作过矩阵,所以我不知道从哪里开始。我所在的类还不允许我们使用非静态方法,我们也不能使用java库。这是我目前所拥有的:

代码语言:javascript
复制
public class Life {
public static boolean[][] origin(int a) {
    boolean[][] randomMatrix = new boolean [a][a];
    for (int i = 0; i < a; i++) {
        for (int j = 0; j < a; j++) {
        randomMatrix[i][j] = StdRandom.bernoulli();
        }
    }
    return randomMatrix;
    }
public static void print(boolean[][] a) {
    int N = a.length;
    StdOut.println(N);
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            if (a[i][j]) StdOut.print("1 ");
            else         StdOut.print("0 ");
        }
        StdOut.println();
    }
} 
public static void show(boolean[][] a, boolean which) {
    int N = a.length;
    StdDraw.setXscale(0, N-1);
    StdDraw.setYscale(0, N-1);
    double r = .5;
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            if (a[i][j] == which) {
                StdDraw.filledSquare(j, N-i-1, r);
            }
        }
    }
}

public static void main(String[] args) {
    int a = 5;
    boolean[][] b = origin(a);
    int gens = 3;
    for (int i = 0; i < gens; i++) {
        System.out.println("Generation " + i + ":");
        print(b);
        show(b, true);
        }
    }
}

我现在收到的输出就是我最初生成游戏所需要的。我认为我需要一个新的数组来存储新的世代,也许还需要一些if和else语句来检查细胞是活的还是死的。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2015-11-08 05:44:19

提示最近我完成了这个例子。所以正确的结构是:

next

  • 需要2维数组("current“& "next")

  • Initialize "current”with random values

  • print "current"

  • Copy & Calculate下一代的每个单元格在数组“next”

  • 计算后,更新"current“数组。使用函数更新每个单元格,并将其设置为“

"next“generation

  • Print "current”,然后转至step 4

警告!!使用不同的公式检查边缘的单元格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33587451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档