编码Conway在Android中的生命游戏时出现无法解释的错误

时间:2015-05-05 04:41:01

标签: java android conways-game-of-life

我在Android中创造了Conway的生命游戏。我有我认为是一个工作引擎,我有一个工作初始网格视图,我可以绘制和填充初始数组上的点。但是,当我尝试将初始数组传递到我的游戏引擎时,我得到一个零点异常。我试图传递初始数组的代码如下:

case R.id.test_item:
            {
        Toast.makeText(getApplicationContext(),R.string.generation_string,
            Toast.LENGTH_LONG).show();

            myGridView.setStart(true);
            char[][] testGen = myGridView.getWorld();
            System.out.println("test1");
            char[][] nextGen = lifeEngine.generateNextGeneration(testGen);
            myGridView.setWorld(nextGen);
            myGridView.invalidate();

        }

public char[][] generateNextGeneration(char[][] world) {

    System.out.println("test1");
    //char[][] currentGeneration = world;
    int neighbors; 
    System.out.println("test1");
    char[][] nextGeneration = new char[height][width];

    System.out.println("test1");

    for (int c = 0; c < (height-1)/UpdateGridActivity.cell_size; c++) { 
        for (int r = 0; r < (width-1)/UpdateGridActivity.cell_size; r++) { 
            System.out.println("test1");
            neighbors = checker.Check(world,c,r);
            System.out.println("test1");
            if(world[c][r] != 0) //handles live cells 
            {
                //neighbors = checker.Check(world,c,r);
                if (neighbors !=3 && neighbors !=2) 
                    nextGeneration[c][r] = 0; 
                else
                    nextGeneration[c][r] = '*'; 
            }
            else //handles dead cells
            {
                //neighbors = checker.Check(world,c,r);
                if(neighbors == 3)
                    nextGeneration[c][r] = '*';
                else
                    nextGeneration[c][r] = 0;
            }
        }
    }
    return nextGeneration;
}    
}

第一个&#34; test1&#34;出现在我的日志中,但应用程序崩溃并且在下一个&#34; test1&#34;之前抛出空指针异常。打印出generateNextGeneration的顶部。此时我无法弄清楚异常的来源,因为我不确定标头会如何抛出它。

如果您想引用它,我的整个源代码可以在以下位置找到:https://umbc.box.com/s/m7elds5u7120tysiwplzma3t4lgef69w

0 个答案:

没有答案