康威的生活游戏,下一代打印不好

时间:2014-12-09 08:03:25

标签: java

我正在研究Conway的大学问题游戏。我已经能够打印第一代和第二代,但是当涉及到以下几代时,它们都复制了第二代。我想知道你们是否可以帮助我。

public void computeNextGeneration(int generation)
{
    char[][] newBoard = new char[board.length][board[0].length];

    for(int i = 0; i < board.length; i++)
    {
        for(int j = 0; j < board[0].length; j++)
        {
            if(board[i][j] == '0' && numOfNeighbors(i,j) == 3)
            {
                newBoard[i][j] = 'X';
            }
            else if(board[i][j] == 'X' && numOfNeighbors(i,j) < 2)
            {
                newBoard[i][j] = '0';
            }
             else if(board[i][j] == 'X' && numOfNeighbors(i,j) >3)
            {
                newBoard[i][j] = '0';
            }
             else if(board[i][j] == 'X' && numOfNeighbors(i,j) == 2 || numOfNeighbors(i,j) == 3)
            {
                newBoard[i][j] = 'X'; //change x to 0
            }
             else{
                 newBoard[i][j] +=board[i][j];
             }
        }  
    }


        for (int i = 0; i < newBoard.length; i++)
        {
            for(int j = 0; j < newBoard[0].length; j++)
            {
                System.out.print(newBoard[i][j]);
            }
            System.out.println();
        }
}

2 个答案:

答案 0 :(得分:1)

计算新板后,您必须将其分配回类字段board。添加为computeNextGeneration board = newboard的最后一行。

答案 1 :(得分:0)

你从2 for(int i = 2; i <= gen; i++)开始计算你的世代,因为构造函数没有生成一个起始代,这应该是 0