Reference no: EM132196794
Write a C++ program that tests the function main and the functions discussed in steps1 through 7.
1. Declare two global variables:
const int MAX_COL = 60;
const int MAX_ROW = 30;
2. Declare 2 two-dimensional arrays of type int using the size specified in step.
currentArray and tempArray
3. Write the definition of the function displayMenu that displays the following menu; this function doesn't collect the user's input; only display the following menu.
[P]lay - Press 'P' to play.
[Q]uit - Press 'Q' to exit.
4. Write the definition of the function setZeroArray that initializes any two-dimensional array of type int to 0.
5. Write the definition of the function setInitialPatternArray that creates the pattern of ‘U' using ‘1' in any two-dimensional array of type int (use for loops). The following shows a portion of an array. Use the predefined srand() and rand() functions to determine the row and column of the first 1 (bold).
000000000
010000010
010000010
010000010
010000010
010000010
011111110
000000000
6. Write the definition of the function copyArray that copy a two-dimensional array to another two-dimensional array.
7. Write the definition of the function displayArray that prints any two-dimensional array of type int.
8. When executing your program, the following should happen:
a. Print the menu using the displayMenu function.
b. Initialize the tempArray using the setZeroArray function.
c. Set the ‘U' pattern in the tempArray using the setInitialPatternArray function.
d. Copy the tempArray to the currentArray using the copyArray function.
e. Print the currentArray using the displayArray function.
f. When the user presses ‘P', you will repeat a through e only once.
When the user presses ‘Q', it will terminate the program
add to the following
1. Use the global variables properly:
const int MAX_COL = 60;
const int MAX_ROW = 30;
for example:
int currentArray[MAX_ROW][MAX_COL];
instead of int currentArray[30][60];
In your program, replace '60' with MAX_COL and replace '30' with MAX_ROW.
When declaring variables, array names, use a meaningful name; don't just use x, y, a, b, etc. Don't just use a single character.
2. Write the definition of the function setNextGenArray that creates a pattern of next generation (tempArray) based on the current generation (currentArray); modify the tempArray based on the currentArray by applying the rules of Game of Life.
Conway's Game of Life Rules:
- The neighbors of a given cell are the cells that touch it vertically, horizontally, or diagonally.
- Any live cell with fewer than two live neighbours dies, as if caused by underpopulation.
- Any live cell with two or three live neighbours lives on to the next generation.
- Any live cell with more than three live neighbours dies, as if by overpopulation.
- Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
3. Create a loop to generate and next pattern automatically.
When executing your program, the following should happen:
a. Print the menu using the displayMenu function.
b. Initialize the tempArray using the setZeroArray function.
c. Set the ‘U' pattern in the tempArray using the setInitialPatternArray function.
d. Copy the tempArray to the currentArray using the copyArray function.
e. Print the currentArray using the displayArray function.
f. When the user presses ‘P', (loop the following three steps)
i. Generate a next pattern using the setNextGenArray function
ii. Copy the tempArray to the currentArray using the copyArray function.
iii. Print the currentArray using the displayArray function.
g. When the user presses ‘Q', it will terminate the program.