устал кодить на работе?

beluchy

отдохни - поиграй:
http://www.codingame.com/games

Anturag

Так себе, самая тупая стратегия "убивай ближайшего" прокатывает на всех 4 тестах...

beluchy

ну дык это ж тренировочное задание
играй дальше, хакер!

beluchy

собственно игры: http://www.codingame.com/puzzles

khachin

Не могу по скайнету 5 испытание пройти. Уже вспомогательные функции зафигачил, всю голову сломал.
Мозг зохавало конкретно.
Видимо придется читерить: определять начальную скорость и рассчитывать весь путь заблаговременно.

beluchy

который из? я сделал "Skynet: the Chasm" и "Skynet: the Virus"

beluchy

аа, видимо "the chasm"
ну там надо держать скорость чтобы хватило точно на ширину дырки + 1 и сразу тормозить после дырки

nemec2707

бедняжки не-embedded прогеры, что только не придумают :)

beluchy

иди марсоход приземли хотя бы на среднем уровне сложности, йэмбеддед программер =)

stm6692945

решение первой задачи покажите плизз

khachin

Тебе на каком языке?

stm6692945

на любом, можно на js
просто не понимаю чо нужно делать

khachin

на любом
Вот на Питоне

import sys, math

while 1:
min_dist = 9999
target = ''
count = int(raw_input # The number of current enemy ships within range
for i in xrange(count):
enemy, dist = raw_input.split
dist = int(dist)
if dist < min_dist:
min_dist = dist
target = enemy

print >> sys.stderr, "shooting %s, it is %s far away"%(target, min_dist)
print target # The name of the most threatening enemy (HotDroid is just one example)

 
можно на js


/**
* The code below will read all the game information for you.
* On each game turn, information will be available on the standard input, you will be sent:
* -> the total number of visible enemies
* -> for each enemy, its name and distance from you
* The system will wait for you to write an enemy name on the standard output.
* Once you have designated a target:
* -> the cannon will shoot
* -> the enemies will move
* -> new info will be available for you to read on the standard input.
**/

var min_dist, target;
// game loop
while (true) {
var count = parseInt(readline; // The number of current enemy ships within range
min_dist = 9999;
target = ''
for (var i = 0; i < count; i++) {
var inputs = readline.split(' ');
var enemy = inputs[0]; // The name of this enemy
var dist = parseInt(inputs[1]); // The distance to your cannon of this enemy
if (dist < min_dist) {
min_dist = dist;
target = enemy;
}
}

// Write an action using print
// To debug: printErr('Debug messages...');
printErr('shooting '+target+', it is '+min_dist+' far away');
print(target); // The name of the most threatening enemy (HotDroid is just one example)
}

user generated строки:
Добавлены: 13, 17, 18, 23-26, 31,
Поправлены: 32

khachin

Ппц. Засабмитил недоделанную логику дома, хотел на работе дописать. А код — кирдык! На половине решений дефолтный! Надо сейвить локально, учтем.

Serpent555

А можно как-то себе набор тестов скачать, чтобы в родном отладчике попробовать?

markyzz

не понимаю чо нужно делать
нужно напечатать имя вражеского дрона в cout :)
Вообще, тоже долго тормозил, не понимал, что от меня хотят. Особенно, после придумывания стратегии на русском AICUP, где все гораздо сложнее :)
Народ, подскажите, дальше первого мочилова космических кораблей можно пройти без регистрации?
А-то мне все время формочку кидают - зарегься, либо залогинься, а у меня паранойя на все это дело. :crazy:

BatoSan

А можно как-то себе набор тестов скачать, чтобы в родном отладчике попробовать?
В самом конце описания задачи есть ссылки на скачивание тестовых файлов.

khachin

Не могу по скайнету 5 испытание пройти.
В финале сделал-таки полную логику прохождения за минимальное количество фреймов.
Расчет максимально допустимой скорости (чтобы смочь затормозить возможности до нее разогнаться и долететь при прыжке.
Начальная скорость в расчетах не фигурирует. :cool:

zya369

Начальная скорость в расчетах не фигурирует.
а как ты определяешь, успеешь ли разогнаться до нужной скорости?

khachin

 

# функция обратная арифметической прогрессии для числа, ближайшего к l
def steps(l, intersect=True):
inc = 0
result = 0
while result <= l:
inc += 1
result += inc
if not intersect: inc -= 1
return inc

max_speed, min_speed = min(steps(Lsteps(R, False G + 1

zya369

ну ты считаешь, что разгоняешься с нулевой скорости
т.е. если R = 20 (а L = 100, например то у тебя maxSpeed = 5
а если начальная скорость , скажем, 9, то ты можешь разогнаться до 10

khachin

Не спорю, решение только в рамках поставленных задач.
На 5, 6 заданиях начальная скорость выше максимально допустимой, поэтому там идёт только расчёт на торможение до максимально допустимой скорости и проверка, выйдет ли прыжок. Если нет, сбрасывать ещё.
Дорабатывать за неимением надобности не стал. И так ночью с трудом уснул.

zya369

в рамках имеющихся тесткейсов ты хотел сказать?

khachin

Да. Сперва целую формулу изобретал (с учетом S-нач). Утром решил: нах, нах...

zya369

надеюсь, в реальной жизни ты так не делаешь :crazy:

khachin

В реальной жизни лучше высыпаться для основной деятельности. :)

geja_03

Неплохо, только весь код сбрасывается, если назад в браузере ткнуть... А ведь был лабиринт решен почти

khachin

иди марсоход приземли хотя бы на среднем уровне сложности
Игра офигенна, я считаю.

На досуге сяду с нуля переписывать. :)

sgalexandra

до меня час доходило что окошко с картинкой можно промотать вниз и там будет условие задачи :facepalm:

Maurog

до меня час доходило
я вообще не понял как свой код обкатывать/тестировать. забил. юзабилити ахтунговое. ну в духе времени :grin:

khachin

Отличненько.

На досуге опять вернусь к этой же задаче. Хочется везде мягкую посадку и меньше расход топлива.

Codcod

Как как?
printf вставляешь и отлаживаешь :)

khachin

Для саморазвития хорошие задачки. Давно искал нечто подобное.

.----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .-----------------.
| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. |
| | ______ | || | | || | ______ | || | ____ | || | _________ | || | | || | ____ ____ | || | ____ ____ | || | _________ | || | | || | ____ ____ | || | ____ | || | ________ | || | _____ ____ | |
| | |_ _ \ | || | | || | |_ __ \ | || | .' `. | || | | _ _ | | || | | || ||_ \ / _|| || | |_ || _| | || | |_ ___ | | || | | || | |_ || _| | || | .' `. | || | |_ __ | | || ||_ _|| | | |
| | | |_) | | || | | || | | |__) | | || | / .--. \ | || | |_/ | | \_| | || | | || | | \/ | | || | | |__| | | || | | |_ \_| | || | | || | | |__| | | || | / .--. \ | || | | | |_| | || | | | / | | | |
| | | __'. | || | | || | | ___/ | || | | | | | | || | | | | || | | || | | |\ /| | | || | | __ | | || | | _| _ | || | | || | | __ | | || | | | | | | || | | | | || | | | / /| | | |
| | _| |__) | | || | | || | _| |_ | || | \ `--' / | || | _| |_ | || | | || | _| |_\/_| |_ | || | _| | | |_ | || | _| |___/ | | || | | || | _| | | |_ | || | \ `--' / | || | _| |_ | || | | |/ /_| | | |
| | |_______/ | || | | || | |_____| | || | `.____.' | || | |_____| | || | | || ||_____||_____|| || | |____||____| | || | |_________| | || | | || | |____||____| | || | `.____.' | || | |_____| | || | |____/|____| | |
| | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | |
| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------'

rosali

А я вот в мультиплеерных дронах на 22 месте :cool:

zorin29

Я подозревал...

khachin

Data loss on your account
Hi,
We are sorry to announce that yesterday, we had a major disk failure on our production system that lead to some data loss.
We had to restore the database from a backup created on Friday, Oct. 10th, 2014, 10:30 UTC (Friday 2014, oct. 10, 4:30 EDT). But all progressions between this date and Monday, Oct. 13, 2014, 18:00 UTC (Monday, Oct. 13, 2014, 12:00 EDT) will unfortunately be definitely lost. It includes all account creations, challenge registrations, unlocked achievements, and/or code written during this period.

We have taken all the necessary steps prevent this issue from happening again.

If you had created an account or registered to an event over the data loss period, we advise you to register again.
We sincerely apologize for the inconvenience,
The CodinGame team
Локальное сохранение решает. Но пару решений придется переиграть.

sergeikozyr


while 1:
    count = int(raw_input
    enemy_data = (raw_input.split for i in xrange(count
    enemy, _ = min(enemy_data, key=lambda x: int(x[1])
    print enemy

вот более питонячье, плюс нет заранее ненадёжного говна в виде 9999

khachin

В таком ключе ( min(iterable[, key]) ) никогда не использовал, не знал о возможности такого применения, спасибо.
В четвертой строке стоит скобку закрыть. Ну, это так, придирка по мелочи.
Оставить комментарий
Имя или ник:
Комментарий: