Создаем искусственный интеллект. Урок 7. Расширяем функционал класса TIIProblemSpace (пространство с |
Автор megabax | |||||||
07.07.2010 г. | |||||||
Создаем искусственный интеллект. Урок 7. Расширяем функционал класса TIIProblemSpace (пространство состояний). Сегодня мы начнем расширять функционал написанный на предыдущем уроке классов. Для начала добавим к классу TIIProblemSpace свойство Items, что бы иметь доступ к элементам списка состояний. Вот как теперь будет выглядеть объявление класса TIIProblemSpace:
Как видим, мы так же добавили метод GetItem, давайте реализуем его:
Напрашивается такая задача, как реализовать графическое представление пространства состояний, дабы потом легче было тестировать и отлаживать программу. Давайте подумаем, как это сделать. Для начала составим простенькую графическую модель, что бы мы могли ее быстро реализовать. Потом, в случае необходимости, доработаем ее. И так, вот как может выглядеть граф в нашей реализации: Как видим, вершины графа расположены друг под другом, что программно реализовать довольно таки просто. Для рисования дуг в Delphi так же средства. со стрелкой конечно, придется чуть повозиться, но, как говориться, глаза бояться руки делают. И так, давайте начнем с реализации рисования вершин. Пусть это будут у нас кругляшки. Для начала объявим в классе TIIProblemSpace поля, которые будут отвечать за расположение первой вершины графа и за расстояние между вершинами.
Затем добавим в конструктор их инициализацию:
Теперь реализуем метод рисования вершины графа:
Вот, наконец то нас есть что протестировать. Кидаем на форму TImage* Присваиваем ей имя Image и пишем обработчик создания формы:
Запускаем на тестирование. Видим вот такую картинку: Значит, все работает правильно и на следующем уроке мы продолжим реализовывать рисование графа.
Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями в соответствии со ст. 1274 ГК РФ программного продукта "Delphi", авторское право на который принадлежит "Borland Software Corporation". |
|||||||
Последнее обновление ( 29.10.2010 г. ) |