Комментарии 59
Зря спрятали тесты совсем. Иногда они помогают лучше понять задание. Неплохо бы пару тестов показывать, но при проверке задания во внимание их не принимать.
Мы показываем один пример из теста рядом с описанием задания:


Пока плохо спрятали, к вечеру обещают закрыть серьёзнее =)
как то вот так
1. read(x)
2. sendToMyOwnServerViaInternet(x)
3.…
4. profit
1. read(x)
2. sendToMyOwnServerViaInternet(x)
3.…
4. profit
вы про это?)


Проверил на большинстве задач, уникальное решение для 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'];
}
}
}
Добавьте нотификации перед началом игры
Ждешь игру, перключаешься на другую вкладку, возвращаешься — уже проиграл
Ждешь игру, перключаешься на другую вкладку, возвращаешься — уже проиграл
Было бы неплохо, чтобы работал ES6 синтаксис в JavaScript — он более короткий и если кодить на время, то это важно :)
Добавьте haskell. Кстати, кому жалко тратить по 10$ в месяц хочу посоветовать stepic.org.
Ага спасибо, посмотрим.
или у меня ответ [7, 6], а ваш assert ждет [6, 7]
Задача 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}]
Два элемента с одинаковым минимальным значением, один почему-то «неправильный»
Те же проблема со списком анаграм.
У вас в задачах есть ссылка на github, и там выложено решение на Clojure внизу… не дает ли это преимущество тем кто выбирает Clojure и затем копипастит решение?
Bugreport: en.hexlet.io/users/new — last surname
Предлагаю сделать так:
Решил первым: 3 очка
Решил вторым: 2 очка
Решил позже таймаута: 1 очко.
(очки накапливаются, рейтинги там и все дела, но потихоньку тают, дабы лидерство поддерживать)
Решил первым: 3 очка
Решил вторым: 2 очка
Решил позже таймаута: 1 очко.
(очки накапливаются, рейтинги там и все дела, но потихоньку тают, дабы лидерство поддерживать)
Открытые игры быстро «дёргаются», красивее было бы сделать fadein(out)
Пользователи частенько «отваливаются». Может добавить возможность «подхватить упавшее знамя»?
Имхо, нужно давать возможность проверять свое решение даже после поражения (как бы, вне игры).
Даже если я проиграл, я привык доходить до конца. И, интересно, справился ли я в итоге.
Даже если я проиграл, я привык доходить до конца. И, интересно, справился ли я в итоге.
Не лежит, но заметно лагал. Щас все снова в норме.
нет, не в норме.. Хотя возможно это относится только к ruby vm…
Да(, исполнение кода это таки не странички грузить.
Ну вот я щас сижу с человеком. У него PHP, у меня Ruby. У него PHPUnit работает, а у меня сплошные таймауты.
К слову о нагрузке… тот же codingame.com держит тысячи пользователей онлайн без проблем… наверное у вас архитектурно что-то неправильно сделано.
К слову о нагрузке… тот же codingame.com держит тысячи пользователей онлайн без проблем… наверное у вас архитектурно что-то неправильно сделано.
А нормально так, парень скопипастил решение откуда-то за 10 секунд и был таков…
универсальная решалка для пыха:
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'];
}
}
}
build_hash_with_default на пхп решается одной array_fill_keys
Я попробовал было. Задачка «транспонируйте матрицу». Я пишу себе на питоне. Потом замечаю что опонент на руби написал что-то типа m.transpose() за первые 3 секунды. Ну ок. Я вообще не понимаю зачем эти все соривнования, опоненты, потому больше не играл.
Инструмент надо выбирать под задачу. А на питоне меньше букв :)
zip(*m)
( stackoverflow.com/a/4937526 )Жаль что нет ни C++ ни C#.
Интересно, и дальше не будет?
Интересно, и дальше не будет?
Несколько пожеланий:
— мало задачек, часто повторяются, для одного ЯП — на вечер развлечение, потом неинтересно;
— как-то надо учитывать фичи ЯП, например для «separate_with_comma» на питоне решение «return '{0:,}'.format(arg)», задание, думаю, подразумевает более низкоуровневое решение;
— и да, как писали выше, есть задачки с несколькими возможными решениями, и как я понимаю верным считается первое, а у питона, так как нет порядка в ключах словаря, может быть ответ удовлетворяющий условию, т.е. верный, но не совпадающий с тестовым и приходится тыкать на «проверить» пока тест подходящий не сработает.
— мало задачек, часто повторяются, для одного ЯП — на вечер развлечение, потом неинтересно;
— как-то надо учитывать фичи ЯП, например для «separate_with_comma» на питоне решение «return '{0:,}'.format(arg)», задание, думаю, подразумевает более низкоуровневое решение;
— и да, как писали выше, есть задачки с несколькими возможными решениями, и как я понимаю верным считается первое, а у питона, так как нет порядка в ключах словаря, может быть ответ удовлетворяющий условию, т.е. верный, но не совпадающий с тестовым и приходится тыкать на «проверить» пока тест подходящий не сработает.
О, спасибо за крутое решение 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]
Там таких задачек много, есть что на php в одну строку.
Опять же на питоне подсчет количества вхождений элементов массива сводится к банальному:
Это несколько нечестно.
Опять же на питоне подсчет количества вхождений элементов массива сводится к банальному:
def solution(arg):
from collections import Counter
return Counter(arg)
Это несколько нечестно.
Задач будет больше. Их решают с такой скоростью что мы добавлять не успеваем)
Непонятно, когда отправил задачку на проверку — сработала кнопка или нет. Надо какую-то обратную связь, чтоб не слать по несколько раз. Болеетого, если отправил, потом дописал, потом снова отправил, потом снова дописал — если приходит ответ с первой отправки — может откатить код на несколько шагов назад. Это неприятно.
Потом в какой-то момент после нескольких infinite loop/slow script — сервер вообще перестал что либо принимать. Потом в консоли браузера стало появляться много ошибок о дублирующемся ключе. Обновил вкладку, не с первого раза пустило, задачу на проверкуне принимало, потом вообще написали мне, что игра не существует.
Safari, Mac os x 10.11
А в целом идея интересная, если не превратится в очередной codeforces. пока задачки не академические — дух соперничества подстегивает играть))
Потом в какой-то момент после нескольких infinite loop/slow script — сервер вообще перестал что либо принимать. Потом в консоли браузера стало появляться много ошибок о дублирующемся ключе. Обновил вкладку, не с первого раза пустило, задачу на проверкуне принимало, потом вообще написали мне, что игра не существует.
Safari, Mac os x 10.11
А в целом идея интересная, если не превратится в очередной codeforces. пока задачки не академические — дух соперничества подстегивает играть))
Сделайте, пожалуйста, чтобы окна с кодом изменяли размер, но всегда остовались бок о бок, а не выпихивали друг-друга. В данный момент окошки всегда по ширине текста и зачастую выпихивают друг-друга вниз экрана (на Огнелисе, на других не знаю).
Ещё было бы хорошо, если бы вы учитывали не только скорость написания, но и производительность написанной программы. Не знаю, какой-нибудь лидерборд на самый быстрый алгоритм или что-то подобное, подумайте. Написать по-другому — это по-крайней мере хоть какой-то стимул проходить уже пройденное задание снова.
Ещё было бы хорошо, если бы вы учитывали не только скорость написания, но и производительность написанной программы. Не знаю, какой-нибудь лидерборд на самый быстрый алгоритм или что-то подобное, подумайте. Написать по-другому — это по-крайней мере хоть какой-то стимул проходить уже пройденное задание снова.
Спасибо за python, php. Особенно за добавление php, т.к. для python я находила игры. Для php встречаю в первый раз.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Обновленный Codebattle: игра для программистов