Ваша задача сегодня состоит в следующем:
fbcfbee
ffcabbe
debceec
bccabbe
edcfbcd
daeaafc
eebcbeb
И выведите наилучший возможный ход в игре, подобной Bejeweled, которая будет соответствовать трем или более буквам, например так (обратите внимание на заглавную B
и C
):
fbcfbee
ffcabbe
deBCeec
bccabbe
edcfbcd
daeaafc
eebcbeb
Полные технические характеристики:
- Входными данными будут
n
строки изn
строчных букв каждая (гдеn
может быть любое число). - Вывод будет лучшим ходом, который вы можете сделать в игре «матч-3», с двумя буквами, которые вы хотите поменять местами.
Совпадения должны иметь следующий приоритет (в этих примерах
.
указывается квадрат, который не имеет значения):Пять-в-ряд
xxYxx ..X..
Сломанный пять в ряд
X.. Yxx x.. x..
или же
.X. xYx .x. .x.
Четыре-в-ряд
xYxx .X..
Три-в-строке
xYx .X.
Вы должны найти совпадение с наивысшим приоритетом и вывести его.
- Если есть несколько совпадений с одинаковым приоритетом, вы можете вывести любое из них.
- Всегда будет хотя бы одно совпадение (ваша программа может прерваться, если совпадений нет, или делать все, что вы захотите).
- Ввод / вывод может быть в любом приемлемом формате (стандартный ввод / вывод, чтение и запись файлов, аргументы функций / возвращаемые значения, диалоговые окна и т. Д.), Но НЕ может быть жестко закодирован (как
x="[insert input here]"
). - Это код-гольф, поэтому выигрывает самый короткий код в байтах. Если по какой-либо причине вы используете какой-либо доступ к сети, все загруженные из сети байты засчитываются в ваш счет.
1
+1, но я протестую против названия; может быть лучший ход. Например, тот, который создает две пятерки, или тот, который вызывает падение, чтобы создать больше вещей.
—
Джастин
Разрывная пятерка в ряд также покрывает
—
Питер Тейлор
..x.\nxxYX\n..x.
?
@ Петр Да, это так.
—
Ручка двери
В строке есть 2 разбитых 5: L-образный и T-образный. Вы требуете, чтобы оба соответствовали?
—
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳
@nhahtdh Да, я отредактирую, чтобы уточнить это.
—
Ручка двери