ка, а фишки с кодом -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 'запись начальных условий