Посоветуйте язык для решения задачи.
От: Tuo_Bellas Россия  
Дата: 02.07.05 16:20
Оценка: +1
Всем привет!

Кратко -- нужно реализовать (обобщенную) игровую систему для пошаговой коллекционной карточной игры типа www.astralmasters.com.

Играют двое. У каждого есть колода карт, карты в руке и карты на столе. Так же у игрока есть текущее состояние, куда входят параметры типа хит-поинтов и ресурсов, требуемых для помещения карты на стол (мана). Свое состояние имеет и карта (видимо, только лежащая на столе).

Карта может иметь свое правило поведения на произвольное изменение игровой ситуации и может нуждаться в доступе к любой детали информации о состоянии игры. Например, правила могут быть такими: нанести противнику повреждение, когда он берет карту из колоды; изменить свою силу атаки, если у владельца на столе есть больше трех карт заданного типа и т.п. -- см. любую CCG-систему.

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

Какой-то доступ к правилам понадобится и искусственному интеллекту -- как минимум для составления колоды и планирования ходов.

Требуется языковое средство для описания такого набора правил. Нужно учитывать, что остальная часть реализации (например UI) будет написана на C++ -- следовательно, понадобится возможность взаимодействия между C++ и выбранным языком. Возможно, какой-нибудь из существующих языков хорошо подходит для решения подобных задач? Или лучше написать свой domain specific language?

Спасибо,
Tuo_Bellas.

P.S. Наверное, при коммерческой разработке, целесообразнее было бы заставить дизайнеров разработать и отполировать систему на бумажных картах, а потом "быстро и качественно" закодить влоб на С++ все, что у них получилось. Но тут я сам себе и дизайнер и "заказчик" -- мне интересно построить систему, подобную описанной выше. Заодно или освою новый язык, или отточу скилы по дизайну и написанию DSL
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.