#include <vector> #include <iostream> struct Point { int x; int y; bool isAlive; }; std::vector<Point> gameBoard; std::vector<Point> bufferGirlNextDoor; std::vector<Point> bufferNewBorn; void checkNumForBorn(Point); void checkNumForDead(Point&); void checkGirlNextDoor(Point); void createGameBoard() { gameBoard.push_back(Point{ 0,0,true }); gameBoard.push_back(Point{ 1,0,true }); gameBoard.push_back(Point{ 2,0,true }); } void mainLoop() { createGameBoard(); while (true) { bufferNewBorn.clear(); for each (Point p in gameBoard) { checkGirlNextDoor(p); checkNumForBorn(Point{ p.x-1, p.y, true }); checkNumForBorn(Point{ p.x-1, p.y+1, true }); checkNumForBorn(Point{ p.x, p.y+1, true }); checkNumForBorn(Point{ p.x+1, p.y+1, true }); checkNumForBorn(Point{ p.x+1, p.y, true }); checkNumForBorn(Point{ p.x+1, p.y-1, true }); checkNumForBorn(Point{ p.x, p.y-1, true }); checkNumForBorn(Point{ p.x-1, p.y-1, true }); checkNumForDead(p); } for each (Point p in gameBoard) { if (p.isAlive) bufferNewBorn.push_back(p); } gameBoard.clear(); gameBoard = bufferNewBorn; std::cout << gameBoard.size() << std::endl; } } void checkNumForBorn(Point currentPoint) { int num = 0; bool isGirlNextDoor = false; for each (Point p in bufferGirlNextDoor) { if (p.x == currentPoint.x && p.y == currentPoint.y) { isGirlNextDoor = true; break; } } if (!isGirlNextDoor) { for each (Point p in bufferGirlNextDoor) { if (p.x > currentPoint.x - 2 && p.x < currentPoint.x + 2 && p.y > currentPoint.y - 2 && p.y < currentPoint.y + 2) ++num; //добавить после тестов if (num > 2) break; } } if (num > 2) bufferNewBorn.push_back(currentPoint); } void checkNumForDead(Point ¤tPoint) { int num = 0; for each (Point p in bufferGirlNextDoor) { if (p.x > currentPoint.x - 2 && p.x < currentPoint.x + 2 && p.y > currentPoint.y - 2 && p.y < currentPoint.y + 2 && p.x != currentPoint.x && p.y != currentPoint.y) ++num; //добавить после тестов if (num > 3) break; } if (num < 2 || num > 3) currentPoint.isAlive = false; } void checkGirlNextDoor(Point currentPoint) { bufferGirlNextDoor.clear(); for each(Point p in gameBoard) { if (p.x > currentPoint.x - 3 && p.x < currentPoint.x + 3 && p.y > currentPoint.y - 3 && p.y < currentPoint.y + 3 && p.x != currentPoint.x && p.y != currentPoint.y) bufferGirlNextDoor.push_back(p); } }
Standard input is empty
prog.cpp: In function ‘void mainLoop()’:
prog.cpp:30:7: error: expected ‘(’ before ‘each’
for each (Point p in gameBoard)
^~~~
(
prog.cpp:30:19: error: expected primary-expression before ‘p’
for each (Point p in gameBoard)
^
prog.cpp:30:7: error: ‘each’ was not declared in this scope
for each (Point p in gameBoard)
^~~~
prog.cpp:43:3: error: expected primary-expression before ‘for’
for each (Point p in gameBoard)
^~~
prog.cpp:42:4: error: expected ‘;’ before ‘for’
}
^
;
for each (Point p in gameBoard)
~~~
prog.cpp:43:3: error: expected primary-expression before ‘for’
for each (Point p in gameBoard)
^~~
prog.cpp:42:4: error: expected ‘)’ before ‘for’
}
^
)
for each (Point p in gameBoard)
~~~
prog.cpp:30:7: note: to match this ‘(’
for each (Point p in gameBoard)
^~~~
prog.cpp:43:7: error: expected ‘(’ before ‘each’
for each (Point p in gameBoard)
^~~~
(
prog.cpp:43:19: error: expected primary-expression before ‘p’
for each (Point p in gameBoard)
^
prog.cpp:47:18: error: could not convert ‘gameBoard.std::vector<Point>::clear()’ from ‘void’ to ‘bool’
gameBoard.clear();
~~~~~~~~~~~~~~~^~
prog.cpp:48:28: error: expected ‘)’ before ‘;’ token
gameBoard = bufferNewBorn;
^
)
prog.cpp:43:7: note: to match this ‘(’
for each (Point p in gameBoard)
^~~~
prog.cpp: In function ‘void checkNumForBorn(Point)’:
prog.cpp:56:6: error: expected ‘(’ before ‘each’
for each (Point p in bufferGirlNextDoor)
^~~~
(
prog.cpp:56:18: error: expected primary-expression before ‘p’
for each (Point p in bufferGirlNextDoor)
^
prog.cpp:56:6: error: ‘each’ was not declared in this scope
for each (Point p in bufferGirlNextDoor)
^~~~
prog.cpp:64:2: error: expected primary-expression before ‘if’
if (!isGirlNextDoor)
^~
prog.cpp:63:3: error: expected ‘;’ before ‘if’
}
^
;
if (!isGirlNextDoor)
~~
prog.cpp:64:2: error: expected primary-expression before ‘if’
if (!isGirlNextDoor)
^~
prog.cpp:63:3: error: expected ‘)’ before ‘if’
}
^
)
if (!isGirlNextDoor)
~~
prog.cpp:56:6: note: to match this ‘(’
for each (Point p in bufferGirlNextDoor)
^~~~
prog.cpp:66:7: error: expected ‘(’ before ‘each’
for each (Point p in bufferGirlNextDoor)
^~~~
(
prog.cpp:66:19: error: expected primary-expression before ‘p’
for each (Point p in bufferGirlNextDoor)
^
prog.cpp:72:2: error: expected primary-expression before ‘}’ token
}
^
prog.cpp:71:4: error: expected ‘;’ before ‘}’ token
}
^
;
}
~
prog.cpp:72:2: error: expected primary-expression before ‘}’ token
}
^
prog.cpp:71:4: error: expected ‘)’ before ‘}’ token
}
^
)
}
~
prog.cpp:66:7: note: to match this ‘(’
for each (Point p in bufferGirlNextDoor)
^~~~
prog.cpp:72:2: error: expected primary-expression before ‘}’ token
}
^
prog.cpp: In function ‘void checkNumForDead(Point&)’:
prog.cpp:78:6: error: expected ‘(’ before ‘each’
for each (Point p in bufferGirlNextDoor)
^~~~
(
prog.cpp:78:18: error: expected primary-expression before ‘p’
for each (Point p in bufferGirlNextDoor)
^
prog.cpp:78:6: error: ‘each’ was not declared in this scope
for each (Point p in bufferGirlNextDoor)
^~~~
prog.cpp:84:2: error: expected primary-expression before ‘if’
if (num < 2 || num > 3) currentPoint.isAlive = false;
^~
prog.cpp:83:3: error: expected ‘;’ before ‘if’
}
^
;
if (num < 2 || num > 3) currentPoint.isAlive = false;
~~
prog.cpp:84:2: error: expected primary-expression before ‘if’
if (num < 2 || num > 3) currentPoint.isAlive = false;
^~
prog.cpp:83:3: error: expected ‘)’ before ‘if’
}
^
)
if (num < 2 || num > 3) currentPoint.isAlive = false;
~~
prog.cpp:78:6: note: to match this ‘(’
for each (Point p in bufferGirlNextDoor)
^~~~
prog.cpp: In function ‘void checkGirlNextDoor(Point)’:
prog.cpp:89:6: error: expected ‘(’ before ‘each’
for each(Point p in gameBoard)
^~~~
(
prog.cpp:89:17: error: expected primary-expression before ‘p’
for each(Point p in gameBoard)
^
prog.cpp:89:6: error: ‘each’ was not declared in this scope
for each(Point p in gameBoard)
^~~~
prog.cpp:94:1: error: expected primary-expression before ‘}’ token
}
^
prog.cpp:93:3: error: expected ‘;’ before ‘}’ token
}
^
;
}
~
prog.cpp:94:1: error: expected primary-expression before ‘}’ token
}
^
prog.cpp:93:3: error: expected ‘)’ before ‘}’ token
}
^
)
}
~
prog.cpp:89:6: note: to match this ‘(’
for each(Point p in gameBoard)
^~~~
prog.cpp:94:1: error: expected primary-expression before ‘}’ token
}
^
Standard output is empty