ジャンケンゲーム 1を分析してみよう

まずは渡した「janken01.html」のアイコンを右クリックして「プログラムから開く」→「メモ帳」(Macの人はシンプルテキスト)で開いてみてください。

これはhtmlファイルといってブラウザでみるのに適したファイルです。インターネットはじまりの頃は、これを手書きで書いていたんですよ(T▽T)

最初の一行目は、このファイルはhtmlファイルですぜ!っていう宣言です。もっと詳細に書くこともあるのですが、今回は簡素にしています。

<body>から</body>に書かれたことがブラウザで表示されます。

<script>から</script>がJavascriptプログラムの本体です。

function play(playerChoice)

これは 「play」という名前の関数を作っている部分 です。

関数とは?
🔹 「よく使う処理をまとめたブロック」
🔹 必要なときに呼び出して使える
🔹 繰り返し使いたい処理や、長い処理を整理するために使う

構造の説明
function play(playerChoice) {
// ここに実行したい処理を書く
}
✅ function → 関数を作るときに使うキーワード
✅ play → 関数の名前(自由につけられる、今回は「遊ぶ」という意味で使っている)
✅ (playerChoice) → 引数(ひきすう)
🔸 関数に渡したいデータを入れる箱

✅ playerChoice とは?
✨ プレイヤーが選んだ「グー」「チョキ」「パー」を受け取るための変数。

例えば:
✊ グー
このボタンを押すと play(“グー”) が実行される。

このとき
✅ playerChoice に “グー” が入る

実際の動き(じゃんけんの流れ)
1️⃣ プレイヤーがボタンを押す(例:「✊ グー」)
2️⃣ play(“グー”) が呼び出される
3️⃣ function play(playerChoice) が動く
4️⃣ playerChoice に “グー” が入る
5️⃣ 関数内でじゃんけんの勝敗判定をする処理が実行される
6️⃣ 結果が画面に表示される

choices[Math.floor(Math.random() * 3)] の説明

この部分は:

「ダイチャンの手(グー・チョキ・パー)をランダムに決める」

ためのコードです。

✅ 分解して理解しましょう
choices
これは配列(はいれつ)で
const choices = [“グー”, “チョキ”, “パー”];
と定義されています。

constは作るという意味でしたね。だからchoicesという配列に、グーとチョキとパーという文字を作ったのです。

✅ 配列は 複数のデータをまとめて保存する箱
✅ choices[0] → “グー”
✅ choices[1] → “チョキ”
✅ choices[2] → “パー”

Math.random()
✅ 0以上1未満のランダムな小数を作る関数

例:0.2534…0.8765…0.0001…

Math.random() * 3

Math.random() の結果を 3倍 しています。

結果は:0.0 ~ 2.999999999…

Math.floor( )
✅ 小数点以下を切り捨てて整数にする関数

例:Math.floor(0.8) → 0、Math.floor(1.9) → 1、Math.floor(2.3) → 2

Math.floor(Math.random() * 3)
この組み合わせにより:

0, 1, 2 のいずれかをランダムに作ることができます。

choices[Math.floor(Math.random() * 3)]
最後にこの値を配列 choices のインデックスとして使うことで:

✅ 0 → “グー”
✅ 1 → “チョキ”
✅ 2 → “パー”

がランダムに選ばれる仕組みになっています。

でも!0、1、2のどれかを選ぶってだけで、なんで3倍したりメンドクサイことをしなければいけないの??って考えますよね。

ランダムな数ってめんどくさい!
なんで Math.random() に * 3 して…さらに Math.floor() して…やっと 0, 1, 2 が作れるのか!

でも理由があるのです。
🌱 1️⃣ Math.random() は 0以上1未満 の小数しか出せない
例:0.1234、0.9876

🌱 2️⃣ 欲しいのは 0, 1, 2 の整数
だから 3倍する と:

0.0 ~ 2.9999… になる

🌱 3️⃣ 小数のままだと配列の番号に使えないから
Math.floor()(切り捨て)で整数にする。

つまり、めんどくさいけど必要な手順
小数(ランダム)
 ↓

必要な範囲に拡大(* 3)
 ↓
整数化(Math.floor())

「ランダムはちっちゃいから、欲しい数の大きさまで増やして、最後に整数にする」

これだけ覚えておけばOK!!

let result  これで勝敗決定です。

document.getElementById(“result”).innerHTML = result;
これで結果をHTMLに表示させています。

カテゴリー: AI パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です