Lab3#1564
Conversation
|
А где третья лабораторная? |
| target_link_libraries(Lab3CPP LibraryCPP) | ||
|
|
||
| add_test(NAME TestLab3 COMMAND Lab3CPP ${CMAKE_CURRENT_SOURCE_DIR}/input.txt) | ||
| set_property(TEST TestLab3 PROPERTY PASS_REGULAR_EXPRESSION "4") |
There was a problem hiding this comment.
Нужно добавить ещё сам маршрут.
|
|
||
| using namespace std; | ||
|
|
||
| typedef pair<int, int> Pos; // q, r |
| return maze; | ||
| } | ||
|
|
||
| bool is_valid(const vector<string>& maze, int q, int r, vector<vector<bool>>& visited) { |
There was a problem hiding this comment.
Для повторяющихся типов стоит сделать typedef.
| int rows = maze.size(); | ||
| if (rows == 0) return -1; | ||
| int cols = maze[0].size(); | ||
| vector<vector<bool>> visited(rows, vector<bool>(cols, false)); |
There was a problem hiding this comment.
Без этого массива можно обойтись.
| struct List { | ||
| ListItem *head; | ||
| ListItem *tail; | ||
| size_t size; |
| target_link_libraries(Lab3CPP LibraryCPP) | ||
|
|
||
| add_test(NAME TestLab3 COMMAND Lab3CPP ${CMAKE_CURRENT_SOURCE_DIR}/input.txt) | ||
| set_property(TEST TestLab3 PROPERTY PASS_REGULAR_EXPRESSION "4") |
|
Тесты не проходят. |
|
|
||
| add_test(NAME TestLab3 COMMAND $<TARGET_FILE:Lab3CPP> ${CMAKE_CURRENT_SOURCE_DIR}/input.txt) | ||
| set_property(TEST TestLab3 PROPERTY PASS_REGULAR_EXPRESSION | ||
| "^6\nPath: \\([0-9]+,[0-9]+\\)( -> \\([0-9]+,[0-9]+\\))*\n$") |
There was a problem hiding this comment.
Нужно сравнивать выводимую картинку.
| elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") | ||
| add_compile_options(-fsanitize=address,undefined,leak) | ||
| add_link_options(-fsanitize=address,undefined,leak) | ||
| endif() |
There was a problem hiding this comment.
Опции компиляции удалять нельзя.
| \ / \ / \ / \ / \ / \ / | ||
| | x | . | . | # | . | . | | ||
| \ / \ / \ / \ / \ / \ / | ||
| | # | x | E | . | . | . | |
There was a problem hiding this comment.
Тут шаг по диагонали, который не был предусмотрен правилами.
| void get_neighbors(int r, int dirs[6][2]) { | ||
| dirs[0][0] = 1; dirs[0][1] = 0; | ||
| dirs[1][0] = -1; dirs[1][1] = 0; | ||
| if (r % 2 == 0) { |
There was a problem hiding this comment.
функция для определения координат 6 ячеек вокруг заданной ячейки, чтобы определить, куда перемещаться.
r - номер строки, dirs - массив-матрица. Можно сделать реализацию этой функции в других необходимых функциях, но зачем, если можно сделать её один раз и просто применять, когда потребуется
There was a problem hiding this comment.
Нужно добавить больше тестов, чтобы убедиться, что это неверный код.
| } | ||
| current_position = predecessors[current_position.first][current_position.second]; | ||
| } | ||
| reverse(path_positions.begin(), path_positions.end()); |
There was a problem hiding this comment.
Можно не переворачивать, а использовать в нужном порядке.
|
Принято.
|
No description provided.