В этом вопросе будет рассказано о механике из игры «Путь изгнания». В этой игре есть такие вещи, как MAPS. Это предметы, которые вы можете использовать для открытия областей высокого уровня, вы также можете комбинировать 3 из них, чтобы получить улучшенный, который будет задача этого вызова. Комбинации обновлений следующие:
A Crypt Map 68 -> Sewer Map
E Dungeon Map 68 -> Channel Map
I Grotto Map 68 -> Thicket Map
O Dunes Map 68 -> Mountain Ledge Map
U Pit Map 68 -> Cemetery Map
T Tropical Island Map 68 -> Arcade Map
N Desert Map 68 -> Wharf Map
S Sewer Map 69 -> Ghetto Map
H Channel Map 69 -> Spider Lair Map
R Thicket Map 69 -> Vaal Pyramid Map
D Mountain Ledge Map 69 -> Reef Map
L Cemetery Map 69 -> Quarry Map
C Arcade Map 69 -> Mud Geyser Map
M Wharf Map 69 -> Museum Map
W Ghetto Map 70 -> Arena Map
F Spider Lair Map 70 -> Overgrown Shrine Map
G Vaal Pyramid Map 70 -> Tunnel Map
Y Reef Map 70 -> Shore Map
P Quarry Map 70 -> Spider Forest Map
B Mud Geyser Map 70 -> Promenade Map
V Museum Map 70 -> Arena Map
K Arena Map 71 -> Underground Sea Map
J Overgrown Shrine Map 71 -> Pier Map
X Tunnel Map 71 -> Bog Map
Q Shore Map 71 -> Graveyard Map
Z Spider Forest Map 71 -> Coves Map
Ó Promenade Map 71 -> Villa Map
É Underground Sea Map 72 -> Temple Map
Á Pier Map 72 -> Arachnid Nest Map
Í Bog Map 72 -> Strand Map
Ú Graveyard Map 72 -> Dry Woods Map
Ü Coves Map 72 -> Colonnade Map
Ö Villa Map 72 -> Catacomb Map
Ä Temple Map 73 -> Torture Chamber Map
Ë Arachnid Nest Map 73 -> Waste Pool Map
Ï Strand Map 73 -> Mine Map
Æ Dry Woods Map 73 -> Jungle Valley Map
Œ Colonnade Map 73 -> Labyrinth Map
Ñ Catacomb Map 73 -> Torture Chamber Map
Ÿ Torture Chamber Map 74 -> Cells Map
1 Waste Pool Map 74 -> Canyon Map
2 Mine Map 74 -> Dark Forest
3 Jungle Valley Map 74 -> Dry Peninsula Map
4 Labyrinth Map 74 -> Orchard Map
5 Cells Map 75 -> Underground River Map
6 Canyon Map 75 -> Arid Lake Map
7 Dark Forest Map 75 -> Gorge Map
8 Dry Peninsula Map 75 -> Residence Map
9 Orchard Map 75 -> Underground River Map
0 Underground River Map 76 -> Necropolis Map
? Arid Lake Map 76 -> Plateau Map
! Gorge Map 76 -> Bazaar Map
( Residence Map 76 -> Volcano Map
) Necropolis Map 77 -> Crematorium Map
- Plateau Map 77 -> Precinct Map
/ Bazaar Map 77 -> Academy Map
\ Volcano Map 77 -> Springs Map
| Crematorium Map 78 -> Shipyard Map
= Precinct Map 78 -> Overgrown Ruin Map
* Academy Map 78 -> Village Ruin Map
† Springs Map 78 -> Arsenal Map
‡ Shipyard Map 79 -> Wasteland Map
§ Overgrown Ruin Map 79 -> Courtyard Map
[ Village Ruin Map 79 -> Excavation Map
] Arsenal Map 79 -> Waterways Map
_ Wasteland Map 80 -> Palace Map
~ Courtyard Map 80 -> Shrine Map
{ Excavation Map 80 -> Maze Map
} Waterways Map 80 -> Palace Map
© Palace Map 81 -> Abyss Map
€ Shrine Map 81 -> Abyss Map
< Maze Map 81 -> Colosseum Map
> Vaal Temple Map 81 -> Colosseum Map
µ Abyss Map 82
» Colosseum Map 82
Эти строки следуют этой схеме:
Symbol of the map | Name of the map | Level of the map | Map received from combining
Обратите внимание, что карта Бездны и Колизея не объединяются в карты более высокого уровня, поскольку они являются самым высоким уровнем.
ВХОД:
Ваш ввод будет представлять собой строку символов, которая соответствует символам карты, например, AAAEE, что означает 3 карты крипт и 2 карты подземелий.
ВЫХОД: на
выходе снова будет строка символов, которая будет представлять максимально возможную комбинацию входных карт. Разрешается любая комбинация выходных данных, если она содержит каждую карту.
ПРИМЕРЫ:
INPUT: A
OUTPUT: A
INPUT: AAA
OUTPUT: S
INPUT: AAAEEEIII
OUTPUT: SHR or HRS or RHS or SRH
INPUT: AAAAAAAAAE
OUTPUT: WE or EW
INPUT: »»»»»
OUTPUT: »»»»»
ОЦЕНКА:
Ваш счет будет рассчитываться по этой формуле, которая также используется в игре для расчета уменьшения урона:
POINTS = 1000 - (ByteCount / (ByteCount + 1000) * 1000);
БОНУСНЫЕ ОЧКИ:
Если вы добавляете кодирование длины хода к входу и выходу, умножьте свои точки на 1,2, например, на вход 3A вместо AAA. Вы можете опустить стандартный ввод, если ваш ответ поддержит это.
Если ваша программа будет использовать фактические имена карт в качестве входных / выходных данных, то умножьте свои точки на 1,5, вы можете опустить часть «карты» в имени карты, чтобы в качестве примера ввести « crypt crypt crypt » и вывести « sewer ». Вашему сценарию также не нужно больше понимать стандартный ввод, если вы используете этот метод. Этот метод также требует пробела между именами как на входе, так и на выходе.
Если ваша выходная строка переходит от карты самого низкого уровня к самому высокому, то умножьте свои очки на 1,08, карты с тем же уровнем не нужно сортировать каким-либо конкретным способом.
Вы можете объединить все 3 бонусных балла.
ОТВЕТЬТЕ С НАИБОЛЕЕ ТОЧКАМИ ВЫИГРЫВАЕТ!
источник
AEIAEIAEI
?2AEA
дляAAEA
? Или это будет3AE
?Ответы:
Haskell, 306 байт, очки = 766 * 1,2 * 1,08 = 992,343Я мог бы выжать еще несколько байтов, если кто-нибудь побьет меня, но сейчас я собираюсь оставить все как есть.
Haskell, 284 байта, очки = 779 * 1,2 * 1,08 = 1009,346Я выжал еще несколько байтов.
Haskell, 248 байт, очки = 801 * 1,2 * 1,08 = 1038,462
Я также собираюсь оставить несколько таблиц, которые я сделал для других, чтобы использовать:
Вы читаете его сверху вниз, по две буквы за раз (или игнорируете нечетные столбцы). Три А делают S, Три S делают Э и так далее. Цепочки, которые заканчиваются, просто переходят к первому столбцу на следующей строке. Нет трех карт делает>.
Вот цепочки карт, которые вы можете сделать без повторов:
источник
C #,
364361 байт, точки = 734,754 х 1,08 = 793,534С таким же успехом можно заставить мяч катиться с большим ...
Я еще не придумал умного способа сопоставить, казалось бы, случайно закодированные символы с их относительной ценностью, поэтому сейчас я использовал метод грубой силы.
Это реализует бонусную функцию 3 благодаря методу группировки, который приносит мне крутые 58 очков.
Изменить: Переписать выходной цикл в соединение / ZIP
источник
SWI-Prolog, 354 байта, баллы = 738,552 * 1,08 = 797,64
Ожидает входные данные в виде строк кода, например,
a(`AAAEEEIII`,Z).
будет выводитьZ = "SRH"
.Я посмотрю, что я могу сделать с двумя другими бонусами ...
источник
Javascript, 432 байта, точки = 698,32 * 1,08 * 1,2 = 905,02ECMAScript 6, 417 байт, баллы = 705,72 * 1,08 * 1,2 = 914,61
Нет онлайн-версии Minifier: (последняя версия прошла через Minifier )
Беги с Бабелем
Протестировано со следующими входами:
AAA
AAAEEEIII
3A3E3I
»»»»»
5»
Общее решение
В основном используя регулярные выражения, когда это возможно
Ничего особенного, просто замена соответствия для соответствующего вывода.
Для бонуса 1.2
Считывая числа и следующую букву, читаемый код выглядит так:
Как вы можете видеть,
s.match(y) - 0
совпадающая строка вычитается из 0, то есть для принудительного анализа int без фактического вызоваparseInt()
.Также в
Array(p).join(s.match(z)[1])
основном объединяет массивp
пустых элементов, с символом, найденным в совпадении, это простой способ напечатать букву (скажемE
)p
количество раз.Для бонуса 1.08
Алгоритм сортировки:
источник
Javascript (ES6), 389 байт, баллы = 719,942 * 1,08 * 1,2 = 933,045
В лидерах, по крайней мере пока ...
Попробуйте это здесь:
Показать фрагмент кода
Бонус 1.2 несколько сложен в своем форматировании. Если вы хотите ввести обычный номер, поставьте
1
перед ним.В основном, это просматривает каждого персонажа, который имеет улучшение (все кроме
µ
и»
), затем находит все наборы из трех этого персонажа и заменяет их улучшенным символом. Сортировка после каждого.replace
была лучшим способом убедиться, что это всегда работает должным образом, так что это был автоматический бонус. Бонус 1.2 был немного сложнее, но я разобрался в 45 байтах. Бонус 1,5 просто не стоит, так как требует гораздо больше кодирования и, по крайней мере, удвоит длину.Как всегда, предложения очень приветствуются!
источник