[ペチパーの大冒険] ゲーム制作#022「プログラミング謎解き 中級編4」

2025/02/27

ゲーム 開発

t f B! P L
eyecatch ゲームに限らず、何かを作る時に、どうやればうまく作れるか?といつも考えます。 そして、毎回自分に言い聞かすのは、「今作っているモノがどれだけ好きかを深く考える」です。 昔から、ゲームは好きで、パソコンのプログラミングも難しいけど好き、そして何かを作って形にするという事が特に好きの、 スキスキスーな状態を再確認して、今回もプログラミング謎解き問題作ってみました。

謎解き: 魔法のパスワードを解読せよ

シナリオ

王国のとある神殿には、封印された宝箱 があります。 この宝箱を開けるには、古代の魔法のパスワードを 特定のルール に従って変換し、正しい形式にする必要があります。

問題

魔法のパスワードは 文字列 ですが、正しい形式になるには以下のルールを満たす必要があります。
  1. 先頭の文字 は 大文字 にする。
  2. すべての数字 は * に置き換える。
  3. スペース(空白)をすべて削除する。
  4. "!"(感嘆符)が含まれていなければ、最後に追加する。
あなたの仕事は、魔法のパスワードを正しい形式に変換する関数 を作ることです。 王国の宝箱を開けるため、正しくパスワードを変換してください! 成功すれば、貴重な財宝が手に入るかもしれません…!

条件

function transformPassword(password) { // ここに処理を書く } // テストケース console.log(transformPassword("magic 123 world")); // "Magic***world!" console.log(transformPassword("darkCastle9!")); // "DarkCastle*!" console.log(transformPassword(" secret door ")); // "Secretdoor!" console.log(transformPassword("Knight77Order")); // "Knight**Order!" console.log(transformPassword("Hello!")); // "Hello!"

解答プログラミングを打ち込む

※ checkPotionQuality()関数を完成させてください。

答え

回答(サンプル)

// 1. 先頭の文字を大文字にする password = password.trim() // 前後の空白を削除 if (password.length === 0) return "!" // 空の文字列なら "!" を返す password = password[0].toUpperCase() + password.slice(1) // 2. 数字を '*' に置き換える password = password.replace(/\d/g, "*") // 3. スペースを削除する password = password.replace(/\s/g, "") // 4. '!' がなければ最後に追加する if (!password.includes("!")) { password += "!" } return password

解説

  1. trim() を使い、先頭と末尾のスペースを削除 する。
  2. 文字列が空の場合 は "!" を返す(空のパスワードも変換可能にするため)。
  3. password[0].toUpperCase() を使い、最初の文字を大文字に変換 する。
  4. replace(/\d/g, "*") で すべての数字を * に置き換える。
  5. replace(/\s/g, "") で スペースをすべて削除する。
  6. "!" が含まれていなければ、最後に追加する。
この実装で、どんな文字列が入力されても 魔法のパスワードのルールに従って変換 できます! 🔥✨

あとがき

どうですか?できました? 文字列を整えるフォーマット処理は、プログラミングの基本でもあるし、 実際に仕事でプログラミングを扱っている人は、日常的によく書く内容だと思います。 どの条件で、最終的にどういう文字列になるかを見極める事が重要なんですね。 これで本当に宝箱がゲットできれば、なんだか楽しさ倍増するから、 ゲームに組み込むと楽しめそう!

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ