Не совсем вопрос, скорее головоломка...
С годами я участвовал в нескольких технических интервью с новыми сотрудниками. Помимо того, что вы задаете стандартные вопросы "знаете ли вы X-технологии", я также попытался понять, как они подходят к проблемам. Как правило, я отправлял им вопрос по электронной почте за день до интервью и ожидал, что они придут к решению на следующий день.
Часто результаты были бы весьма интересными - неправильными, но интересными - и человек по-прежнему получал бы мою рекомендацию, если бы они могли объяснить, почему они приняли конкретный подход.
Итак, я подумал, что брошу один из моих вопросов там для аудитории Stack Overflow.
Вопрос: Каков наиболее эффективный с точки зрения пространства способ кодирования состояния шахматной игры (или ее подмножества)? То есть, учитывая шахматную доску с юридически законченными фигурами, кодируйте как это начальное состояние, так и все последующие правовые действия, предпринятые игроками в игре.
Для ответа не требуется код, просто описание алгоритма, который вы использовали.
EDIT: Как заметил один из плакатов, я не рассматривал временной интервал между ходами. Не стесняйтесь учитывать это как дополнительное дополнение:)
EDIT2: просто для дополнительного разъяснения... Помните, что кодировщик/декодер является осведомленным о правилах. Единственное, что действительно нужно сохранить, это выбор игрока - все, что можно предположить, должно быть известно кодеру/декодеру.
EDIT3: здесь будет сложно выбрать победителя:) Много замечательных ответов!