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

01.10.09

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Игра
.1248161517 581,50Kb
107
107 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

См. также

Игры Платформа 1С v7.7 1C77 Бытовые услуги, сервис Абонемент ($m)

Краткая игра про мышонка на языке 1С.

1 стартмани

24.05.2021    4463    1    user1479164    8    

2

Игры Платформа 1С v7.7 1C77 Абонемент ($m)

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

1 стартмани

18.05.2019    9071    0    Palmer1976    1    

2

Игры Платформа 1С v7.7 1C77 Абонемент ($m)

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

1 стартмани

07.05.2019    9310    1    Palmer1976    1    

0

Игры Платформа 1С v7.7 Россия Абонемент ($m)

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

1 стартмани

30.08.2016    16922    0    ak_register    4    

2

Игры Платформа 1С v7.7 1C77 Россия Абонемент ($m)

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

1 стартмани

22.09.2015    15475    0    sanek_kop    3    

1

Игры Платформа 1С v7.7 1C77 Абонемент ($m)

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

1 стартмани

23.03.2015    14075    0    Tim72    1    

1

Игры Платформа 1С v7.7 1C77 Абонемент ($m)

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

1 стартмани

03.11.2014    16200    0    whtblck    8    

1

Игры Платформа 1С v7.7 1C77 Абонемент ($m)

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

1 стартмани

20.10.2014    13461    0    FlashC    4    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. boy13 169 21.07.09 11:38 Сейчас в теме
можно было бы еще двигать шашки нажимая на них самих... :)
2. Арчибальд 2709 21.07.09 11:44 Сейчас в теме
(1) В той подборке, которую я упомянул, были и такие. Но меня картинки интересовали.
3. Ёпрст 1065 21.07.09 12:35 Сейчас в теме
(2) Ну и ? Клик на картинке легко ловится...
:)
5. Арчибальд 2709 21.07.09 13:12 Сейчас в теме
(3) Это ты знаешь. И я где-то видел, но забыл где.
(4) Есть такой глюк. Надоело ловить его. А на пошаговом решении не затыкается...
6. Ёпрст 1065 21.07.09 13:22 Сейчас в теме
(5) смотри у меня в профиле покерок или грибочки - там реализовано :)...
всё штатно.
8. Арчибальд 2709 21.07.09 13:43 Сейчас в теме
(6) Во-во. В грибах я его и видел...
4. Ёпрст 1065 21.07.09 12:38 Сейчас в теме
Решить работает с 2-3 раза :))..
А так неплохо..
7. Ёпрст 1065 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. Ёпрст 1065 21.07.09 14:06 Сейчас в теме
(10) ну. у меня и как в (7) работает.. я дальше даже не смотрел..
12. Ёпрст 1065 21.07.09 14:06 Сейчас в теме
+11 И это...ниже код там просто не писал.. он там так и остался..
13. Арчибальд 2709 21.07.09 14:13 Сейчас в теме
(12) Кок в (7) работает, если затык до 9.
За подсказку по-любому спасибо.
14. Tatitutu 3849 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) Возможно, не помню уже. Не хотелось нагромождать проверки всяческие...
Оставьте свое сообщение