まずは渡した「janken01.html」のアイコンを右クリックして「プログラムから開く」→「メモ帳」(Macの人はシンプルテキスト)で開いてみてください。
これはhtmlファイルといってブラウザでみるのに適したファイルです。インターネットはじまりの頃は、これを手書きで書いていたんですよ(T▽T)
最初の一行目は、このファイルはhtmlファイルですぜ!っていう宣言です。もっと詳細に書くこともあるのですが、今回は簡素にしています。
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に表示させています。