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

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

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

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

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

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

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

Клёвые программки, а случайно не сталкивался с прогой, которая должна отличать электр. цепь, соедин-я в ЗВЕЗДУ от соедин-й в ТРЕУГОЛЬНИК? заранее спасибо
Прив учусь в ринхе в городе Аксае на курсовую нужна программка желательно на прологе и по проще можеш чем нить помочь ? )
Well, Если те что выше не подходят, то могу поискать консольные варианты под turbo prolog
привет, учусь в Калининграде в БГА.
шчень сильно нужна прога на пролге “Реализация алгоритма шифрования mars”
dwyane, к сожалению, такого не писал. А поскольку уже лет пять как не писал ничего на прологе, то написать реализацию сейчас не смогу без основательного вспоминания языка, на что нет времени =(
у меня курсовик - задача на прологе
у меня к вам вопрос-сможете ли помочь с написанием?
ответьте, пожалуйста, на почту, тогда я все распишу подробнее.
Единственное - говорят, программа - 10 строчкек
привет, учусь в Самарском Аэрокосе, на факе информатики… нужна программа об оптимизациий пути коммивояжора на прологе.
Приветы!)
я с Украины, учусь в КНУ имени Тараса Шевченка, ф-т кибернетики. Вот тоже учим пролог, поскачивала твои игрушки, буду разбираться в коде))) спасибо! есть же добрые люди!))
Люди. Я из Тулы. Нужна прога, которая считает сумму всех диагоналей матрицы(диагонали с лева на право, в обратную не надо). Помогите,я как нить рассчитаюсь со спасителем!!!
да забыл у точнить…программа на прологе.