Моим последним проектом на уроке информатики в 12 классе было создание приложения на Java. Заглянув в рубрику к заданию, я заметил, что требования для создания хорошего проекта минимальны. Например, одним из требований было продемонстрировать четкое понимание массивов, внедрив его в программу. Поэтому мы с членами моей группы решили провести мозговой штурм над набором игр или интересных приложений, которые мы могли бы создать за две недели. Я помню, что шахматы были одним из кандидатов на финальный проект, но вместо этого мы решили создать что-то, что было бы просто реализовать из-за нехватки времени. Я предложил построить «Ultimate Tic-Tac-Toe», который по сути является крестиками-ноликами, но каждая ячейка доски для крестиков-ноликов заполнена миниатюрными крестиками-ноликами. Чтобы выиграть игру, игрок должен выиграть три доски для игры в крестики-нолики в ряд, столбец или по диагонали.

Реализация проекта оказалась намного сложнее, чем я предполагал. Я писал код около 4–5 часов каждый день и работал сверхурочно по выходным, чтобы уложиться в срок. Моя цель состояла в том, чтобы реализовать отточенный пользовательский интерфейс и базовую игровую механику примерно за 2–3 дня до срока сдачи проекта. Хотя мы с моей группой разделили различные аспекты игры, было невозможно работать вместе, так как мы не познакомились с git. У одного человека в группе всегда была самая последняя версия игры, в то время как остальным членам группы приходилось каждый день запрашивать файлы через Facebook, чтобы уменьшить конфликты в коде. Мы так много работали над этим проектом, что нам пришлось потратить большую часть времени, которое должно было быть потрачено на подготовку к выпускным экзаменам.

Хотя большая часть элементов пользовательского интерфейса и игровая логика была завершена за несколько дней до дедлайна. В логике игры была серьезная ошибка, и мы нашли и исправили ее за несколько часов до назначенного срока.

После двухнедельного изнурения я испытал огромное удовлетворение, представив классу отполированную игру. Моя группа получила отличную оценку, и я извлек несколько уроков, взявшись за этот гигантский проект. Самый важный урок, который я усвоил, заключался в том, что никогда нельзя недооценивать сложность приложения, даже если оно может показаться простым в реализации. И второй самый важный урок, который я усвоил, заключался в том, насколько сложно совместно реализовывать код без необходимых инструментов. Если бы я знал, как использовать git до начала работы над этим проектом, это предотвратило бы множество логических ошибок, а также основную ошибку, которую мы исправили в день, когда проект должен был быть сдан.

К счастью, это не относится к моему финальному проекту в CSC290, поскольку у членов моей группы и у меня будет достаточно времени, чтобы довести игру до совершенства. Кроме того, одной из самых больших проблем при внедрении Ultimate Tic-Tac-Toe была попытка сотрудничать в проекте. Однако в CSC290 все члены моей группы знакомы с контролем версий и git, что позволяет нам легко сотрудничать в проекте.

Спасибо за чтение. Увидимся в следующий раз!