Я новичок здесь, поэтому я прошу прощения, если я что-то отформатировал неправильно. Я не могу получить выход для игры жизни. Вывод должен быть в 0 и 1 в двумерной сетке, и он, похоже, ничего не выводит. Может кто-нибудь, пожалуйста, помогите мне с этим?
РЕДАКТИРОВАТЬ: я изменил код и получил эту ошибку:
#include <vector>
using namespace std;
#include <iostream>
vector<vector<bool> > world = {
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
};
vector<vector<bool> > world2 = world;
const int ROW_NUMBER = world.size();
const int COL_NUMBER = world[0].size();
unsigned int i;
unsigned int j;
int countLivingNeightbors(vector<vector<bool> > world,unsigned int i,unsigned int j) {
int livingNeighbors = 0;
for (int row = i - 1; row <= i + 1; row++) {
for (int col = j - 1; col <= j + 1; col++) {
if (row == i && col == j) {
continue; // skipping this iteration
} else {
int optimizedRow = (row + ROW_NUMBER) % ROW_NUMBER;
int optimizedCol = (col + COL_NUMBER) % COL_NUMBER;
if (world[optimizedRow][optimizedCol] == true) {
livingNeighbors++;
} else {
continue;
}
}
}
}
return livingNeighbors;
}
int main()
{
for (int i = 0; i < world.size(); i++) {
for (int j = 0; j < world[i].size(); j++) {
int livingNeighbors = countLivingNeightbors(world, i, j);
if((world[i][j]==1)&&(livingNeighbors>3)){
world2 [i][j]=='.';
}
if((world[i][j]==1)&&(livingNeighbors<2)){
world2 [i][j]=='.';
}
if((world[i][j]==0)&&(livingNeighbors==3)){
world2 [i][j]=='O';
}
if((world[i][j]==1)&&(livingNeighbors==2||livingNeighbors==3)){
world2 [i][j]=='O';
}
cout << world2;
}
cout << endl;
}
return 0;
}