Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Help with conways game of life java program. this is the code i have so far. imp

ID: 3570163 • Letter: H

Question

Help with conways game of life java program. this is the code i have so far.

import java.io.*;
import java.util.Scanner;

public class GameOfLife
{
    private char[][] board;
    private int columns;
    private int rows;
    private int generation;
     
    public static void main(String[] args) throws FileNotFoundException
    {
       GameOfLife game = new GameOfLife();
       Scanner kb = new Scanner(System.in);
       System.out.print("Enter how many generations to compute: ");
       int gen = kb.nextInt();
       System.out.println("Generation 1 ");
       game.print();     
       for(int i = 2; i <= gen; i++)
       {
          System.out.println();
          System.out.println("Generation " + i);
          System.out.println();
          game.computeNextGeneration(gen);
          game.printNew();
       }
    }

    public GameOfLife() throws FileNotFoundException
    {
        Scanner kb = new Scanner(System.in);
        System.out.print("Enter file name: ");
        String filename = kb.nextLine();
        File file = new File(filename);
        Scanner inputFile = new Scanner(file);
        int columns = inputFile.nextInt();
        int rows = inputFile.nextInt();
        inputFile.nextLine();
        board = new char[rows][columns];
        for(int i = 0; i < rows; i++)
        {
           String line = inputFile.nextLine();
           for(int j = 0; j < columns; j++)
           {
              board[i][j] = line.charAt(j);
           }
        }
    }

    public int getColumns()
    {
       return columns;
    }

    public int getRows()
    {
       return rows;
    }

    public int getCell(int rows, int columns)
    {
       if(board[rows][columns] == 'X' || board[rows][columns] == '0')
       {
          return board[rows][columns];
       }
       else
       {
          return 0;
       }
    }

    public void setCell(int rows, int columns, int value)
    {
       for(int i = 0; i < board.length; i++)
       {
          for(int j = 0; j < board[0].length; j++)
          {
             value = board[rows][columns];
          }
       }
    }

    public int numOfNeighbors(int rows, int columns)
    {
       int count = 0;
       int i = rows;
       int j = columns;
       int left;
       int right;
       int up;
       int down;
       if(i > 0)
       {
          up = i-1;
       }
       else
       {
          up = board.length-1;
       }
       if(i < (board.length-1))
       {
          down = i+1;
       }
       else
       {
          down = 0;
       }
       if(j > 0)
       {
          left = j-1;
       }
       else
       {
          left = board[i].length-1;
       }
       if (j < (board[i].length-1))
       {
          right = j+1;
       }
       else
       {
          right = 0;
       }
       if(board[up][left] == '0')
       {
          count++;
       }
       if(board[up][j] == '0')
       {
          count++;
       }
       if(board[up][right] == '0')
       {
          count++;
       }
       if(board[i][left] == '0')
       {
          count++;
       }
       if(board[i][right] == '0')
       {
          count++;
       }
       if(board[down][left] == '0')
       {
          count++;
       }
       if(board[down][j] == '0')
       {
          count++;
       }
       if(board[down][right] == '0')
       {
          count++;
       }
       return count;
    }
  
    public void computeNextGeneration(int generation)
    {
       char[][] boardTwo = 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)
             {
                boardTwo[i][j] = 'X';
             }
             else if(board[i][j] == 'X' && numOfNeighbors(i,j) < 2)
             {
                boardTwo[i][j] = '0';
             }
             else if(board[i][j] == 'X' && numOfNeighbors(i,j) >3)
             {
                boardTwo[i][j] = '0';
             }
             else if(board[i][j] == 'X' && numOfNeighbors(i,j) == 2 || numOfNeighbors(i,j) == 3)
             {
                boardTwo[i][j] = 'X';
             }
             else
             {
                 boardTwo[i][j] += board[i][j];
             }
          }
       }
       for (int i = 0; i < boardTwo.length; i++)
       {
          for(int j = 0; j < boardTwo[0].length; j++)
          {
             System.out.print(boardTwo[i][j]);
          }
          System.out.println();
       }
       board = boardTwo;
    }
  
    public void print()
    {
       for(int i = rows; i < board.length; i++)
       {
          for(int j = columns; j < board[i].length; j++)
          {
             System.out.print( board[i][j] );
          }
          System.out.println();
       }
    }

    public void printNew()
    {
    }
}

the question i have is when i run the program it gives me an output like this:

Generation 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 X 0 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 X X X 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 X X X 0 0 0 0 0 0 0 X 0 0
0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 X X X 0 0 0 0 0 X 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Generation 2

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0X0X0 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0X0X0 0 0 0 0 0 0 X X X 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0X0X0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 X X X 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0X0X0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0X0X0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Generation 3

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 00000 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 X X X 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0
0 0 0 0 0 0 0 0 0 0 0 0 0 X X X 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 00000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0


and its supposed to look like this:

Generation 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 X X X 0 0 0
0 0 X 0 0 0 0 X 0 0
0 0 X 0 0 0 0 X 0 0
0 0 X 0 0 0 0 X 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 X X X 0 0 0
0 0 0 0 0 0 0 0 0 0
Generation 2
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 X 0 0 0 0
0 0 0 0 0 X X 0 0 0
0 0 0 X 0 X 0 X 0 0
0 X X X 0 0 X X X 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 X X 0 0 0
0 0 0 0 0 X 0 0 0 0
0 0 0 0 0 X 0 0 0 0
Generation 3
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 X X 0 0 0
0 0 0 0 0 X 0 0 0 0
0 0 0 X 0 X 0 0 X 0
0 0 X X X 0 X X X 0
0 0 X 0 0 X 0 0 0 0
0 0 0 0 0 X X 0 0 0
0 0 0 0 X X 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Generation 4
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 X X 0 0 0
0 0 0 0 0 X 0 0 0 0
0 0 X X 0 X 0 0 X 0
0 0 X 0 0 0 X X X 0
0 0 X 0 0 0 0 0 0 0
0 0 0 0 0 0 X 0 0 0
0 0 0 0 X X X 0 0 0
0 0 0 0 0 0 0 0 0 0

how do i fix the problem?

Explanation / Answer

import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.event.*; import java.awt.event.MouseListener; import java.util.Hashtable; public class SwingLife extends JApplet { LifePanel lifePanel; public void init() { Container contentPane = getContentPane(); lifePanel = new LifePanel(); contentPane.add(lifePanel); lifePanel.startAnimation(); } public String getAppletInfo() { return "Title: Swing Game of Life Applet v1.0b, 20 Oct 2000. " + "Author: Brett Alistair Kromkamp. " + "Copyright (C) 2000 - Brett Alistair Kromkamp. " + "A simple Swing applet demonstrating Conway's Game of Life."; } public String[][] getParameterInfo() { String [][] info = {{"NONE", "NONE", "This applet takes no HTML-parameters"}}; return info; } } class LifeGridComponent extends JComponent { final static int XSIZE = 362; // class constants final static int YSIZE = 162; private Dimension preferredSize = new Dimension(XSIZE, YSIZE); private Cursor cursor; private int row; private int col; private int size; private LifePanel lp; public LifeGridComponent(LifePanel newPanel, int newRow, int newCol, int newSize) { setPreferredSize(preferredSize); setMinimumSize(preferredSize); setCursor(cursor.getPredefinedCursor(cursor.CROSSHAIR_CURSOR)); this.row = newRow; this.col = newCol; this.size = newSize; this.lp = newPanel; } public void paint(Graphics g) { int i, j; for (i = 0; i
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote