# Create A Squid Game Simulation in C++ Assignment Solution.

## Instructions

Objective
Ace your C++ assignment by writing a program to create a squid game simulation in C++. Dive into the world of programming as you craft a captivating simulation that mirrors the intense challenges of the squid game. This assignment will not only test your coding skills but also your creativity in designing an engaging virtual environment. Whether you're a seasoned programmer or a beginner, tackling this squid game simulation will surely enhance your proficiency with C++ and leave you with a sense of accomplishment.

## Requirements and Specifications

Source Code

```#include #include using namespace std; // method which checks, if current player can stand in given row static bool matches(vector& row, int a) {  // if row is empty, player can stand here  if (row.empty()) {   return true;  }  // otherwise we check if sum of numbers of current player and previous player in row  // is a full square  int sum = row[row.size()-1] + a;  int sr = sqrt(sum);   return sr * sr == sum; } // method, which recursively builds all possible configurations // it returns number of valid configurations which can be obtained from given state // by adding players, starting from next static int solveStep(vector> state, int next, int last) {  // if all necessary players are located in rows, we must check if obtained state is valid  if (last < next) {   bool isOk = true;   // state is valid is there are no empty rows   for (vector v : state) {    // setting flag to false, if there is an empty row    if (v.empty()) {     isOk = false;     break;    }   }   // if current state is valid, returning 1, otherwise - 0   return isOk ? 1 : 0;  }  // this variable will store number of valid final states, which can be obtained from  // current one  int sum = 0;  // iterating over all rows and trying to add next player to each row  for (int i = 0; i  // checking if next player can be put into i-th row   if (matches(state[i], next)) {    // if player can be put here, adding it to current state    state[i].push_back(next);    // and calling this method recursively for next player    // summing up the result    sum += solveStep(state, next+1, last);    // rollbacking state by deleting added played    state[i].pop_back();    // if this state was empty, skipping further checks, since it will cause duplicating    if (state[i].empty()) {     break;    }   }  }  // returning final sum  return sum; } // the solution approach is straightforward: // we recursively build all possible configurations without duplicates static int solve(int x, int n) {  // we will store current state as 2D matrix (nested vector of ints)  vector> solution(x);  // calling recursive method starting with empty state and first player to place  return solveStep(solution, 1, n); }```