ミッション一覧に戻る
数字当てゲーム

数字当てゲーム

03/26 13:45
ミッション内容

「数字当てゲーム」

ミッション:1〜10の中に隠れた正解の数字を当てよう!大きい・小さいのヒントをたよりに探せ!

コードを写そう

HTMLタブに下のコードを貼り付けてください。

html
<p>1〜10の数字を当てよう!</p>
<input id="input" type="number" min="1" max="10">
<button id="btn">答える</button>
<p id="result"></p>

JSタブに下のコードを貼り付けてください。

js
const answer = 7;

const btn = document.querySelector('#btn');
const input = document.querySelector('#input');
const result = document.querySelector('#result');

btn.addEventListener('click', function() {
  const guess = Number(input.value);

  if (guess === answer) {
    result.textContent = '正解!🎉';
  } else if (guess < answer) {
    result.textContent = 'もっと大きい!';
  } else {
    result.textContent = 'もっと小さい!';
  }
});

数字を入力して「答える」ボタンを押し、ヒントが表示されることを確認してください。7 を入力すると正解になります。

コードを読み解こう

input 要素と input.value

html
<input id="input" type="number" min="1" max="10">

input タグは文字や数字を入力できる欄を作ります。type="number" を指定すると数字専用になります。

js
const guess = Number(input.value);

input.value で入力欄の内容を取得できます。ただし取得した値は文字列(テキスト)として扱われるため、Number() で数値に変換してから使います。

if / else if / else の3分岐

js
if (guess === answer) {
  // 正解のとき
} else if (guess < answer) {
  // 正解より小さいとき
} else {
  // それ以外(正解より大きいとき)
}

if / else の2分岐に加え、else if を挟むと3つ以上の分岐を作れます。上から順に条件を確認して、最初に当てはまった場所だけが実行されます。

改造しよう

ミッション:正解の数字を変えよう

js
const answer = 7;  ← ここを変える

友達に問題を出すときはここを変えましょう。


チャレンジミッション:正解の数をランダムにしよう

毎回違う数字を正解にしたいときは、Math.floor(Math.random() * 10) + 1 を使います。

js
const answer = Math.floor(Math.random() * 10) + 1;

Math.random() は「ランダム魔法陣」で学んだランダムな小数を生成する命令です。* 10 で0〜9.99...になり、Math.floor() で小数点以下を切り捨て、+ 1 で1〜10の整数になります。


自己チェック

  • [ ] 数字を入力して「答える」を押すとヒントが出る
  • [ ] 正解を入力すると「正解!」が表示される
  • [ ] if / else if / else を使っている