Computer Science МФТИ Changes    |    Index    |    Search
::: BurimeProject :::
Parents: WebHome > AgentProjects
 
  ACM . Agent . BurimeProject # Edit # Attach # Diffs # Printable # More :::

Main
• Register
• Users
• Site Map

Curriculum

Agent Web
• projects

Algorithms

Web Learn

Image Kit

ProgTech

Publishing

Burime

Это страница проекта Burime, выполненного по курсу многоагентные системы.

О проекте

Думаю многим известна игра Burime, но всё же напомним её правила.

Существует множество модификаций правил, мы будем рассматривать следующий вариант. Итак, имеется группа людей, которая хочет совместно посочинять стихи. Среди этих людей выделяется ведущий. Ведущий, во-первых, задаёт первую строфу, во-вторых, управляет процессом игры: назначает конкретные правила тура, следит за их соблюдением, указывает очерёдность игроков, следит за тем, чтобы игроки не затормаживали игру, определяет момент окончания игры и т.п. Записав на листе бумаге начальную строфу из двух либо четырёх строк, ведущий передаёт бумагу следующему по очереди участнику, назовём его игроком №2. Он дописывает по смыслу (или без) следующую строфу (из того же количества строк, что и первая строфа) и заворачивает доставщуюся ему от первого игрока строфу. В таком виде лист передаётся игроку №3. Он проделывает ту же операцию, что и игрок №2 (повторюсь, он уже не видит первой срофы, а видит только вторую) и так продолжается до момента окончания игры.

Требовалось реализовать данную игру в компьютерном варианте, используя знания, полученные в течении курса "Многоагентные системы".

Usecase-Diagram

Особенности реализации

Решено было реализовывать данный проект, используя платформу JADE. В этой платформе каждый тип агента представляется классом. У нас два основных типа агентов (два класса): BurimeChief и BurimePlayer. Причём, для добавления нового типа агента-игрока достаточно унаследовать класс BurimePlayer и переопределить у них методы: init(), wannaPlay(), compose(), readyBurime() - очень просто, что соответствует требованиям SRS. Например, класс BurimePlayerMan - так и действует, создавая для нас игрока, за которым сидит реальный человек. Вы можете просто реализовать своего агента, сочиняющего, скажем, использую API всемизвестного Google.

После загрузки агента-ведущего вы можете пригласить игроков поиграть - соглашаюся те агенты, у которых метод wannaPlay() на момент получения сообщения выдаст true. В случае BurimePlayerMan, агент спросит у человека, хочет ли тот поиграть. В настройках (кнопка Options) вы можете указать, сколько ожидать положительного ответа.

Вы можете определить, правила игры: 2-ух- или 4-ёх-стишья, сколько времени выдаётся на одного игрока (кнопка Options).

Далее вы можете начать играть. Ведущий будет опрашивать игроков по очерёдности, определённой вами ранее. Те будут возвращать строки, сочинённые методом compose().

По окончанию игры всем зарегестрированным игрокам вышлют их совместное творчество, и он обработает его согласно методу readyBurime().

Protocols Diagram

Команда

Разработчик: Василий Тарасов

Дополнение

В приложенных файлах вы найдёте исходники и документацию на проект.

Дополнение 2

Был написан агент, "сочиняющий", используя систему Google. Слово, "сочиняющий" не зря поставлено в кавычки: он просто ищет полученные от предыдущего игрока строки в Google и результат оформляет в качестве ответа. Агент выполнен без GUI, только для двух строк. Вот примеры сочинённых стихов:

(4-е агента)

Как они так и мы
В капусту влюблены
посему, так как они
Кто-то квасит капусту
Так как они вышли
ДА и кто-то сделал
Так, например, они
Снял он рубаху, чтоб
Может быть, приготовленные
но не было случая,

(5-ть агентов)

Мужик волосатый 
конопатый и проклятый
Да я мужик. Вонючий,
Узнал Михайлова легко
вот же мужик бестолковый
что к убийству отца
а теща вообще золотая,
Очевидно, что казнь
И вообще год нынче
что нужно строго
упивший год Петуха
Я вовсе не считаю,

(10-ть агентов)

Ехал ваня на печи
И ел куличи
Сидит Ваня на печи,.
БЛАГОДАРНОСТЬ МАКСИМУ
Ты ли, мой младший
Автор выражает благодарность
Младший мой брат,
Автор выражает благодарность
Хочу виновника назвать:
Калифорния в Сан-Диего.
Не хочу, чтобы, когда
билеты Москва Сан-Диего,
должны вы поступать
Цены на авиабилеты
как обычно должны
билеты для молодежи,
Как обычно! Ты представляешь?
Билеты по указанной
Ты представляешь
Билеты по указанной
Сара, ты представляешь,
Расходы по пересылке

Возможности дальнейшего развития

  • Дополнительные настройки игры: язык, размер и многое-многое другое
  • Создание агента, который сможет создавать РИФМОВАННЫЕ стихи
  • Изменение организации игры. В данный момент, есть выделенный агент - ведущий (Burime Chief), на котором лежит огромная "ответственность". Он собирает игроков для игры, определяет кто за кем ходит, выставляет таймауты, после которых стоит "выгнать" игрока и т.д. и т.п. Хотелось бы создать некую самоорганизующую структуру. Есть один инициатор (его роль, вероятно, лишь в начале игры), а далее агенты сами (по разработанному протоколу) догавариваются кто за кем ходит и т.п. и начинают играть. Это решение более интеллектуальное, соответвует реальности и более надёжное: в это версии при вылете агента ведущего - вся игра рушится.

-- VassiliyTarasov2? - 23 May 2005

Attachment sort Action Size Date Who Comment
burime.zip manage 25.9 K 27 May 2005 - 09:57 VassiliyTarasov2? class-файлы для Burime c документацией
burime_src.zip manage 15.0 K 27 May 2005 - 09:57 VassiliyTarasov2? исходники Burime c документацией
srs.pdf manage 91.6 K 23 May 2005 - 21:16 VassiliyTarasov2? SRS для Burime
plan.pdf manage 48.3 K 23 May 2005 - 21:17 VassiliyTarasov2? План для Burime
test.zip manage 3.7 K 24 May 2005 - 07:03 VassiliyTarasov2? Тесты для Burime
BurimePlayerGoogle.zip manage 3.2 K 28 May 2005 - 10:11 VassiliyTarasov2? Агент, "сочиняющий", используя Google

Rambler's Top100 Rambler's Top100


# Edit menu  

Topic revision r1.6 - 31 May 2005 - 19:02 GMT - VassiliyTarasov2?
Topic parents: WebHome > AgentProjects
Copyright © 2003-2017 by the contributing authors.