20. Locomotion and Movement

NEET Mock Test - AK Vision Zone

Rotate Your Device

Please switch to landscape mode to start or continue the exam. The CBT interface requires a wider screen.

Rotate Your Device

Please switch to landscape mode to start or continue the exam. The CBT interface requires a wider screen.

"; let examData = []; let currentQ = 0; let qStatus = []; let selectedAnswers = []; let examTimer; let totalSeconds = 0; // Will be set dynamically based on total questions let detailedStats = { 'OVERALL': { total:0, correct:0, incorrect:0, unattempted:0, marks:0, wrongQs: [] }, 'BIOLOGY': { total:0, correct:0, incorrect:0, unattempted:0, marks:0, wrongQs: [] }, 'PHYSICS': { total:0, correct:0, incorrect:0, unattempted:0, marks:0, wrongQs: [] }, 'CHEMISTRY': { total:0, correct:0, incorrect:0, unattempted:0, marks:0, wrongQs: [] } }; window.onload = function() { if(GOOGLE_SHEET_CSV_URL.includes("YOUR_GOOGLE_SHEET") || GOOGLE_SHEET_CSV_URL === "") { loadDummyData(); } else { Papa.parse(GOOGLE_SHEET_CSV_URL, { download: true, header: true, skipEmptyLines: true, complete: function(results) { if(results.data && results.data.length > 0) { processSheetData(results.data); } else { loadDummyData(); } }, error: function(err) { alert("Data fetch error. Loading offline mock paper."); loadDummyData(); } }); } }; function processSheetData(data) { examData = []; data.forEach((row, index) => { let subj = row['Subject'] || 'BIOLOGY'; let q = row['Question'] || ''; let o1 = row['Option 1'] || ''; let o2 = row['Option 2'] || ''; let o3 = row['Option 3'] || ''; let o4 = row['Option 4'] || ''; let ans = row['Correct Option'] || '1'; examData.push([(index + 1).toString().padStart(2, '0'), subj.toUpperCase().trim(), q, o1, o2, o3, o4, ans.toString().trim()]); }); finalizeLoading(); } function loadDummyData() { examData = [ ["01", "PHYSICS", "The de-Broglie wavelength of a neutron in thermal equilibrium with heavy water at a temperature T (Kelvin) and mass m, is:", "λ / √(mkT)", "λ / √(3mkT)", "2λ / √(3mkT)", "2λ / √(mkT)", "3"], ["02", "BIOLOGY", "Which of the following is the most abundant protein in the biosphere?", "Collagen", "RuBisCO", "Trypsin", "Insulin", "2"], ["03", "PHYSICS", "A car accelerates uniformly from rest to a speed of 10 m/s in 5s. Find acceleration.", "2 m/s²", "5 m/s²", "10 m/s²", "50 m/s²", "1"], ["04", "CHEMISTRY", "What is the pH of a neutral solution at 25°C?", "0", "7", "14", "1", "2"] ]; finalizeLoading(); } function finalizeLoading() { qStatus = new Array(examData.length).fill(0); selectedAnswers = new Array(examData.length).fill(null); // DYNAMIC TIMER SETUP: 1 Question = 1 Minute (60 seconds) totalSeconds = examData.length > 0 ? (examData.length * 60) : 300; let startBtn = document.getElementById('startBtn'); startBtn.innerText = "LOGIN & START EXAM"; startBtn.disabled = false; document.getElementById('loadingText').style.display = 'none'; } function updateTimerDisplay() { let h = Math.floor(totalSeconds / 3600); let m = Math.floor((totalSeconds % 3600) / 60); let s = totalSeconds % 60; document.getElementById('time-left').innerText = (h < 10 ? "0"+h : h) + ":" + (m < 10 ? "0"+m : m) + ":" + (s < 10 ? "0"+s : s); } function initiateExam() { let name = document.getElementById('studentName').value.trim(); if(name === "") { alert("Please enter Candidate Name!"); return; } document.getElementById('display-name').innerText = name.toUpperCase(); document.getElementById('login-page').style.display = 'none'; document.getElementById('cbt-main').style.display = 'flex'; updateTimerDisplay(); // Display accurate time before timer ticks startTimer(); loadQuestion(0); } function startTimer() { examTimer = setInterval(function() { if(totalSeconds <= 0) { clearInterval(examTimer); autoSubmit(); return; } totalSeconds--; updateTimerDisplay(); }, 1000); } function formatContent(content) { if (!content) return ""; let text = String(content); const urlRegex = /(https?:\/\/[^\s]+)/g; text = text.replace(urlRegex, function(url) { if(url.match(/\.(jpeg|jpg|gif|png)$/i) || url.includes("i.ibb.co") || url.includes("drive.google.com/uc") || url.includes("ibb.co")) { return `
Question Image`; } return url; }); text = text.replace(/\n/g, '
'); return text; } function loadQuestion(index) { currentQ = index; const q = examData[index]; document.getElementById('q-no').innerText = "Question " + parseInt(q[0]) + ":"; document.getElementById('top-subject').innerText = q[1]; document.getElementById('palette-subject-header').innerText = q[1]; document.getElementById('q-text').innerHTML = formatContent(q[2]); document.getElementById('q-options-text').innerHTML = `
(A) ${formatContent(q[3])}
(B) ${formatContent(q[4])}
(C) ${formatContent(q[5])}
(D) ${formatContent(q[6])}
`; const radios = document.getElementsByName('opt'); radios.forEach(radio => radio.checked = false); if(selectedAnswers[index] !== null) { document.querySelector(`input[name="opt"][value="${selectedAnswers[index]}"]`).checked = true; } if (qStatus[index] === 0) qStatus[index] = 1; renderPalette(); updateLegendCounts(); } function renderPalette() { let grid = document.getElementById('palette-grid'); grid.innerHTML = ""; for(let i=0; i${examData[i][0]}`; } } function updateLegendCounts() { const counts = [0, 0, 0, 0, 0]; qStatus.forEach(status => counts[status]++); const legendItems = document.querySelectorAll('.status-legend .shape'); for(let i=0; i<5; i++) legendItems[i].innerText = counts[i]; } function saveCurrentSelection() { const checkedRadio = document.querySelector('input[name="opt"]:checked'); let selected = checkedRadio ? checkedRadio.value : null; selectedAnswers[currentQ] = selected; return selected; } function jumpTo(index) { saveCurrentSelection(); loadQuestion(index); } function saveAndNext() { let s = saveCurrentSelection(); qStatus[currentQ] = s ? 2 : 1; goToNext(); } function clearResponse() { selectedAnswers[currentQ] = null; document.getElementsByName('opt').forEach(r => r.checked = false); qStatus[currentQ] = 1; renderPalette(); updateLegendCounts(); } function saveAndMark() { let s = saveCurrentSelection(); qStatus[currentQ] = s ? 4 : 3; goToNext(); } function markAndNext() { saveCurrentSelection(); qStatus[currentQ] = 3; goToNext(); } function nextQuestion() { saveCurrentSelection(); goToNext(); } function prevQuestion() { saveCurrentSelection(); if(currentQ > 0) loadQuestion(currentQ - 1); } function goToNext() { if(currentQ < examData.length - 1) loadQuestion(currentQ + 1); else { renderPalette(); updateLegendCounts(); } } function submitExamConfirmation() { if(confirm("Are you sure you want to submit the exam? You cannot change answers after submission.")) autoSubmit(); } function autoSubmit() { clearInterval(examTimer); saveCurrentSelection(); document.getElementById('cbt-main').style.display = 'none'; document.getElementById('result-page').style.display = 'block'; calculateResult(); } function getOptionText(qIndex, optVal) { if(!optVal) return "Not Attempted"; let prefix = ["(A)", "(B)", "(C)", "(D)"][parseInt(optVal)-1]; return `${prefix} ${formatContent(examData[qIndex][2 + parseInt(optVal)])}`; } function calculateResult() { for (let key in detailedStats) { detailedStats[key] = { total:0, correct:0, incorrect:0, unattempted:0, marks:0, wrongQs: [] }; } for(let i=0; iNo questions found for ${filter}`; document.getElementById('incorrect-list').innerHTML = ""; return; } document.getElementById('dynamic-stats').innerHTML = `
Correct (+4)
${stats.correct}
Incorrect (-1)
${stats.incorrect}
Unattempted (0)
${stats.unattempted}
Marks in ${filter}
${stats.marks}
`; let errorHtml = ""; if(stats.wrongQs.length === 0) { errorHtml = `
Perfect! No incorrect answers in ${filter}.
`; } else { stats.wrongQs.forEach(wq => { errorHtml += `
Q${wq.qNum}. ${formatContent(wq.qText)}
Your Answer: ${wq.uAnsText}
Correct Answer: ${wq.cAnsText}
`; }); } document.getElementById('incorrect-list').innerHTML = errorHtml; } let isListVisible = false; function toggleIncorrectList() { isListVisible = !isListVisible; document.getElementById('incorrect-list').style.display = isListVisible ? 'block' : 'none'; document.getElementById('toggleBtn').innerText = isListVisible ? 'Hide Details' : 'Show Details'; }

No comments:

Post a Comment