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

•  TDictionary Custom Sort  981

•  Fast Watermark Sources  1 322

•  3D Designer  2 138

•  Sik Screen Capture  1 785

•  Patch Maker  1 860

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

•  ListBox Drag & Drop  1 390

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

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

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

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

•  Canvas Drawing  1 162

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

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

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

•  Paint on Shape  623

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

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

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

•  Пазл Numbrix  735

 

 

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

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

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

 

Delphi Sources

Delphi Sources

 




 

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

 

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

 

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

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

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

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

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

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

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

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

 

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


 

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


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

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

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

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

 

 

© 2004-2022 "DS"

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