Помощь - Поиск - Пользователи - Календарь
Полная версия: Что то типа игры в "пятнашки"
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
samec
Добрый день всем! Есть задачка, под названием "расстановка мебели". Условие: Площадь разделена на шесть квадратов, пять из которых занято мебелью, шестой свободен. Переставить мебель так, чтобы шкаф и кресло поменялись естами, при этом никакие два премета не могут стоять на одном квадрате. На поле емееться один шкаф, одно кресло, один стул и два стула, например:
Код

------------------------
|стол |   стул   | шкаф |
------------------------
|стул |         |кресло|
------------------------


Возникла проблема с алгоритмом. Может кто знает как он реализовывается???
dream-x
Я на этой неделе закончил пятнашки писать))... Алгоритм таков (я все делал в графическом режиме и тебе советую)... в теле программы ты делаешь цикл с пост условием и например выход из него когда ты нажмешь Q...
Затем:
1. Раставляем в массив в произвольном порядке твою мебель изпользуя Random и проверяем его на то чтобы в нем не было одинаковых элементов (если они есть то повторяем заново с того элемента который повторился);
2. Теперь ты должен найти пустой элемент или элемент для которого нет мебели и как-то его выделитьж
3. Теперь ты считываешь клавишу которую нажал на клаве и смотришь что именно тебе поменять местами т.е. ты должен если например ты пошел в лево переместить что у тебя есть в соседней ячейки в ту где у тебя пусто а в ту которую походил нужно затереть...
Тут ничего сложного эксперементируй... Если, что пиши... Удачи!
samec
Цитата(dream-x @ 21.05.2008 0:07) *

Я на этой неделе закончил пятнашки писать))... Алгоритм таков (я все делал в графическом режиме и тебе советую)... в теле программы ты делаешь цикл с пост условием и например выход из него когда ты нажмешь Q...
Затем:
1. Раставляем в массив в произвольном порядке твою мебель изпользуя Random и проверяем его на то чтобы в нем не было одинаковых элементов (если они есть то повторяем заново с того элемента который повторился);
2. Теперь ты должен найти пустой элемент или элемент для которого нет мебели и как-то его выделитьж
3. Теперь ты считываешь клавишу которую нажал на клаве и смотришь что именно тебе поменять местами т.е. ты должен если например ты пошел в лево переместить что у тебя есть в соседней ячейки в ту где у тебя пусто а в ту которую походил нужно затереть...
Тут ничего сложного эксперементируй... Если, что пиши... Удачи!

Это всё конечно хорошо, и так я уже давненько сделал smile.gif (можно посмотреть, если хочется, в прикреплённом файле). Меня же интересует несколько другой вопрос, как сделать так, чтобы я расставил мебель сам, а компьютер, по некоему алгоритму решил поставленную задачу (без моего участияsmile.gif ). Вот.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.