Game of Life Программирование, выпуск C ++ - PullRequest
0 голосов
/ 07 октября 2019

Я новичок здесь, поэтому я прошу прощения, если я что-то отформатировал неправильно. Я не могу получить выход для игры жизни. Вывод должен быть в 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...