#include <vector>
#include <iostream>
using namespace std;
typedef vector<bool> row;
typedef vector<row> matrix;
//Corner functions
int population_tlc(int x, int y, matrix& grid)
{
int popu;
for(int yi = y+1; yi >= y; y--)
{
for(int xi = x+1; xi >= x; x--)
{
if (grid[yi][xi] == true)
{
popu++;
}
}
}
return popu;
}
int population_trc(int x, int y, matrix& grid)
{
int popu;
for(int yi = y+1; yi >= y; y--)
{
for(int xi = x-1; xi <= x; x++)
{
if (grid[yi][xi] == true)
{
popu++;
}
}
}
return popu;
}
int population_blc(int x, int y, matrix& grid)
{
int popu;
for(int yi = y-1; yi <= y; y++)
{
for(int xi = x-1; xi >= x; x--)
{
if (grid[yi][xi] == true)
{
popu++;
}
}
}
return popu;
}
int population_brc(int x, int y, matrix& grid)
{
int popu;
for(int yi = y-1; yi <= y; y++)
{
for(int xi = x-1; xi <= x; x++)
{
if (grid[yi][xi] == true)
{
popu++;
}
}
}
return popu;
}
//Edge functions
int population_left(int x, int y, matrix& grid)
{
int popu;
for(int yi = y-1; yi <= y+1; y++)
{
for(int xi = x; xi<= x+1; x++)
{
if(xi == x && yi == y)
{
continue;
}
if (grid[yi][xi] == true)
{
popu++;
}
}
return popu;
}
int population_top(int x, int y, matrix& grid)
{
int popu;
for(int yi = y; yi <= y+1; y++)
{
for(int xi = x-1; xi<= x+1; x++)
{
if(xi == x && yi == y)
{
continue;
}
if (grid[yi][xi] == true)
{
popu++;
}
}
}
return popu;
}
int population_right(int x, int y, matrix& grid)
{
int popu;
for(int yi = y-1; yi <= y+1; y++)
{
for(int xi = x-1; xi<= x; x++)
{
if(xi == x && yi == y)
{
continue;
}
if (grid[yi][xi] == true)
{
popu++;
}
}
}
return popu;
}
Я пытаюсь создать программу, которая имитирует игру жизни конвера. Эти функции принимают координаты x и y, а также ссылку на сетку в основном. Функции проверяют окружение координатной точки x и y в сетке и определяют, должно ли оно быть истинным (живым) или ложным (мертвым). Проблема в том, что в последних двух функциях IDE продолжает подспрашивать меня за ;
, хотя я определяю функцию. У меня также есть защита заголовка, полная всех прототипов функций.Функция Определение не признано
#include <vector>
#include <iostream>
using namespace std;
typedef vector<bool> row;
typedef vector<row> matrix;
int population_tlc(int x, int y, matrix& grid);
int population_trc(int x, int y, matrix& grid);
int population_blc(int x, int y, matrix& grid);
int population_brc(int x, int y, matrix& grid);
int population_left(int x, int y, matrix& grid);
int population_top(int x, int y, matrix& grid);
int population_right(int x, int y, matrix& grid);
int population_bottom(int x, int y, matrix& grid);
Мой вопрос заключается в том, как я могу получить его «понимают», что это определение функции и неполный прототип функции. Спасибо заранее
Хорошо, что вы отделили свой код, потому что в функции перед двумя последними отсутствует правая фигурная скобка. Голосование закрывается как опечатка. –
, следовательно, использование vi/vim - всегда лучший выбор :) – basav