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

NEED MAJOR HELP of this project called \"Game of life pt3\" #include #include us

ID: 3847067 • Letter: N

Question

NEED MAJOR HELP of this project called "Game of life pt3"

#include
#include
using namespace std;
const int MAX_COL = 60;
const int MAX_ROW = 30;
void copyArray(int (&tempArray)[MAX_ROW][MAX_COL], int (¤tArray)[MAX_ROW][MAX_COL]);
void displayMenu();
void setZeroArray(int (&tempArray)[MAX_ROW][MAX_COL]);
void setInitialPatternArray(int (&tempArray)[MAX_ROW][MAX_COL]);
void displayArray(int (¤tArray)[MAX_ROW][MAX_COL]);
void setNextGenArray(int (&tempArray)[MAX_ROW][MAX_COL], int (¤tArray)[MAX_ROW][MAX_COL]);
int main()
{
int currentArray[MAX_ROW][MAX_COL];
int tempArray[MAX_ROW][MAX_COL];
string choice;
while(true)
{
displayMenu();
cin >> choice;
if(choice == "Q"||choice=="q")
{
break;
}
setZeroArray(currentArray);
setZeroArray(tempArray);
setInitialPatternArray(tempArray);
copyArray(tempArray, currentArray);
displayArray(currentArray);

if(choice=="P"||choice=="p")
   {
      //setNextGenArray(tempArray,currentArray);
      copyArray(tempArray, currentArray);
displayArray(currentArray);
   }
   else
   {
      cout<<"wrong Choice: please check"<    }
}
return 0;
}

void setNextGenArray(int (&tempArray)[MAX_ROW][MAX_COL], int (¤tArray)[MAX_ROW][MAX_COL])
{
   int cell;
   for(int k=0;k for(int i=0;i {
if(i != k)
{
cell=currentArray[i][k]/currentArray[k][k];
for(int j=0;j {
tempArray[i][j]=currentArray[i][j]-(cell*tempArray[k][j]);
}
}
}
for(int i=0;i {
cell=tempArray[i][i];
for(int j=0;j {
tempArray[i][j]=tempArray[i][j]/cell;
}
}
}

void displayMenu()
{
cout << "[P]Play Press 'P' to play." < cout << "[Q]Quit Press 'Q' to exit." << endl;
}
void setZeroArray (int (&tempArray)[MAX_ROW][MAX_COL])
{
for(int i=0;i {
for(int j=0;j< MAX_COL;j++)
   {
tempArray[i][j] = 0;
}
}
}
void copyArray(int (&tempArray)[MAX_ROW][MAX_COL], int (¤tArray)[MAX_ROW][MAX_COL])
{
for(int i=0;i {
for(int j=0;j    {
currentArray[i][j] = tempArray[i][j];
}
}
}
void displayArray (int (&arr)[MAX_ROW][MAX_COL])
{
for(int i=0;i {
for(int j=0;j    {
cout << arr[i][j] << " ";
}
cout<    }
}
void setInitialPatternArray(int (&tempArray)[MAX_ROW][MAX_COL])
{
int temprow = rand() % 20 + 1;
int tempcol = rand() % 10 + 1;
for(int i=temprow;i {
tempArray[i][tempcol] = 1;
tempArray[i][tempcol+5] = 1;
}
for(int i=tempcol+1;i {
tempArray[temprow+5][i] = 1;
}
}

here's my part ( This wasn't complete properly)

You will add the followings to the Gol_Project-Part2_yourLastName.cpp file.

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

***Allow the user to type uppercase or lowercase characters.

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.

7. Define variables and functions as necessary.

OutPut:

After pressing "I" to load initial Pattern

After pressing "P" for play sets different type of pattern.

It randomizes pattern after pressing "play".

cleared the pattern by pressing "C" then chose another pattern "1" spaceship

The patterns can be different doesn't have to be the same. We get to choose w.e pattern we like; however, the initial patterns have to be the same, just randomized.

block tub snake ship aircraf carrier beehive barge Python long boar eater, fishhook loaf

Explanation / Answer

#include<iostream>
#include <stdlib.h>
using namespace std;
const int MAX_COL = 60;
const int MAX_ROW = 30;
void copyArray(int (&tempArray)[MAX_ROW][MAX_COL], int (&currentArray)[MAX_ROW][MAX_COL]);
void displayMenu();
void setZeroArray(int (&tempArray)[MAX_ROW][MAX_COL]);
void setInitialPatternArray(int (&tempArray)[MAX_ROW][MAX_COL]);
void displayArray(int (&currentArray)[MAX_ROW][MAX_COL]);
void setNextGenArray(int (&tempArray)[MAX_ROW][MAX_COL], int (&currentArray)[MAX_ROW][MAX_COL]);
int main()
{
int currentArray[MAX_ROW][MAX_COL];
int tempArray[MAX_ROW][MAX_COL];
string choice;
while(true)
{
displayMenu();
cin >> choice;
if(choice == "Q"||choice=="q")
{
break;
}
setZeroArray(currentArray);
setZeroArray(tempArray);
setInitialPatternArray(tempArray);
copyArray(tempArray, currentArray);
displayArray(currentArray);

if(choice=="P"||choice=="p")
   {
      //setNextGenArray(tempArray,currentArray);
      copyArray(tempArray, currentArray);
displayArray(currentArray);
   }
   else
   {
      cout<<"wrong Choice: please check"<<endl;
   }
}
return 0;
}

void setNextGenArray(int (&tempArray)[MAX_ROW][MAX_COL], int (&currentArray)[MAX_ROW][MAX_COL])
{
   int cell;
   for(int k=0;k<MAX_ROW;k++)
for(int i=0;i<MAX_COL;i++)
{
if(i != k)
{
cell=currentArray[i][k]/currentArray[k][k];
for(int j=0;j<MAX_COL+1;j++)
{
tempArray[i][j]=currentArray[i][j]-(cell*tempArray[k][j]);
}
}
}
for(int i=0;i<MAX_ROW;i++)
{
cell=tempArray[i][i];
for(int j=0;j<MAX_COL;j++)
{
tempArray[i][j]=tempArray[i][j]/cell;
}
}
}

void displayMenu()
{
cout << "[P]Play Press 'P' to play." <<endl;
cout << "[Q]Quit Press 'Q' to exit." << endl;
}
void setZeroArray (int (&tempArray)[MAX_ROW][MAX_COL])
{
for(int i=0;i<MAX_ROW;i++)
{
for(int j=0;j< MAX_COL;j++)
   {
tempArray[i][j] = 0;
}
}
}
void copyArray(int (&tempArray)[MAX_ROW][MAX_COL], int (&currentArray)[MAX_ROW][MAX_COL])
{
for(int i=0;i<MAX_ROW;i++)
{
for(int j=0;j<MAX_COL;j++)
   {
currentArray[i][j] = tempArray[i][j];
}
}
}
void displayArray (int (&arr)[MAX_ROW][MAX_COL])
{
for(int i=0;i<MAX_ROW;i++)
{
for(int j=0;j<MAX_COL;j++)
   {
cout << arr[i][j] << " ";
}
cout<<endl;
   }
}
void setInitialPatternArray(int (&tempArray)[MAX_ROW][MAX_COL])
{
int temprow = rand() % 20 + 1;
int tempcol = rand() % 10 + 1;
for(int i=temprow;i<MAX_ROW;i++)
{
tempArray[i][tempcol] = 1;
tempArray[i][tempcol+5] = 1;
}
for(int i=tempcol+1;i<MAX_COL;i++)
{
tempArray[temprow+5][i] = 1;
}
}