নির্বাসিত মানচিত্রের সংমিশ্রণের পথ


10

এই প্রশ্নটিতে এই গেমটিতে "পাথ অফ প্রবাস" গেমের একজন মেকানিক বৈশিষ্ট্যযুক্ত এটি এমএপিএস বলে কিছু জিনিস তারা আইটেম যা আপনি উচ্চ স্তরের অঞ্চলগুলি খোলার জন্য ব্যবহার করতে পারেন, আপনি তাদের মধ্যে তিনটি সংযুক্ত করে একটি আপগ্রেড করা পেতে পারেন যা হবে এই চ্যালেঞ্জ কাজ। আপগ্রেড সমন্বয়গুলি নিম্নলিখিত হিসাবে রয়েছে:

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

নোট করুন যে অতল গহ্বর এবং কলসিয়াম মানচিত্র উচ্চ স্তরের সাথে মিশে না।

ইনপুট:
আপনার ইনপুটটি প্রতীকগুলির এআ স্ট্রিং হবে যা মানচিত্রের প্রতীকগুলির সাথে সামঞ্জস্যপূর্ণ, উদাহরণ এএএইই যার অর্থ 3 এক্স ক্রিপ্ট ম্যাপ এবং 2 এক্স অন্ধকারের মানচিত্র on

আউটপুট:
আউটপুট আবার প্রতীকগুলির একটি স্ট্রিং হবে যা ইনপুট মানচিত্রের সর্বোচ্চ সম্ভাব্য সংমিশ্রণকে উপস্থাপন করবে। প্রতিটি মানচিত্রের বৈশিষ্ট্য হিসাবে আউটপুট যেকোন সংমিশ্রণ অনুমোদিত।

উদাহরণ:

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. আপনি যদি ইনপুট এবং আউটপুট উভয়টিতে রানলেঞ্জট এনকোডিং যুক্ত করেন তবে আপনার পয়েন্টগুলি 1.2 দ্বারা গুণ করুন, উদাহরণস্বরূপ এএএর পরিবর্তে 3 এ ইনপুট। আপনার উত্তর যদি এটি সমর্থন করে তবে আপনি স্ট্যান্ডার্ড ইনপুট বাদ দিতে পারেন।

  2. যদি আপনার প্রোগ্রামটি প্রকৃত মানচিত্রের নামগুলিকে ইনপুট / আউটপুট হিসাবে মঞ্জুরি দেয় তবে আপনার পয়েন্টগুলি 1.5 দ্বারা গুণান, আপনি মানচিত্রের নামের "মানচিত্র" অংশটি বাদ দিতে পারেন উদাহরণস্বরূপ ইনপুট " ক্রিপ্ট ক্রিপ্ট ক্রিপ্ট " এবং আউটপুট " নর্দমা " ঠিক আছে। আপনি যদি এই পদ্ধতিটি ব্যবহার করেন তবে আপনার স্ক্রিপ্টের জন্য আর স্ট্যান্ডার্ড ইনপুট বোঝার দরকার নেই। এই পদ্ধতিতে ইনপুট এবং আউটপুট উভয়ই নামের মধ্যে একটি স্থানের প্রয়োজন।

  3. যদি আপনার আউটপুট স্ট্রিং সর্বনিম্ন স্তরের মানচিত্র থেকে সর্বোচ্চে চলে যায় তবে আপনার পয়েন্টগুলি 1.08 দ্বারা গুণান, একই স্তরের মানচিত্র কোনও নির্দিষ্ট উপায়ে বাছাই করা দরকার।

আপনি সমস্ত 3 বোনাস পয়েন্ট একত্রিত করতে পারেন।

বেশিরভাগ পয়েন্টের সাথে জয়ের উত্তর!


আমরা কি ধরে নিতে পারি যে ইনপুটটিতে একই ধরণের মানচিত্র একে অপরের পাশে থাকবে? উদাহরণস্বরূপ, পরীক্ষার ক্ষেত্রে 3 ক্ষেত্রে আমাদের কি এমন কিছু মোকাবেলা করতে হবে না AEIAEIAEI?
সোক

কোনো ইনপুট সবসময় র্যান্ডম হতে হবে, আমি যে অংশ জন্য বোনাস পয়েন্ট এখন bumb হবে আমি এটা সম্পর্কে কি মনে করে যে
Vajura

1
আপনার নিজের অভ্যন্তরীণ পথ খুঁজে বের করুন, নির্বাসিত! : ^ পি
FryAmTheEggman

যদি ইনপুটটি এলোমেলো হয় তবে রানলেথ বোনাস কীভাবে কাজ করবে? আমরা মত ইনপুট পেতে পারি 2AEAজন্য AAEA? নাকি হবে 3AE?
12:53

হু, আমি পাই না ._।
ওভারকোডার

উত্তর:


5

হাস্কেল, 306 বাইট, পয়েন্ট = 766 * 1.2 * 1.08 = 992.343

import Control.Arrow;main=print=<<(\x->unwords.map(\(x,y)->show x++[y]).filter((>0).fst).g=<<(read***head)<$>(lex=<<words x))<$>getLine;g z@(x,y)|x<3=[z]|1<2=maybe[z](\w->(x`mod`3,y):g(x`div`3,w)).lookup y$words"ASWKÉÄŸ50)|‡_©µ EHFJÁË16?-=§~€µ IRGXÍÏ27!/*[{<» ULPZÜŒ490 TCBÓÖÑŸ NMVK >»">>= \x->zip x$tail x

যে কেউ আমাকে মারলে আমি আরও কয়েকটা বাইট ছড়িয়ে দিতে পারি, তবে আপাতত আমি এটি যেমনটি রেখে চলেছি।

হাস্কেল, 284 বাইট, পয়েন্ট = 779 * 1.2 * 1.08 = 1009.346

import Control.Arrow;main=interact$show.(\x->unwords[show a++[b]|(a,b)<-g=<<second head<$>(reads=<<words x),a>0]);g z@(x,y)|x<3=[z]|1<2=maybe[z](\w->(x`mod`3,y):g(x`div`3,w)).lookup y$words"ASWKÉÄŸ50)|‡_©µ EHFJÁË16?-=§~€µ IRGXÍÏ27!/*[{<» ULPZÜŒ490 TCBÓÖÑŸ NMVK >»">>=(flip zip=<<tail)

আমি নির্বিশেষে আরও কয়েকটি বাইট আউট করতে পেরেছি।

হাস্কেল, 248 বাইট, পয়েন্ট = 801 * 1.2 * 1.08 = 1038.462

main=interact$ \x->unwords[show a++b|(a,b)<-(reads=<<words x)>>=g,a>0];g z@(x,y)|x<3=[z]|1<2=maybe[z](\w->(x`mod`3,y):g(x`div`3,w))$pure<$>lookup(head y)(zip<*>tail=<<words"ASWKÉÄŸ50)|‡_©µ EHFJÁË16?-=§~€µ IRGXÍÏ27!/*[{<» ULPZÜŒ490 TCBÓÖÑŸ NMVK >»")

অন্যদের ব্যবহারের জন্য আমি তৈরি কয়েকটি টেবিলগুলিও রেখে যাচ্ছি:

68   AS EH IR OD UL TC NM
69   SW HF RG DY LP CB MV
70   WK FJ GX YQ PZ BÓ VK
71   KÉ JÁ XÍ QÚ ZÜ ÓÖ
72   ÉÄ ÁË ÍÏ ÚÆ ÜŒ ÖÑ
73   ÄŸ Ë1 Ï2 Æ3 Œ4 ÑŸ
74   Ÿ5 16 27 38 49
75   50 6? 7! 8( 90
76   0) ?- !/ (\
77   )| -= /* \†
78   |‡ =§ *[ †]
79   ‡_ §~ [{ ]}
80   _© ~€ {< }©
81   ©µ €µ <»
82   µ  µ  »

     >»

আপনি এটি উপরে থেকে নীচে, একবারে দুটি অক্ষর পড়েন (বা বিজোড় কলামগুলি উপেক্ষা করুন)। থ্রি এ এর ​​এস তৈরি করে, থ্রি এস-এস একটি ডাব্লু ইত্যাদি তৈরি করে। শেষ হওয়া চেইনগুলি কেবল পরের লাইনের প্রথম কলামে প্রায় আবৃত হয়। তিনটি মানচিত্র একটি করে>

এখানে কোনও পুনরাবৃত্তি না করে আপনি তৈরি করতে পারবেন মানচিত্রের চেইনগুলি এখানে:

ASWKÉÄŸ50)|‡_©µ
EHFJÁË16?-=§~€µ
IRGXÍÏ27!/*[{<»
ULPZ܌490
TCBÓÖÑŸ
NMVK
>»

4

সি #, 364 361 বাইট, পয়েন্ট = 734.754 x 1.08 = 793.534

বড়টি দিয়ে বলটি ঘূর্ণায়মানও হতে পারে ...

string F(string s){var m=@"AEIOUTNSHRDLCMWFGYPBVKJXQZÓÉÁÍÚÜÖÄËÏƌџ1234567890?!()-/\|=*†‡§[]_~{}©€<>µ»";var g=new int[75];foreach(int a in s.Select(c=>m.IndexOf(c)))g[a]++;int i=0;for(;i<73;){g[m.IndexOf(@"SHRDLCMWFGYPBVKJXQZÓKÉÁÍÚÜÖÄËÏƌџ1234Ÿ567890?!(0)-/\|=*†‡§[]_~{}©€<©µµ»»"[i])]+=g[i]/3;g[i++]%=3;}return string.Join("",g.Zip(m,(x,l)=>"".PadLeft(x,l)));}

আমি আপাতদৃষ্টিতে এলোমেলো এনকোডযুক্ত অক্ষরগুলিকে তাদের আপেক্ষিক মূল্য হিসাবে ম্যাপ করার একটি চতুর উপায়টি এখনও ভাবিনি, তাই আমি আপাতত একটি জোর বল পদ্ধতি ব্যবহার করেছি।

এটি গোষ্ঠীকরণের পদ্ধতিতে বোনাস বৈশিষ্ট্য 3 প্রয়োগ করে, যা আমাকে একটি দুর্দান্ত 58ish পয়েন্ট জাল করে।

সম্পাদনা করুন: যোগ / জিপতে আউটপুট লুপটি পুনরায় লিখুন


2

এসডাব্লুআই-প্রোলোগ, 354 বাইট, পয়েন্ট = 738.552 * 1.08 = 797.64

a(A,Z):-msort(A,S),b(S,[],B),(msort(B,S),string_codes(Z,S);a(B,Z)).
b(X,R,Z):-(X=[A,A,A|T],nth0(I,`AEIOUTNSHRDLCMWFGYPBVKJXQZÓÉÁÍÚÜÖÄËÏƌџ1234567890?!()-/\\|=*†‡§[]_~{}©€<>`,A),nth0(I,`SHRDLCMWFGYPBVKJXQZÓKÉÁÍÚÜÖÄËÏƌџ1234Ÿ567890?!(0)-/\\|=*†‡§[]_~{}©€<©µµ»»`,B),b(T,[B|R],Z);X=[A|T],b(T,[A|R],Z);Z=R).

কোড স্ট্রিং হিসাবে ইনপুটগুলি প্রত্যাশা করে, উদাহরণস্বরূপ a(`AAAEEEIII`,Z).আউটপুট Z = "SRH"

আমি অন্য দুটি বোনাস সম্পর্কে আমি কী করতে পারি তা দেখতে পাবো ...


2

জাভাস্ক্রিপ্ট, 432 বাইট, পয়েন্ট = 698.32 * 1.08 * 1.2 = 905.02

function g(r){for(var n="AEIOUTNSHRDLCMWFGYPBVKJXQZÓÉÁÍÚÜÖÄËÏƌџ1234567890?!()-/|=*†‡§[]_~{}©€<>",t="SHRDLCMWFGYPBVKJXQZÓKÉÁÍÚÜÖÄËÏƌџ1234Ÿ567890?!(0)-/|=*†‡§[]_~{}©€<©µµ»»",a=/([^»µ])\1{2}/,c=/\d+/,e=/\d+(.)/,f=0;0!==(f=r.match(c)-0);)r=r.replace(c,Array(f).join(r.match(e)[1]));for(;null!==(f=r.match(a));)r=r.replace(a,t.charAt(n.search(f[1])));return r.split("").sort(function(r,t){return n.indexOf(r)-n.indexOf(t)}).join("")}

ইসমাস্ক্রিপ্ট 6, 417 বাইট, পয়েন্ট = 705.72 * 1.08 * 1.2 = 914.61

কোনও অনলাইন মিনিফায়ার সংস্করণ নেই: (সর্বশেষ সংস্করণটি একটি মিনিফায়ারের মধ্য দিয়ে গেছে )

let F=s=>{for(var m="AEIOUTNSHRDLCMWFGYPBVKJXQZÓÉÁÍÚÜÖÄËÏƌџ1234567890?!()-/\|=*†‡§[]_~{}©€<>",r="SHRDLCMWFGYPBVKJXQZÓKÉÁÍÚÜÖÄËÏƌџ1234Ÿ567890?!(0)-/\|=*†‡§[]_~{}©€<©µµ»»",x=/([^»µ])\1{2}/,y=/\d+/,z=/\d+(.)/,p=0;(p=s.match(y)-0)!==0;)s=s.replace(y,Array(p).join(s.match(z)[1]));for(;(p=s.match(x))!==null;)s=s.replace(x,r.charAt(m.search(p[1])));return s.split('').sort((a,b)=>m.indexOf(a)-m.indexOf(b)).join('');};

বাবেলের সাথে দৌড়াও


নিম্নলিখিত ইনপুটগুলির সাথে পরীক্ষিত:

  1. AAA
  2. AAAEEEIII
  3. 3A3E3I
  4. »»»»»

সাধারণ সমাধান

মূলত যখনই সম্ভব রেগেক্স ব্যবহার করা

var m = "AEIOUTNSHRDLCMWFGYPBVKJXQZÓÉÁÍÚÜÖÄËÏƌџ1234567890?!()-/\|=*†‡§[]_~{}©€<>";
var r = "SHRDLCMWFGYPBVKJXQZÓKÉÁÍÚÜÖÄËÏƌџ1234Ÿ567890?!(0)-/\|=*†‡§[]_~{}©€<©µµ»»";
var x = /([^»µ])\1{2}/;

while((p=s.match(x))!==null){
    s=s.replace(x,r.charAt(m.search(p[1])));
}

এখানে অভিনব কিছু নয়, কেবলমাত্র সম্পর্কিত আউটপুটটির জন্য একটি ম্যাচ প্রতিস্থাপন।

1.2 বোনাস জন্য

নম্বরগুলি এবং নিম্নলিখিত চিঠিটি পুনরায় পাঠানো, পঠনযোগ্য কোডটি এরকম হয়:

// variable 's' is the input string

var y = /\d+/;
var z = /\d+(.)/;

var p = 0;

while((p=s.match(y)-0) !== 0) {
    s=s.replace(y,Array(p).join(s.match(z)[1]));
}

আপনি দেখতে পাচ্ছেন, s.match(y) - 0ম্যাচ করা স্ট্রিং 0 দ্বারা বিয়োগ করা হয়েছে, এটি আসলে কল না করে কোনও পার্স ইনটকে বাধ্য করা parseInt()

এছাড়াও Array(p).join(s.match(z)[1])মূলত ম্যাচটিতে পাওয়া অক্ষরটির সাথে p খালি উপাদানগুলির একটি অ্যারের সাথে যোগ দেয় , এটি কোনও চিঠি মুদ্রণের একটি সহজ উপায় (আসুন আমরা বলতে পারি E) pপরিমাণ পরিমাণ।

1.08 বোনাসের জন্য

বাছাই অ্যালগরিদম:

s.split('').sort(function(a,b) {
    return m.indexOf(a) - m.indexOf(b);
}).join('');

432 বাইট সহ আপনি কীভাবে সম্ভবত 999.999 এর বেস স্কোর পেতে পারেন তা আমি দেখছি না। আমি প্রদত্ত সূত্রটি দিয়ে 698.324 পাই।
ফ্যাটালাইজ করুন

আমার খারাপ, আমি অবশ্যই সূত্রটি ভুলভাবে লিখেছি, আমি এটি সংশোধন করব
ক্রিস্টোফার ফ্রান্সিসকো

2

জাভাস্ক্রিপ্ট (ES6), 389 বাইট, পয়েন্ট = 719.942 * 1.08 * 1.2 = 933.045

সীসা, অন্তত আপাতত ...

a=>{a=a.replace(/(\d)(.)/g,(m,A,B)=>B.repeat(A)),x='AEIOUTNSHRDLCMWFGYPBVKJXQZÓÉÁÍÚÜÖÄËÏƌџ1234567890?!()-/\\|=*†‡§[]_~{}©€<>',y='SHRDLCMWFGYPBVKJXQZÓKÉÁÍÚÜÖÄËÏƌџ1234Ÿ567890?!(0)-/\\|=*†‡§[]_~{}©€<©µµ»»',s=_=>(a=[...a].sort((a,b)=>x[I='indexOf'](a)-x[I](b)).join``);s();for(i=0;i<x.length;i++){a=a.replace(new RegExp(`[${('\\|'[I](h=x[i])<0?'':'\\')+h}]{3}`,'g'),y[i]);s()}return a}

এটি এখানে চেষ্টা করুন:

1.2 বোনাস এর বিন্যাসে কিছুটা জটিল y আপনি যদি কোনও নিয়মিত সংখ্যা ইনপুট করতে চান 1তবে তার আগে একটি স্থান দিন।

মূলত, এটি প্রতিটি চরিত্রের মাধ্যমে স্ক্যান করে যার একটি আপগ্রেড (সমস্ত ব্যতীত µএবং ») রয়েছে, তারপরে এই চরিত্রের তিনটির সমস্ত সেট সন্ধান করে এবং তাদেরকে আপগ্রেড করা চর দিয়ে প্রতিস্থাপন করবে। .replaceএটি সর্বদা সঠিকভাবে কাজ করে তা নিশ্চিত করার সর্বোত্তম উপায় ছিল প্রত্যেকের পরে বাছাই করা , যাতে এটি ছিল একটি স্বয়ংক্রিয় বোনাস। 1.2 বোনাসটি কিছুটা শক্ত ছিল তবে আমি এটি 45 বাইটে সাজিয়েছি। 1.5 বোনাসটি মোটেই উপযুক্ত নয়, কারণ এটি আরও এক টন বেশি এনকোডিং প্রয়োজন এবং কমপক্ষে দৈর্ঘ্য দ্বিগুণ করবে।

সর্বদা হিসাবে, পরামর্শ খুব স্বাগত!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.