Opened 4 years ago

Closed 4 years ago

#709 closed ожидается проверка (задача сдана)

HW #2 lopatin.mikhail

Reported by: lopatin.mikhail Owned by: Дмитрий Лапшин (lapshin)
Component: HW #2 (X0) Version: 2.0
Keywords: Cc:

Description


Change History (5)

comment:1 Changed 4 years ago by Дмитрий Лапшин (lapshin)

Owner: changed from Дмитрий Лапшин (lapshin) to lopatin.mikhail
Summary: HW #2HW #2 lopatin.mikhail
Type: ожидается проверкаожидаются исправления

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

  1. Неверное имя папки и исполняемых файлов.
  2. Неверная структура файлов.
  3. Неправильный Makefile (не пересобирает при изменении заголовочных файлов).
  4. Неправильный порядок ходов игроков.
  5. Не проверяешь ходы на корректность.
    • Например, ввод 0 0 0 в одну строчку ты разрешаешь.
  6. В некоторых ситуациях неправильно определяешь состояние игры.
  7. Неверный формат вывода в режиме silent.

7.

Тесты:

  1. Не поймали твои очерёдности ходов.
  2. У тебя КУДА БОЛЬШЕ публичных полей/методов, чем ты тестируешь.

2.

Стиль:

  1. Пробелы и переносы.
  2. Магические числа.
  3. Хранить текущего игрока как bool очень удобно и понятно.
  4. Неконсистентные имена типов: то с маленькой буквы, то с большой. Неконсистентные имена методов: то camelCase, то with_underscores.
  5. Зачем StdioBoardView::x?
  6. Зачем у Board так много выставлено наружу, включая все ячейки?
  7. Board.h: зачем iostream и stdint.h (может cstdint?)?

5.

comment:2 Changed 4 years ago by lopatin.mikhail

Owner: changed from lopatin.mikhail to Дмитрий Лапшин (lapshin)
Type: ожидаются исправленияожидается проверка

"В некоторых ситуациях неправильно определяешь состояние игры."так и не понял в каких

comment:3 Changed 4 years ago by Дмитрий Лапшин (lapshin)

Owner: changed from Дмитрий Лапшин (lapshin) to lopatin.mikhail
Type: ожидается проверкаожидаются исправления
Version: 1.02.0

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

  1. Makefile всё ещё неправильный (нет транзитивных зависимостей на заголовки).
  2. Имя программы всё ещё неправильное.
  3. Очень медленно работает, как мне кажется.
  4. Нарушаешь формат вывода: пробел после двоеточия, нет перевода строчки перед доской.
  5. Когда доска ваще полная, неверно определяешь исход.
  6. Не до конца обрабатываешь неправильно введённые ходы.

11.

Тесты: явно не покрывают все публичные методы. Подумай, а нужно ли столько методов. 3.

Стиль:

  1. Неправильная структура файлов.
  2. Перечисления модели что-то знают о текстовом представлении, не очень хорошо.
    • Ты этим перестал пользоваться, это хорошо.
  3. Зачем ты ж на каждый запрос поля отдаёшь глубокую копию всей доски, лапочка?
  4. Константы глобальные можно было бы сделать статическими в классе Board или где надо.
  5. Магическое 100.
  6. Названия констант слабо отражают их суть (WIN_VALUE?).
    • Суть констант не в том, что у каждого числа должно быть имя, а в том, чтобы не было внезапных логически связанных но продублированных (и таким образом развязанных) значений. Цикл с 0 это не откровение, а вот что поле 10 на 10 — да.
  7. Пробелы!
  8. У вектора есть конструктор с числом и значением.
  9. Дублируется строчка про while (!get_coord).
  10. Вот я на это смотрю и думаю, что почему не переменная:
    if (engine->get_field()[i][j] == Field::X)
        std::cout << 'X';
    else if (engine->get_field()[i][j] == Field::O)
        std::cout << 'O';
    else if (engine->get_field()[i][j] == Field::NONE)
        std::cout << '.';
    
    Потом вспоминаю, что get_field возвращает всю доску копией. И зачем тогда метод get_state?
  11. Явно встречаются лишние и дублирующиеся инклуды. Причищать.

4.

comment:4 Changed 4 years ago by lopatin.mikhail

Owner: changed from lopatin.mikhail to Дмитрий Лапшин (lapshin)
Type: ожидаются исправленияожидается проверка

comment:5 Changed 4 years ago by Дмитрий Лапшин (lapshin)

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

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

  1. Формат вывода. Перевод строки после приглашения ввода.
  2. Принимаешь плохие вводы.

12.

Тесты: явно не покрывают все публичные методы. Подумай, а нужно ли столько методов. 3.

Стиль:

  1. Неправильная структура файлов.

8.

Note: See TracTickets for help on using tickets.