Я ещё давно заинтересовался языком Rust. У него крутой синтаксис, интересные концепции и шикарная система сборки. И работает он не медленней C++, и в будущем даже будет быстрее. Как раз я устал программировать на плюсах, и Rust — мой идеальный вариант для изучения нового языка.
Начал его изучать ещё год назад, но тогда забросил, а сейчас снова вернулся, и, кажется, больше не буду забрасывать.
Вернулся очень удачно: вместо того, чтобы готовиться к сессии, за 3 дня залпом посмотрел 13 полуторачасовых лекций Алексея Кладова по этому языку (крутая прокрастинация, да?). Затем в качестве тренировки захотел реализовать на этом языке программу, написанную одним чуваком на питоне. К сожалению он ещё свою программу не опубликовал, поэтому сослаться на неё не могу.
Программа эта из себя представляет что-то вроде симуляции жизни на плоскости с квадратными "ботами". У ботов есть программа, согласно которой они живут. При размножении эта программа может немного меняться. В мире есть ограниченные ресурсы, поэтому возникает что-то вроде естественного отбора и эволюции. Но эволюционировать там особо нечему, потому что в программе всего 5 команд:
- Атаковать другого бота
- Переместиться в случайную соседнюю клетку
- Размножиться
- Фотосинтезировать
- Съесть свободный ресурс
Так же в зависимости от команды боту в его отображение подмешивается соответствующий цвет. Например, для атаки - красный, а для фотосинтеза - зелёный.
Такой мир пока не очень интересный и красивый. Главная цель была в переводе программы и в изучении программирования на Rust'е.
А вот статичная ссылка для текущей версии этой программы:
https://optozorax.github.io/crabots/www_0.2.8/index.html
Работает из браузера, даже на телефоне. На телефоне поддерживается перемещение и масштабирование пальцами.
Новая версия подобной программы от того чувака, кодом которого я вдохновлялся: https://github.com/yuuretsu/evolution-of-artifical-life