Это задание является альтернативой заданию 1, все задачи аналогичны, но достаточно программного обеспечения из задания 0 и соответственно требования к компьютеру гораздо ниже + отстутсвует режим nightmare. Но результат этого задания не поместится в ваш карман.

До занятий 21 и 22 декабря требуется выполнить это задание (или версию под андроид) как можно полнее. Как бы мало вы не успели сделать - отправьте сделанное до начала следующего занятия.

В любом случае на занятии вы будете это кодить на компах, а я вам помогать, так что сделайте пожалуйста так, чтобы все что вы успеете сделать к тому моменту было у вас на уроке с собой.

Жесткий дедлайн: 05 января (четверг) Раньше отправляете - лучше оценка.

Предполагается, что весь софт из задания 0 был успешно поставлен.

Обратите пожалуйста внимание на инструкцию по генерации патча - она изменилась.

Обновление:

  • Появились тесты проверяющие вашу реализацию пересчета состояний (в конце страницы описание)

Правила обновления состояния автомата:

  • В каждой клетке состояние - число от 0 до n-1
  • Если в клетке состояние X и вокруг нее среди восьми соседей не было ни одного со значением (X+1)%n (где a%b = a по модулю b), то состояние клетки остается X
  • Если в клетке состояние X и вокруг нее среди восьми соседей был хотя бы один со значением (X+1)%n, то состояние клетки становится (X+1)%n

Задание “Клеточный автомат:

  1. Запустить Idea (оставлять все по умолчанию, жать Ok/Next)
  2. Check out project from Version Control->Git (НЕ github) (это если вы видите маленькое окошко, если видите большое - то сверху VCS->Checkout from version control->Git
  3. Git repository URL: https://github.com/PolarNick239/DesktopLife
  4. Нажать Clone
  5. Would you like to create a project for the sources you have been checked …? -> нажать Yes, затем жать Next и Finish в конце
  6. Tip of the Day -> Close
  7. Кликнуть слева снизу на иконку, появится интерфейс, в нем:
    • Project (Alt+1) - структура файлов проекта
    • Version Control (Alt+9) - ваши изменения (там же генерировать патч)
    • TODO (Alt+6) - части задания
  8. Несколько горячих кнопок работы в IDEA можно увидеть тут.

Уровни сложности:

  1. Easy (если обычно вас напрягает информатика, или сделать Medium вы не успеваете, максимальная оценка - 3, есть маленький шанс на 4)
  2. Medium (вариант по умолчанию. Оценка 4 - если все хорошо но без многопоточности. Оценка 5 - если с многопоточностью)

Процесс выполнения задания:

  1. Если вы все-таки решили делать Easy вариант, то справа снизу нажать на “Git: master” -> origin/easy -> checkout as new local branch -> Ok
  2. Выполнить все TODO указанные в коде (так же их можно посмотреть внизу, нажав на TODO или Alt+6)
  3. Прогнать тесты, найти и поправить ошибки если тесты падают
  4. Сгенерировать патч, отправить мне на почту

Чтобы прогнать тесты:

  1. Откройте файл UpdaterTest
  2. Если @Test красный - поставить на него курсор, нажать Alt+Enter, затем на опции Add 'JUnit4' to classpath нажать Enter
  3. Откройте файл SimpleUpdaterTest или MultithreadedUpdaterTest (в зависимости от того, какую реализацию вы хотите проверить) - это удобно делать через Ctrl+Shift+N и затем начать печатать название файла
  4. Нажмите Ctrl+Shift+F10, что запустит все тесты из файла UpdaterTest для выбранной реализации
  5. Если все тесты зеленые (прошли) - скорее-всего у вас нет багов
  6. Если какой-то тест красный - у вас есть ошибка, чтобы ее исследовать - откройте тест двойным кликом и поймите, какой случай в нем проверяется (можете запустить тест под отладкой)