![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 01.10.2011
Сообщений: 4
|
![]()
Доброго всем времени суток. Вроде бы, простите, не дурак, но признаюсь, что эта задача уже сломала мне мозг окончательно. Посему прошу помоши в решении следующей задачи на Делфи:
Условие: Помогите переправиться с одного берега реки на другой четырем рыцарям А, Б, В и Г и их оруженосцам а, б, в и г , если единственное средство передвижения – лодка, вмещающая трех человек, а по условиям тех времен никто из оруженосцев не должен оставаться в обществе незнакомых рыцарей без своих хозяев. На форме 3 листбокса: соответственно левый, правый берега и лодка; кнопка. По двойному щелчку на элементе в любом ЛБксе он должен перемешать(или не-) в лодку(смотря где она) или из лодки(опять же смотря где она). Вот тот код который я написал, знаю что может содержать ошибки или ещё что-то ненужное... Код:
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 29.09.2011
Сообщений: 103
|
![]()
перевезите 3х оруженосцев потом 3 хозяив потом оставшихся 2
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 01.10.2011
Сообщений: 4
|
![]()
Суть программы не в том, как кого перевозить, а в том, чтобы проверить действия пользователя на соответствие\несоответствие условиям и сказать правильный ход или нет, а я не могу правильно написать условия, в этом и прошу помощи.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
Имхо, вас слишком затянуло в GUI. Какие бы кнопки, листбоксы и прочие едиты юзер бы ни нажимал, всё должно сводиться к простым вызовам:
1) проверка допустимости операции на сущностями. Нужно убедиться, что: -- все переданные сущности находятся в данный момент на одном берегу с лодкой -- их меньше 4 (но больше 0) -- переправляющиеся оруженосцы (если они есть) не окажутся без хозяев в лодке/на другом берегу в присутствии чужих рыцарей -- оставшиеся оруженосцы (если они есть) не окажутся без хозяев в присутствии чужих рыцарей на своём берегу 2) если вешепреведенная проверка успешна, то операция выполняется: -- сущности переносятся на противоположный берег -- лодка переносится на противоположный берег Гуй обновляется, всё повторяется с начала. Если проверка не прошла, юзеру выводится сообщение, что что-то не так, и операция не выполняется. Вот полная программа, сущности передаются строкой, текущее их расположение задано строками leftSide, rightSide, позиция лодки кодируется переменной boat ('L' или 'R'): Код:
> перевезите 3х оруженосцев потом 3 хозяив лодка сама не плавает
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
ха, забыл ещё условие:
-- если плывёт рыцарь, все оруженосцы на другой стороне должны быть при хозяевах (или их хозяева должны плыть на лодке) Исправить исходное сообщение не могу, т.к. оно становится больше 5000 символов. Вот как выглядит обновлённая проверка: Код:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 01.10.2011
Сообщений: 4
|
![]()
Спасибо - буду разбираться!
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переправа солдат | Toni Milano | Помощь студентам | 6 | 13.10.2011 09:22 |
Переправа через реку | mivel | Помощь студентам | 3 | 19.04.2010 21:41 |
Переправа | Spark3r | Общие вопросы C/C++ | 6 | 13.01.2010 12:35 |