Answered! Part 1. 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;…

Part 1.

Write a C++ program that tests the function main and the functions discussed in steps1 through 7.

Don't use plagiarized sources. Get Your Custom Essay on
Answered! Part 1. 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;…
GET AN ESSAY WRITTEN FOR YOU FROM AS LOW AS $13/PAGE
Order Essay

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.

Part2

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. (-30 points)

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 thecurrentArray 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.

Part 3

1. Change the size of the arrays:

const int MAX_ROW = 40;
const int MAX_COL = 80;

***Make sure that only global variables you have in your program are Max_ROW and MAX_COL. Move any global variables you declared to a function or functions.

***Make sure to update setNextGenArray(). Use the variable names, not 40 or 80.

***For testing, I will be changing the array size. Your program should work by only modifying the array size.

2. Use two-dimensional arrays (tempArray, currentArray) of type char, instead of type int.

3. Choose a character for live cells, and a character for dead cells.

4. When you start your program, it should display only dead cells.

5. Modify the menu to include the followings (you may change the menu and descriptions, but must contain all the following options):

Initial – ‘I’ to load the ‘U’ pattern.

Play – ‘P’ to play the game.

Stop – ‘S’ to stop the game.

Clear – ‘C’ to set the arrays to the dead cells.

Quit – ‘Q’ to exit the program

1) pattern1 name – ‘1’ to load the pattern1.txt file to the screen. (Replace pattern1 name with an actual pattern name you have, ex: 1) spaceship ). The location of the loaded pattern should be randomized.

2) pattern2 name – ‘2’ to load the pattern2.txt file to the screen. (Replace pattern2 name with actual pattern name you have, ex: 2) snake ).   The location of the loaded pattern should be randomized.

3) pattern3 name – ‘3’ to load the pattern3.txt file to the screen. (Replace pattern3 name with actual pattern name you have, ex: 3) phython ).   The location of the loaded pattern should be randomized.

Custom – ‘T’ to create a pattern from the user’s input (collect row and column numbers) and set each cell to a live cell.

Save – ‘A’ to save the current live cell pattern of the currentArray to a file; save the row and column numbers of the live cells. (You may allow the user to type a file name.)

Load – ‘L’ to load a saved file. (You may allow the user to type the file name the user wish to load.)

6. Add three more patterns except the ‘U’ pattern. See the file below (do not use block and tub), or you may create your own patterns.   Present the different patterns (at least 3 using files – pattern1.txt, pattern2.txt, pattern3.txt) to the user in the menu (see 5), then allow the user to load those files; create a function to access each file (pass filename as a parameter to the function). Each file contains the row and column numbers of live cells.

Game_of_Life_Patterns.pngView in a new window

7. Define variables and functions as necessary.

****When declaring variables and functions, use a meaningful name; don’t just use x, y, a, b, etc. Don’t just use a single character. (-30 points)

***Do not use any pre-defined functions that were not covered in the class.

***Use only topics that were covered in the class.

***No object-oriented programming.

Expert Answer

 PART – 1 —————————————————

using namespace std;
#include<iostream>

const int MAX_COL=60;
const int MAX_ROW=30;

int** currentArray;
int** tempArray;

void displayMenu(){
cout<<“[P]lay – Press ‘P’ to play.n [Q]uit – Press ‘Q’ to exit.”;
}

int** setZeroArray(int** arr){

for(int i=0;i<MAX_ROW;i++){
for(int j=0;j<MAX_COL;j++){
arr[i][j]=0;
}
}
return arr;

}
int** copyArray(int** arr,int** arr1){

for(int i=0;i<MAX_ROW;i++){
for(int j=0;j<MAX_COL;j++){
arr1[i][j]=arr[i][j];
}
}
return arr1;

}
void displayArray(int** arr){

for(int i=0;i<MAX_ROW;i++){
for(int j=0;j<MAX_COL;j++){
cout<<“t”<<arr[i][j];
}
cout<<“n”;
}

}

int** setInitialPatternArray(int** arr){
for(int i=0;i<MAX_ROW;i++){
for(int j=0;j<MAX_COL;j++){
if(i>0&&i<MAX_ROW-1&&(j==1||j==MAX_COL-2)){
arr[i][j]=1;
}
if(i==MAX_ROW-1&&(j>0&&j<=MAX_COL-2)){
arr[i][j]=1;
}
}
}
return arr;

}

int main(){
abc:
displayMenu();
setZeroArray(tempArray);
copyArray(tempArray,currentArray);
displayArray(currentArray);
cout<<” nn enter P or Q :”;
char ch;
cin>>ch;
if(ch==’P’)
goto abc;
return 0;
}

Still stressed from student homework?
Get quality assistance from academic writers!