|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2008
Сообщений: 205
|
Какие есть интерпретаторы реализованные на AS 3.0
Сабж, интересует в первую очередь лисп, пролог, питон т.е. заточенные под искусственный интеллект языки
|
|
|||||
4AM Games
|
Я искал – нет ^_^
Добавлено через 1 минуту Я даже начинал писать фреймворк, с каким нибудь подобием DSL на будущее, но продумав все решил забить, так как AS – тормозной и не подерживает многопоточности. Намного легче писать AI на сервере, на Scala / Erlang / List / Prolog
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
Регистрация: Nov 2008
Сообщений: 205
|
Дык есть игры без сервера, но тем не менее AI там нужен.
Вообще - то лисп реализовать не очень сложно и тормозить не будет если грамотно реализовать несколько ф - ций всего. Я это спрашиваю к тому, что хорошо - бы иметь API на лиспе для реализации сабж чтоб юзать его везде, ато получается, что при переходе на новую платформу придется заново учить все либы, не хорошо это. Похоже я чегото надыбал, вот Так что живем, будем таперича на лиспе педалить Последний раз редактировалось VovkaMorkovka1; 10.05.2010 в 03:06. |
|
|||||
4AM Games
|
А что за AI ты задумал? Просто я в своих размышлениях обычно упирался в отсутсвие многопоточности.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
Регистрация: Nov 2008
Сообщений: 205
|
Да вообще - то примитивные вещи, типа поиска пути, алгоритма альфа-бета отсечения, машины состояний легко реализуемой и др. Дело в том, нынешняя ситуация, когда на каждый чих нужно писать свои либы или переучиваться напрягает. Вот альфа - бета отсечение, например: почему - бы его каркас не реализовать на лиспе отставив в качестве реализации для каждого проекта только оценочную ф - цию. Тогда, если скажем шашки нужно перенести с J2ME на экшенскрипт, или наоборот берем лисповую либу, добавляем к ней обертку - вуаля.
Сумбурно немного, но вот такая идея. |
|
|||||
4AM Games
|
Понятно, я в качестве Proof of Concept думал о Умном Tower Defense, и хотел реализовать Multi Agent System, и споткнулся о Concurrency Oriented Programming, вернее в отсутствие оного. Для Path Finding и подобных можно обойтись )
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
Регистрация: Nov 2008
Сообщений: 205
|
На самом деле и для более сложных вещей можно обойтись однопоточностью, если грамотно использовать переключение между ветками вычислений. Более сложная проблема: рекурсия - нужно разделить на тики время выполнения ф - ций, это уже сложнее
|
|
|||||
4AM Games
|
@VovkaMorkovka1
Можно, но лень ^_^, Belief - Desire - Intention реализуется на Scala / Erlang в два пинка, и без гемороя, и легко скалируется.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Пытался сделать на AS вычисление 2000!)
По Эрланговскому способу - через события и хвостовую промежуточную рекурсию. Споткнулся на больших целых - собственную реализацию делать было лень.. UPD: я сделал это (через com.hurlant.math.BigInteger) код: package { import com.hurlant.math.BigInteger; import flash.display.Sprite; import flash.events.Event; import flash.events.TimerEvent; import flash.text.TextField; import flash.utils.getTimer; import flash.utils.Timer; /** * Итерационное вычисление факториала * * @author k0t0vich */ public class Main extends Sprite { private var tf:TextField = new TextField(); private var timer:Timer = new Timer(1); private var value:BigInteger = new BigInteger("1",16); private var base:int; private var startTime:int; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point tf.width = 1000; tf.height = 1000; addChild(tf); base = 2000; timer.addEventListener(TimerEvent.TIMER, factorial); timer.start(); tf.text = "factorial ("+base+")="; startTime = getTimer(); } private function out():void { timer.removeEventListener(TimerEvent.TIMER, factorial); var str:String = value.toString(16) + " time:" + String(getTimer() - startTime); tf.appendText(str); } private function factorial(e:TimerEvent):void { // выход из рекурсии if (base == 1||base == 0) out(); //блок вычисления else { value=value.multiply(new BigInteger(base.toString(16),16)); // факториал base--; } } } } В общем.. надоел ООП) UPD2 вот и магическое число: Цитата:
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 15.04.2011 в 04:59. |
Часовой пояс GMT +4, время: 01:49. |
|
« Предыдущая тема | Следующая тема » |
|
|