ЁЯОоArcadeLab

ЁЯЗоЁЯЗ│ Indian History - War Quiz

by AtomicFox99
423 lines17.2 KB
тЦ╢ Play
<!DOCTYPE html>
<html lang="hi">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <title>ЁЯЗоЁЯЗ│ Indian History - War Quiz</title>
    <style>
        * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', sans-serif; }
        body {
            background: linear-gradient(135deg, #1a1a2e, #16213e, #0f3460);
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 20px;
        }
        .game-container {
            background: rgba(255,255,255,0.05);
            backdrop-filter: blur(12px);
            border: 1px solid rgba(255,215,0,0.3);
            border-radius: 30px;
            padding: 35px;
            max-width: 700px;
            width: 100%;
            box-shadow: 0 25px 50px rgba(0,0,0,0.8);
            color: #fff;
            text-align: center;
        }
        h1 {
            font-size: 2.2rem;
            background: linear-gradient(45deg, #ff9933, #ffffff, #138808);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            margin-bottom: 8px;
        }
        .subhead {
            color: #aaa;
            font-size: 1rem;
            margin-bottom: 20px;
            border-bottom: 1px dashed #444;
            padding-bottom: 12px;
        }
        .era-tag {
            display: inline-block;
            background: #ff9933;
            color: #1a1a2e;
            font-weight: bold;
            padding: 6px 22px;
            border-radius: 30px;
            font-size: 1.1rem;
            margin-bottom: 18px;
            letter-spacing: 1px;
        }
        .question-box {
            background: rgba(0,0,0,0.4);
            border-radius: 18px;
            padding: 25px 20px;
            margin: 15px 0 25px 0;
            border-left: 5px solid #ff9933;
        }
        .question-box h2 {
            font-size: 1.5rem;
            font-weight: 500;
            line-height: 1.4;
        }
        .options-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px;
            margin: 20px 0;
        }
        .opt-btn {
            background: rgba(255,255,255,0.07);
            border: 2px solid #444;
            border-radius: 16px;
            padding: 16px 10px;
            font-size: 1rem;
            font-weight: 500;
            color: #fff;
            cursor: pointer;
            transition: 0.25s;
            box-shadow: 0 4px 0 #222;
        }
        .opt-btn:hover {
            transform: scale(1.02);
            background: rgba(255,215,0,0.15);
            border-color: #ff9933;
        }
        .opt-btn:active { transform: scale(0.96); }
        .opt-btn.correct {
            background: #138808;
            border-color: #00ff88;
            box-shadow: 0 0 20px #00ff8840;
        }
        .opt-btn.wrong {
            background: #cc0000;
            border-color: #ff4444;
            box-shadow: 0 0 20px #ff000040;
        }
        .opt-btn.disabled {
            pointer-events: none;
            opacity: 0.7;
        }
        .score-area {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: 22px;
            padding: 12px 18px;
            background: rgba(0,0,0,0.3);
            border-radius: 40px;
        }
        .score-badge {
            background: #ff9933;
            color: #1a1a2e;
            font-weight: bold;
            padding: 6px 24px;
            border-radius: 40px;
            font-size: 1.4rem;
        }
        #nextBtn {
            background: linear-gradient(45deg, #ff9933, #ff7700);
            border: none;
            color: #1a1a2e;
            font-weight: bold;
            font-size: 1.2rem;
            padding: 10px 32px;
            border-radius: 40px;
            cursor: pointer;
            transition: 0.2s;
            box-shadow: 0 6px 0 #b35900;
            display: none;
        }
        #nextBtn:hover { transform: translateY(-2px); box-shadow: 0 8px 0 #b35900; }
        #nextBtn:active { transform: translateY(4px); box-shadow: 0 2px 0 #b35900; }
        #resultMsg {
            font-size: 1.2rem;
            margin: 12px 0 0 0;
            min-height: 40px;
            font-weight: 500;
        }
        #restartBtn {
            background: #222;
            border: 2px solid #ff9933;
            color: #ff9933;
            padding: 10px 28px;
            border-radius: 40px;
            font-size: 1rem;
            font-weight: bold;
            cursor: pointer;
            margin-top: 12px;
            transition: 0.2s;
        }
        #restartBtn:hover { background: #ff9933; color: #1a1a2e; }
        .footer { margin-top: 20px; color: #666; font-size: 0.8rem; }
        @media (max-width: 550px) {
            .options-grid { grid-template-columns: 1fr; }
            .game-container { padding: 20px; }
        }
    </style>
</head>
<body>

<div class="game-container" id="app">
    <h1>тЪФя╕П рднрд╛рд░рдд рдХрд╛ рдпреБрджреНрдз рдЗрддрд┐рд╣рд╛рд╕</h1>
    <div class="subhead">Ancient ┬╖ Medieval ┬╖ Modern</div>

    <div class="era-tag" id="eraDisplay">ЁЯФ╕ рдкреНрд░рд╛рдЪреАрди рднрд╛рд░рдд</div>

    <div class="question-box">
        <h2 id="questionText">Loading...</h2>
    </div>

    <div class="options-grid" id="optionsContainer">
        <button class="opt-btn" data-index="0">Option 1</button>
        <button class="opt-btn" data-index="1">Option 2</button>
        <button class="opt-btn" data-index="2">Option 3</button>
        <button class="opt-btn" data-index="3">Option 4</button>
    </div>

    <div id="resultMsg">ЁЯЗоЁЯЗ│ Choose the correct war with its reason</div>

    <div class="score-area">
        <span style="font-weight:300;">ЁЯПЖ Score</span>
        <span class="score-badge" id="scoreDisplay">0</span>
    </div>

    <button id="nextBtn">тЮбя╕П рдЕрдЧрд▓рд╛ рдкреНрд░рд╢реНрди</button>
    <br/>
    <button id="restartBtn">ЁЯФД Game Restart</button>
    <div class="footer">Made with тЭдя╕П for Indian History</div>
</div>

<script>
    // ---------- GAME DATA ----------
    const questions = [
        // --- ANCIENT (рдкреНрд░рд╛рдЪреАрди) ---
        {
            era: 'рдкреНрд░рд╛рдЪреАрди рднрд╛рд░рдд',
            question: 'рд╕рд┐рдВрдзреБ рдШрд╛рдЯреА рд╕рднреНрдпрддрд╛ рдХреЗ рдкрддрди рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдХреНрдпрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ?',
            options: [
                'рдЖрд░реНрдпреЛрдВ рдХрд╛ рдЖрдХреНрд░рдордг', 
                'рдЬрд▓рд╡рд╛рдпреБ рдкрд░рд┐рд╡рд░реНрддрди рдПрд╡рдВ рд╕реВрдЦрд╛', 
                'рдпреВрдирд╛рдирд┐рдпреЛрдВ рдХрд╛ рд╣рдорд▓рд╛', 
                'рдЖрдВрддрд░рд┐рдХ рд╡рд┐рджреНрд░реЛрд╣'
            ],
            correct: 1,
            reason: 'тЬЕ рд╕рд╣реА: рдЬрд▓рд╡рд╛рдпреБ рдкрд░рд┐рд╡рд░реНрддрди (рд╕реВрдЦрд╛) рдореБрдЦреНрдп рдХрд╛рд░рдг рдерд╛, рдЖрд░реНрдп рдЖрдХреНрд░рдордг рдмрд╛рдж рдореЗрдВ рд╣реБрдЖред'
        },
        {
            era: 'рдкреНрд░рд╛рдЪреАрди рднрд╛рд░рдд',
            question: 'рдпреВрдирд╛рдиреА рд╕реЗрдирд╛рдкрддрд┐ рд╕рд┐рдХрдВрджрд░ (Alexander) рдиреЗ рднрд╛рд░рдд рдореЗрдВ рдХрд┐рд╕ рд░рд╛рдЬрд╛ рдХреЛ рд╣рд░рд╛рдпрд╛ рдерд╛?',
            options: [
                'рдЪрдВрджреНрд░рдЧреБрдкреНрдд рдореМрд░реНрдп', 
                'рдзрдирд╛рдирдВрдж', 
                'рдкреЛрд░рд╕ (Porus)', 
                'рдЕрд╢реЛрдХ'
            ],
            correct: 2,
            reason: 'тЬЕ рд╕рд╣реА: рд╕рд┐рдХрдВрджрд░ рдиреЗ 326 рдИ.рдкреВ. рдореЗрдВ рд░рд╛рдЬрд╛ рдкреЛрд░рд╕ рдХреЛ рд╣рд░рд╛рдпрд╛, рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рд╕реЗрдирд╛ рдиреЗ рдордирд╛ рдХрд░ рджрд┐рдпрд╛ред'
        },
        {
            era: 'рдкреНрд░рд╛рдЪреАрди рднрд╛рд░рдд',
            question: 'рдордЧрдз рд╕рд╛рдореНрд░рд╛рдЬреНрдп рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рд╕рдмрд╕реЗ рдмреЬреА рдмрд╛рдзрд╛ рдХреМрди рд╕рд╛ рдпреБрджреНрдз рдерд╛?',
            options: [
                'рдХрд▓рд┐рдВрдЧ рдпреБрджреНрдз', 
                'рдЕрд╡рдиреНрддрд┐ рдпреБрджреНрдз', 
                'рдкрд╛рдЯрд▓рд┐рдкреБрддреНрд░ рдХрд╛ рдпреБрджреНрдз', 
                'рдЧрд╛рдВрдзрд╛рд░ рдпреБрджреНрдз'
            ],
            correct: 0,
            reason: 'тЬЕ рд╕рд╣реА: рдХрд▓рд┐рдВрдЧ рдпреБрджреНрдз (261 рдИ.рдкреВ.) рдореЗрдВ рдЕрд╢реЛрдХ рдиреЗ рд╡рд┐рдЬрдп рддреЛ рдкрд╛рдИ, рдкрд░ рдирд░рд╕рдВрд╣рд╛рд░ рджреЗрдЦрдХрд░ рдмреМрджреНрдз рдзрд░реНрдо рдЕрдкрдирд╛ рд▓рд┐рдпрд╛ред'
        },

        // --- MEDIEVAL (рдордзреНрдпрдХрд╛рд▓) ---
        {
            era: 'рдордзреНрдпрдХрд╛рд▓реАрди рднрд╛рд░рдд',
            question: 'рддрд░рд╛рдИрди рдХреЗ рдкреНрд░рдердо рдпреБрджреНрдз (1191) рдореЗрдВ рдХрд┐рд╕рдиреЗ рдХрд┐рд╕рдХреЛ рд╣рд░рд╛рдпрд╛?',
            options: [
                'рдореБрд╣рдореНрдордж рдЧреМрд░реА рдиреЗ рдкреГрдереНрд╡реАрд░рд╛рдЬ рдХреЛ', 
                'рдкреГрдереНрд╡реАрд░рд╛рдЬ рдЪреМрд╣рд╛рди рдиреЗ рдореБрд╣рдореНрдордж рдЧреМрд░реА рдХреЛ', 
                'рдмрд╛рдмрд░ рдиреЗ рдЗрдмреНрд░рд╛рд╣рд┐рдо рд▓реЛрджреА рдХреЛ', 
                'рдЕрдХрдмрд░ рдиреЗ рд╣реЗрдореВ рдХреЛ'
            ],
            correct: 1,
            reason: 'тЬЕ рд╕рд╣реА: рдкреГрдереНрд╡реАрд░рд╛рдЬ рдиреЗ рдЧреМрд░реА рдХреЛ рд╣рд░рд╛рдпрд╛, рдкрд░ рджреВрд╕рд░реЗ рдпреБрджреНрдз (1192) рдореЗрдВ рдЧреМрд░реА рдиреЗ рдЬреАрдд рд▓рд┐рдпрд╛ред'
        },
        {
            era: 'рдордзреНрдпрдХрд╛рд▓реАрди рднрд╛рд░рдд',
            question: 'рджрд┐рд▓реНрд▓реА рд╕рд▓реНрддрдирдд рдкрд░ рдордВрдЧреЛрд▓ рдЖрдХреНрд░рдордгреЛрдВ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдХреНрдпрд╛ рдерд╛?',
            options: [
                'рдзрди рд▓реВрдЯрдирд╛', 
                'рдЗрд╕реНрд▓рд╛рдо рдХрд╛ рдкреНрд░рд╕рд╛рд░', 
                'рдЪрдВрдЧреЗреЫ рдЦрд╛рди рдХреА рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖рд╛', 
                'рд╡реНрдпрд╛рдкрд╛рд░ рдорд╛рд░реНрдЧ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг'
            ],
            correct: 0,
            reason: 'тЬЕ рд╕рд╣реА: рдордВрдЧреЛрд▓ рдореБрдЦреНрдпрддрдГ рд▓реВрдЯрдкрд╛рдЯ рдФрд░ рдзрди рдХреЗ рд▓рд┐рдП рдЖрддреЗ рдереЗ, рдЕрд▓рд╛рдЙрджреНрджреАрди рдЦрд┐рд▓рдЬреА рдиреЗ рдЙрдиреНрд╣реЗрдВ рд░реЛрдХрд╛ред'
        },
        {
            era: 'рдордзреНрдпрдХрд╛рд▓реАрди рднрд╛рд░рдд',
            question: 'рдкрд╛рдиреАрдкрдд рдХрд╛ рджреНрд╡рд┐рддреАрдп рдпреБрджреНрдз (1556) рдХрд┐рдирдХреЗ рдмреАрдЪ рд╣реБрдЖ?',
            options: [
                'рдмрд╛рдмрд░ vs рдЗрдмреНрд░рд╛рд╣рд┐рдо рд▓реЛрджреА', 
                'рдЕрдХрдмрд░ vs рд╣реЗрдореВ', 
                'рдФрд░рдВрдЧрдЬреЗрдм vs рд╢рд┐рд╡рд╛рдЬреА', 
                'рдореБрд╣рдореНрдордж рдЧреМрд░реА vs рдЬрдпрдЪрдВрдж'
            ],
            correct: 1,
            reason: 'тЬЕ рд╕рд╣реА: рдЕрдХрдмрд░ (рдмреИрд░рдо рдЦрд╛рди рдХреА рдорджрдж) рдиреЗ рд╣реЗрдореВ рдХреЛ рд╣рд░рд╛рдХрд░ рдореБрдЧрд▓ рд╕рд╛рдореНрд░рд╛рдЬреНрдп рдордЬрдмреВрдд рдХрд┐рдпрд╛ред'
        },

        // --- MODERN (рдЖрдзреБрдирд┐рдХ) ---
        {
            era: 'рдЖрдзреБрдирд┐рдХ рднрд╛рд░рдд',
            question: 'рдкреНрд▓рд╛рд╕реА рдХрд╛ рдпреБрджреНрдз (1757) рдХреНрдпреЛрдВ рд╣реБрдЖ?',
            options: [
                'рдЕрдВрдЧреНрд░реЗрдЬреЛрдВ рдХрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рд╡рд┐рд╕реНрддрд╛рд░', 
                'рд╕рд┐рд░рд╛рдЬ-рдЙрдж-рджреМрд▓рд╛ рдХрд╛ рдЕрдВрдЧреНрд░реЗрдЬреЛрдВ рд╕реЗ рд╡рд┐рд░реЛрдз', 
                'рдлреНрд░рд╛рдВрд╕реАрд╕рд┐рдпреЛрдВ рдХрд╛ рд╖рдбреНрдпрдВрддреНрд░', 
                'рдореАрд░ рдЬрд╛рдлрд░ рдХреА рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖рд╛'
            ],
            correct: 1,
            reason: 'тЬЕ рд╕рд╣реА: рд╕рд┐рд░рд╛рдЬ-рдЙрдж-рджреМрд▓рд╛ рдиреЗ рдЕрдВрдЧреНрд░реЗрдЬреЛрдВ рдХреЗ рдХрд┐рд▓реЗрдмрдВрджреА рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд┐рдпрд╛, рдкрд░ рдореАрд░ рдЬрд╛рдлрд░ рдХреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕рдШрд╛рдд рд╕реЗ рд╣рд╛рд░ рдЧрдПред'
        },
        {
            era: 'рдЖрдзреБрдирд┐рдХ рднрд╛рд░рдд',
            question: '1857 рдХреА рдХреНрд░рд╛рдВрддрд┐ рдХрд╛ рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдХрд╛рд░рдг рдХреНрдпрд╛ рдерд╛?',
            options: [
                'рдЕрдВрдЧреНрд░реЗрдЬреЛрдВ рдХреА рд▓реВрдЯ', 
                'рдЪрд░реНрдмреА рд╡рд╛рд▓реЗ рдХрд╛рд░рддреВрд╕ (Enfield rifles)', 
                'рдбреЛрдореЗрдирд┐рдпрди рдиреАрддрд┐', 
                'рдХрд┐рд╕рд╛рдиреЛрдВ рдкрд░ рдЕрддреНрдпрд╛рдЪрд╛рд░'
            ],
            correct: 1,
            reason: 'тЬЕ рд╕рд╣реА: рдЪрд░реНрдмреА (рд╕реБрдЕрд░/рдЧрд╛рдп рдХреА) рд╡рд╛рд▓реЗ рдХрд╛рд░рддреВрд╕ рдиреЗ рд╕реИрдирд┐рдХреЛрдВ рдХреА рдзрд╛рд░реНрдорд┐рдХ рднрд╛рд╡рдирд╛рдПрдБ рднрдбрд╝рдХрд╛ рджреАрдВред'
        },
        {
            era: 'рдЖрдзреБрдирд┐рдХ рднрд╛рд░рдд',
            question: 'рднрд╛рд░рдд-рдЪреАрди рдпреБрджреНрдз (1962) рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдерд╛?',
            options: [
                'рддрд┐рдмреНрдмрдд рд╡рд┐рд╡рд╛рдж', 
                'рд╕реАрдорд╛ рд╡рд┐рд╡рд╛рдж (рдореИрдХрдореЛрд╣рди рд░реЗрдЦрд╛)', 
                'рдХрд╢реНрдореАрд░ рдореБрджреНрджрд╛', 
                'рд╡реНрдпрд╛рдкрд╛рд░ рдЕрд╕рдВрддреБрд▓рди'
            ],
            correct: 1,
            reason: 'тЬЕ рд╕рд╣реА: рдЪреАрди рдиреЗ рдореИрдХрдореЛрд╣рди рд░реЗрдЦрд╛ рдкрд╛рд░ рдХреА рдФрд░ рднрд╛рд░рддреАрдп рдХреНрд╖реЗрддреНрд░ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд┐рдпрд╛ред'
        }
    ];

    // ---------- GAME STATE ----------
    let currentIndex = 0;
    let score = 0;
    let gameOver = false;
    let answered = false;

    const eraDisplay = document.getElementById('eraDisplay');
    const questionText = document.getElementById('questionText');
    const optionsBtns = document.querySelectorAll('.opt-btn');
    const scoreDisplay = document.getElementById('scoreDisplay');
    const resultMsg = document.getElementById('resultMsg');
    const nextBtn = document.getElementById('nextBtn');
    const restartBtn = document.getElementById('restartBtn');

    // ---------- FUNCTIONS ----------
    function loadQuestion(index) {
        const q = questions[index];
        if (!q) {
            // All questions done -> Win
            resultMsg.innerHTML = 'ЁЯОЙ рдЖрдкрдиреЗ рд╕рд╛рд░реЗ рд╕рд╡рд╛рд▓ рдЬреАрдд рд▓рд┐рдП! рдЖрдк рднрд╛рд░рдд рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реИрдВред ЁЯЗоЁЯЗ│';
            questionText.innerText = 'ЁЯПБ Game Complete!';
            document.querySelector('.question-box').style.borderLeft = '5px solid #00ff88';
            optionsBtns.forEach(btn => { btn.style.display = 'none'; });
            nextBtn.style.display = 'none';
            return;
        }

        eraDisplay.innerText = 'ЁЯФ╕ ' + q.era;
        questionText.innerText = q.question;

        // Fill options
        q.options.forEach((opt, i) => {
            optionsBtns[i].innerText = opt;
            optionsBtns[i].className = 'opt-btn';
            optionsBtns[i].style.display = 'block';
            optionsBtns[i].disabled = false;
        });

        // Reset result message and next button
        resultMsg.innerHTML = 'ЁЯЗоЁЯЗ│ Choose the correct war with its reason';
        nextBtn.style.display = 'none';
        answered = false;
        document.querySelector('.question-box').style.borderLeft = '5px solid #ff9933';
    }

    function handleOptionClick(e) {
        if (answered || gameOver) return;
        const btn = e.currentTarget;
        const selectedIdx = parseInt(btn.dataset.index);
        const q = questions[currentIndex];
        if (!q) return;

        const isCorrect = (selectedIdx === q.correct);
        answered = true;

        // Disable all buttons
        optionsBtns.forEach(b => { b.disabled = true; b.classList.add('disabled'); });

        // Show correct/wrong
        optionsBtns.forEach((b, i) => {
            if (i === q.correct) b.classList.add('correct');
            else if (i === selectedIdx && !isCorrect) b.classList.add('wrong');
        });

        if (isCorrect) {
            score += 10;
            scoreDisplay.innerText = score;
            resultMsg.innerHTML = 'тЬЕ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА! ' + q.reason;
        } else {
            resultMsg.innerHTML = 'тЭМ рдЧрд▓рдд! рд╕рд╣реА рдЙрддреНрддрд░ рдерд╛: ' + q.options[q.correct] + '<br/>' + q.reason;
        }

        // Show next button
        nextBtn.style.display = 'inline-block';
    }

    function nextQuestion() {
        currentIndex++;
        if (currentIndex >= questions.length) {
            // Game won
            loadQuestion(currentIndex); // calls win condition
            return;
        }
        loadQuestion(currentIndex);
    }

    function restartGame() {
        currentIndex = 0;
        score = 0;
        gameOver = false;
        scoreDisplay.innerText = '0';
        resultMsg.innerHTML = 'ЁЯЗоЁЯЗ│ Choose the correct war with its reason';
        optionsBtns.forEach(b => { b.style.display = 'block'; b.disabled = false; b.className = 'opt-btn'; });
        nextBtn.style.display = 'none';
        document.querySelector('.question-box').style.borderLeft = '5px solid #ff9933';
        loadQuestion(0);
    }

    // ---------- EVENT LISTENERS ----------
    optionsBtns.forEach(btn => {
        btn.addEventListener('click', handleOptionClick);
    });

    nextBtn.addEventListener('click', nextQuestion);
    restartBtn.addEventListener('click', restartGame);

    // ---------- START ----------
    loadQuestion(0);
</script>

</body>
</html>

Game Source: ЁЯЗоЁЯЗ│ Indian History - War Quiz

Creator: AtomicFox99

Libraries: none

Complexity: complex (423 lines, 17.2 KB)

The full source code is displayed above on this page.

Remix Instructions

To remix this game, copy the source code above and modify it. Add a ARCADELAB header at the top with "remix_of: indian-history-war-quiz-atomicfox99" to link back to the original. Then publish at arcadelab.ai/publish.