Июн
17
Программы на прологе (с исходниками)
Июнь 17, 2007 |
Был у нас на третьем курсе предмет “логическое и функциональное программирование”. Учили мы лисп и турбо пролог (turbo prolog). Кроме того, была у нас РГР, которую можно было делать на турбо прологе или Amzi. Отличительная особенность Amzi - возможность интеграции программы на прологе с программами на других языках программирования. Возможностью интеграции с Delphi я активно пользовался при написании программ себе и не только =) Т.е. Логика писалась на прологе, а интерфейс на Delphi.
Как показала практика - во многимх ВУЗах до сих пор учат пролог. Потому предлагаю вашему вниманию подборку писанных мною программ с кратким описанием что они делают. С учетом того что писалось это года четыре назад - многое уже не вспомню, так что напишу что смогу.
Сразу скажу, что учил turbo prolog и amzi prolog. С другими дистрибутивами, про которые меня периодически спрашивают (Strawberry prolog, Visual prolog), я не пересекался и в эттих вопросах при всем моем желании помочь ничем не смогу.
Также просьба отписываться в каком городе и в каком ВУЗе вы учите пролог.
Итак, приступим.
Арканоид
Суть игры думаю понятна =) прологом вычисляестся кто от кого отражается и кто кого сбивает. Работает весьма медленно, человеку который хотел сделать скрин сообщения о победе пришлось потрудиться =)

Сапер
Берем поле, расставляем на левом мины. После этого программа пытается найти все мины. Начинает она поиск с левого нижнего угла, так что туда мину ставить не стоит. Поиск ведется честным способом, без подглядывание в расставленные =) Большое поле не поставил из-за того что дикая рекурсия на прологе съедает память довольно быстро.

Поддавки
Игра в поддавки. Не ожидайте от нее чего-то слишком умного, писалось на уровне чуть выше рандома. Но все же кое-что умеет. И что тогда было более важно - использует для принятия решений пролог.

Морской бой
Умеет расставлять корабли, стреляет по пустым клеткам, а если нашел корабль - старается добить.

Тетрис
Игра не слишком требующая логического программирования. Но было задание. Что смог - вынес в пролог. Суть как и в остальных играх не в том, чтобы сделать качественный тетрис, а втом чтобы использовать при этом пролог.

Крестики-нолики
Крестики-нолики в трехмерном пространстве. Изначльно были глобальные планы по поводу самообучения, различных уровней сложности и так далее. Но потом времени было мало, так что делалось простейшим способом. Но от идей в исходниках остались некоторые запчасти =) так что, на самом деле, не все что есть в исходниках реально используется.

Крестики-нолики 3х3х3 на прологе
Крестики-нолики 3х3х3. Исходники
Есть еще несколько программок. Но сейчас не припомню что они делают и как. Может еще допишу как вспомню.
Comments
24 Comments so far



Клёвые программки, а случайно не сталкивался с прогой, которая должна отличать электр. цепь, соедин-я в ЗВЕЗДУ от соедин-й в ТРЕУГОЛЬНИК? заранее спасибо
Прив учусь в ринхе в городе Аксае на курсовую нужна программка желательно на прологе и по проще можеш чем нить помочь ? )
Well, Если те что выше не подходят, то могу поискать консольные варианты под turbo prolog
привет, учусь в Калининграде в БГА.
шчень сильно нужна прога на пролге “Реализация алгоритма шифрования mars”
dwyane, к сожалению, такого не писал. А поскольку уже лет пять как не писал ничего на прологе, то написать реализацию сейчас не смогу без основательного вспоминания языка, на что нет времени =(
у меня курсовик - задача на прологе
у меня к вам вопрос-сможете ли помочь с написанием?
ответьте, пожалуйста, на почту, тогда я все распишу подробнее.
Единственное - говорят, программа - 10 строчкек
привет, учусь в Самарском Аэрокосе, на факе информатики… нужна программа об оптимизациий пути коммивояжора на прологе.
Приветы!)
я с Украины, учусь в КНУ имени Тараса Шевченка, ф-т кибернетики. Вот тоже учим пролог, поскачивала твои игрушки, буду разбираться в коде))) спасибо! есть же добрые люди!))
Люди. Я из Тулы. Нужна прога, которая считает сумму всех диагоналей матрицы(диагонали с лева на право, в обратную не надо). Помогите,я как нить рассчитаюсь со спасителем!!!
да забыл у точнить…программа на прологе.
Привет! Учусь в Самарском педе, учу пролог. Полностью самостоятельно, ни кто ни что обьяснять не хочет, пришли пожалуйста, какой-нибудь самоучитель или название автора
2Евгений:
посмотрите темы на форуме винграда, там есть ссылки и на литературу и на лекции и есть люди с которыми можно пообщаться - Винград
Вот текст задания, кто возьмется..сообщите..Договорится о цене. pasweb@mail.ru
Королев В.П.
Тема №14. Разработка базы знаний «Учет подержанных автомобилей» на языке Пролог
Требования
1. В программе должен быть реализован удобный интерфейс пользователя (с
разветвленной системой меню и возвратом после окончания выбранной операции в
меню).
2. База данных программы должна содержать следующую информацию об автомобилях:
• марка автомобиля,
• модель автомобиля,
• класс.
• год выпуска,
• объем двигателя,
• цвет,
• состояние (хорошее, аварийное и т.д.),
• цена (у.е.)
3. Программа должна осуществлять пять основных операций при работе с базой данных:
• просмотр базы данных фактов,
• добавление новых записей в базу данных,
• удаление записи из базы данных,
• редактирование записи базы данных,
• поиск информации в базе данных.
4. Поиск информации в базе данных должен осуществляться как «по образцу» (т.е. на
совпадение критерия поиска с одним из полей записи в базе данных), так и по
частичному совпадению с ключом поиска (т.е. осуществлять поиск подстроки в строке).
Реализовать поиск ответов на следующие запросы:
• список автомобилей (марка, модель, класс и год выпуска), содержащих в наименовании модели указанному пользователем подстроку;
• список автомобилей, цена которых лежит в указанном пользователем диапазоне (от … до …);
• список автомобилей, выпущенных в указанном пользователем году и имеющих хорошее состояние,
• список автомобилей указанного пользователем класса, объем двигателя которых не превышает заданный.
5. В начале работы программы факты, хранящиеся в файле на диске, должны загружаться во внутреннюю базу данных системы. Если указанный пользователем файл отсутствует, программа должна выдавать соответствующее сообщение.
6. При окончании работы программы база данных фактов должна сохраняться в файл на диске, а ОП - очищаться.
Здравствуйте. Я учусь в Белгородском Государственном Университете. Если не сложно, помогите с кодом для amzi prolog. Программа при помощи рекурсии должна находить наименьшее общее кратное двух чисел. Заранее спасибо.
Василий, я сам давно на прологе ничего не писал. С простыми вопросами - лучше на форум. Могу посоветовать Раздел Prolog на Progz.ru - один из лучших русскоязычных форумов, посвященных прологу.
Если же будут задачи посерьезней - могу посоветовать человека, который еще пролог не забросил, но на бесплатные консультации у него времени не хватает.
Очень нужна программа поиска с предпочтением.Плиззз!!!
Я учусь в Иркутске мне для курсовой нужна программка сортировки. Помогите пожалуйста !!!!!
Здравствуйте, сколько будет стоить сделать эти лабы, и какое время потребуется?
желательно писать сюда: icq: 426182710
1. Написать родословную (любую).
2. Составить справочник (телефонные, энциклопедию).
3. Используя 1 задачу составить вопрос, согласно которому он выведет всех родственников одного пола, определенного возраста.
4. Используя 2 задачу составить вопрос, согласно которому он выведет информацию конкретного человека; информацию конкретного типа (по улице, городу).
5. Написать какое либо правило на естественном языке и на языке Пролог.
Роман, отправил на почту контакты человека, который может помочь.
СФУ, г. Красноярск
Нужна помощь с прологом. Программа которая умеет переставлять кубики в определенную последовательность (зная текущее положение переставить в определенном порядке). Подскажи кто поможет. Не бесплатно, само собой.
Приветствую! В СПбГМТУ - “корабелка” через 5 дней экзамен по SWI прологу. Курс был, но очень краткий. Задачи уровня “конвертер римские-арабские числа”, “оформление вывода графов атомов в файл” и пр. Пожалуйста, посоветуйте что-нибудь почитать на тему таких задачек (и не только) eBook конспектов какой-нибудь.
PS Тут кармы нет, так что совсем обнаглею … не завалялся ли лишний инвайт на хабр?
BZ, затрудняюсь что-то посоветовать, поскольку сам уже лет 6-7 с прологом не пересекаюсь. Лучше такие вещи спросить на форумах типа винграда (forum.vingrad.ru) и прогз (http://www.progz.ru/forum/index.php?showforum=10).
Инвайтов на хабр нету.
Небольшой бонус для повышения кармы (не той, что на хабре =) ):
За оптимальность не ручаюсь, таки сколько лет без пролога, и работает только в одну сторону (римские => арабские). Но со всеми примерами в википедии по римским цифрам конвертит правильно. Например так:
num(”DCCCLXXXVIII”,R).
R = 888
Здравствуй.
мне для курсавой нужна прога МОРСКОГО БОЯ написанная на турбо прологе, а то весь семестр работал и пропустил все, а здавать уже через неделю, твоя не работает, помогите пожалуйста.
Makcum-tlt@yandex.ru
Здравствуй, Максим.
К сожалению, помочь не могу при всём желании. У меня сейчас стоит Win x64. И Турбо пролог просто не запускается. Искать решение проблемы с запуском времени нет.
Могу лишь посоветовать пройтись по форумам прогз и винград, может там найдется кто-то, у кого есть реализация морского боя или кто поможет с ней.