#Why is the fire not spreading to the surrounding tiles correctly?

9 messages · Page 1 of 1 (latest)

slender pikeBOT
#

Hey, @modern forge!
Please remember to /close this post once your question has been answered!

modern forge
#
    public static void main (String[] args){

        int grid[][] = {{0,2,0,0,0,0,0},{0,0,0,2,2,1,0},{0,2,0,0,1,2,0},{0,0,2,2,2,0,2},{0,0,0,0,0,0,0}};
        
        int[][] bgrid = new int[grid.length + 2][grid[0].length + 2];
        int[][] future = new int[grid.length + 2][grid[0].length + 2];

        int spread = 0;

        for (int x = 0; x < bgrid.length; x++){
            for (int y = 0; y < bgrid[1].length; y++){
                if (x == 0 || y == 0 || x == bgrid.length - 1 || y == bgrid[0].length - 1){
                    bgrid[x][y] = 2; 
                }
                else{
                    bgrid[x][y] = grid[x - 1][y - 1];
                }
            }
        }

        for (int x = 1; x < bgrid.length - 1; x++){
            for (int y = 1; y < bgrid[0].length - 1; y++){

                spread = 0;

                if (bgrid[x][y] == 1 && bgrid[x][y - 1] == 0){
                    future[x][y - 1] = 1;
                    future[x][y] = 1;
                }
                if (bgrid[x][y] == 1 && bgrid[x][y + 1] == 0){
                    future[x][y + 1] = 1;
                    future[x][y] = 1;
                }
                if (bgrid[x][y] == 1 && bgrid[x - 1][y] == 0){
                    future[x - 1][y] = 1;
                    future[x][y] = 1;
                }
                if (bgrid[x][y] == 1 && bgrid[x + 1][y] == 0){
                    future[x + 1][y] = 1;
                    future[x][y] = 1;
                }
                if (bgrid[x][y] != 1){
                    future[x][y] = bgrid[x][y];
                }
            
                if (spread == 0){
                    spread = -1;
                }
            }
        }
      
        for (int x = 1; x < future.length - 1; x++){
            for (int y = 1; y < future[0].length - 1; y++){
                System.out.print(future[x][y]);
            }
            System.out.println();
        }

    }
}
#

so given the matrix

#

0 = grass

#

1 = fire

#

2 = wall

#

Why isn't the fire spreading right at (2,6)?