×
Reviews 4.9/5 Order Now

Create a Program to Implement Life Game in C++ Assignment Solution

July 15, 2024
Dr. Benjamin Hughes
Dr. Benjamin
🇬🇧 United Kingdom
C++
Dr. Benjamin Hughes holds a Ph.D. in Computer Science from the University of Cambridge and has over 10 years of experience in software development and programming education. With expertise in Templated Linked Lists, he has completed over 800 assignments with precision and efficiency, helping students across the globe excel in their programming coursework.
Key Topics
  • Instructions
  • Requirements and Specifications
Tip of the day
Understand the database structure before writing queries. Use JOINs wisely to combine tables, and always test your queries with sample data. Don’t forget to include aliases and proper indexing for clarity and efficiency—it makes both your results and grading smoother.
News
Several Dubai institutions, including University of Birmingham Dubai and Manipal Academy of Higher Education Dubai, are launching new degree programmes for students abroad in fields such as Robotics & AI, Games Design & Development, and Urban Analytics & AI for Planners — starting in the 2025 academic year.

Instructions

Objective

In order to complete a C++ assignment, you will need to write a program that implements the game of life. The Game of Life is a cellular automaton devised by John Conway, which involves a grid of cells that can be either alive or dead. The program should simulate the evolution of these cells based on a set of rules. You'll need to create a C++ program that can take user input to set up the initial state of the grid and then iteratively update the grid according to the rules. The output should display the grid at each step, showing how the cells evolve over time.

Requirements and Specifications

program to implement life game in c++

Source Code

#include using namespace std; bool isValid(int x, int y) { return x >= 0 && x < 10 && y >= 0 && y < 10; } int numNeighbours(int generation[][10], int x, int y) { int num = 0; if(isValid(x-1,y-1) && generation[x-1][y-1] == 1) num++; if(isValid(x,y-1) && generation[x][y-1] == 1) num++; if(isValid(x+1,y-1) && generation[x+1][y-1] == 1) num++; if(isValid(x-1,y) && generation[x-1][y] == 1) num++; if(isValid(x+1,y) && generation[x+1][y] == 1) num++; if(isValid(x-1,y+1) && generation[x-1][y+1] == 1) num++; if(isValid(x,y+1) && generation[x][y+1] == 1) num++; if(isValid(x+1,y+1) && generation[x+1][y+1] == 1) num++; return num; } void printGeneration(int generation[][10], int num) { if(num == 0) { cout << "Initial state: " << endl; } else { cout << "\nGeneration " << num << endl; } for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { if(generation[i][j] == 0){ cout << " - "; } else { cout << " X "; } } cout << endl; } } bool nextGeneration(int generation[][10]) { int temp[10][10]; for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { temp[i][j] = generation[i][j]; } } bool changed = false; for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { int num = numNeighbours(temp, i, j); if(num < 2 || num > 3) { if(generation[i][j] != 0){ changed = true; } generation[i][j] = 0; } else if (num == 3) { if(generation[i][j] != 1){ changed = true; } generation[i][j] = 1; } } } return changed; } int main() { int generation[10][10]; int numGenerations; cout << "Enter the number of stages that should be played: "; cin >> numGenerations; cout << "Enter initial state of the board: " << endl; for(int i = 0; i < 10; i++) { for(int j = 0; j < 10; j++) { cin >> generation[i][j]; } } printGeneration(generation, 0); for(int i = 1; i <= numGenerations; i++) { if(!nextGeneration(generation)) { break; } printGeneration(generation, i); } return 0; }

Related Samples

View our free C++ assignment samples for clarity and a better understanding. These samples provide detailed solutions and practical examples, helping you grasp C++ concepts effectively.