Пятнашки с решением (7.7)

01.10.09

Задачи пользователя - Игры

Анализируем алгоритм пятнашек

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Игра
.1248161517 581,50Kb
107 Скачать бесплатно

Дизайн игры взят из подборки Ёпрста. Начальная расстановка делается псевдослучайным перемешиванием, так что решение всегда существует (см комм. 17 к //infostart.ru/projects/4970/ )

В алгоритме имеется глюк: кнопка Решить иногда срабатывает не с первого раза.

Буду благодарен за усовершенствование алгоритма.

Глюк устранен благодаря подсказке Ёпрста Smile

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Игры 1С:Предприятие 7.7 1C77 Бесплатно (free)

Игра "Ралли" для 1С 7.7

18.05.2019    9944    2    Palmer1976    1    

2

Игры 1С:Предприятие 7.7 1C77 Бесплатно (free)

Игра "Тетрис" для 1С 7.7

07.05.2019    10191    3    Palmer1976    1    

0

Игры 1С:Предприятие 7.7 Россия Бесплатно (free)

Расписной покер - игра по которой раньше в СССР проводились чемпионаты. После некоторого забвения опять завоевывает интерес.

30.08.2016    19014    3    ak_register    4    

2

Игры 1С:Предприятие 7.7 1C77 Россия Бесплатно (free)

Каждый, кто играл в эту игру хотя бы раз, задумывался о сохранении, так вот наконец-то это реализовано.

22.09.2015    16384    1    sanek_kop    3    

1

Игры 1С:Предприятие 7.7 1C77 Бесплатно (free)

Внешняя обработка - игра "2048". Пример работы с таблицей в режиме ввода данных

23.03.2015    14938    1    Tim72    1    

1

Игры 1С:Предприятие 7.7 1C77 Бесплатно (free)

Головоломка. Угадай мое число.

03.11.2014    17096    0    whtblck    8    

1

Игры 1С:Предприятие 7.7 1C77 Бесплатно (free)

Пишите письма друзьям и коллегам по новому. Узнайте, с какого раза они заметят подвох!

20.10.2014    14341    0    FlashC    4    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. boy13 169 21.07.09 11:38 Сейчас в теме
можно было бы еще двигать шашки нажимая на них самих... :)
2. Арчибальд 2709 21.07.09 11:44 Сейчас в теме
(1) В той подборке, которую я упомянул, были и такие. Но меня картинки интересовали.
3. Ёпрст 1068 21.07.09 12:35 Сейчас в теме
(2) Ну и ? Клик на картинке легко ловится...
:)
5. Арчибальд 2709 21.07.09 13:12 Сейчас в теме
(3) Это ты знаешь. И я где-то видел, но забыл где.
(4) Есть такой глюк. Надоело ловить его. А на пошаговом решении не затыкается...
6. Ёпрст 1068 21.07.09 13:22 Сейчас в теме
(5) смотри у меня в профиле покерок или грибочки - там реализовано :)...
всё штатно.
8. Арчибальд 2709 21.07.09 13:43 Сейчас в теме
(6) Во-во. В грибах я его и видел...
4. Ёпрст 1068 21.07.09 12:38 Сейчас в теме
Решить работает с 2-3 раза :))..
А так неплохо..
7. Ёпрст 1068 21.07.09 13:40 Сейчас в теме
Да... посмотрел код, так и не вкурил, чего ты там не мог побороть глюк ???
:))

Процедура Решить()
....Для Ф = 1 По 9 цикл
..........Если Место(Ф)<>Ф Тогда
................Сообщить("Фишка "+Ф);
................СледШаг(Ф);
................Решить();
................Прервать;
..........КонецЕсли;
....КонецЦикла;

и усё работает...
Арчибальд; +1 Ответить
9. Арчибальд 2709 21.07.09 13:48 Сейчас в теме
10. Арчибальд 2709 21.07.09 14:03 Сейчас в теме
(7) А вот так - да
//__________________________________________________________­___________________
Функция Шаг(номХода)
Если номХода < 10 Тогда
Возврат номХода;
ИначеЕсли номХода = 10 Тогда
Возврат 13;
ИначеЕсли номХода = 11 Тогда
Возврат 10;
ИначеЕсли номХода = 12 Тогда
Возврат 14;
ИначеЕсли номХода = 13 Тогда
Возврат 11;
КонецЕсли;
КонецФункции
//__________________________________________________________­___________________
Процедура Решить()
Для Ф = 1 По 13 цикл
Если Место(Шаг(Ф))<>Шаг(Ф) Тогда
Сообщить("Фишка "+Шаг(Ф));
СледШаг(Шаг(Ф));
Решить();
Прервать;
КонецЕсли;
КонецЦикла;
Если Место(16) = 15 Тогда Влево(); ИначеЕсли Место(16) = 12 Тогда Вверх(); КонецЕсли;
КонецПроцедуры
11. Ёпрст 1068 21.07.09 14:06 Сейчас в теме
(10) ну. у меня и как в (7) работает.. я дальше даже не смотрел..
12. Ёпрст 1068 21.07.09 14:06 Сейчас в теме
+11 И это...ниже код там просто не писал.. он там так и остался..
13. Арчибальд 2709 21.07.09 14:13 Сейчас в теме
(12) Кок в (7) работает, если затык до 9.
За подсказку по-любому спасибо.
14. Tatitutu 3854 16.12.09 16:30 Сейчас в теме
15. inkko 25.12.10 20:29 Сейчас в теме
При перемещении младших фишек из неродного Столба и не с нижнего Ряда создаёт дополнительное движение Вниз() при достижении фишкой родного для неё Столба, но недостижении родного Ряда.
Например, Фишка1 движется из ячейки 11. Когда дойдет до Столба[1] Ряда[3] Алгоритм опускает её на ячейку 13. После этого нормально поднимает по рдномк Столбу. Куча лишних перемещений создаётся :(
16. Арчибальд 2709 28.12.10 09:28 Сейчас в теме
(15) Возможно, не помню уже. Не хотелось нагромождать проверки всяческие...
Для отправки сообщения требуется регистрация/авторизация