ка, а фишки с кодом -1 окрашены в синий цвет и на них изображена красная стрелка. Под изображением фишки, которая может сделать ход, появляется указатель белого цвета. Выбор хода производится любой клавишей кроме Enter (рекомендуется Space), а исполнение — клавишей Enter. Если имеется только один ход, то производится автоматическая перестановка фишек и выдача звукового сигнала. Для удобства играющего на экран выводится текст с правилами игры и пояснения по использованию клавиатуры. В отличие от сообщения о проигрыше сообщение о выигрыше выводится с повышенной яркостью.
Выигрыш в этой игре достигается очень простым способом. При возможности выбора никогда не следует делать хода, вследствие которого две однотипные фишки в окружении фишек другого типа становятся соседними.
5.2 РАЗДЕЛИ ПОПОЛАМ
Перейдем к задаче, решение которой также требует внимания и сообразительности. Она формулируется следующим образом:
• имеется сосуд емкостью 8 л, наполненный водой, и два пустых сосуда емкостью 5л и Зл,
• процесс переливания воды из одного сосуда в другой заканчивается при опорожнении сосуда, из которого выливают, или при заполнении сосуда, в который наливают,
• используя минимальное количество переливаний, разделить 8 л воды на две равные части (разумеется, в сосудах емкостью 8 л и 5 л).
Для математического описания каждого из трех сосудов требуется 2 целых числа, одно из которых задает емкость сосуда (это его свойство, которое не изменяется!), а второе — количество налитой в сосуд воды (оно может изменяться от 0 до величины предельной емкости сосуда).
То, что количество налитой в сосуд воды может отображаться целым числом, вытекает из правил переливания. Поэтому математическая модель должна использовать два массива (по 3 целых числа в каждом): в первом из них хранятся емкости сосудов, а во втором — объемы находящейся в них воды.
Как и в предыдущем занятии нижеприведенная программа является только прототипом, используемым для отработки алгоритма игры. Информация о состоянии модели выводится в текстовом виде, а для ввода номеров сосудов используется клавиатура. Именно так выглядел интерфейс пользователя с первыми компьютерными играми, появившимися при внедрении минимашин (размером с прабабушкин буфет) и дисплейных терминалов.
В первой части программы задаются начальные условия, выводятся на экран правила игры и показывается состояние объекта игры (номера и емкости сосудов по ходу игры не изменяются, а распределение воды по сосудам зависит от последующих действий играющего).
DIM Volume(3) AS INTEGER 'массивы для объемов и емкостей
DIM Capacity (3) AS INTEGER
Capacity(1) = 8 'запись начальных условий