Previous Entry Share Next Entry
Домашнее задание №8
old rover
axshavan wrote in greensight_ru
Некоторое время тому назад я рассказывал про то, что у нас разработчики получают домашние задания. Они не обязательные, поэтому выполняют их далеко не все :) Первые несколько домашних заданий были, так сказать, разминочными, на уровне олимпиадных задач. Например, надо было посчитать минимальное количество сортиров или максимальную высоту башни из гробов. Потом как-то это затихло, потому что решать олимпиадные задачи, пусть даже и оформленные как-нибудь необычно, скучно.

Спустя некоторое время я решил возродить институт домашних заданий, но чуть-чуть в другом ключе, так, чтоб было интереснее и нагляднее. Домашним заданием номер 8 было следующее:
Есть такая простенькая игра. Поле с фишечками. Фишечки можно переворачивать. Переворачиваешь одну фишечку, а вместе с ней переворачиваются фишечки, находящиеся в одном с ней ряду и в одной с ней колонке. Так типа крестом, да. Выигрышное состояние - когда все фишки повернуты одной стороной. Начальное состояние - не выигрышное.

Разработчики подошли к этому заданию творчески, ведь оно и правда оказалось гораздо веселее, чем решать скучные олимпиадные задачи с обходом графа или обратной польской нотацией. Я просил всех прислать скриншоты, но никто, кроме одного Вити, этим не озаботился, либо письма со скриншотами попали в спам или я просто о них забыл (но скорее всего, моё первое предположение более верное).

Так сделал я. Чистый JavaScript.
28.55 КБ

Так сделал Витя. Чистый JavaScript. В качестве состояний А и Б фишек он взял две свои любимые картинки, которые везде пихает в качестве тестового контента, и мы хохотали минуты две над этим. На кнопочке написано Fight, это я что-то выставил адскую компрессию джипега.
65.19 КБ

Кроме нас двоих, с заданием справились руководитель отдела тестирования и контроля качества Роман Сергеевич, который решил задачу на ActiveScript (нарисовал флешку), и верстальщик Андрюша, который задачу решил на JavaScript + jQuery + PHP (инициализация поля у него не динамическая, а статическая, отрисовывается скриптом).

Следующее задание чуть посложнее.
В поле фиксированного размера расположены несколько фигур (квадратики и треугольнички, например), которые можно поворачивать. Ещё в поле летает мячик, который отскакивает от стенок поля и от фигур (согласно законам отражения, разумеется). Выигрышное положение - мячик ударяется в область стены поля, называемую "выход". Начальное положение - на поле расставлены фигуры, в случайной точке появляется мячик, начинает движение в случайном направлении.

Никто ещё пока даже не брался за решение, насколько мне известно. Есть желание попробовать? Временя на решение не лимитировано, то есть недели две. Технические подробности, язык программирования - без ограничений. Вместе с решением должен быть предоставлен исходный код.

  • 1

Дмитрий (Жили-Были)

(Anonymous)
Задачки интересные, но вот первая была бы куда интереснее, если бы программа сама могла находить решения и с задержкой по ходам отображать это решение.

  • 1
?

Log in

No account? Create an account