gifts2017

Игрушка "Пятнашки" в 23 строки

Опубликовал Александр Паршиков (aapfps) в раздел Сообщество - Игры

Игрушка "Пятнашки" в 23 строки - сделайте короче!

Игрушка "Пятнашки" в 23 строки - сделайте короче!

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
-
.1247205564 15,00Kb
25.09.09
26
.1247205564 15,00Kb 26 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Доржи Цыденов (support) 10.07.09 10:06
2. Александр Рытов (Арчибальд) 10.07.09 10:17
А чего же начальная расстановка не задается?
3. Епрст (Ёпрст) 10.07.09 10:39
(2) до рандома автор еще не дошел..:)
так бы не 23 строки было..

А так - не красиво.
4. Александр Рытов (Арчибальд) 10.07.09 10:44
Автор, слушай Ёпрста (с) Че.
Он "в ентом деле полиглот"...
5. Епрст (Ёпрст) 10.07.09 10:55
(0) 19 строк... дальше лень.. Оно нам вообще надо ?

Перем идКН0;
Процедура ПриОткрытии()
НаборЦифр="01020304050607080910111213140015"; //для проверки победы
Для Кнопка=1 по 16 Цикл
Форма.ПолучитьАтрибут("к"+Строка(Кнопка)).Заголовок(?(Сред(НаборЦифр,Кнопка*2-1,2)="00","",Число(Сред(НаборЦифр,Кнопка*2-1,2))));
идКН0=?(Форма.ПолучитьАтрибут("к"+Строка(Кнопка)).Заголовок()="","к"+Строка(Кнопка),идКН0);
КонецЦикла;
КонецПроцедуры
Процедура Ткнули(кЛ,кВ,кП,кН)
Форма.ПолучитьАтрибут(идКН0).Заголовок(?((кЛ=идКН0) или (кВ=идКН0) или (кП=идКН0) или (кН=идКН0),Форма.ПолучитьАтрибут(Форма.АктивныйЭлемент()).Заголовок(),""));
Форма.ПолучитьАтрибут(Форма.АктивныйЭлемент()).Заголовок(?(Форма.ПолучитьАтрибут(идКН0).Заголовок()<>"","",Форма.ПолучитьАтрибут(Форма.АктивныйЭлемент()).Заголовок()));
идКН0=?(Форма.ПолучитьАтрибут(Форма.АктивныйЭлемент()).Заголовок()="",Форма.АктивныйЭлемент(),идКН0);
Для Кнопка=1 по 16 Цикл
Рез=?(Форма.ПолучитьАтрибут("к"+Строка(Кнопка)).Заголовок()="",Рез+"_",Рез+Форма.ПолучитьАтрибут("к"+Строка(Кнопка)).Заголовок());
КонецЦикла;
Если Рез="123456789101112131415_" Тогда
Предупреждение("Пам-Пам-Парара-Рам! УРРРА!!! Победа!!!");
КонецЕсли;
КонецПроцедуры
6. Епрст (Ёпрст) 10.07.09 10:56
Рупора на вас нет..он бы всё в 1-2 строки запихал..
7. vip (vip) 10.07.09 11:01
(6) Точно!
Большой мастер.
8. Юрий Тимофеев (Tatitutu) 10.07.09 21:19
(3) Рандом вещь хорошая но в данном случае может и не взлететь
так если нарушить порядок ходов. Можно не собрать !

+(2) да было интересней если сразу и кнопка было бы запутать , а вот потом ее собирать. ( но с другой стороны кто помнит Советское детство, именно в таком виде она и продавалась в магазине.
9. Александр Паршиков (aapfps) 13.07.09 08:53
Как правильно сказал Tatitutu random не идет - половина расстановок не складывается, поэтому не стал его использовать. Начальную расстановку можно задать с помощью НаборЦифр. Игрушка используется в учебных целях для обучения программированию на 1С. Спасибо за проявленный интерес. Отдельное спасибо Епрст за сокращение, хотя дальнейшее сокращение строк приводит к нечитабельности текста. Хотелось бы, чтобы было просто, понятно, и минимального размера.
10. Епрст (Ёпрст) 13.07.09 09:04
(9) Да нунафик ?
Пятнашки всегда имеют решение !
11. Александр Паршиков (aapfps) 14.07.09 08:54
Попробуй поставить цифры в порядке 1,2,3,4,5,6,7,8,9,10,11,12,13,15,14 и решить...
12. Александр Рытов (Арчибальд) 14.07.09 09:15
(10) +11 ...или в любом другом с нечетным количеством инверсий...
13. Александр Паршиков (aapfps) 14.07.09 09:26
Арчибальд, можно поподробнее? Как вывести условие, при котором решение есть всегда? Как определить количество инверсий?
14. Александр Рытов (Арчибальд) 14.07.09 09:43
(13)Инверсия - перестановка двух соседних фишек (чисел). Для подсчета их количества можно, например, воспользоваться сортировкой методом "пузырька". Суть метода: берем максимальной число из набора, стоящее не на месте и пошагово перегоняем его в нужную позицию, считая перестановки. Затем следующее по величине. Где-то в конце 19 века было доказано, что решение существует тогда и только тогда, когда количество инверсий четно. До этого (да и после тоже) предлагалась награда за решение позиции из 11 поста, и люди ломали пальцы, выбрасывались из окон, просто сходили с ума...
ТакАаЯвотИстоооООоория....
15. Епрст (Ёпрст) 14.07.09 09:47
(11,14) вообще то считается - что это тоже правильный ответ..(14 и 15 когда не на своём месте).. а так да, ровно половина всех комбинаций - не выиграшная, в этом понимании.
16. Александр Паршиков (aapfps) 14.07.09 10:00
Арчибальд, большое спасибо, суть ясна. Когда-то давно это читал, но благополучно забыл. Но реализовать это программно, наверное, малореально...нужен какой-то алгоритм перестановок для верного решения.
17. Александр Рытов (Арчибальд) 14.07.09 10:11
(16) Думается, достаточно разработать алгоритм для поля 2*3 - а тут и перебор возможен.
18. Юрий Тимофеев (Tatitutu) 16.12.09 16:30
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа