Question: Code in Java please, *Do not use CharToArray* Please explain how you implemented the code so I have a better understanding Code uses the rules

Code in Java please,

*Do not use CharToArray*

Please explain how you implemented the code so I have a better understanding

Code uses the rules of Conway's Game of Life

In case you are not familiar with Conways Game of Life, please visit the following page for full details of all rules: https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life. The traditional game of life is played on a flat board (2D array). Your mission is that, given any configuration of a game-of-life, your implementation should allow any user to initialize the 2D array with any population and make it evolve over any given number of time steps.

Attributes:

o Size: int

o Board: int[][] this is a square board, same number of rows and columns

o Previous: int[][] this 2D array will store a copy of the game of life board.

Constructors:

o Default constructor o Constructor that takes a size as input (this will be the number of rows as well as

the number of columns of your board and previous) o Constructor that take a 2D array as an input (its size will be the size of the

board and previous; its content is to be copied into previous)

Getter:

o getBoard returns the current board

oneStep:

o Takes no parameter and is a void method o It consists in transforming the current board into its next shape (board at next

time stamp).

neighbors:

o Takes two indices (representing a row index and a column index). o Computes the number of neighbors the corresponding cell on the board has.

evolution: o Takes an integer n, which represents the number of evolution steps we need to

conduct. o Transforms the board into the board after n steps of evolution (i.e., n

successive calls to oneStep). Note: you can use more methods (as helper methods for the above methods).

However, you need to stick at least to the ones above.

You have to test that your implementation of the game of life is correct. You are expected to do so using JUnit testing, in a file called GOLTester.java. In this file, you have to test the following class methods of the GameOfLife type (5 tests at least per method):

  • neighbors(int, int)

  • oneStep()

  • evolution(int)

    In particular, you should test the behavior of your two versions of the game of life on at least the following boards:

Code in Java please, *Do not use CharToArray* Please explain how you

public class GameOfLife {

/* Attributes ****************************************************************/ /* Complete with attributes as described in the lab assignment * Your attributes should be private. */ /* Constructors ***************************************************************/ /* Default constructor: given to you */ public GameOfLife() {} /* Complete this code: * This constructor takes the size of the board as input * It initializes the size of the game of life to the value of the input. * It creates 2 square boards of this size: board and previous */ public GameOfLife(int size) { // COMPLETE CODE HERE } /* Complete this code: * This constructor takes a board as input * It initializes the size of the game of life to the size of the input board. * It creates 2 square boards of this size: board and previous, both of the same size as the input board B. * It initializes previous to the content of B. */ public GameOfLife(int[][] B) { // COMPLETE CODE HERE } /* Accessor / Getter *************************************************************/ /* Complete this code */ public int[][] getBoard() { // COMPLETE CODE HERE } /* GIVEN TO YOU: DO NOT MODIFY: * One step of evolution of the whole board: * The method oneStep takes the current board and modifies it so that the new content * reflects the state of the game of life after one step of evolution. */ public void oneStep() { for (int i=0; i

if (previous[i][j] == 0 && neighbors == 3) board[i][j] = 1; else if (previous[i][j] == 1) { if (neighbors > 3 || neighbors

/* Complete this method: * This method runs numberOfSteps evolution steps */ public void evolution(int numberOfSteps) { // COMPLETE CODE HERE } /************* Misc. Methods **********************************/ /* GIVEN TO YOU: DO NOT MODIFY: * make a copy of the current board so the current board can be updated */ public void copyToPrevious() { for (int i=0; i

/* GIVEN TO YOU: DO NOT MODIFY: * prints the current board */ public void printBoard() { for (int i=0; i

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!