Newer
Older
2024-C1230097_kanara / Ecard.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>王様・奴隷・市民ゲーム</title>
</head>
<body>
    <h1>王様・奴隷・市民ゲーム</h1>
    <p>Player 1は奴隷カード1枚と市民カード4枚、Player 2は王様カード1枚と市民カード4枚を持っています。</p>

    <p id="message">プレイヤー1の手札からカードを選んでください:</p>
    <div id="player1-cards"></div>
    <div id="result"></div>
    
    <script>
       
        const KING = "王様";
        const SLAVE = "奴隷";
        const CITIZEN = "市民";

        
        const player1Hand = [SLAVE, CITIZEN, CITIZEN, CITIZEN, CITIZEN];
        const player2Hand = [KING, CITIZEN, CITIZEN, CITIZEN, CITIZEN];

        
        function shuffle(array) {
            for (let i = array.length - 1; i > 0; i--) {
                const j = Math.floor(Math.random() * (i + 1));
                [array[i], array[j]] = [array[j], array[i]];
            }
        }
        
        shuffle(player1Hand);
        shuffle(player2Hand);

        
        const player1CardsDiv = document.getElementById('player1-cards');
        const resultDiv = document.getElementById('result');
        let round = 1;

        function renderPlayer1Cards() {
            player1CardsDiv.innerHTML = '';  
            player1Hand.forEach((card, index) => {
                const button = document.createElement('button');
                button.textContent = card;
                button.onclick = () => playRound(index);  
                player1CardsDiv.appendChild(button);
            });
        }

       
        function judge(card1, card2) {
            if (card1 === card2) return "ドロー";
            if ((card1 === KING && card2 === CITIZEN) || 
                (card1 === CITIZEN && card2 === SLAVE) || 
                (card1 === SLAVE && card2 === KING)) {
                return "Player 1 勝利";
            }
            return "Player 2 勝利";
        }

        
        function playRound(player1Index) {
            const player1Card = player1Hand[player1Index];
            const player2Card = player2Hand[round - 1];

            player1Hand.splice(player1Index, 1);  

            
            const result = judge(player1Card, player2Card);
            resultDiv.innerHTML += `<p>第${round}ラウンド: Player 1 は「${player1Card}」、Player 2 は「${player2Card}」を出した! 結果: ${result}</p>`;

            round++;

            if (round > 5) {
                resultDiv.innerHTML += "<p>ゲーム終了!</p>";
                document.getElementById('message').textContent = "ゲームが終了しました!";
                player1CardsDiv.innerHTML = '';
            } else {
                renderPlayer1Cards();  
                document.getElementById('message').textContent = `プレイヤー1の手札からカードを選んでください (ラウンド${round}):`;
            }
        }

        
        renderPlayer1Cards();
    </script>
</body>
</html>