Comments 71
| каждый человек любит соревноваться и доказывать свое первенство
Я не человек (
Я не человек (
+18
Не поверю если скажете что любите проигрывать или быть аутсайдером.
-7
Быть в чем то и кого то лучше, не означает движения к собственной цели.
+12
У Вас слишком абстрактная формулировка. А на самом деле это весьма связанные вещи.
Вот взять к примеру open source, это движение само по себе уже говорит что ради признания, уважения или первенства люди готовы даже денег не брать.
Вот взять к примеру open source, это движение само по себе уже говорит что ради признания, уважения или первенства люди готовы даже денег не брать.
-1
взять к примеру open source, это движение само по себе уже говорит что ради признания, уважения или первенства люди готовы даже денег не брать.
open source энтузиасты пилят, чтобы у себя работало, а отдают — чтобы не протухло со временем. Если тебе самому не надо — фиг ты что толковое напишешь.
+2
Не все пытаются быть именно лучше других, именно соревноваться, кто-то просто творит без привязки лучше\хуже.
+2
Вот взять к примеру open source, это движение само по себе уже говорит что ради признания, уважения или первенства люди готовы даже денег не брать.
Или ради проверки на вшивость кода (конечно редко но возможность то есть).
Или ради доработки софта, который собираешься использовать.
Или ради обретения навыков командной разработки.
Или… или…
Нельзя так просто взять и отождествить open source с глобальной фаллометрией.
Или ради проверки на вшивость кода (конечно редко но возможность то есть).
Или ради доработки софта, который собираешься использовать.
Или ради обретения навыков командной разработки.
Или… или…
Нельзя так просто взять и отождествить open source с глобальной фаллометрией.
+3
Отсутствие желания соревноваться не означает проигрыш. Иногда проще съесть корешок, а не гоняться за мамонтом, рискуя быть сожранным саблезубым тигром.
Ну и, чтобы два раза не «вставать», движение Open Source держится не только и не столько на «признании, уважении и первенстве», сколько на простой невозможности некоторых людей не писать код. Скольких контрибюторов ядра Линукс вы знаете? Я — ни одного, кроме самого Линуса. О какой популярности тут может идти речь, если о них не знает никто, кроме тех, кто с ними же работает? Широко известные в узких кругах? Ну, ок. Только это скорее повторяет мою мысль — они занимаются этим либо за деньги (сколько там процентов коммитов в ядро идет от корпораций вроде Google и Intel?), либо из любви к искусству.
Соревновательный элемент в IT представлен исключительно спортивным программирование, успехи в котором, по слухам (https://geektimes.ru/post/248580/), имеют скорее обратную корреляцию со способностью работать в команде среднестатистических людей. Проводя аналогию — да, ты можешь догнать мамонта быстрее остальных охотников, но что ты будешь с ним делать один? Ты можешь «запилить» крутой коммит в любимый OS проект, но если его сможет понять 1-2 человека из команды, кому он нужен в таком виде? Кто будет его поддерживать потом?
Ну и, чтобы два раза не «вставать», движение Open Source держится не только и не столько на «признании, уважении и первенстве», сколько на простой невозможности некоторых людей не писать код. Скольких контрибюторов ядра Линукс вы знаете? Я — ни одного, кроме самого Линуса. О какой популярности тут может идти речь, если о них не знает никто, кроме тех, кто с ними же работает? Широко известные в узких кругах? Ну, ок. Только это скорее повторяет мою мысль — они занимаются этим либо за деньги (сколько там процентов коммитов в ядро идет от корпораций вроде Google и Intel?), либо из любви к искусству.
Соревновательный элемент в IT представлен исключительно спортивным программирование, успехи в котором, по слухам (https://geektimes.ru/post/248580/), имеют скорее обратную корреляцию со способностью работать в команде среднестатистических людей. Проводя аналогию — да, ты можешь догнать мамонта быстрее остальных охотников, но что ты будешь с ним делать один? Ты можешь «запилить» крутой коммит в любимый OS проект, но если его сможет понять 1-2 человека из команды, кому он нужен в таком виде? Кто будет его поддерживать потом?
+19
UFO just landed and posted this here
Ну и, чтобы два раза не «вставать», движение Open Source держится не только и не столько на «признании, уважении и первенстве», сколько на простой невозможности некоторых людей не писать код. Скольких контрибюторов ядра Линукс вы знаете? Я — ни одного, кроме самого Линуса. О какой популярности тут может идти речь, если о них не знает никто, кроме тех, кто с ними же работает?
И даже тут «признание, уважение и первенство», таки имеет место быть. Просто признание не со стороны «ширнармасс», а конкретно со стороны «уважаемого человека Линуса», например. Признание от коллег и т.д. и т.п. Конечно, мировая слава не всех манит, но признание от людей, которых человек сам уважает (что важно), значит, причем значит многое.
И даже тут «признание, уважение и первенство», таки имеет место быть. Просто признание не со стороны «ширнармасс», а конкретно со стороны «уважаемого человека Линуса», например. Признание от коллег и т.д. и т.п. Конечно, мировая слава не всех манит, но признание от людей, которых человек сам уважает (что важно), значит, причем значит многое.
0
Тем не менее свой первонах под постом вы вбили…
Чем доказали свое первенство в этом скромном соревновании...
Может вы просто вытесняете мысль о желании быть первым из сознания, а подсознание грезит господством над МИРОМ!
Чем доказали свое первенство в этом скромном соревновании...
Может вы просто вытесняете мысль о желании быть первым из сознания, а подсознание грезит господством над МИРОМ!
+2
Человек. Как говорит старинная народная мудрость: мир движут вперёд две вещи — лень и пиписькомерение.каждый человек любит соревноваться и доказывать свое первенствоЯ не человек (
0
Для написание нужны: javaВы добавили бы поддержку более других языков :)
+6
В данной ситуации это было для меня затратно по времени, поэтому я решил отказаться от этой идеи.
Сейчас система в ран тайм подключает ботов как плагины и выполняет их код.
Для поддержки же многих языков нужен иной подход. Или многоязычная среда исполнения, или та же java но которая будет выполнять роль интерпретатора.
Сейчас система в ран тайм подключает ботов как плагины и выполняет их код.
Для поддержки же многих языков нужен иной подход. Или многоязычная среда исполнения, или та же java но которая будет выполнять роль интерпретатора.
-1
Или запуск бинарников (в докере(небезопасно?) или в виртуалке(ресурсоемко)) и игра с ними используя сетевой протокол.
0
Можно просто паблик апи. Я даю вам ссылку где слушает мой бот, вы посылаете ему исходные данные и получаете ответ.
-1
Если на вход поступает .jar, то значит, в теории, jvm based языки должны работать?
0
Развлекайтесь на JS и Python: codecombat.com/play/ladder
-1
Не из мира Java, но идея мне понравилась, да и выглядит хорошо. Думаю, желающие сразиться найдутся.
0
Идея замечательная! Но использование Lombok может отпугнуть потенциальных участников, не знакомых с ним. Тем более даже плагин Lombok для Intellij IDEA "подсвечивает" некоторые ошибки.
+1
UFO just landed and posted this here
Система расширяема. Так что не стесняйтесь. Какую игру предложите?
0
Покер. Дурак — слишком прямолинейная игра. Да и знают о нем только на просторах бывшего СССР.
-2
UFO just landed and posted this here
Преферанс. И профурсеток
Но он гемморойнее на этапе реализации + требование наличия трех ботов. (Зато нематчевая система учета очков. =) )
Но он гемморойнее на этапе реализации + требование наличия трех ботов. (Зато нематчевая система учета очков. =) )
0
Можно взять те же шашки. Довольно простая игра
0
Я буду следить за этой веткой и по результатам обсуждения глянем кто наберет побольше плюсов.
Если вариант окажется стоящим — возьму в разработку.
Если вариант окажется стоящим — возьму в разработку.
0
Прикольно) Еще бы была возможность играть с собственным ботом, то есть нечто вроде пользовательского тестирования. А так — идея очень хорошая, да и реализовано на уровне.
+3
Интересно, дойдёт ли до того, что боты начнут объединяться друг с другом против более сильных ботов, или обойдётся тем, что каждый будет сам за себя…
0
Есть ли возможность узнать некий ID противника и сохранять какие-то данные между играми? Тогда можно было бы писать ботов, подбирающих стратегию против конкретных противников. Или всё полностью анонимно?
0
правильно ли я понимаю, что бота можно написать на любом jvm-based языке (Scala, Kotlin), главное чтоб на выходе jar для загрузки получился?
0
Как-то фильтруется время выполнения?
Если while(true){} будет в боте или еще что-то подобное?
Если while(true){} будет в боте или еще что-то подобное?
0
Да, это оговорено в правилах, 10 секунд таймаут бота.
Реализовано с помощью ExecutorService который умеет ограничивать время выполнения.
Реализовано с помощью ExecutorService который умеет ограничивать время выполнения.
0
А можно чуть подробнее? Если делается Thread.stop(), то получим неконсистентность, если interrupt, то
while(true) {
try {
...
} catch (InterrruptedException ignored) {
}
}
0
Да и InterruptedException скорее всего даже не возникнет, если не будет блокирующих операций, а будет просто тупой while (true)
0
Вот как это выглядит:
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<GameResults> futureResult = executor.submit(new GameTask(player1, player2));
results.add(futureResult.get(Constants.GAME_TIMEOUT, TimeUnit.MILLISECONDS));
0
Потоки потекут. Future.get не прерывает исполнение внутри executor'а, только возобновляет работу текущего потока. В потоке Executor'а будет всего лишь вызван Thread.interrupt(). Это нормально?
0
Просто в Java многозадачность кооперативная. Нельзя (насколько мне известно) кого-то принудить завершиться за определенный промежуток времени. Возможно, конкретно в вашем случае это вполне ок. Но выглядит так, что будет не очень хорошо.
0
Что бы держать потоки под контролем нужно их прерывать, тут я согласен. Делать это можно в 2 этапа. Первое, Future.cancel, второе, обрабатывать interrupt внутри задачи.
Так я думаю будет корректно.
Так я думаю будет корректно.
0
Да, но timeout же для того и нужен, чтобы нехорошие пользователи не отжирали все время под себя? Или я не правильно понял? А если пользователь нехороший, то странно ожидать от него, что он обработает interrupt корректно.
0
Да, поняли все правильно. Но тут дело в том что Callable для ExecutorService'а умеет отличать ситуацию когда Future.cancel.
Вот примерно так stackoverflow.com/a/16277241/1239020
Вот примерно так stackoverflow.com/a/16277241/1239020
0
Что значит «Callable для ExecutorService'а умеет отличать ситуацию когда Future.cancel»? Все, что делает future.cancel(true) — выкидывает задачу из очереди, если она еще не запустилась, или говорит Thread.interrupt, если задача уже работает.
0
Вообще, корректно сделать песочницу — довольно сложная задача. Да и все равно найдется способ все сломать. С другой стороны, песочница у нас уже есть — jvm. Соответственно, я у себя в конечном счете пришел к решению запускать jvm со включенным SecurityManager и ограниченным хипом на каждую игру. А время работы мониторить снаружи и слать sigterm если зависло.
0
Future.get никаких интераптов не делает. Все, что вы получите — TimeoutException вместо результата. На сколько я понимаю, там дальше стоит catch на него и future.cancel.
0
На самом деле, если очень аккуратно, то Thread.stop() можно. Главное, о чем предупреждают — отпускание мониторов. Но в данном случае их и так не будет.
0
Я правильно понимаю, что игра более чем двух игроков не поддерживается?
0
Да, все так. Но в списке фич есть поддержка игры для более 2-х игроков.
0
Под фичами имеются в виду планируемые доработки? Почин интересный, но «Дурак» из двух игроков довольно примитивная игра (особенно если ещё и не переводной). Ещё вопрос: интерфейс AI выглядит как-то куце, непонятно, как бот узнаёт о том, какие карты на руках? Или всё это включается в Table? Может ли бот хранить какое-то своё состояние? По интерфейсу не помешало бы более подробное описание. Я немного думал об этой игре (и возможно вернусь к этому). Тема мне интересна и хочется больше технических подробностей.
0
Под фичами имеются в виду планируемые доработки?Да
Или всё это включается в Table?Да
Может ли бот хранить какое-то своё состояние?На всю сессию игры используется один инстанс, так что можете создать поля класса и хранить там доп информацию
По интерфейсу не помешало бы более подробное описание.Большая часть описана в Dev Guide секции на Intro странице. Если чего не хватает — пишите, добавлю
хочется больше технических подробностей.Судя по результатам голосования мне придется раскрыть карты.
0
После прочтения в «Битву умом» желания включаться не появилось, но интерес пройти по ссылке появился. На первый взгляд все достаточно культурно оформлено, смутило лишь то что дизайн сайта не адаптивный.
0
О, лишний повод таки начать учить java
+1
в университете мы делали студенческий проект с похожей идеей, но за основу взяли чуть более сложную вселенную, чем Дурак
warspot.cloudapp.net/Document/About
warspot.cloudapp.net/Document/SmallGuide
warspot.cloudapp.net/Document/About
warspot.cloudapp.net/Document/SmallGuide
+1
Sign up to leave a comment.
Песочница для программистов