вторник, 5 апреля 2011 г.

Алгоритмы: крестики-нолики ч. I

В одной из своих книг Daniele Benedettelli делится секретом, относительно того как собрать и запрограммировать Lego-робота, играющего в крестики-нолики.
Конструкция робота очень интересная. К тому же она подкупает тем, что для того чтобы собрать такого робота, достаточно только деталей, входящих в Lego Mindstorms NXT 2.0 набор.
Основа конструкции - поворотное рабочее поле. Это действительно, гениальный ход, позволяющий анализировать все рабочее поле, с минимальным набором деталей и двигателей.

Оригинальный ролик с сайта автора:


Еще один ролик, от другого Lego-энтузиаста:


Основное место, где можно найти инструкции по сборке и программированию робота - это книга LEGO MINDSTORMS NXT Thinking Robots.
Но тем не менее, если поискать как следует - можно натйти файл в формате Lego Digital Designer на сайте LEGO.com. Почитатель Leg Mindstorms NXTbuilder95 выложил их в своем сообщении на NXTLOG. LDD-файл, можно скачать здесь.



В LDD-файле будут представлены две части механизма:



Когда часть, представленная выше, собирется - нижняя ее часть болтается - это нормально.


Чтобы собрать обе части вместе, нужно отсоединить поворотный стол и разблокировать салазки:


После "верхняя" часть свободно зайдет по рельсам салазок, после чего ее можно свободно закрепить с двигателем, ответственным ее перемещение.


Вот здесь как раз и станет понятно предназначение той болтающейся части "анализатора"


Теперь нужно просто вернуть блокировку для салазок на старое место и закрепить поворотный стол.

Чтобы убедиться, что даннай конструкция работает, можно воспользоваться скомпилированной версией программы, расположенной на сайте Daniele Benedettelli. Кстати, здесь же можно найти некоторые советы по повышению точности базовой конструкции робота.

Как было сказано, советы по программированию робота и исходный код программы можно найти только в книге. А можно подумать самому и написать собственную реализацию.
Например, как это сделал еще один Lego-энтузиаст:



Вот уже у него в блоге можно найти примеры исходного кода на языке NXC, которые могут быть использованы для программированию робота, играющего в крестики-нолики.

1 комментарий:

  1. На сайте самого Daniele Benedettelli нет инструкции, а другие ссылки недействительны

    ОтветитьУдалить

Related Posts Plugin for WordPress, Blogger...