sozday-dlya-menya-kuiz-sayt/oghyz-memleketi.html

402 lines
27 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: 1 },
{ q: "Оғыз мемлекеті қазіргі Қазақстанның қай бөлігінде қалыптасты?", options: ["Жетісуда", "Солтүстік-шығыста", "Батыс Қазақстанда", "Оңтүстік-шығыста"], correct: 2 },
{ q: "Қимақ қағанаты Қазақстанның қай аймақтарында қалыптасты?", options: ["Батыс және Оңтүстік Қазақстанда", "Солтүстік-шығыс және Орталық Қазақстанда", "Жетісу мен Маңғыстауда", "Оңтүстік Қазақстанда"], correct: 1 },
{ q: "Түргеш мемлекеті қай аймақта қалыптасты?", options: ["Жетісуда", "Батыс Қазақстанда", "Солтүстік Қазақстанда", "Маңғыстауда"], correct: 0 },
{ q: "Оғыздар туралы араб тіліндегі деректер қай кезеңге жатады?", options: ["VII–VIII ғасырлар", "VIII–IX ғасырлар", "IX–X ғасырлардың басы", "XI–XII ғасырлар"], correct: 2 },
{ q: "Оғыздардың мемлекет болғандығы туралы жазған авторларды көрсетіңіз.", options: ["Әл-Якуби мен әл-Факих", "Әл-Бируни мен Ибн Сина", "Рашид ад-Дин мен Жүсіп Баласағұни", "Әл-Фараби мен Махмұд Қашғари"], correct: 0 },
{ q: "Оғыздардың тайпалық құрамы туралы мәліметтер қай ғалымның еңбектерінде кездеседі?", options: ["Әл-Якуби", "Махмұд Қашғари", "Әл-Факих", "Ибн Сина"], correct: 1 },
{ q: "Махмұд Қашғари деректерінде оғыздар бастапқы кезде неше тайпаға бірікті?", options: ["12", "16", "20", "24"], correct: 3 },
{ q: "Оғыздар қандай екі топқа бөлінді?", options: ["Ақ орда және Көк орда", "Боз оқ және Үш оқ", "Оң қанат және Сол қанат", "Үш жүз және Ұлы жүз"], correct: 1 },
{ q: "Оғыз қоғамында қай топ ерекше артықшылыққа ие болды?", options: ["Үш оқтар", "Қыпшақтар", "Боз оқтар", "Қарлұқтар"], correct: 2 },
{ q: "Орыс жылнамаларында оғыздар қалай аталған?", options: ["Торк", "Теле", "Татаб", "Түрік"], correct: 0 },
{ q: "Орыс жылнамаларындағы «торк» атауы қандай тайпамен байланысты?", options: ["Қимақтармен", "Оғыздармен", "Түргештермен", "Қарлұқтармен"], correct: 1 },
{ q: "Оғыздардың тарихындағы бірқатар оқиғалар қай шығармада баяндалады?", options: ["«Кодекс Куманикус»", "«Құтадғу білік»", "«Оғызнама»", "«Диуани хикмет»"], correct: 2 },
{ q: "Оғыздардың құрамына қандай тайпалар кірді?", options: ["Тек түркі тілдес тайпалар", "Тек үндіеуропалық тайпалар", "Түркі тілдес, үндіеуропалық және финн-угор тектес тайпалар", "Тек финн-угор тайпалары"], correct: 2 },
{ q: "Деректерге сәйкес оғыз тайпалары алғаш қай жерде қалыптасты?", options: ["Сырдария бойында", "Жетісу аумағында", "Еділ бойында", "Солтүстік Кавказда"], correct: 1 },
{ q: "VIII ғасырдың екінші жартысында оғыздар кімдермен күрес нәтижесінде Жетісудан көшті?", options: ["Қыпшақтармен", "Печенегтермен", "Қарлұқтармен", "Хазарлармен"], correct: 2 },
{ q: "Оғыздар Жетісудан көшкеннен кейін қай аумаққа қоныс аударды?", options: ["Ертіс бойына", "Сырдария бойына", "Есіл бойына", "Жайықтың жоғарғы ағысына"], correct: 1 },
{ q: "Оғыздар Сырдария бойында қандай аумақтарды басып алды?", options: ["Сырдарияның төменгі ағысы мен Арал маңы далаларын", "Ертістің жоғарғы ағысы мен Алтайды", "Іле аңғары мен Тарбағатайды", "Шу мен Талас аңғарларын"], correct: 0 },
{ q: "Оғыз мемлекетінің орталығы болған қала:", options: ["Сығанақ", "Сауран", "Янгикент", "Тараз"], correct: 2 },
{ q: "Янгикент қаласы қай өзеннің бойында орналасты?", options: ["Ертіс", "Іле", "Сырдария", "Жайық"], correct: 2 },
{ q: "Мәтінде «Ит жылы» деп көрсетілген жыл:", options: ["726 жыл", "736 жыл", "746 жыл", "756 жыл"], correct: 2 },
{ q: "746 жылы Жетісуға қай тайпалар қоныс аударды?", options: ["Қыпшақтар", "Қарлұқтар", "Оғыздар", "Печенегтер"], correct: 1 },
{ q: "IX ғасырдың соңында оғыздар кімдермен одақтасты?", options: ["Киев Русімен", "Хазарлармен", "Қыпшақтармен", "Қарлұқтармен"], correct: 1 },
{ q: "Оғыздар IX ғасырдың соңында хазарлармен бірігіп кімдерге қарсы күресті?", options: ["Печенегтерге", "Қыпшақтарға", "Қарлұқтарға", "Түргештерге"], correct: 0 },
{ q: "Печенегтермен болған ұзақ күрес қандай нәтижеге ықпал етті?", options: ["Оғыздардың Жетісуға қайта оралуына", "Оғыз мемлекетінің құрылуына", "Қимақ қағанатының құрылуына", "Хазар қағанатының құрылуына"], correct: 1 },
{ q: "965 жылы оғыздар қай мемлекетпен одақтасып Хазар қағанатын талқандады?", options: ["Қимақ қағанатымен", "Киев Русімен", "Қарахан мемлекетімен", "Еділ Бұлғариясымен"], correct: 1 },
{ q: "Оғыздардың Хазар қағанатына қарсы күрестегі негізгі мақсаттарының бірі:", options: ["Жетісуды басып алу", "Қара теңіз жағалауындағы құнарлы жайылымдарды иемдену", "Қытайға жорық жасау", "Сырдарияның жоғарғы ағысын басып алу"], correct: 1 },
{ q: "Оғыздар Хазарларға қарсы күресте қандай сауда жолына бақылау орнатуды көздеді?", options: ["Іле бойындағы сауда жолына", "Ертіс бойындағы сауда жолына", "Еділ бойымен өтетін сауда жолына", "Ұлы Жібек жолының Жетісу бағытына"], correct: 2 },
{ q: "985 жылы оғыз билеушісі кіммен одақтасты?", options: ["Киев князы Владимирмен", "Хазар қағанымен", "Қыпшақ хандығымен", "Қарлұқ жабғуымен"], correct: 0 },
{ q: "985 жылы оғыздар кімдерді жеңді?", options: ["Печенегтерді", "Хазарларды", "Еділ Бұлғариясын", "Қыпшақтарды"], correct: 2 },
{ q: "Еділ Бұлғариясын жеңу Оғыз мемлекетіне қандай әсер етті?", options: ["Саяси жағынан әлсіреді", "Саяси жағынан күшейді", "Мемлекет құлады", "Жетісуға көшті"], correct: 1 },
{ q: "Белсенді сыртқы саясат нәтижесінде оғыздар оңтүстікте қай аймақпен шектесті?", options: ["Мауараннахрмен", "Жетісумен", "Сібірмен", "Хорасанмен"], correct: 0 },
{ q: "Оғыздардың батыстағы шекарасы қай аймаққа дейін жетті?", options: ["Қырымға", "Кавказ аймағына", "Балқанға", "Еуропаның орталығына"], correct: 1 },
{ q: "Белсенді сыртқы саясат пен ұзақ соғыстардың негізгі салдарының бірі:", options: ["Салықтың жойылуы", "Салықтың жыл сайын өсуі", "Мемлекеттің байып кетуі", "Көшпелі өмір салтының тоқтауы"], correct: 1 },
{ q: "Х–ХІ ғасырлар аралығында оғыз тайпалары неге қарсы көтеріліс жасады?", options: ["Дінге қарсы", "Сыртқы жауға қарсы", "Салық жинауға қарсы", "Саудаға қарсы"], correct: 2 },
{ q: "Оғыздардағы дағдарысты өз мақсаттарына пайдаланғандар:", options: ["Қарлұқтар", "Салжұқ көсемдері", "Хазарлар", "Печенегтер"], correct: 1 },
{ q: "Салжұқ көсемдері кімдерге қарсы көтеріліске басшылық етті?", options: ["Оғыз билеушілеріне", "Қыпшақтарға", "Киев Русіне", "Хазарларға"], correct: 0 },
{ q: "Шахмәлiк жабғу тұсында Оғыз мемлекетінде қандай жағдай орын алды?", options: ["Мемлекет қайтадан күшейді", "Мемлекет бірден құлады", "Жетісуға көшіп кетті", "Хазарларға бағынышты болды"], correct: 0 },
{ q: "Шахмәлiк жабғу тұсында Оғыздар қай жылы Хорезмді басып алды?", options: ["985 жылы", "1001 жылы", "1041 жылы", "1043 жылы"], correct: 2 },
{ q: "Шахмәлiк екі жылдан кейін кімдердің қолына тұтқынға түсті?", options: ["Қыпшақтардың", "Салжұқтардың", "Хазарлардың", "Печенегтердің"], correct: 1 },
{ q: "Шахмәлiк жабғудың тарихи рөлі қандай?", options: ["Оғыздардың алғашқы билеушісі болды", "Оғыздардың соңғы билеушісі болды", "Қимақтардың билеушісі болды", "Хазарлардың билеушісі болды"], correct: 1 },
{ q: "Оғыз мемлекетін әлсіреткен негізгі факторларды анықтаңыз.", options: ["Қарлұқтармен одақ және сауданың дамуы", "Салжұқтармен ұзақ соғыстар және ауыр салыққа қарсы көтерілістер", "Егіншіліктің дамуы және қолөнердің өсуі", "Исламның таралуы және қалалардың көбеюі"], correct: 1 },
{ q: "Әлсіреген Оғыз мемлекетін түпкілікті құлатқан күш:", options: ["Қарлұқ тайпалары", "Салжұқтар", "Қыпшақ тайпаларының көсемдері", "Хазарлар"], correct: 2 },
{ q: "Оғыздардың негізгі шаруашылығы қандай болды?", options: ["Егіншілік", "Қолөнер", "Көшпелі мал шаруашылығы", "Балық аулау"], correct: 2 },
{ q: "Оғыздардың X–XI ғасырлардағы қалалары қатарын көрсетіңіз.", options: ["Тараз, Баласағұн, Суяб", "Жент, Сауран, Сығанақ", "Отырар, Испиджаб, Талғар", "Сарайшық, Түркістан, Баласағұн"], correct: 1 }
];
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>