javascript ゲーム制作

Blue

数あてゲーム


ゲームオーバーの条件:


難易度に応じて、最大試行回数を設定しました。

簡単 (1-100): 最大10回

普通 (1-500): 最大7回

難しい (1-1000): 最大5回

プレイヤーがこの回数を超えた場合、ゲームオーバーとなり、正解の数が表示されます。

スコアボード:


現在のスコアを表示する機能はそのまま維持されています。

遊び方

難易度を選択します。

数を入力して挑戦します。

ヒントを参考にして正しい数を当てましょう。

最大試行回数に達するとゲームオーバーになります。


ここから↓

<!DOCTYPE html>

<html lang="ja">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>数当てゲーム</title>

<style>

body { font-family: Arial, sans-serif; text-align: center; margin-top: 50px; }

input { padding: 10px; width: 100px; }

button { padding: 10px; }

#result, #scoreboard { margin-top: 20px; font-size: 20px; }

</style>

</head>

<body>

<h1>数当てゲーム</h1>

<label for="difficulty">難易度:</label>

<select id="difficulty">

<option value="100">簡単 (1-100)</option>

<option value="500">普通 (1-500)</option>

<option value="1000">難しい (1-1000)</option>

</select>

<p>あなたの挑戦:</p>

<input type="number" id="guess" min="1">

<button onclick="checkGuess()">挑戦!</button>

<div id="result"></div>

<div id="scoreboard"></div>

<script>

let randomNumber;

let attempts = 0;

let hintsGiven = 0;

let score = 0;

let maxAttempts;


function startGame() {

const difficulty = Number(document.getElementById('difficulty').value);

randomNumber = Math.floor(Math.random() * difficulty) + 1;

attempts = 0;

hintsGiven = 0;

maxAttempts = getMaxAttempts(difficulty);

document.getElementById('result').innerText = '';

document.getElementById('guess').value = '';

updateScoreboard();

}


function getMaxAttempts(difficulty) {

if (difficulty === 100) return 10; // 簡単

if (difficulty === 500) return 7; // 普通

return 5; // 難しい

}


function checkGuess() {

const userGuess = Number(document.getElementById('guess').value);

attempts++;


if (userGuess < 1 || userGuess > Number(document.getElementById('difficulty').value)) {

document.getElementById('result').innerText = '設定した範囲内の数を入力してください。';

return;

}


if (userGuess < randomNumber) {

hintsGiven++;

if (hintsGiven === 3) {

document.getElementById('result').innerText = 'ヒント: 数は ' + (randomNumber % 2 === 0 ? '偶数' : '奇数') + ' です。';

} else {

document.getElementById('result').innerText = 'もっと大きい数です。';

}

} else if (userGuess > randomNumber) {

hintsGiven++;

if (hintsGiven === 3) {

document.getElementById('result').innerText = 'ヒント: 数は ' + (randomNumber < 50 ? '50より小さい' : '50以上') + ' です。';

} else {

document.getElementById('result').innerText = 'もっと小さい数です。';

}

} else {

score += 10;

document.getElementById('result').innerText = `おめでとうございます! ${attempts} 回目で正解です! スコア: ${score}`;

updateScoreboard();

startGame();

return;

}


if (attempts >= maxAttempts) {

document.getElementById('result').innerText = `ゲームオーバーです。正解は ${randomNumber} でした。`;

startGame();

}

}


function updateScoreboard() {

document.getElementById('scoreboard').innerText = `現在のスコア: ${score}`;

}


// ゲーム開始時に初期化

window.onload = startGame;

</script>

</body>

</html>

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る