ガジェット通信 GetNews

見たことのないものを見に行こう
「ジャスティス・リーグ」特集サイト

【夏のミステリー】時間制限の密室 解答と解説

DATE:
  • ガジェット通信 GetNewsを≫

【夏のミステリー】時間制限の密室

本問題は、表題のテーマで、簡単なプログラムを書くものです。

それでは以下、問題とその解答を見ていきましょう。

問題

(なんやかんやあって)命からがら逃げてきた、あなた。

しかし逃げ込んだ部屋にあなたが入った途端、自動でドアはロックされ、
しかも10分後にはガスが噴き出してくるという緊急アナウンスが流れてきた。

脱出するには、プログラムで鍵を作成して、3Dプリンタで出力しなければならない。

鍵の長さは100で、1から100までに区切られている。各数字に対応する場所は、凸部の高さが決まっている。

各部の高さは、最低1で、2の倍数の時は+2、3の倍数の時は+3、5の倍数の時は+5される。

鍵の1から100までの凸部の高さを、1行ずつ「]」の数で出力して鍵を作り、密室から脱出しよう。

制限時間は10分です。

なんやかんやで怪我をしているため、時間につれて画面が見づらくなってしまう。一刻も早く鍵を手に入れてこの密室から脱出しよう!

// 出力例(1~10まで)
]
]]]
]]]]
]]]
]]]]]]
]]]]]]
]
]]]
]]]]
]]]]]]]]

答え

問題自体は、とても簡単なFizzBuzz系のものです。少し変わった所として、実際に問題を解いた方は分かると思いますが、時間と共に解答欄が血糊で埋まっていきます。

血糊が増えていく処理は、JavaScriptのCanvasを使い画像を作成して、入力欄の背景に適用しました。

tinori

というわけで、問題の方を解いていきましょう。以下、解答例を示します。サンドボックスで実行してください。

// https://codeiq.jp/tools/sandbox/
// 参考コード JavaScript (Node.js)
for (var i = 1; i

カテゴリー : デジタル・IT タグ :
CodeIQ MAGAZINEの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。