03 января 2023
Или как за пару вечеров, не особо напрягаясь, глубоко изучить архитектуру компьютера.
Главное игровое окно игры Turing Complete
Была обнаружена компьютерная игра Turing Complete в жанре «головоломка», суть которой: соединять проводочки, организовывать регистры памяти, писать машинный код — и всё это надо делать в точности так, как это происходит в реальном процессоре. При этом, чтобы начать играть — ничего особо о компьютерах знать не нужно, вся теория объясняется игроку по ходу дела.
Поиграв в Turing Complete часов 30..40 — можно об архитектуре компьютера узнать больше, чем за 2..3 года изучения аналогичных институтских курсов (не думаю, что это преувеличение).
При этом игра очень наглядная, удобная и интуитивная. Для сравнения, вот как выглядит одна из программ (Logisim), по которой учатся обычные компьютерные студентоиды:
При всём уважении к Logisim (2014), визуально и интерактивно он сильно проигрывает Turing Complete. А привлекательнее Logisim в институтских кругах вроде ничего особо и не крутится.
Разница между традиционной программой Logisim и игрой Turing Complete — это разница между «я ничего не понял, было скучно, я забил и не ходил» и «это был самый интересный курс за всё время учёбы».
В отличие от многих подобных «игр для программистов», в игре Turing Complete большинство головоломок — это прямое воспроизведение архитектуры реального компьютера, а не просто абстрактные логические задачи. Т.е. можно, пройдя все этапы игры, реально прочувствовать, как (буквально) нолики и единички превращаются в компьютерные программы.
Игрок собственными руками с нуля (с уровня логических ворот, если точнее) строит аж собственный полноценный процессор. При этом в игре настолько плавно растёт сложность, что каждый новый шаг естественно вытекает из предыдущего.
<aside> 💡 Название «Turing Complete» переводится как «полный по Тьюрингу». Грубо говоря, вычислительная машина называется «полной по Тьюрингу», если она может воспроизвести «любой» машинный алгоритм. Полнота по Тьюрингу занимает центральное значение в теоретической информатике и в жизни программистов-абьюзеров, создающих Тьюринг-машины там, где это не особо предполагалось.
О жизни программистов-абьюзеров будет написано в отдельной статье:
</aside>
Трейлер игры:
https://www.youtube.com/watch?v=-YY73ejihZo&ab_channel=TuringComplete
Ниже подробно описываю всё то, что было показано в трейлере. Не могу назвать это спойлерами, ибо этапы игры ожидаемо соответствуют любому традиционному институтскому курсу по архитектуре компьютера:
<aside> 1️⃣ Игра стартует с задач уровня «собери из нескольких логических ворот новые логические ворота»:
</aside>
<aside> 2️⃣ На середине игры нужно создать небольшую тьюринг-полную вычислительную машину (с шестью 8-битными регистрами памяти), на которой на созданном пользователем машинном коде (ассемблере) надо программировать простые алгоритмы:
Мой пездюк 🥰
К этому моменту игрок изучает:
<aside> 3️⃣ Ещё не прошёл последние уровни игры, но судя по всему, в них изучаются:
Пример одного из эндгейм-уровней: некий «декодер инструкций». Взято из летсплея: https://www.youtube.com/watch?v=gPB2POKnEf4
</aside>