Комментарии 59
Зря спрятали тесты совсем. Иногда они помогают лучше понять задание. Неплохо бы пару тестов показывать, но при проверке задания во внимание их не принимать.
+1
Мы показываем один пример из теста рядом с описанием задания:
+4
Пока плохо спрятали, к вечеру обещают закрыть серьёзнее =)
0
как то вот так
1. read(x)
2. sendToMyOwnServerViaInternet(x)
3.…
4. profit
1. read(x)
2. sendToMyOwnServerViaInternet(x)
3.…
4. profit
-1
вы про это?)
+2
Проверил на большинстве задач, уникальное решение для php примерно такое =)
<?php
function solution($a) {
$tests = file_get_contents('data.jsons');
echo $tests;
$tests = explode("\n", $tests);
foreach ($tests as $test) {
$test = json_decode($test, true);
$arg = $test['arguments'];
if (is_array($test['arguments'])) {
$arg = $test['arguments'][0];
}
if ($arg == $a) {
return $test['expected'];
}
}
}
+3
Добавьте нотификации перед началом игры
Ждешь игру, перключаешься на другую вкладку, возвращаешься — уже проиграл
Ждешь игру, перключаешься на другую вкладку, возвращаешься — уже проиграл
+2
Было бы неплохо, чтобы работал ES6 синтаксис в JavaScript — он более короткий и если кодить на время, то это важно :)
+3
Добавьте haskell. Кстати, кому жалко тратить по 10$ в месяц хочу посоветовать stepic.org.
+1
Ага спасибо, посмотрим.
0
или у меня ответ [7, 6], а ваш assert ждет [6, 7]
0
Задача key_for_min_value тоже видимо не слишком правильная.
Два элемента с одинаковым минимальным значением, один почему-то «неправильный»
Given a hash map, return the key of the element with the smallest value.
AssertionError: 'religion' != 'surprise'
— religion
+ surprise
: Arguments was: [{'surprise': 1, 'paper': 5, 'religion': 1, 'food': 2}]
Два элемента с одинаковым минимальным значением, один почему-то «неправильный»
0
Те же проблема со списком анаграм.
0
У вас в задачах есть ссылка на github, и там выложено решение на Clojure внизу… не дает ли это преимущество тем кто выбирает Clojure и затем копипастит решение?
+2
Bugreport: en.hexlet.io/users/new — last surname
0
Предлагаю сделать так:
Решил первым: 3 очка
Решил вторым: 2 очка
Решил позже таймаута: 1 очко.
(очки накапливаются, рейтинги там и все дела, но потихоньку тают, дабы лидерство поддерживать)
Решил первым: 3 очка
Решил вторым: 2 очка
Решил позже таймаута: 1 очко.
(очки накапливаются, рейтинги там и все дела, но потихоньку тают, дабы лидерство поддерживать)
0
Открытые игры быстро «дёргаются», красивее было бы сделать fadein(out)
+1
Пользователи частенько «отваливаются». Может добавить возможность «подхватить упавшее знамя»?
0
Имхо, нужно давать возможность проверять свое решение даже после поражения (как бы, вне игры).
Даже если я проиграл, я привык доходить до конца. И, интересно, справился ли я в итоге.
Даже если я проиграл, я привык доходить до конца. И, интересно, справился ли я в итоге.
0
Не лежит, но заметно лагал. Щас все снова в норме.
0
нет, не в норме.. Хотя возможно это относится только к ruby vm…
0
Да(, исполнение кода это таки не странички грузить.
0
Ну вот я щас сижу с человеком. У него PHP, у меня Ruby. У него PHPUnit работает, а у меня сплошные таймауты.
К слову о нагрузке… тот же codingame.com держит тысячи пользователей онлайн без проблем… наверное у вас архитектурно что-то неправильно сделано.
К слову о нагрузке… тот же codingame.com держит тысячи пользователей онлайн без проблем… наверное у вас архитектурно что-то неправильно сделано.
0
А нормально так, парень скопипастил решение откуда-то за 10 секунд и был таков…
+1
универсальная решалка для пыха:
function solution(){
$f = function($json){return json_decode($json, true);};
$data = array_map($f, file('data.jsons'));
foreach($data as $row){
if ($row['arguments'] == func_get_args()){
return $row['expected'];
}
}
}
0
build_hash_with_default на пхп решается одной array_fill_keys
+1
Я попробовал было. Задачка «транспонируйте матрицу». Я пишу себе на питоне. Потом замечаю что опонент на руби написал что-то типа m.transpose() за первые 3 секунды. Ну ок. Я вообще не понимаю зачем эти все соривнования, опоненты, потому больше не играл.
0
Инструмент надо выбирать под задачу. А на питоне меньше букв :)
zip(*m)
( stackoverflow.com/a/4937526 )+2
Жаль что нет ни C++ ни C#.
Интересно, и дальше не будет?
Интересно, и дальше не будет?
0
Несколько пожеланий:
— мало задачек, часто повторяются, для одного ЯП — на вечер развлечение, потом неинтересно;
— как-то надо учитывать фичи ЯП, например для «separate_with_comma» на питоне решение «return '{0:,}'.format(arg)», задание, думаю, подразумевает более низкоуровневое решение;
— и да, как писали выше, есть задачки с несколькими возможными решениями, и как я понимаю верным считается первое, а у питона, так как нет порядка в ключах словаря, может быть ответ удовлетворяющий условию, т.е. верный, но не совпадающий с тестовым и приходится тыкать на «проверить» пока тест подходящий не сработает.
— мало задачек, часто повторяются, для одного ЯП — на вечер развлечение, потом неинтересно;
— как-то надо учитывать фичи ЯП, например для «separate_with_comma» на питоне решение «return '{0:,}'.format(arg)», задание, думаю, подразумевает более низкоуровневое решение;
— и да, как писали выше, есть задачки с несколькими возможными решениями, и как я понимаю верным считается первое, а у питона, так как нет порядка в ключах словаря, может быть ответ удовлетворяющий условию, т.е. верный, но не совпадающий с тестовым и приходится тыкать на «проверить» пока тест подходящий не сработает.
+1
О, спасибо за крутое решение separate_with_comma. Я как-то так извращался:
def solution(s):
s = s[::-1]
p = [s[i:(i + 3)] for i in range(0, len(s), 3)]
s = ','.join(p)
return s[::-1]
0
Там таких задачек много, есть что на php в одну строку.
Опять же на питоне подсчет количества вхождений элементов массива сводится к банальному:
Это несколько нечестно.
Опять же на питоне подсчет количества вхождений элементов массива сводится к банальному:
def solution(arg):
from collections import Counter
return Counter(arg)
Это несколько нечестно.
0
Задач будет больше. Их решают с такой скоростью что мы добавлять не успеваем)
+2
Непонятно, когда отправил задачку на проверку — сработала кнопка или нет. Надо какую-то обратную связь, чтоб не слать по несколько раз. Болеетого, если отправил, потом дописал, потом снова отправил, потом снова дописал — если приходит ответ с первой отправки — может откатить код на несколько шагов назад. Это неприятно.
Потом в какой-то момент после нескольких infinite loop/slow script — сервер вообще перестал что либо принимать. Потом в консоли браузера стало появляться много ошибок о дублирующемся ключе. Обновил вкладку, не с первого раза пустило, задачу на проверкуне принимало, потом вообще написали мне, что игра не существует.
Safari, Mac os x 10.11
А в целом идея интересная, если не превратится в очередной codeforces. пока задачки не академические — дух соперничества подстегивает играть))
Потом в какой-то момент после нескольких infinite loop/slow script — сервер вообще перестал что либо принимать. Потом в консоли браузера стало появляться много ошибок о дублирующемся ключе. Обновил вкладку, не с первого раза пустило, задачу на проверкуне принимало, потом вообще написали мне, что игра не существует.
Safari, Mac os x 10.11
А в целом идея интересная, если не превратится в очередной codeforces. пока задачки не академические — дух соперничества подстегивает играть))
0
Сделайте, пожалуйста, чтобы окна с кодом изменяли размер, но всегда остовались бок о бок, а не выпихивали друг-друга. В данный момент окошки всегда по ширине текста и зачастую выпихивают друг-друга вниз экрана (на Огнелисе, на других не знаю).
Ещё было бы хорошо, если бы вы учитывали не только скорость написания, но и производительность написанной программы. Не знаю, какой-нибудь лидерборд на самый быстрый алгоритм или что-то подобное, подумайте. Написать по-другому — это по-крайней мере хоть какой-то стимул проходить уже пройденное задание снова.
Ещё было бы хорошо, если бы вы учитывали не только скорость написания, но и производительность написанной программы. Не знаю, какой-нибудь лидерборд на самый быстрый алгоритм или что-то подобное, подумайте. Написать по-другому — это по-крайней мере хоть какой-то стимул проходить уже пройденное задание снова.
0
Спасибо за python, php. Особенно за добавление php, т.к. для python я находила игры. Для php встречаю в первый раз.
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Обновленный Codebattle: игра для программистов