Недавно добавленные исходники

•  3D Designer  433

•  Sik Screen Capture  309

•  Patch Maker  269

•  Айболит (remote control)  341

•  ListBox Drag & Drop  247

•  Доска для игры Реверси  4 724

•  Графические эффекты  297

•  Рисование по маске  229

•  Перетаскивание изображений  249

•  Canvas Drawing  265

•  Рисование Луны  252

•  Поворот изображения  145

•  Рисование стержней  144

•  Paint on Shape  109

•  Генератор кроссвордов  148

•  Головоломка Paletto  142

•  Теорема Монжа об окружностях  175

•  Пазл Numbrix  102

•  Заборы и коммивояжеры  183

•  Игра HIP  123

 

 

Архив исходников

   
  Базы данных
  Графика & Мультимедиа
  Сети & Интернет
  Система
  Разное
   

Ссылки и Баннеры ...

 

Delphi Sources

Delphi Sources

 




 

ИСХОДНИК ПРОГРАММЫ

 

. : Кувшины для воды : .

 

Delphi - Двое друзей, у которых есть восьмилитровый кувшин воды, хотят разделить ее поровну

Исходник программы, показывающей пример решения классической задачи с кувшинами для воды на Delphi: двое друзей, у которых есть восьмилитровый кувшин воды, хотят разделить ее поровну. У них также есть две пустые банки: одна на пять литров, другая - на три. Как каждый из них может отмерить ровно 4 литра воды?.

В кувшинах нет промежуточной меры количества, содержащегося в кувшине, поэтому при переливании переносится меньшее из количества воды первого кувшина «От» и второй доступной неиспользованной емкости кувшина «К». И, конечно, чем меньше создано ходов, тем лучше.

Программа использует процедуру Дейкстра из класса TGraphSearch для поиска решений. В верхней части формы пользователь выбирает количество кувшинов, вместимость каждого кувшина и общее количество воды, которое должно быть распределено.

Когда любой из объемов изменяется, вызов JarBtnClick генерирует узлы для всех возможных способов распределения указанного объема воды по доступным кувшинам. Затем класс TComboset Combos используется для создания всех пар кувшинов из доступного числа. Если первый из пары может налить количество > 0 во вторую из пары, создается ребро графа, соединяющее оба кувшина.

После создания узлов и ребер в TComboboxes, StartCB и EndCb загружаются доступные узлы, из которых пользователь выбирает начальную и конечную конфигурации jar. Когда начальная конфигурация изменяется в StartCB, делается попытка оценить результат для всех целевых узлов в EndCB. Для четырех кувшинов большой емкости этот процесс может занять много времени, поэтому предусмотрена кнопка «Стоп», чтобы прервать процесс.

Игра пользователя контролируется выходом OnDrawCell в TStringGrid, который рисует масштабированные изображения кувшинов (они больше похожи на мензурки, ну да и ладно). Пользователи нажимают на изображения, определяющие от и до кувшинов, и ход отображается в области отображения TMemo.

Просмотры: 83
Дата: 06.07.2021, Автор: Gary Darby
Написать сообщение:
 

 

Скачать (44 Кб)   ↓ 1   Регистрация >>


 

Похожие исходники


Нейросеть для распознавания образов

Механизм станка качалки для нефти

Весы для взвешивания

Доска для игры Реверси

 

 

© 2004-2021 "DS"

Соглашение пользователя / Реклама / Карта сайта             Created by BrokenByte Software