🎮ArcadeLab

各国英语口音知识测验 | 无需听力

by RocketGecko40
418 lines17.2 KB
▶ Play
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
    <title>各国英语口音知识测验 | 无需听力</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            background: linear-gradient(135deg, #f0f4fa 0%, #d9e2ef 100%);
            font-family: 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
            padding: 2rem 1rem;
            min-height: 100vh;
        }

        .container {
            max-width: 1000px;
            margin: 0 auto;
            background: white;
            border-radius: 2rem;
            box-shadow: 0 25px 45px -12px rgba(0, 0, 0, 0.25);
            overflow: hidden;
            padding: 1.8rem 2rem 2.5rem;
        }

        h1 {
            font-size: 1.8rem;
            background: linear-gradient(120deg, #1e3c72, #2a5298);
            background-clip: text;
            -webkit-background-clip: text;
            color: transparent;
            margin-bottom: 0.3rem;
        }

        .badge {
            display: inline-block;
            background: #eef2ff;
            padding: 0.2rem 0.9rem;
            border-radius: 30px;
            font-size: 0.8rem;
            font-weight: 500;
            color: #1e4a76;
            margin: 0.5rem 0 1.2rem 0;
        }

        .intro {
            background: #f8fafc;
            padding: 1rem 1.4rem;
            border-radius: 1.2rem;
            margin-bottom: 2rem;
            border-left: 6px solid #3b82f6;
            color: #2c3e66;
            line-height: 1.4;
        }

        .question {
            background: #ffffff;
            border-radius: 1.5rem;
            margin-bottom: 1.8rem;
            padding: 1.3rem 1.5rem 1.6rem;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
            border: 1px solid #e4e9f2;
            transition: all 0.2s;
        }

        .q-header {
            display: flex;
            align-items: baseline;
            gap: 12px;
            flex-wrap: wrap;
            margin-bottom: 1rem;
        }

        .q-num {
            background: #1e3a8a;
            color: white;
            width: 32px;
            height: 32px;
            border-radius: 40px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-weight: bold;
            font-size: 1rem;
        }

        .q-text {
            font-size: 1.1rem;
            font-weight: 600;
            color: #0f2b3d;
            line-height: 1.4;
            flex: 1;
        }

        .feature-tag {
            background: #f1f5f9;
            border-radius: 40px;
            padding: 0.2rem 0.8rem;
            font-size: 0.7rem;
            font-weight: 500;
            color: #2563eb;
            letter-spacing: 0.3px;
        }

        .options {
            display: flex;
            flex-direction: column;
            gap: 12px;
            margin: 1.2rem 0 1rem 0;
        }

        .option {
            display: flex;
            align-items: center;
            gap: 14px;
            padding: 8px 16px;
            background: #fafcff;
            border-radius: 60px;
            border: 1px solid #e0e7f0;
            cursor: pointer;
            transition: 0.1s;
        }

        .option:hover {
            background: #eef3ff;
            border-color: #bdd3ff;
        }

        input[type="radio"] {
            width: 1.2rem;
            height: 1.2rem;
            accent-color: #3b82f6;
            flex-shrink: 0;
        }

        label {
            font-size: 0.95rem;
            font-weight: 500;
            color: #1f2e45;
            cursor: pointer;
            flex: 1;
        }

        .feedback {
            margin-top: 14px;
            padding: 10px 16px;
            border-radius: 20px;
            font-size: 0.85rem;
            display: none;
            line-height: 1.4;
        }

        .feedback.correct {
            background: #e1f7ed;
            color: #0a5b2e;
            border-left: 4px solid #2ecc71;
            display: block;
        }

        .feedback.wrong {
            background: #ffe9e7;
            color: #b91c1c;
            border-left: 4px solid #ef4444;
            display: block;
        }

        .btn-submit {
            background: #1e3a8a;
            color: white;
            border: none;
            padding: 12px 28px;
            font-size: 1rem;
            font-weight: 600;
            border-radius: 60px;
            width: 100%;
            cursor: pointer;
            transition: 0.2s;
            margin: 16px 0 10px;
            box-shadow: 0 2px 6px rgba(0,0,0,0.1);
        }

        .btn-submit:hover {
            background: #2563eb;
            transform: translateY(-2px);
        }

        .scorecard {
            background: #0f172a;
            color: white;
            text-align: center;
            padding: 1rem;
            border-radius: 2rem;
            margin-top: 1.5rem;
            font-weight: bold;
            font-size: 1.2rem;
        }

        hr {
            margin: 1.8rem 0 1rem;
            border: none;
            height: 1px;
            background: #e2e8f0;
        }

        .legend {
            font-size: 0.75rem;
            color: #4b556b;
            text-align: center;
            margin-top: 1.2rem;
        }

        @media (max-width: 700px) {
            .container {
                padding: 1.2rem;
            }
            .q-text {
                font-size: 1rem;
            }
        }
    </style>
</head>
<body>
<div class="container">
    <h1>🗣️ 世界英语口音 · 特征推理测验</h1>
    <div class="badge">📖 基于发音规律 · 语法结构 · 地道用语</div>
    <div class="intro">
        🌟 下方每道题描述一种英语口音的典型特征(语音、语法或词汇),请根据你从视频/学习中掌握的知识,选出最符合的口音国家或地区。<br>
        💡 即使没有音频,你也能通过关键线索成为“口音侦探”。
    </div>

    <form id="quizForm">
        <!-- 题1: 印度英语 → 典型词汇 do the needful & 现在进行时表将来 -->
        <div class="question" data-qid="1">
            <div class="q-header">
                <span class="q-num">1</span>
                <span class="q-text">说话人常说 “Please do the needful.”,“I am having a car.”,并且习惯把 yes 念成 “yace”,节奏感很强,每个音节时长均匀。这是哪种英语口音?</span>
                <span class="feature-tag">词汇 + 节奏</span>
            </div>
            <div class="options" data-correct="indian">
                <div class="option"><input type="radio" name="q1" value="indian"> <label>🇮🇳 印度英语</label></div>
                <div class="option"><input type="radio" name="q1" value="singapore"> <label>🇸🇬 新加坡英语</label></div>
                <div class="option"><input type="radio" name="q1" value="nigerian"> <label>🇳🇬 尼日利亚英语</label></div>
                <div class="option"><input type="radio" name="q1" value="british"> <label>🇬🇧 英国英语</label></div>
            </div>
            <div class="feedback" id="fb1"></div>
        </div>

        <!-- 题2: 日本英语 → /l/ & /r/ 混淆,辅音后加元音 -->
        <div class="question" data-qid="2">
            <div class="q-header">
                <span class="q-num">2</span>
                <span class="q-text">该口音下,英语单词 “light” 听起来像 “right”,“very” 有时接近 “bery”,并且常会在辅音结尾后添加轻微元音(如 “good” 说成 “goodo”)。这是典型哪个国家的英语发音?</span>
                <span class="feature-tag">音系干扰</span>
            </div>
            <div class="options" data-correct="japan">
                <div class="option"><input type="radio" name="q2" value="china"> <label>🇨🇳 中国英语</label></div>
                <div class="option"><input type="radio" name="q2" value="korea"> <label>🇰🇷 韩国英语</label></div>
                <div class="option"><input type="radio" name="q2" value="japan"> <label>🇯🇵 日本英语</label></div>
                <div class="option"><input type="radio" name="q2" value="thai"> <label>🇹🇭 泰国英语</label></div>
            </div>
            <div class="feedback" id="fb2"></div>
        </div>

        <!-- 题3: 法国英语 → /θ/→/z/, /ð/→/z/,重音后移 -->
        <div class="question" data-qid="3">
            <div class="q-header">
                <span class="q-num">3</span>
                <span class="q-text">“I think this is very interesting” 会被读成 “I zink zis is wery interesting”,并且单词重音常常落在最后一个音节上(如 “teleVIsion”)。这是哪里的英语口音特征?</span>
                <span class="feature-tag">辅音替换 + 韵律</span>
            </div>
            <div class="options" data-correct="french">
                <div class="option"><input type="radio" name="q3" value="german"> <label>🇩🇪 德国英语</label></div>
                <div class="option"><input type="radio" name="q3" value="spanish"> <label>🇪🇸 西班牙英语</label></div>
                <div class="option"><input type="radio" name="q3" value="french"> <label>🇫🇷 法国英语</label></div>
                <div class="option"><input type="radio" name="q3" value="italian"> <label>🇮🇹 意大利英语</label></div>
            </div>
            <div class="feedback" id="fb3"></div>
        </div>

        <!-- 题4: 澳大利亚英语 → 升调 (uptalk),元音 shift “day”说“die”,俚语 mate -->
        <div class="question" data-qid="4">
            <div class="q-header">
                <span class="q-num">4</span>
                <span class="q-text">句子结尾常用升调(听起来像在提问),把 “today” 发成 “to die”,经常使用 “G’day mate”,并且 “night” 听起来像 “noight”。这是哪个国家的英语?</span>
                <span class="feature-tag">语调 + 元音漂移</span>
            </div>
            <div class="options" data-correct="australian">
                <div class="option"><input type="radio" name="q4" value="nz"> <label>🇳🇿 新西兰英语</label></div>
                <div class="option"><input type="radio" name="q4" value="australian"> <label>🇦🇺 澳大利亚英语</label></div>
                <div class="option"><input type="radio" name="q4" value="southafrican"> <label>🇿🇦 南非英语</label></div>
                <div class="option"><input type="radio" name="q4" value="canadian"> <label>🇨🇦 加拿大英语</label></div>
            </div>
            <div class="feedback" id="fb4"></div>
        </div>

        <!-- 题5: 德国英语 → /w/ & /v/ 混淆,缺少进行时态,词尾清辅音强化 -->
        <div class="question" data-qid="5">
            <div class="q-header">
                <span class="q-num">5</span>
                <span class="q-text">说话人将 “We will visit Vienna” 说成 “Ve vill visit Vienna”,而且很少使用进行时(常说 “I live in Berlin since 2022” 而非 have been living)。这更可能来自哪个国家?</span>
                <span class="feature-tag">辅音混淆 + 语法迁移</span>
            </div>
            <div class="options" data-correct="german">
                <div class="option"><input type="radio" name="q5" value="dutch"> <label>🇳🇱 荷兰英语</label></div>
                <div class="option"><input type="radio" name="q5" value="german"> <label>🇩🇪 德国英语</label></div>
                <div class="option"><input type="radio" name="q5" value="russian"> <label>🇷🇺 俄罗斯英语</label></div>
                <div class="option"><input type="radio" name="q5" value="polish"> <label>🇵🇱 波兰英语</label></div>
            </div>
            <div class="feedback" id="fb5"></div>
        </div>
    </form>

    <button class="btn-submit" id="submitQuiz">✍️ 提交测试 & 查看知识掌握度</button>
    <div id="scorePanel" class="scorecard" style="display: none;"></div>
    <hr />
    <div class="legend">
        🧠 教师提示:每道题的解析中都包含了对应的核心特征,建议结合视频内容复习口音辨别要点。
    </div>
</div>

<script>
    // 获取正确值(从每个question中的.options里获取data-correct)
    function getCorrectValue(questionDiv) {
        const optionsDiv = questionDiv.querySelector('.options');
        return optionsDiv ? optionsDiv.getAttribute('data-correct') : null;
    }

    // 获取选项显示文本 (用于反馈展示)
    function getCountryFromValue(value) {
        const map = {
            indian: '印度英语', singapore: '新加坡英语', nigerian: '尼日利亚英语', british: '英国英语',
            japan: '日本英语', china: '中国英语', korea: '韩国英语', thai: '泰国英语',
            french: '法国英语', german: '德国英语', spanish: '西班牙英语', italian: '意大利英语',
            australian: '澳大利亚英语', nz: '新西兰英语', southafrican: '南非英语', canadian: '加拿大英语',
            dutch: '荷兰英语', russian: '俄罗斯英语', polish: '波兰英语'
        };
        return map[value] || value;
    }

    const submitBtn = document.getElementById('submitQuiz');
    const scorePanel = document.getElementById('scorePanel');

    function evaluateQuiz() {
        const questions = document.querySelectorAll('.question');
        let totalScore = 0;
        const total = questions.length;

        questions.forEach((q, idx) => {
            const qid = idx + 1;
            const correctKey = getCorrectValue(q);
            const selectedRadio = q.querySelector('input[type="radio"]:checked');
            const feedbackDiv = document.getElementById(`fb${qid}`);
            if (!feedbackDiv) return;

            // 重置样式
            feedbackDiv.classList.remove('correct', 'wrong');
            feedbackDiv.style.display = 'none';

            if (!selectedRadio) {
                feedbackDiv.innerHTML = '⚠️ 未作答,请结合口音特征再选一次。';
                feedbackDiv.classList.add('wrong');
                feedbackDiv.style.display = 'block';
                return;
            }

            const userValue = selectedRadio.value;
            if (userValue === correctKey) {
                totalScore++;
                // 给正确反馈并附加简短解释
                feedbackDiv.innerHTML = `✅ 正确!${getCountryFromValue(correctKey)} 的确具备所述特征。`;
                feedbackDiv.classList.add('correct');
                feedbackDiv.style.display = 'block';
            } else {
                let correctCountry = getCountryFromValue(correctKey);
                let extraHint = '';
                if (correctKey === 'indian') extraHint = '(“do the needful”是印度英语特有,“I am having”动词的进行时用法)';
                else if (correctKey === 'japan') extraHint = '(/l/和/r/不分、添加元音是日语母语者的典型迁移)';
                else if (correctKey === 'french') extraHint = '(法语没有/θ/音,重音模式也不同)';
                else if (correctKey === 'australian') extraHint = '(澳大利亚英语高升调和元音变化最具辨识度)';
                else if (correctKey === 'german') extraHint = '(/w/和/v/混淆、缺少进行时是德语影响)';
                
                feedbackDiv.innerHTML = `❌ 错误。正确答案是 ${correctCountry}。 ${extraHint}<br>📖 建议重温视频中关于该口音的关键片段。`;
                feedbackDiv.classList.add('wrong');
                feedbackDiv.style.display = 'block';
            }
        });

        // 显示总分面板
        scorePanel.style.display = 'block';
        let perfectMessage = totalScore === total ? ' 🎉 完美!你是口音特征专家!' : ' 📚 复习一下视频里的对比总结,下次更厉害。';
        scorePanel.innerHTML = `🏆 得分: ${totalScore} / ${total} ${perfectMessage}`;
        scorePanel.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
    }

    submitBtn.addEventListener('click', (e) => {
        e.preventDefault();
        evaluateQuiz();
    });

    // 让点击整个option都能选中radio的小优化
    document.querySelectorAll('.option').forEach(opt => {
        opt.addEventListener('click', (e) => {
            const radio = opt.querySelector('input[type="radio"]');
            if (radio && !radio.checked && e.target.tagName !== 'INPUT') {
                radio.checked = true;
                // 触发一个小变化(可选)
                radio.dispatchEvent(new Event('change'));
            }
        });
    });
</script>
</body>
</html>

Game Source: 各国英语口音知识测验 | 无需听力

Creator: RocketGecko40

Libraries: none

Complexity: complex (418 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: game-rocketgecko40-mqcfu2ps" to link back to the original. Then publish at arcadelab.ai/publish.