Pertanyaan ini akan menampilkan mekanik dari game "Path Of Exile" dalam game ini ada hal-hal yang disebut MAPS mereka adalah item yang dapat Anda gunakan untuk membuka area tingkat tinggi, Anda juga dapat menggabungkan 3 dari mereka untuk mendapatkan yang ditingkatkan yang akan tugas tantangan ini. Kombinasi peningkatan adalah sebagai berikut:
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
Baris-baris ini mengikuti sheme ini:
Symbol of the map | Name of the map | Level of the map | Map received from combining
Perhatikan bahwa peta jurang dan colosseum tidak bergabung menjadi yang tingkat lebih tinggi karena mereka adalah tingkat tertinggi.
INPUT:
Input Anda akan berupa string Simbol yang sesuai dengan simbol peta, misalnya AAAEE yang berarti 3 x peta crypt dan 2 x peta bawah tanah.
OUTPUT:
Output akan berupa serangkaian simbol yang akan mewakili kombinasi tertinggi dari peta input. Kombinasi output apa pun diizinkan selama fitur setiap peta.
CONTOH:
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: »»»»»
SKOR:
Skor Anda akan dihitung melalui rumus ini, yang juga sebenarnya digunakan dalam permainan untuk menghitung pengurangan kerusakan:
POINTS = 1000 - (ByteCount / (ByteCount + 1000) * 1000);
BONUS POIN:
Jika Anda menambahkan enkode runlenght ke input dan output kemudian gandakan poin Anda dengan 1.2, misalnya input 3A, bukan AAA. Anda dapat menghilangkan input standar jika jawaban Anda akan mendukung ini.
Jika program Anda akan mengizinkan nama peta yang sebenarnya sebagai input / output kemudian kalikan poin Anda dengan 1,5, Anda dapat menghilangkan bagian "peta" dari nama peta sehingga sebagai contoh input " crypt crypt crypt " dan output " sewer " ok. Script Anda juga tidak perlu memahami input standar lagi jika Anda menggunakan metode ini. Metode ini juga membutuhkan ruang antar nama baik dalam input dan output.
Jika string keluaran Anda beralih dari peta level terendah ke tertinggi kemudian gandakan poin Anda dengan 1.08, peta dengan level yang sama tidak perlu diurutkan dengan cara tertentu.
Anda dapat menggabungkan semua 3 poin bonus.
JAWABAN DENGAN POIN PALING MENANG!
sumber
AEIAEIAEI
?2AEA
untukAAEA
? Atau akankah itu terjadi3AE
?Jawaban:
Haskell, 306 byte, poin = 766 * 1.2 * 1.08 = 992.343Saya bisa memeras beberapa byte lagi jika ada yang mengalahkan saya, tetapi untuk sekarang saya akan membiarkannya.
Haskell, 284 byte, poin = 779 * 1.2 * 1.08 = 1009.346Saya memang memeras beberapa byte lagi terlepas.
Haskell, 248 byte, poin = 801 * 1.2 * 1.08 = 1038.462
Saya juga akan meninggalkan beberapa meja yang saya buat untuk digunakan orang lain:
Anda membacanya dari atas ke bawah, dua huruf sekaligus (atau mengabaikan kolom aneh). Tiga A membuat S, Tiga S-es membuat W dan seterusnya. Rantai yang ujungnya hanya membungkus ke kolom pertama pada baris berikutnya. Tidak ada tiga peta yang membuat>.
Berikut adalah rangkaian peta yang dapat Anda buat tanpa pengulangan:
sumber
C #,
364361 byte, poin = 734,754 x 1,08 = 793,534Bisa juga membuat bola bergulir dengan yang besar ...
Saya belum memikirkan cara cerdas memetakan karakter yang dikodekan secara acak ke nilai relatifnya, jadi saya telah menggunakan metode brute force untuk saat ini.
Ini menerapkan fitur bonus 3 berdasarkan metode pengelompokan, yang memberi saya poin 58ish keren.
Sunting: Tulis ulang output loop ke join / zip
sumber
SWI-Prolog, 354 byte, poin = 738.552 * 1.08 = 797.64
Mengharapkan input sebagai string kode, misalnya
a(`AAAEEEIII`,Z).
akan menampilkanZ = "SRH"
.Saya akan lihat apa yang bisa saya lakukan dengan dua bonus lainnya ...
sumber
Javascript, 432 byte, poin = 698,32 * 1,08 * 1,2 = 905,02ECMAScript 6, 417 byte, poin = 705.72 * 1.08 * 1.2 = 914.61
Tidak ada versi minifier online: (versi terakhir dilewatkan melalui minifier )
Jalankan dengan Babel
Diuji dengan input berikut:
AAA
AAAEEEIII
3A3E3I
»»»»»
5»
Solusi umum
Pada dasarnya menggunakan regex bila memungkinkan
Tidak ada yang mewah di sini, hanya mengganti kecocokan untuk output masing-masing.
Untuk 1.2 Bonus
Regexing angka dan huruf berikut, kode yang dapat dibaca seperti ini:
Seperti yang Anda lihat,,
s.match(y) - 0
string yang cocok dikurangi dengan 0, itu untuk memaksa int parse tanpa benar-benar memanggilparseInt()
.Pada
Array(p).join(s.match(z)[1])
dasarnya juga bergabung dengan array elemenp
kosong , dengan karakter ditemukan dalam pertandingan, itu cara mudah untuk mencetak huruf (katakanlahE
) beberapap
kali.Untuk Bonus 1,08
Algoritma penyortiran:
sumber
Javascript (ES6), 389 byte, poin = 719.942 * 1.08 * 1.2 = 933.045
Dalam memimpin, setidaknya untuk saat ini ...
Coba di sini:
Tampilkan cuplikan kode
Bonus 1.2 agak rumit dalam formatnya. Jika Anda ingin memasukkan nomor biasa, letakkan
1
sebelum.Pada dasarnya, ini memindai setiap karakter yang memiliki pemutakhiran (semua kecuali
µ
dan»
), kemudian menemukan semua rangkaian tiga karakter ini dan menggantinya dengan karakter yang ditingkatkan. Menyortir setelah masing.replace
- masing adalah cara terbaik untuk memastikan ini selalu berfungsi dengan baik, jadi itu bonus otomatis. Bonus 1.2 itu sedikit lebih sulit, tapi saya menyelesaikannya dalam 45 byte. Bonus 1,5 hanya tidak sepadan sama sekali, karena membutuhkan satu ton lebih banyak pengkodean dan setidaknya akan menggandakan panjangnya.Seperti biasa, saran sangat diterima!
sumber