आप एक ऐसी कंपनी के लिए काम करते हैं जो Lexiconia नाम का ऑनलाइन मल्टीप्लेयर गेम बनाती है।
यह गेम खेलने के लिए हर खिलाड़ी को 13 अक्षर दिए जाते हैं। खिलाड़ी को इन्हें मिलाकर शब्द बनाने होते हैं। हर अक्षर के अंक अलग-अलग होते हैं, क्योंकि कुछ अक्षरों से शब्द बनाना दूसरों के मुकाबले आसान होता है।
यह गेम पहले अंग्रेज़ी में शुरू किया गया था, लेकिन अब यह बहुत लोकप्रिय है। इसलिए कंपनी अब इसे दूसरी भाषाओं में भी शुरू करना चाहती है।
हर भाषा में अक्षरों के अंक अलग-अलग होने चाहिए। ये अंक इस बात से तय होते हैं कि उस भाषा के दूसरे अक्षरों की तुलना में वे अक्षर कितनी बार इस्तेमाल होते हैं।
उदाहरण के लिए, अंग्रेज़ी में 'C' अक्षर काफी आम है और इसके सिर्फ 3 अंक मिलते हैं। लेकिन नॉर्वेजियाई में यह बहुत कम इस्तेमाल होने वाला अक्षर है और इसके 10 अंक मिलते हैं।
नई भाषाएँ जोड़ना आसान बनाने के लिए आपकी टीम को गेम में अक्षरों और उनके अंकों को रखने का तरीका बदलना होगा।
आपको गेम में अक्षरों और उनके अंकों का डेटा फॉर्मेट बदलना है।
फिलहाल अक्षर अपने स्कोर के आधार पर समूहों में संग्रहीत किए जाते हैं, जो एक-से-अनेक मैपिंग है।
इसे बदलकर हर अक्षर को उसके स्कोर के साथ एक-से-एक मैपिंग में संग्रहीत करना है।
इस बदलाव के साथ टीम ने यह भी तय किया है कि अक्षर अब बड़े अक्षरों की जगह छोटे अक्षरों में होंगे।
अगर आप देखना चाहते हैं कि डेटा पहले कैसे व्यवस्थित था और उसे कैसे बदलना है, तो टेस्ट सूट में दिए गए उदाहरणों पर एक नज़र डालिए।
आउटपुट ऐरे के एलिमेंट की जाँच की के बढ़ते क्रम में की जाती है।
ध्यान दीजिए कि दोनों स्ट्रक्चर अलग-अलग आकार के एलिमेंट रखते हैं, इसलिए अलाइनमेंट एक ऐसा कारक है जिस पर विचार करना चाहिए।
Exercism पर साइन अप कीजिए और x86-64 Assembly को 22 कॉन्सेप्ट130 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।