Игра для развития программистского мышления | |
---|---|
leonid Автор Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
Здесь уже выкладывались ссылки на игры, вот еще одна, с программистским уклоном
www.addictinggames.com Ну, кто меньше? |
Re: Игра для развития программистского мышления | |
---|---|
Zakharov_slava Сообщений: 2022 Откуда: Алматы Дата регистрации: 14.10.2005 |
У меня с первого раза 188 оказалось
У кого сколько то? К чему стремится? |
Re: Игра для развития программистского мышления | |
---|---|
Prudivus Сообщений: 4283 Откуда: Кишинев Дата регистрации: 14.12.2006 |
175, но это от увлечениями функциями на первых этапах. Поначалу непонятно было чего должно быть меньше - команд или шагов. Сейчас переиграю, думаю будет около 170.
|
Re: Игра для развития программистского мышления | |
---|---|
leonid Автор Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
170 - неплохой результат, а вообще было бы интересно видеть не только конечный результат, но и разбивку по уровням. Подозреваю, что у некоторых могут быть одни уровни лучше, а у других - другие. Я лично за оптимальность своего 10 уровня сильно сомневаюсь, да и некоторые другие тоже вызывают сомнения.
|
Re: Игра для развития программистского мышления | |
---|---|
matod Сообщений: 3062 Откуда: Иркутск Дата регистрации: 31.10.2001 |
171! Правда, со второго захода. Вчера не въехал сразу в смысл и закончить не успел - прошёл 8 уровней.
1 - 3 2 - 10 3 - 9 4 - 11 5 - 11 6 - 19 7 - 14 8 - 16 9 - 14 10 - 24 - тут уже затупил 11 - 23 12 - 17 Интересно, на 11 уровне (8х8 со ступеньками) можно ли было применить рекурсивную функцию? я не смог придумать как это сделать. Понятно, что поскольку нет условного оператора, рекурсия будет бесконечной, но у нас есть неявный останов программы - по достижению цели. Вообще, идея классная. И нарисовано хорошо. Туда бы ещё возможность сохранить-загрузить программу, таблицу рекордов, уровней побольше - и прощай работа! Можно ещё скрестить с идеей старинной игрушки Zoko-Ban - чтоб можно было некоторые блоки двигать или сделать интерфейс для более серьёзного развлечения - проверки внешних планировщиков. Не говоря о чудесных задачах (особенно для последних уровней) - оптимальный план (по кол-ву шагов программы, по кол-ву выполненных действий). Короче, понесло меня - вспомнил свою первую специализацию... Исправлено 1 раз(а). Последнее : matod, 26.09.09 08:39 |
Re: Игра для развития программистского мышления | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
А я тупой - 190 Правда особо не заморачивался, только 10-й уровень реально долго мучил, по большей части методом ненаучного тыка Кажись за 23 шага вышло.
Насчёт рекурсии - не пройдёт т.к. не останавливается при достижении цели А к реализации есть претензия - игровое поле нельзя крутить - на 10-м уровне это напрягает - пришлось "проверять" роняя человечка за горизонт P.S. Сокобан реально более интересная штука (правда длинные "тривиальные" уровни напрягают), на КМК как раз прошёл уровней 150 и тоже посетила дурная идея сделать "автомат" для поиска наилучших решений ------------------ WBR, Igor |
Re: Игра для развития программистского мышления | |
---|---|
matod Сообщений: 3062 Откуда: Иркутск Дата регистрации: 31.10.2001 |
Цитата:И точно! Ну, это они зря... Так, наверное, можно было бы найти интересные решения. |
Re: Игра для развития программистского мышления | |
---|---|
Prudivus Сообщений: 4283 Откуда: Кишинев Дата регистрации: 14.12.2006 |
Так как 10-й уровень самый сложный, предлагаю поделиться вариантами его решения. Хотя, есть подозрение, что вариант там один, уж больно все заморочено. Итак, мой путь: доходим до нижней ступеньки, запрыгиваем на неё, еще два прыжка до верхней, поворот направо, прыжок, прыжок вниз, шаг вперед, зажгли фонарь, поворот направо, спрыгиваем, проходим до угла, поворот направо, доходим до ступеньки, запрыгиваем... ну и дальше путь единственный, не буду описывать. Применяется две функции: одна с поворотом направо, другая - с поворотом налево (в конце её может вызываться первая).
Вот примерно так, если не напутал (пишу по памяти). |
Re: Игра для развития программистского мышления | |
---|---|
matod Сообщений: 3062 Откуда: Иркутск Дата регистрации: 31.10.2001 |
Цитата:Что за пессимизм, известно же, что решений может быть несколько У меня не получилось повторить твой вариант менее чем за 27 шагов, может я чего-то не разглядел. Мы пойдём другим путём! Вот решение за 24 шага (R - право, L - лево, * - зажечь, S - шаг, ^ - прыг, F - f1, G - f2). MAIN: F L ^ L S R ^ F L F G F : S S S * ^ L ^ ^ G : R ^ ^ S * Идея в том, чтобы сперва зажечь левую лампу. Тогда первый отрезок пути, на который нужно много команд, проходится 2 раза и оформляется ф-ей F1 (путь до верхней ступеньки от начальной точки). Добавив внуть функции команду "зажечь" получили еще небольшую экономию - на последнем отрезке пути до левой лампы и возврата в начальную точку можно использовать эту же функцию. После возврата, остается повернуть налево, опять F1, и затем F2 - 5 - командный путь от верхней ступеньки до правой лампы. Робот при этом, местами идёт в присядку, но можно считать, что это недостаток визуализации - настоящий робот, оборудованный сенсорами не станет шагать в стенку и пытаться включить несуществующую лампу. С другой стороны, так оно и бывает - чтобы решить задачу в условиях недостатка ресурсов, начинаются присядания Чтобы восстановить алгоритм 10 уровня, пришлось еще раз пройти игру. На 6 и 8 уровне удалось немного соптимизировать. Результат: 168 (3, 10, 9, 11, 11, 17, 14, 15, 14, 24, 23, 17). |
Re: Игра для развития программистского мышления | |
---|---|
leonid Автор Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
Я оптимист, думаю, что различных решений - сотни. Я проходил четырьмя различными путями, за 28, 27, 26, 25, 24 шага, причем о дороге, которой прошел Андрей, я даже и не подумал. Вот за 24 шага. MAIN: G F R ^ G L L S G R F G F: ^ L ^ ^ G: S L S R ^ S S * Свой результат: 161 (3, 9, 9 10, 11, 15, 13, 13, 14, 24, 23, 17). А вот насчет рекурсии Вы не правы. Можно ее использовать. Но тут все становится совсем непонятно. Я так и не знаю, в какой момент игра проверяет, что все лампочки включены, но делает она это не только по завершению алгоритма. Знаю, что используя рекурсию, эту игру можно пройти за 132. Но сам ее не использовал. Простенькие примеры, вроде MAIN: S S * S F F: F показывают, что игра не останавливается. |
Re: Игра для развития программистского мышления | |
---|---|
matod Сообщений: 3062 Откуда: Иркутск Дата регистрации: 31.10.2001 |
2leonid
161 - круто! - есть к чему стремится. Как-нить еще попробую Функция G хороша - я прошел мимо идеи включить в нее L и R чтобы направление сохранялось, только "левая" и "правая" функции. Интересно 24 - предел? Цитата:- откуда информация (и насчет 132)? У меня рекурсивные зацикливались... |
Re: Игра для развития программистского мышления | |
---|---|
leonid Автор Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
Нет, конечно. По Вашему пути и за 22 можно: MAIN: F L G L ^ L F R G F: G S ^ L G G: ^ L S R ^ S S * Цитата: Информация с Youtube. Легко там найти ролик с проходом. Цитата: У меня тоже. Поэтому я все делал без них. И даже после того, как увидел ролик, не мог понять, почему там программа останавливается. Но кажется, наконец, понял. Проверка на то, что все синие поля включены, происходит не только в момент завершения программы, но и при завершении работы каждой функции. Это легко проверит на первом этапе. Вот эта программа зацикливается MAIN: S S * S F F: F G: а вот эта нет MAIN: S S * S F F: G F G: S Таким образом остановом зацикливания можно управлять. Кстати в ролике 10 этап проходится за 17. |
Re: Игра для развития программистского мышления | |
---|---|
Prudivus Сообщений: 4283 Откуда: Кишинев Дата регистрации: 14.12.2006 |
Цитата:Леонид, а как получилось пройти 2-й уровень за 9 шагов? Цитата: |
Re: Игра для развития программистского мышления | |
---|---|
leonid Автор Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
MAIN: R F S S F * F: S L S G: |
Re: Игра для развития программистского мышления | |
---|---|
Prudivus Сообщений: 4283 Откуда: Кишинев Дата регистрации: 14.12.2006 |
На 9-м уровне рекурсия получилась:
M:^L^F F:GS*GRF G:^* Итого 12. |
Re: Игра для развития программистского мышления | |
---|---|
Prudivus Сообщений: 4283 Откуда: Кишинев Дата регистрации: 14.12.2006 |
10-й:
M: FGGSR^FLF^RF F: ^^SSS*G^ G: ^L Итого 22. |
Re: Игра для развития программистского мышления | |
---|---|
matod Сообщений: 3062 Откуда: Иркутск Дата регистрации: 31.10.2001 |
После длительных размышлений: 155 = (3,9,9,10,11,17,13,10,12,21,23,17)
Для 10 уровня улучшил своё решение: M: GL^LFLGF F: SR^^G G: SSS^*L^^ всего 21 команда На 11 уровне так и не смог рекурсивную процедуру придумать. Возможно, она обходится шахматным конём. Но где можно еще 33 шага сэкономить - даже не представляю... |
Re: Игра для развития программистского мышления | |
---|---|
leonid Автор Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
5: без рекурсии (10)
M: FFF F: GGLG G: ^*S 5: с рекурсией (9) M: F F: GGLGF G: ^*S 6: без рекурсии (15) (вроде бы можно за 14) M: GF^FRFG F: RG G: S^S^S* 7: с рекурсией (9) M: F F: SGGF G: *RSR 9 вроде бы можно за 9 10 вроде бы можно за 17 11: с рекурсией (17) (по памяти) M: F F: LGLLGLSF G: *^^*^^*^ 12 проходил без рекурсии за 16 но сейчас не вспомню. Исправлено 1 раз(а). Последнее : leonid, 02.10.09 23:08 |
Re: Игра для развития программистского мышления | |
---|---|
matod Сообщений: 3062 Откуда: Иркутск Дата регистрации: 31.10.2001 |
Цитата: Красиво! |
Re: Игра для развития программистского мышления | |
---|---|
leonid Автор Сообщений: 3204 Откуда: Рига Дата регистрации: 03.02.2006 |
Должен признаться, что один раз видел ролик, который проходит за 132. Только к уровню 7-8 понял, что там вовсю используется рекурсия (если бы не это, наверное до сих пор про рекурсию не знал). На 11 запомнился рисунок прохода. Сильно помогло в поиске решения. Для 7 тоже. А вот для 9 помню, что проходится вовсе не по "гребню", а с запрыгиванием внутрь "крепости", а повторить не могу. |
© 2000-2024 Fox Club  |