diff --git a/src/core/Board.cpp b/src/core/Board.cpp index 15d353e..39a344f 100644 --- a/src/core/Board.cpp +++ b/src/core/Board.cpp @@ -73,6 +73,10 @@ void Board::moveSnake(Direction direction) { m_snake->move(direction); const Vector2 newHeadPosition = m_snake->getHeadPosition(); + if (isPositionOutside(newHeadPosition)) { + exit(-2); + } + Field bumpedField = getField(newHeadPosition); if (bumpedField == Field::Apple) { putAppleOnRandomPlace(); @@ -80,9 +84,6 @@ void Board::moveSnake(Direction direction) { else if (bumpedField == Field::Tail) { exit(-1); } - else if (isPositionOutside(newHeadPosition)) { - exit(-2); - } else { Vector2 lastInTailPosition = m_snake->removeLastFromTail(); setField(lastInTailPosition, Field::Empty); @@ -132,6 +133,6 @@ void Board::setField(const Vector2 position, const Field field) const { } bool Board::isPositionOutside(Vector2 position) const { - return position.y < 0 || position.y >= m_sizeY - || position.x < 0 || position.x >= m_sizeX; + return position.y < 0 || static_cast(position.y) >= m_sizeY + || position.x < 0 || static_cast(position.x) >= m_sizeX; }