JavaScriptプログラミング第3弾です。

たかがじゃんけんゲームですが、この形に落ち着くまでに数時間もかかってしまいました。

ゲームプログラミングってほんと難しいっす。

じゃんけんゲーム

以下、コードです。

<!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;
        }
        button {
            padding: 10px 20px;
            font-size: 16px;
            margin: 5px;
            display: none;
        }
        #start-button {
            display: inline-block;
        }
        #result {
            margin-top: 20px;
            font-size: 18px;
        }
    </style>
</head>
<body>
    <h1>じゃんけんゲーム</h1>
    <p id="display"></p>

    <button id="start-button" onclick="startGame()">じゃんけんを始める</button>
    
    <div id="choices">
        <button id="gu-button" onclick="play('グー')">グー</button>
        <button id="choki-button" onclick="play('チョキ')">チョキ</button>
        <button id="pa-button" onclick="play('パー')">パー</button>
    </div>

    <div id="result">
        <p id="player-choice"></p>
        <p id="computer-choice"></p>
        <p id="game-result"></p>
    </div>

    <script>
        function resetGame() {
            // 結果表示エリアをクリア
            document.getElementById('player-choice').textContent = '';
            document.getElementById('computer-choice').textContent = '';
            document.getElementById('game-result').textContent = '';
        }

        function startGame() {
            const display = document.getElementById('display');
            const startButton = document.getElementById('start-button');

            // 前の結果をリセット
            resetGame();

            display.textContent = 'じゃん';
            startButton.style.display = 'none';

            setTimeout(() => {
                display.textContent = 'けん';
            }, 1000);

            setTimeout(() => {
                display.textContent = '';
                // ボタンを表示
                document.getElementById('gu-button').style.display = 'inline-block';
                document.getElementById('choki-button').style.display = 'inline-block';
                document.getElementById('pa-button').style.display = 'inline-block';
            }, 2000);
        }

        function play(playerChoice) {
            const choices = ['グー', 'チョキ', 'パー'];
            const computerChoice = choices[Math.floor(Math.random() * choices.length)];

            let result = '';

            if (playerChoice === computerChoice) {
                result = 'あいこ!';
            } else if (
                (playerChoice === 'グー' && computerChoice === 'チョキ') ||
                (playerChoice === 'チョキ' && computerChoice === 'パー') ||
                (playerChoice === 'パー' && computerChoice === 'グー')
            ) {
                result = 'あなたの勝ち!';
            } else {
                result = 'コンピュータの勝ち!';
            }

            // 結果を縦に表示
            document.getElementById('player-choice').textContent = `あなた: ${playerChoice}`;
            document.getElementById('computer-choice').textContent = `コンピュータ: ${computerChoice}`;
            document.getElementById('game-result').textContent = result;

            // ボタンを再び非表示にし、再スタートボタンを表示
            document.getElementById('gu-button').style.display = 'none';
            document.getElementById('choki-button').style.display = 'none';
            document.getElementById('pa-button').style.display = 'none';
            document.getElementById('start-button').style.display = 'inline-block';
        }
    </script>
</body>
</html>

By hedy