Lexiconiaというオンラインマルチプレイヤーゲームを作っている会社で働いています。
このゲームをプレイするには、各プレイヤーに13文字の文字が渡され、それらを並べ替えて単語を作ります。文字によってポイントが異なります。というのも、単語を作りやすい文字とそうでない文字があるからです。
ゲームはもともと英語版としてリリースされましたが、とても人気が出たため、今では会社は他の言語にも展開したいと考えています。
言語が違えば、文字に設定するポイントも変える必要があります。ポイントは、その言語の中でそれぞれの文字がどれくらいよく使われるかを基準に決められます。
たとえば、'C'という文字は英語ではよく使われる方で、ポイントはわずか3です。しかしノルウェー語ではとても珍しい文字で、ポイントは10になります。
新しい言語を追加しやすくするために、チームはゲーム内で文字とそのポイントを保存する方法を変える必要があります。
ゲームにおける文字とその得点のデータ形式を変更するのが、この課題です。
現在、文字は得点に基づいてグループ分けされて格納されており、1対多のマッピングになっています。
これを、各文字とその得点を1対1のマッピングで格納する形式に変更する必要があります。
この変更の一環として、チームは文字を大文字ではなく小文字にすることも決めました。
データが以前どのように構成されていたか、そしてどのように変更する必要があるかを確認したい場合は、テストスイートの例を見てみてください。