شما برای شرکتی کار میکنید که یک بازی آنلاین چندنفره به اسم Lexiconia میسازد.
برای بازی کردن، به هر بازیکن ۱۳ حرف داده میشود که باید آنها را بازآرایی کند تا کلمه بسازد. حروف مختلف امتیازهای متفاوتی دارند، چون ساختن کلمه با بعضی حروف آسانتر از حروف دیگر است.
این بازی در ابتدا به انگلیسی عرضه شد، اما بسیار محبوب است و حالا شرکت میخواهد به زبانهای دیگر هم گسترش پیدا کند.
زبانهای مختلف باید از امتیازهای متفاوتی برای حروف پشتیبانی کنند. امتیازها بر اساس این تعیین میشوند که هر حرف در مقایسه با حروف دیگر آن زبان چقدر استفاده میشود.
برای مثال، حرف «C» در انگلیسی کاملاً رایج است و فقط ۳ امتیاز ارزش دارد. اما در نروژی حرفی بسیار کمیاب است و ۱۰ امتیاز ارزش دارد.
برای اینکه افزودن زبانهای جدید آسانتر شود، تیم شما باید روش ذخیرهسازی حروف و امتیازهایشان را در بازی تغییر دهد.
وظیفهی شما این است که قالب دادهی حروف و ارزش امتیازی آنها را در بازی تغییر دهید.
در حال حاضر، حروف بر اساس امتیازشان در گروههایی ذخیره میشوند، به شکل یک «نگاشت» یکبهچند.
این باید تغییر کند تا هر حرف بهصورت جداگانه همراه با امتیازش در یک نگاشت یکبهیک ذخیره شود.
بهعنوان بخشی از این تغییر، تیم تصمیم گرفته است حروف را از بزرگ به کوچک تغییر دهد.
اگر میخواهید ببینید دادهها پیشتر چگونه ساختاربندی شده بودند و چگونه باید تغییر کنند، به نمونههای موجود در مجموعهی تست نگاهی بیندازید.
عنصرهای آرایهی خروجی به ترتیب صعودی کلید آزمایش میشوند.
توجه کنید که هر دو struct عناصری با اندازههای متفاوت نگه میدارند، بنابراین همترازی عاملی است که باید در نظر گرفته شود.
در Exercism ثبتنام کنید تا x86-64 Assembly را همراه با 22 مفهوم130 تمرین و مربیگری انسانی واقعی یاد بگیرید و در آن استاد شوید، همهی اینها رایگان.