Elecrojungle: hunters twilight

Рубрика: Development | 22 December 2006, 12:07 | juriy

Уж не знаю, как это так выходит, но Вадим обо всем новом и интересном узнает раньше. Только я найду что-то стоящее внимания – кидаю ему ссылку, а он мне в ответ что-то вроде “Тю, ты только узнал, так это уже давно…”. Этот раз исключением не стал, только ссылку кинум не я ему, а он мне. Ссылка эта – http://www.electricjungle.ru/
Суть проекта – довольно интересна. Есть виртуальные джунгли – простая сетка, замкнутая по краям. Есть SDK, который позволяет написать зверька, который будет счастливо (или не очень, все зависит от рук создателя) жить в этих джунглях.
Жить в джунгях не просто, надо бороться за выживание с другими такими же умниками, как ты. Цель – сделать так, чтобы твоя популяция была самой большой после определенного количества ходов.
Правила достаточно просты – их можно посмотреть прямо на сайте. Тут я вкратце коснусь основ создания своего личного зверька.
Зверек характеризуется двумя величинами: размер и скорость. Кроме того у каждого индивида есть энергия, которую он может тратить на действия. Максимальное количество энергии равно массе существа.
Что может делать зверек:

1. Можно стоять и перекуривать (не делать ничего, пропустить ход). Энергии не требует.
2. Можно двигаться. Количество клеток, на которые зверь может перейти за ход – определяется его скоростью. Энергия, которая тратится на это действие прямо пропорционально массе и скорости существа (да, да, можно сделать слона, который будет догонять гепардов, но такая туша должна точно знать, где себя прокормить).
3. Можно есть. Понятно, что энергии не требует. Слопать за раз можно не больше чем 10% от максимальной энергии.
4. Можно атаковать: тратится около 1% энергии за атаку (точное значение нужно глянуть на сайте). Ну и повреждения, которые наносит зверек – пропорциональны массе.
5. Можно отдавать энергию другому существу (“лечить”, так и представляю клирика-носорога!).
6. Можно размножаться. Тут самое интересное. Во-первых, существа размножаются делением (партнер не нужен). Да и сам процесс интересен: чтобы разделиться нужно иметь минимум 80% энергии. 20% тратится на процесс. Половина того что осталось – переходит новому зверьку. Очень классная идея! При рождении новому зверьку можно передать “генокод” – произвольный объект, который затем можно использовать для определения поведение зверька! Кроме того, звери могут понемногу “эволюционировать”. За одно поколение можно изменить на 20% массу и скорость новой особи.

Разработка.
Разработка своего маленького кибернетического чуда – не составляет особого труда. Основная сложность на моем пути заключалась в том, что документация… нет она не плохая ее просто нет. Все чем вы располагаете вначале – это SDK с исходниками и один простой зверек, на которого можно смотреть.
Я опишу процесс создания и запуска простого зверька “с высоты птичьего полета”. Может, если тема будет развиваться напишу небольшой “kick-off”, который опишет процесс “по шагам”. Кстати, если будет интересно – пишите.

Для того чтобы создать зверя нужно создать класс, который реализует интерфейс Being, и, соответственно, реализовать несколько функций. Основная из них -

public Event makeTurn(BeingInterface world)

В ней зверек решает, что ему делать, основываясь на данных, полученных от внешнего мира и делает ход.
После этого – необходимо запаковать зверя в .jar и в манифесте указать в параметре Main-Class – класс зверя (мне кажется, это неправильный подход, ведь этот атрибут для другого предназначен). Теперь можно запустить софтинку, загруженную с сайта, и добавить зверя в джунгли. Все, можно наслаждаться наблюдением за ростом вашего чёртика!

Комментариев: 5

5 Responses to “Elecrojungle: hunters twilight”

Комментарии:

  1. vadim

    Хотелось бы увидеть код простенького звереныша.

  2. Lev

    Мне интересны статьи по на писанию кибер зверей !
    Пожалуста на пиши как от начала и до конца сделать зверя . В какой

  3. Lev

    Привет,

    Мне интересны статьи по на писанию кибер зверей !
    Пожалуста на пиши как от начала и до конца сделать зверя . В какой среде его писать!
    Я только начал изучать ява!!!
    По этому чем подробнее будет написано тем лучше.!

    С уважением,
    Лев.

  4. vadim

    Мне кажется что для начала стоит изучить Java.
    Во избежание превращения себя любимого в обезьянку-кодера предлагаю как среду использовать любой редактор кода + консольный компилятор JavaC.
    Я рекомендую как редактор использовать JEdit или Far + Colorer Plugin.

Leave a Reply