вавилонский лабиринт

Aug 29, 2010 05:01

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

Но язык программирования на каждом уровне другой. ( Интересно только программистам )

idea, lang, mental

Leave a comment

Comments 33

aruslan August 29 2010, 02:09:17 UTC
Думаю, роботы должны уметь делиться, распределяя доступные внутренние и коммуникационные ресурсы соответственно используемому языку.
Задачи типа убить Минотавра в лабиринте vs найти Джоконду в музее vs поместить врагов в сад расходящихся тропок.

Тогда можно будет точно с рекрутеров денег за контакты брать.

Reply

9000 August 29 2010, 11:43:06 UTC
Ну, это очень высокий уровень. Для начала надо уровней 20-30-50 попроще. Сравним с Project Euler.

Кстати, кооперация или война, PvE или PvP, тоже должны появляться на старших уровнях. Тот же pacman, притом задачи чтобы бывали за обе стороны.

Reply


(The comment has been removed)

Re: Borges 2.0 9000 August 29 2010, 10:10:22 UTC
Sounds logical. But commerce wise, it seems more profitable to bring the idea to some initial implementation and sell the startup than to sell the bare idea.

Reply


kouzdra August 29 2010, 08:36:44 UTC
Нечто подобное было в 2004 на ICFP

Reply

9000 August 29 2010, 11:45:42 UTC
В точности.
Но можно обобщить и (для снижения порога) добавить множество более простых задач.

Reply


the7ofdiamonds August 29 2010, 08:40:04 UTC
недостаток идеи в том, что хотя язык может быть всё время разный, но алгоритмы-то одинаковые. это получится развлекуха для кодеров и поэтому быстро наскучит. вот если б придумать что-нибудь такое для алгоритмистов..

Reply

9000 August 29 2010, 10:23:33 UTC
у всего есть свои ограничения %)
но если некий алгоритм записывается на каком-то языке в 2 строчки, то на другом - в 20, а другой подходящий алгоритм - наоборот. ограничения на затраты инструкций (и памяти) будут вынуждать применять разные алгоритмы для с виду одинаковых условий.

Reply

the7ofdiamonds August 29 2010, 16:00:13 UTC
по сути алгоритмы одинаковые все будут (максимум парочка разных для каждой задачи), отличаться будут только реализации. да и скучно все время одну и ту же задачу решать.

Reply

9000 August 29 2010, 17:31:56 UTC
ну что вы ( ... )

Reply


slobin August 29 2010, 08:51:03 UTC
Самое сложное - видимо, конструктор языков и трансляторов и какая-то разумно универсальная виртуальная машина для исполнения этих программ.

Насколько я в курсе, самый отработанный конструктор языков и трансляторов (именно для целей обучения) -- это PLT Scheme (до недавних пор Racket Scheme). У них там в комплекте долгое время была игрушечная Ява (сейчас убрали во внешний модуль) и до сих пор есть игрушечный Алгол-60. Разумеется, речь не идёт ни об эффективности, ни о взаимодействии с "обычным" внешним миром, но нам этого и не нужно. Собственно, у одного из авторов курс языков программирования так и построен: "чтобы понять, как эта фича работает, надо её самому реализовать".

... zo banzu na terbri la'e vo'a ...

Reply

slobin August 29 2010, 08:52:26 UTC
Поправка: не "до не давних пор", а "с недавних пор". У них случился ребрендинг. ;-)

... Тупанье в темноте ...

Reply

9000 August 29 2010, 11:35:24 UTC
О, отлично. Но, не исключено, придётся иметь 2 или даже 3 backend-а для разных по характеру языков.

Reply


Leave a comment

Up