Задание 3. Игра “ RGB ”

Игра под названием "RGB" - это игра для одного человека, в которую играют на доске размером 10 х 15. Каждый квадрат содержит шарик красного цвета (R), зеленого (G) или синего (B).

Два шара принадлежат одному и тому же кластеру, если они имеют один и тот же цвет, и дойти от одного шара до другого можно следуя за шарами того же цвета в четырех направлениях вверх, вниз, влево и вправо. На каждом этапе игры игрок выбирает шар, кластер которого имеет, по крайней мере, два шара, и удаляет все шары в кластере с доски.

 

Затем доска "сжимается" в два приема:

1. Сдвиньте оставшиеся шары в каждом столбце вниз, чтобы заполнить пустые места. Порядок шаров в каждой колонке сохраняется.

2. Если столбец становится пустым, сдвиньте остальные столбцы как можно дальше влево. Порядок следования столбцов сохраняется. Например, выбор шара в левом нижнем углу на доске ниже приводит к тому, что:

Цель игры состоит в том, чтобы удалить все шары с доски, тогда игра заканчивается, когда каждый шар удален или когда каждый кластер имеет только один шар. Подсчет очков в каждой игре выглядит следующим образом. Игрок начинает игру со счетом 0. Когда кластер из m шаров удаляется, счет игрока увеличивается на (m — 2)2. Бонус в размере 1000 дается, если каждый шар удаляется в конце игры. Вы подозреваете, что хорошей стратегией может быть выбор мяча, который дает максимально возможный кластер на каждом шаге, и вы хотите проверить эту стратегию, написав программу для моделирования игр, в которые играют с использованием этой стратегии. Если есть два или более шаров на выбор, программа должна выбрать самый левый шар, дающий самый большой кластер. Если все еще есть ничья, он должен выбрать самый нижний шар из этих крайних левых шаров.

 

Ввод

Вам будет дано несколько игр на входе. Первая строка входных данных содержит положительное целое число, задающее количество игр. Первоначальное расположение шаров в каждой игре дается по одному ряду за раз, сверху вниз. Каждая строка содержит 15 символов, каждый из которых является одним из "R", "G" или "B", указывающих цвета шаров в строке слева направо. Каждой игре предшествует пустая строка.

Вывод

Для каждой игры выведите номер игры, затем новую строку, затем информацию о каждом шаге, а затем окончательный счет. Каждый ход должен быть введен в формате: