sozday-dlya-menya-kuiz-sayt/qimaq-kaganaty.html

402 lines
28 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- no-design-system -->
<!DOCTYPE html>
<html lang="kk" data-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>ҰБТ: Қимақ қағанаты</title>
<link rel="stylesheet" href="design-system/kt-ai-fonts.css">
<link rel="stylesheet" href="design-system/kt-ai-tokens.css">
<link rel="stylesheet" href="design-system/kt-ai-components.css">
<link rel="stylesheet" href="design-system/kt-ai-page.css">
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🏹</text></svg>">
<style>
.kt-ai-hero { background: linear-gradient(135deg, var(--kt-ai-bg-soft) 0%, var(--kt-ai-bg) 100%); }
.question-card { margin-bottom: var(--kt-ai-space-6); }
.options-grid { display: grid; gap: var(--kt-ai-space-3); margin-top: var(--kt-ai-space-5); }
.option-btn { text-align: left; justify-content: flex-start; padding-left: var(--kt-ai-space-4); }
.option-btn::before { content: ''; width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--kt-ai-fg-muted); margin-right: var(--kt-ai-space-3); flex-shrink: 0; display: inline-block; vertical-align: middle; }
.option-btn[data-selected="true"]::before { background: var(--kt-ai-primary); border-color: var(--kt-ai-primary); }
.option-btn.correct { background: #dcfce7 !important; border-color: #22c55e !important; color: #166534; }
.option-btn.wrong { background: #fee2e2 !important; border-color: #ef4444 !important; color: #991b1b; }
.score-display { font-size: var(--kt-ai-text-3xl); font-weight: var(--kt-ai-weight-bold); color: var(--kt-ai-primary); margin: var(--kt-ai-space-6) 0; }
.progress-bar { height: 8px; background: var(--kt-ai-bg-soft); border-radius: var(--kt-ai-radius-full); overflow: hidden; margin-bottom: var(--kt-ai-space-5); }
.progress-fill { height: 100%; background: var(--kt-ai-primary); transition: width 0.3s ease; }
.hidden { display: none; }
.fade-in { animation: fadeIn 0.4s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.timer-badge { display: inline-flex; align-items: center; gap: var(--kt-ai-space-2); padding: var(--kt-ai-space-2) var(--kt-ai-space-4); background: var(--kt-ai-bg-soft); border-radius: var(--kt-ai-radius-lg); font-weight: var(--kt-ai-weight-semibold); }
.timer-badge.warning { background: #fef3c7; color: #92400e; }
.timer-badge.danger { background: #fee2e2; color: #991b1b; }
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--kt-ai-space-4); margin-bottom: var(--kt-ai-space-6); }
.stat-card { text-align: center; padding: var(--kt-ai-space-4); background: var(--kt-ai-bg-soft); border-radius: var(--kt-ai-radius-xl); }
.stat-value { font-size: var(--kt-ai-text-2xl); font-weight: var(--kt-ai-weight-bold); color: var(--kt-ai-primary); }
.stat-label { font-size: var(--kt-ai-text-sm); color: var(--kt-ai-fg-muted); }
.welcome-text { font-size: var(--kt-ai-text-lg); color: var(--kt-ai-fg-muted); margin-bottom: var(--kt-ai-space-3); }
.name-input { max-width: 400px; margin: var(--kt-ai-space-6) auto; }
.answer-feedback { margin-top: var(--kt-ai-space-4); padding: var(--kt-ai-space-3); border-radius: var(--kt-ai-radius-lg); font-weight: var(--kt-ai-weight-medium); }
.answer-feedback.correct { background: #dcfce7; color: #166534; }
.answer-feedback.wrong { background: #fee2e2; color: #991b1b; }
</style>
</head>
<body>
<header class="kt-ai-pagehead">
<div class="kt-ai-wrap kt-ai-pagehead-in">
<strong>🇰🇿 ҰБТ: Қазақстан тарихы</strong>
<span class="kt-ai-spacer"></span>
<span id="header-user-name" style="color: var(--kt-ai-primary); font-weight: var(--kt-ai-weight-semibold);"></span>
<span class="kt-ai-spacer"></span>
<a class="kt-ai-btn" data-variant="ghost" href="index.html">Басқа тест</a>
<button class="kt-ai-btn" data-variant="ghost" onclick="showStartScreen()">Қайта бастау</button>
</div>
</header>
<section class="kt-ai-hero" data-align="center">
<div class="kt-ai-wrap">
<h1>Қимақ қағанаты</h1>
<p class="kt-ai-hero-sub">Біліміңді тексер және қайталауды ұмытпа!</p>
<div id="login-section" style="max-width: 400px; margin: var(--kt-ai-space-6) auto;">
<div class="kt-ai-field">
<label>Аты-жөніңізді енгізіңіз:</label>
<input class="kt-ai-input" id="user-name" placeholder="Мысалы: Алиев Арман" type="text">
</div>
<button class="kt-ai-btn" data-variant="primary" data-size="lg" onclick="startQuiz()" style="margin-top: var(--kt-ai-space-4);">Тестілеуді бастау</button>
</div>
<div id="welcome-section" class="hidden">
<p class="welcome-text">Қош келдіңіз, <strong id="user-display-name" style="color: var(--kt-ai-primary); font-weight: var(--kt-ai-weight-bold);"></strong>!</p>
<button class="kt-ai-btn" data-variant="primary" data-size="lg" onclick="startQuiz()">Тестілеуді бастау</button>
</div>
</div>
</section>
<section id="quiz-section" class="kt-ai-section hidden">
<div class="kt-ai-wrap" data-width="narrow">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--kt-ai-space-4);">
<div class="timer-badge" id="timer">
⏱️ <span id="timer-value">00:00</span>
</div>
<div style="color: var(--kt-ai-fg-muted);">Сұрақ <span id="q-current">1</span> / <span id="q-total">45</span></div>
</div>
<div class="progress-bar">
<div class="progress-fill" id="progress"></div>
</div>
<div class="kt-ai-card question-card fade-in">
<h2 id="question-text" style="margin-bottom: var(--kt-ai-space-5); font-size: var(--kt-ai-text-xl);">Сұрақ мәтіні</h2>
<div class="options-grid" id="options-container"></div>
<div id="answer-feedback" class="answer-feedback hidden"></div>
</div>
<div style="display: flex; gap: var(--kt-ai-space-3); justify-content: space-between; margin-top: var(--kt-ai-space-6);">
<button class="kt-ai-btn" data-variant="ghost" id="prev-btn" onclick="prevQuestion()">← Артқа</button>
<button class="kt-ai-btn" data-variant="primary" id="next-btn" onclick="nextQuestion()">Алға →</button>
</div>
</div>
</section>
<section id="result-section" class="kt-ai-section hidden">
<div class="kt-ai-wrap" data-width="narrow">
<div class="kt-ai-card" style="text-align: center">
<h2>Тестілеу аяқталды!</h2>
<div class="stats-grid">
<div class="stat-card">
<div class="stat-value" id="correct-count">0</div>
<div class="stat-label">Дұрыс жауап</div>
</div>
<div class="stat-card">
<div class="stat-value" id="wrong-count">0</div>
<div class="stat-label">Қате жауап</div>
</div>
<div class="stat-card">
<div class="stat-value" id="percentage">0%</div>
<div class="stat-label">Нәтиже</div>
</div>
</div>
<div class="score-display" id="score">0 / 45</div>
<p id="score-message" style="color: var(--kt-ai-fg-muted); margin-bottom: var(--kt-ai-space-6); font-size: var(--kt-ai-text-lg);"></p>
<div class="kt-ai-hero-actions">
<button class="kt-ai-btn" data-variant="primary" data-size="lg" onclick="showStartScreen()">Қайта тапсыру</button>
<a class="kt-ai-btn" data-variant="ghost" data-size="lg" href="index.html" style="margin-left: var(--kt-ai-space-3);">Басқа тест</a>
</div>
</div>
</div>
</section>
<footer class="kt-ai-wrap kt-ai-pagefoot">
<span>ҰБТ 2027 жыл | Айбек Бахытжанұлы</span>
<span class="kt-ai-spacer"></span>
<span>Сәттілік тілейміз!</span>
</footer>
<script>
const QUESTIONS = [
{ q: "Қимақтар туралы мәліметтер кездесетін деректерді анықтаңыз.", options: ["Араб, парсы, түркі және қытай деректерінде", "Рим, грек және үнді деректерінде", "Тек араб деректерінде", "Тек қытай деректерінде"], correct: 0 },
{ q: "Қимақтар бастапқыда қай аймақта өмір сүрген?", options: ["Сырдария бойында", "Батыс Моңғолия даласында", "Жетісу жерінде", "Еділ бойында"], correct: 1 },
{ q: "Қимақтар Батыс Моңғолиядан Алтай таулары мен Ертіс бойына қай ғасырда көшті?", options: ["VI ғасырдың ортасында", "VIII ғасырдың басында", "VII ғасырдың ортасында", "IX ғасырдың соңында"], correct: 2 },
{ q: "Қимақ тайпасының өз алдына бөлектенуі қай оқиғамен байланысты болды?", options: ["Ұйғыр қағанатының құрылуымен", "Қарахан мемлекетінің құрылуымен", "Қыпшақ хандығының құрылуымен", "Батыс Түрік қағанатының құлауымен"], correct: 3 },
{ q: "Қимақ тайпасының өз алдына бөлектенуі қай жылы іске асты?", options: ["656 жылы", "603 жылы", "840 жылы", "751 жылы"], correct: 0 },
{ q: "VIII–IX ғасырларда Солтүстік-шығыс Қазақстан аумағында не қалыптасты?", options: ["Қарахан мемлекеті", "Қимақ тайпалар одағы", "Түргеш қағанаты", "Оғыз мемлекеті"], correct: 1 },
{ q: "Қимақтар VIII–IX ғасырларда қай аумаққа берік орнықты?", options: ["Сырдариядан Аралға дейін", "Еділден Жайыққа дейін", "Ертістен Жоңғар қақпасына дейін", "Алтайдан Каспий теңізіне дейін"], correct: 2 },
{ q: "Кейін қимақтар батыста қай өзенге дейін жылжыды?", options: ["Сырдарияға", "Ілеге", "Есілге", "Жайыққа"], correct: 3 },
{ q: "Қимақ тайпасының басшысы қандай лауазым иеленді?", options: ["Шадтүтүк", "Қаған", "Сұлтан", "Ябғу"], correct: 0 },
{ q: "«Шадтүтүк» лауазымының мағынасы қандай?", options: ["Жоғарғы қолбасшы", "Билеуші көсем", "Қала басқарушысы", "Әскербасы"], correct: 1 },
{ q: "VIII ғасырдың соңында Қимақ бірлестігіне қай тайпалар көптеп енді?", options: ["Оғыздар", "Түргештер", "Қыпшақтар", "Қарлұқтар"], correct: 2 },
{ q: "Қимақ қағанатының құрылуы қай кезеңде аяқталды?", options: ["VIII ғасырдың басында", "X ғасырдың ортасында", "VII ғасырдың соңында", "IX ғасырдың ортасында"], correct: 3 },
{ q: "840 жылы Қимақтарға қандай оқиғадан кейін тайпалардың бір бөлігі қосылды?", options: ["Ұйғыр қағанаты құлағаннан кейін", "Батыс Түрік қағанаты құлағаннан кейін", "Қарахан мемлекеті әлсірегеннен кейін", "Оғыз мемлекеті ыдырағаннан кейін"], correct: 0 },
{ q: "Қимақ тайпалық одағының басшысы қандай лауазым иеленді?", options: ["Шадтүтүк", "Қаған", "Тархан", "Ябғу"], correct: 1 },
{ q: "Қимақтардың батысқа қоныс аударуына әсер еткен себептердің бірі:", options: ["Теңіз саудасының дамуы", "Егіншіліктің әлсіреуі", "Жайылым қажеттілігі", "Қалалардың көбеюі"], correct: 2 },
{ q: "Қимақтардың батысқа қоныс аударуына әсер еткен сыртқы күштердің бірі:", options: ["Қарахандықтардың қысымы", "Ұйғыр қағанатының қысымы", "Оғыздардың қысымы", "Түргештердің қысымы"], correct: 1 },
{ q: "Қимақтардың қоныс аударуына байланысты қақтығысқан халықтардың бірі:", options: ["Енисей қырғыздары", "Қарақытайлар", "Наймандар", "Үйсіндер"], correct: 0 },
{ q: "Араб ғалымы әл-Идриси қимақтардың қанша қаласын атаған?", options: ["7", "10", "16", "20"], correct: 2 },
{ q: "Әл-Идриси атаған қимақ қалаларының басым бөлігі қай аймақтарда орналасқан?", options: ["Сырдария мен Арал маңында", "Ертіс пен Алакөл аймағында", "Іле мен Шу бойында", "Еділ мен Каспий маңында"], correct: 1 },
{ q: "Қимақтардың негізгі шаруашылығы қандай болды?", options: ["Суармалы егіншілік", "Балық аулау", "Қолөнер", "Көшпелі мал шаруашылығы"], correct: 3 },
{ q: "Қимақ қағанының Ертіс бойындағы ордасы орналасқан қала:", options: ["Карантия", "Тараз", "Имақия", "Баласағұн"], correct: 2 },
{ q: "Қимақтардың екінші астанасы қай қала болды?", options: ["Имақия", "Карантия", "Отырар", "Суяб"], correct: 1 },
{ q: "Карантия қаласы қай аймақта орналасқан?", options: ["Алакөл маңында", "Ертістің жоғарғы ағысында", "Сырдария бойында", "Жайық бойында"], correct: 0 },
{ q: "Қимақтар қай халықпен бейбіт қарым-қатынас орнатты?", options: ["Қарахандықтармен", "Енисей қырғыздарымен", "Оғыздармен", "Ұйғырлармен"], correct: 2 },
{ q: "Қимақ жеріне бірнеше рет әскери жорық жасап, Ертіске дейін жеткендер:", options: ["Оғыздар", "Қарахандықтар", "Енисей қырғыздары", "Ұйғырлар"], correct: 1 },
{ q: "IX ғасырдың ортасына қарай қимақтар қай аралықтағы тайпаларды біріктірді?", options: ["Сырдариядан Каспийге дейін", "Алтайдан Жайыққа дейін", "Ертістен Аралға дейін", "Жетісудан Еділге дейін"], correct: 1 },
{ q: "Х ғасырдың басында Қимақ қағанатының шекарасында қандай жағдай орнады?", options: ["Үздіксіз соғыс басталды", "Мемлекет ыдырады", "Тыныштық орнады", "Қағанат әлсіреді"], correct: 2 },
{ q: "Қимақтармен сауда жолдарының болғанын дәлелдейтін бағыттардың бірі:", options: ["Еділ бойы мен Орталық Азиядан", "Үндістан мен Қытайдан ғана", "Еуропа мен Византиядан", "Иран мен Арабиядан ғана"], correct: 0 },
{ q: "Ұлы Жібек жолы қай жердегі қимақ қағанының ордасына дейін жеткен?", options: ["Алакөлдегі Карантияға", "Ертістегі қимақ қағанының ордасына", "Жайықтағы қимақ қаласына", "Алтайдағы бекініске"], correct: 1 },
{ q: "Қимақ мемлекетінің ыдырауына алып келген ішкі себептердің бірі:", options: ["Сауда жолдарының тоқтауы", "Егіншіліктің дамуы", "Жеке жер иеліктері билеушілерінің дербестікке ұмтылуы", "Қалалардың жойылуы"], correct: 2 },
{ q: "Қимақ мемлекетінің ыдырауына әсер еткен қыпшақтарға қатысты себеп:", options: ["Қыпшақтардың жаңа дін қабылдауы", "Қыпшақ көсемдерінің дербес мемлекет үшін күресі", "Қыпшақтардың батысқа көшуден бас тартуы", "Қыпшақтардың егіншілікке көшуі"], correct: 1 },
{ q: "Қимақ қағанатының құлдырау белгілері қай кезден байқала бастады?", options: ["IX ғасырдың басынан", "X ғасырдың екінші жартысынан", "XI ғасырдың ортасынан", "VIII ғасырдың соңынан"], correct: 1 },
{ q: "Қимақ қағанаты қай ғасырдың басында өмір сүруін тоқтатты?", options: ["IX ғасырдың басында", "X ғасырдың басында", "XI ғасырдың басында", "XII ғасырдың басында"], correct: 2 },
{ q: "Қимақ қағанатының жер аумағы кейін кімдерге өтті?", options: ["Оғыздарға", "Қарлұқтарға", "Қарахандықтарға", "Қыпшақтарға"], correct: 3 },
{ q: "Қимақ қағаны қандай қызмет атқарды?", options: ["Қағанаттың жоғарғы бас қолбасшысы болды", "Тек діни қызмет атқарды", "Сауда жолдарын ғана басқарды", "Қалалардың құрылысын басқарды"], correct: 0 },
{ q: "Қаған жер иеліктерін кімдерге үлестірді?", options: ["Саудагерлерге", "Тайпа көсемдеріне", "Диқандарға", "Қолөнершілерге"], correct: 1 },
{ q: "Тайпа көсемдеріне жер иеліктері қандай негізде берілді?", options: ["Облы байлығына қарай", "Жасына қарай", "Әскери қызметте сіңірген еңбегіне қарай", "Шыққан тегіне ғана қарай"], correct: 2 },
{ q: "Қимақ халқы қалай бөлінді?", options: ["Облыстарға", "Ұлыстарға", "Жүздерге", "Иеліктерге"], correct: 3 },
{ q: "Иелік билеушілері қаған әскеріне не беріп отырды?", options: ["Белгіленген мөлшерде жасақ", "Азық-түлік салығын ғана", "Малдың жартысын", "Сауда салығын"], correct: 0 },
{ q: "IX ғасырдағы қимақ билеушісінің әскері қандай жасақ ретінде құрылды?", options: ["Жаяу әскер", "Рулар жасағы", "Қала жасағы", "Құлдар жасағы"], correct: 1 },
{ q: "IX ғасырдағы қимақ әскерінің негізгі бөлігі кімдерден тұрды?", options: ["Жаяу әскерлерден", "Садақшылардан ғана", "Салт аттылардан", "Теңізшілерден"], correct: 2 },
{ q: "Қимақ қағанатының құрамына қанша тайпа кірді?", options: ["5 тайпа", "6 тайпа", "7 тайпа", "9 тайпа"], correct: 2 },
{ q: "Қимақ қағанаты құрамындағы сан жағынан басым тайпа:", options: ["Оғыздар", "Қыпшақтар", "Қарлұқтар", "Түргештер"], correct: 1 },
{ q: "Қимақтардың көне түркі жазуын қолданғанын дәлелдейтін археологиялық дерек қай жерлерден табылған?", options: ["Сырдария мен Аралдан", "Еділ мен Каспийден", "Ертіс бойы мен Тарбағатай тауларынан", "Іле мен Шу аңғарларынан"], correct: 2 },
{ q: "Қимақтардың діни наным-сенімдерін дұрыс көрсетіңіз.", options: ["Буддизмді ұстанып, монастырьлар салды", "Исламды мемлекеттік дін етті", "Христиан дінін қабылдады", "Тәңірге табынып, ата-баба рухына сиынды"], correct: 3 }
];
let currentQuestion = 0;
let answers = {};
let quizStarted = false;
let timerInterval = null;
let seconds = 0;
let userName = '';
let answered = false;
let shuffledQuestions = [];
function shuffleArray(array) {
const shuffled = [...array];
for (let i = shuffled.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
}
return shuffled;
}
function checkLogin() {
const savedName = localStorage.getItem('ebtUserName');
if (savedName) {
userName = savedName;
document.getElementById('login-section').classList.add('hidden');
document.getElementById('welcome-section').classList.remove('hidden');
document.getElementById('user-display-name').textContent = userName;
document.getElementById('header-user-name').textContent = userName;
}
}
function showStartScreen() {
document.getElementById('quiz-section').classList.add('hidden');
document.getElementById('result-section').classList.add('hidden');
document.querySelector('.kt-ai-hero').classList.remove('hidden');
quizStarted = false;
stopTimer();
checkLogin();
}
function startTimer() {
seconds = 0;
timerInterval = setInterval(() => {
seconds++;
const mins = Math.floor(seconds / 60);
const secs = seconds % 60;
document.getElementById('timer-value').textContent =
(mins < 10 ? '0' : '') + mins + ':' + (secs < 10 ? '0' : '') + secs;
const badge = document.getElementById('timer');
if (seconds > 600) {
badge.className = 'timer-badge danger';
} else if (seconds > 300) {
badge.className = 'timer-badge warning';
}
}, 1000);
}
function stopTimer() {
if (timerInterval) {
clearInterval(timerInterval);
timerInterval = null;
}
document.getElementById('timer').className = 'timer-badge';
}
function startQuiz() {
const nameInput = document.getElementById('user-name');
if (nameInput && nameInput.value.trim()) {
userName = nameInput.value.trim();
localStorage.setItem('ebtUserName', userName);
document.getElementById('user-display-name').textContent = userName;
document.getElementById('header-user-name').textContent = userName;
}
if (!userName) {
alert('Аты-жөніңізді енгізіңіз!');
return;
}
document.querySelector('.kt-ai-hero').classList.add('hidden');
document.getElementById('result-section').classList.add('hidden');
document.getElementById('quiz-section').classList.remove('hidden');
quizStarted = true;
currentQuestion = 0;
answers = {};
seconds = 0;
shuffledQuestions = shuffleArray(QUESTIONS);
startTimer();
document.getElementById('q-total').textContent = shuffledQuestions.length;
showQuestion();
}
function showQuestion() {
const q = shuffledQuestions[currentQuestion];
document.getElementById('q-current').textContent = currentQuestion + 1;
document.getElementById('question-text').textContent = q.q;
const container = document.getElementById('options-container');
container.innerHTML = '';
const feedback = document.getElementById('answer-feedback');
feedback.className = 'answer-feedback hidden';
answered = answers[currentQuestion] !== undefined;
const letters = ['A', 'B', 'C', 'D'];
q.options.forEach((opt, i) => {
const btn = document.createElement('button');
btn.className = 'kt-ai-btn option-btn';
btn.setAttribute('data-selected', answers[currentQuestion] === i);
btn.innerHTML = `<span style="font-weight: bold; margin-right: 8px;">${letters[i]})</span> ${opt}`;
btn.onclick = () => selectAnswer(i);
if (answered) {
btn.disabled = true;
if (i === q.correct) {
btn.classList.add('correct');
} else if (answers[currentQuestion] === i && i !== q.correct) {
btn.classList.add('wrong');
}
} else {
if (answers[currentQuestion] === i) {
btn.style.borderColor = 'var(--kt-ai-primary)';
btn.style.background = 'var(--kt-ai-bg-soft)';
} else {
btn.style.borderColor = 'var(--kt-ai-border)';
btn.style.background = 'var(--kt-ai-card-bg)';
}
}
container.appendChild(btn);
});
if (answered) {
const isCorrect = answers[currentQuestion] === q.correct;
feedback.textContent = isCorrect ? '✅ Дұрыс!' : '❌ Қате! Дұрыс жауап: ' + letters[q.correct] + ') ' + q.options[q.correct];
feedback.className = 'answer-feedback ' + (isCorrect ? 'correct' : 'wrong');
feedback.classList.remove('hidden');
}
updateProgress();
updateButtons();
}
function selectAnswer(index) {
if (answered) return;
answers[currentQuestion] = index;
showQuestion();
}
function nextQuestion() {
if (currentQuestion < QUESTIONS.length - 1) {
currentQuestion++;
showQuestion();
} else {
showResults();
}
}
function prevQuestion() {
if (currentQuestion > 0) {
currentQuestion--;
answered = false;
showQuestion();
}
}
function updateProgress() {
const progress = ((currentQuestion + 1) / QUESTIONS.length) * 100;
document.getElementById('progress').style.width = progress + '%';
}
function updateButtons() {
document.getElementById('prev-btn').style.visibility = currentQuestion === 0 ? 'hidden' : 'visible';
const nextBtn = document.getElementById('next-btn');
nextBtn.textContent = currentQuestion === QUESTIONS.length - 1 ? 'Аяқтау' : 'Алға →';
}
function showResults() {
stopTimer();
let correct = 0;
let wrong = 0;
shuffledQuestions.forEach((q, i) => {
if (answers[i] === q.correct) {
correct++;
} else {
wrong++;
}
});
const percentage = Math.round((correct / shuffledQuestions.length) * 100);
document.getElementById('quiz-section').classList.add('hidden');
document.getElementById('result-section').classList.remove('hidden');
document.getElementById('correct-count').textContent = correct;
document.getElementById('wrong-count').textContent = wrong;
document.getElementById('percentage').textContent = percentage + '%';
document.getElementById('score').textContent = `${correct} / ${QUESTIONS.length}`;
let message = '';
if (percentage >= 90) message = 'Өте жақсы! ҰБТ-ға дайынсың 🎉';
else if (percentage >= 70) message = 'Жақсы нәтиже! 👍';
else if (percentage >= 50) message = 'Жаман емес, бірақ жақсартуға болады 👌';
else message = 'Әлі де дайындалу керек 📚';
document.getElementById('score-message').textContent = message + ' | Уақыт: ' + document.getElementById('timer-value').textContent;
}
document.addEventListener('keydown', (e) => {
if (!quizStarted) return;
if (e.key === 'ArrowRight' || e.key === ' ') nextQuestion();
if (e.key === 'ArrowLeft') prevQuestion();
});
checkLogin();
</script>
</body>
</html>