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

01.10.09

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

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

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

Наименование Файл Версия Размер
Игра
.1248161517 581,50Kb
107
.1248161517 581,50Kb 107 Скачать

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

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

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

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

См. также

Ралли для 1С 7.7

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

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

1 стартмани

18.05.2019    8882    0    Palmer1976    1    

2

Тетрис для 1С 7.7

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

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

1 стартмани

07.05.2019    9104    1    Palmer1976    1    

0

Расписной покер для 1с 7.7

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

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

1 стартмани

30.08.2016    16567    0    ak_register    4    

2

131072 - игра 2048 для 7.7 с сохранением

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

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

1 стартмани

22.09.2015    15308    0    sanek_kop    3    

1

Игра "2048" для 1с v7.7

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

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

1 стартмани

23.03.2015    13842    0    Tim72    1    

1

Головоломка

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

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

1 стартмани

03.11.2014    15968    0    whtblck    8    

1

Обработка - шутка, по известному "баяну" по перемешиванию букв в словах для 1C 7.7

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

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

1 стартмани

20.10.2014    13301    0    FlashC    4    

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

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

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