Change History (2)

comment:1 Changed 4 years ago by Артур Гулецкий (huletski)

Type: ожидается проверкаожидаются исправления

Корректность

  • неверно обрабатывается некорректный формат ходов (например, ввод 0a0 приводит к зависанию решения);
  • ошибки в обработке корректного ввода: если в качестве хода ввести 09 09, решение выведет поле и сообщение о некорректном вводе лишний раз:
{hw_02}[2257]$ pwd && svn up && svn status
/home/hfx/dvl/cpp19/fomenko.ivan/hw_02
Updating '.':
At revision 2939.
{hw_02}[2258]$ make
mkdir -p obj
g++ -Wall -Werror -c -I include src/main.cpp -o obj/main.o
g++ -Wall -Werror -c -I include src/Board.cpp -o obj/Board.o
g++ -Wall -Werror -c -I include src/BoardView.cpp -o obj/BoardView.o
g++ -Wall -Werror obj/main.o obj/Board.o obj/BoardView.o -o hw_02
g++ -Wall -Werror -c -I include test/test.cpp -o obj/test.o
g++ -Wall -Werror -c -I include test/BoardTest.cpp -o obj/BoardTest.o
g++ -Wall -Werror -c -I include test/Test.cpp -o obj/Test.o
g++ -Wall -Werror obj/test.o obj/BoardTest.o obj/Test.o obj/Board.o -o test_hw_02
{hw_02}[2259]$ ./hw_02 

..........
..........
..........
..........
..........
..........
..........
..........
..........
..........
O move: 09 09

.........O
..........
..........
..........
..........
..........
..........
..........
..........
..........
X move: Bad move!
X move: 

Стиль

Board.h

3: слишком общее имя: типы чего? лучше GameState/GameStatus?; стиль имен enumов обычно такой же как у классов;

Board.cpp

9: 10 надо вынести в константу;
10: memset вместо второго цикла сделал бы код лаконичнее;
25: избыточный if: return get_cell(x, y) == '.';
39: getter слишком общее имя, глядя на него неясно, что делает метод; sign_1 лучше заменить на sign_x;
40: единый стиль отступов не соблюдается;
68: неясно, что означает mas;
91: а чем, если судить по названию, checker от check отличается? Из-за не очень хорошего выбора имен методов/аргументов, субъективно, логика определения статуса игры выглядит запутанной и неочевидной (хорошо, что тесты на нее написаны). Представьте, что через месяц-два вам скажут, что в ней обнаружена ошибка, как быстро вы сможете вникнуть в написанный код?
107: слишком общее имя, empty_cell_exists более точное; тип лучше сделать bool.

BoardTest?.h

  • часть имен методов ничего не говорит о деталях test case'a: чем, например, отличается testcanMove_easy_2 от testcanMove_easy_5; информативнее видеть test_cant_move_ootb_top, test_cant_move_occupied);

BoardTest?.cpp

16: в Board можно добавить метод reset_state, который загружает переданное состояние доски.


Баллы

Корректность: 16;
Стиль: 5.5.

comment:2 Changed 4 years ago by Артур Гулецкий (huletski)

Resolution: задача сдана
Status: assignedclosed

Дедлайн

Note: See TracTickets for help on using tickets.