Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Как Бд использовать для поиска
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
iosin iosin вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.10.2005
По умолчанию Как Бд использовать для поиска - 14.10.2005, 01:00

Здравствуйте уважаемые коллеги.

Помогите пожалуйста разобраться.
Имею задачу, моделирующую игру в шашки, поле боя задаю в виде БД таким образом:

Код:
:-dynamic board/3.    % Чтобы можно было использовать assert и retract    
                                    для  произведения ходов.

board(1,5,black).
board(2,5,black).
board(3,5,black).
board(1,4,black).
В тех примерах реализации поиска, которые я видел, текущее состояние передавалось явно как параметр. Я этого делать не могу, или могу?
Мне кажется это наилучший вариант задания пространства доски, легко делать ходы с помощью assert & retract, тогда, насколько я понимаю для каждого следующего хода нужно создавать динамический модуль с измененной БД. Хотя я не совсем нонимаю как именно это реализовать, ведь нужно выбирать каждый раз каким-то образом имя модуля.
Еще подскажите плз, как удалять из памяти динамичесие модули.
И вообще, может кто-то из бывалых подскажет, может есть проще пути к решению таких задач. Я думаю многие задачи нельзя просто задать списком или одним отношением.
Может можно задать поле как список вышеуказанных структур, тогда как осуществлять поиск в списке? Но тогда труднее осуществлять в нем ходы...

Заранее благодарен.

Заранее благодарен всем
Ответить с цитированием
  (#2 (permalink)) Старый
iosin iosin вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 09.10.2005
По умолчанию 14.10.2005, 01:33

я уже понял, как делать, поиск в списке структур - обычным member/2.
и также понял как устанавливать все просто!

Код:
set( X, Xnew, [X|Xs], [Xnew|Xs]).
set( X, Xnew, [Y|Xs], [Y|Lnew]):- set( X, Xnew, Xs, Lnew).
И з базами понял, что есть такое слово бектрекинг, нужно подумать только как оно сделано... Может у кого-нибудь есть простой пример использования онного?
Ответить с цитированием
  (#3 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,862
Сказал(а) спасибо: 2
Поблагодарили 287 раз(а) в 287 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 15.10.2005, 14:18

Если при планировании очередного хода Вы хотите осуществлять просмотр по дереву решений вперёд на несколько ходов, то Вам надо хранить состояние на доске в виде переменной-списка. Это обусловлено тем, что правила поиска хода являются недетерминированными и, следовательно, будут происходить откаты назад, которые Пролог осуществляет автоматически для переменных, а вот для фактов БД автоматического отката не сделаешь.
Ходы будут осуществляться не так легко, как с помощью assert и retract, но и не намного сложней, зато поиск будет лаконичным и быстрым, и это главное.

iosin, если Вы взялись за Пролог, то зачем сразу с такой сложной задачи, как игра в шашки?

По поводу бэктрекинга - посмотрите примеры на этом форуме. Почти в каждом используется бэктрекинг.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа для поиска драйверов melman559 Драйвера 3 17.08.2011 23:15
Обрезка результатов поиска alex.prik PHP 0 03.12.2009 13:01
Графы. Процедура поиска. _Natalya_ Pascal 2 22.02.2009 14:02
Окно поиска тоесть find druid-druid Delphi 2 14.12.2007 23:50
программы для поиска файлов SalliVaH Софт и программы 1 15.09.2007 16:58
Организация поиска по реестру Shturmovik Вопросы начинающих программистов 3 20.01.2007 12:03
Релевантность поиска на Работе.ру rareshare Зацените! 0 28.04.2006 18:47
Диалог для поиска каталога Echo WinAPI 1 08.08.2005 11:25
Алгоритм поиска пути blur Алгоритмы 6 30.05.2005 21:16
Реализация поиска в приложении hendolf .NET 1 23.08.2004 13:59
Написание программы для поиска слов Belldandy Assembler 1 10.06.2003 18:10
Система информационного поиска Anonymous Алгоритмы 3 18.09.2002 10:20



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов