Канон Шредингера (31 янв 2026)

Фантастический рассказ. О тульпах, людях и богах.

Нейронная сеть для игры в крестики-нолики - на Андроиде

Больше
5 ч. 18 мин. назад #1 от Aleksej
К слову сказать, Tic-Tac-Toe with a Neural Network, несложное самообучающееся приложение под линукс (написано на ruby), подробный рассказ о которой в блоге , а скачать в любой момент можно из гитхаба - вполне способно без особых плясок с бубнами работать на вашем девайсе под андроидом. Разумеется, прежде всего понадобится установить бесплатный termux.

А далее вот так. Опробовал, рекомендую:

Code:
# 1. Обновляем Termux pkg update && pkg upgrade -y
Code:
# 2. Устанавливаем Ruby + сборочные инструменты + libfann pkg install ruby clang make libfann -y
Code:
# 3. Устанавливаем гемы (ruby-fann установится с ошибкой — это нормально) gem install progress_bar tty-pie csv ruby-fann:1.3.2
Code:
# 4. Переходим в папку расширения cd "$(gem env gemdir)/gems/ruby-fann-1.3.2/ext/ruby_fann"
Code:
# 5. Правим заголовок FANN sed -i 's/doublefann.h/fann.h/g' extconf.rb
Code:
# 6. Добавляем include для uintptr_t sed -i '1i #include <stdint.h>' ruby_fann.c
Code:
# 7. Исправляем ошибку fann_set_user_data sed -i 's/fann_set_user_data(ann, self);/fann_set_user_data(ann, (void*)(uintptr_t)self);/' ruby_fann.c
Code:
# 8. Переконфигурируем с отключением всех проблемных предупреждений ruby extconf.rb \   --with-fann-include=/data/data/com.termux/files/usr/include \   --with-fann-lib=/data/data/com.termux/files/usr/lib \   --with-cflags="-Wno-deprecated-declarations -Wno-error=incompatible-function-pointer-types -Wno-int-conversion"
Code:
# 9. Собираем расширение make clean && make V=1
Code:
# 10. Переходим в корень гема cd "$(gem env gemdir)/gems/ruby-fann-1.3.2"
Code:
# 11. Удаляем старый несовместимый lib/ruby_fann.rb rm -f lib/ruby_fann.rb
Code:
# 12. Клонируем репо git clone https://github.com/cmirnow/Tic-Tac-Toe-AI-with-Neural-Network-Resurrections.git cd Tic-Tac-Toe-AI-with-Neural-Network-Resurrections
Code:
# 13. Патчим game.rb для ручной загрузки пропатченного гема sed -i "/require 'ruby-fann'/c\\ # Manual load patched ruby-fann for Termux Ruby 3.4\\ \$LOAD_PATH.unshift File.join(Gem.dir, \"gems/ruby-fann-1.3.2/ext/ruby_fann\")\\ require \"ruby_fann\"" src/game.rb
Code:
# 14. Запускаем игру ruby start.rb

Вероятно, после шага 11 можно было пойти иным путём: сделать `gem build ruby-fann.gemspec` + `gem install ./ruby-fann-1.3.2.gem --force --local`, чтобы гем официально появился в `gem list`. Но, в отличие от показанного выше, такое не пробовал, предпочтя более лёгкий воркараунд.

Вообще говоря, постараюсь в ближайшее время обновить приложение, чтобы rails-app работал с актуальными версиями гемов. А пока вот так.
 

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 2
Работает на Kunena форум