Present Perfect or Simple Past? Choose the correct tense. Question 1 of 20 Score: 0 /* ============================== MAFEN PRESENT PERFECT / SIMPLE PAST QUIZ ============================== */ #mafen-ppsp-quiz { max-width: 700px; margin: 30px auto; padding: 25px; background: #fdfdfd; border: 1px solid #e0e0e0; border-radius: 14px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; box-shadow: 0 5px 15px rgba(0,0,0,0.06); box-sizing: border-box; } #mafen-ppsp-quiz *, #mafen-ppsp-quiz *::before, #mafen-ppsp-quiz *::after { box-sizing: border-box; } .mafen-ppsp-header { text-align: center; margin-bottom: 25px; } .mafen-ppsp-header h2 { margin: 0 0 7px; color: #2c3e50; font-size: 27px; font-weight: 700; } .mafen-ppsp-header p { margin: 0; color: #7f8c8d; font-size: 15px; } /* Progress */ .mafen-ppsp-progress { margin-bottom: 25px; } .mafen-ppsp-progress-info { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; font-size: 14px; color: #566573; } .mafen-ppsp-progress-info strong { color: #2c3e50; } .mafen-ppsp-progress-bar { width: 100%; height: 9px; background: #ecf0f1; border-radius: 10px; overflow: hidden; } #mafen-ppsp-progress-fill { width: 5%; height: 100%; background: #3498db; border-radius: 10px; transition: width 0.3s ease; } /* Question */ .mafen-ppsp-card { background: #ffffff; padding: 25px; margin-bottom: 20px; border-radius: 10px; border-left: 5px solid #3498db; box-shadow: 0 3px 8px rgba(0,0,0,0.04); } .mafen-ppsp-topic { display: inline-block; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: #3498db; font-weight: 700; margin-bottom: 10px; } .mafen-ppsp-question { font-size: 18px; line-height: 1.6; font-weight: 600; color: #2c3e50; margin-bottom: 20px; } /* Options */ .mafen-ppsp-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .mafen-ppsp-option { width: 100%; padding: 13px 15px; background: #f8f9fa; border: 1px solid #dcdde1; border-radius: 7px; text-align: left; font-size: 15px; color: #2c3e50; cursor: pointer; transition: all 0.2s ease; } .mafen-ppsp-option:hover:not(:disabled) { background: #e1b12c; color: #ffffff; border-color: #e1b12c; transform: translateY(-1px); } .mafen-ppsp-option:disabled { cursor: default; } .mafen-ppsp-option.correct { background: #2ecc71 !important; color: #ffffff !important; border-color: #2ecc71 !important; } .mafen-ppsp-option.incorrect { background: #e74c3c !important; color: #ffffff !important; border-color: #e74c3c !important; } /* Feedback */ .mafen-ppsp-feedback { margin-top: 18px; padding: 14px 16px; border-radius: 7px; font-size: 14px; line-height: 1.6; } .mafen-ppsp-feedback.correct-feedback { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; } .mafen-ppsp-feedback.incorrect-feedback { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; } .mafen-ppsp-feedback strong { display: block; margin-bottom: 4px; } /* Next Button */ .mafen-ppsp-next { width: 100%; margin-top: 20px; padding: 13px 20px; border: none; border-radius: 7px; background: #3498db; color: white; font-size: 15px; font-weight: 600; cursor: pointer; } .mafen-ppsp-next:hover { background: #2980b9; } /* Result */ #mafen-ppsp-result { text-align: center; margin-top: 25px; padding: 30px 20px; background: #ebf3f9; border-radius: 10px; } .mafen-ppsp-result-title { font-size: 28px; font-weight: 700; color: #2c3e50; margin-bottom: 10px; } .mafen-ppsp-result-score { font-size: 42px; font-weight: 800; color: #3498db; margin: 10px 0; } .mafen-ppsp-result-message { font-size: 16px; color: #566573; margin-bottom: 20px; } .mafen-ppsp-restart { padding: 12px 25px; background: #2c3e50; color: #ffffff; border: none; border-radius: 7px; font-size: 15px; font-weight: 600; cursor: pointer; } .mafen-ppsp-restart:hover { background: #1f2d3a; } /* Mobile */ @media (max-width: 600px) { #mafen-ppsp-quiz { margin: 15px auto; padding: 18px; } .mafen-ppsp-header h2 { font-size: 23px; } .mafen-ppsp-card { padding: 18px; } .mafen-ppsp-question { font-size: 16px; } .mafen-ppsp-options { grid-template-columns: 1fr; } .mafen-ppsp-result-score { font-size: 35px; } } document.addEventListener("DOMContentLoaded", function () { const quizData = [ { topic: "Finished Time", question: "I ___ my homework yesterday.", options: [ { text: "have finished", correct: false, reason: "We use Simple Past because 'yesterday' refers to a finished time in the past." }, { text: "finished", correct: true, reason: "Correct! 'Yesterday' is a finished past time, so we use Simple Past." }, { text: "have been finishing", correct: false, reason: "The sentence refers to a completed action at a finished time." }, { text: "finish", correct: false, reason: "The action happened yesterday, so the present tense is not appropriate." } ] }, { topic: "Unfinished Time", question: "I ___ three emails this morning.", options: [ { text: "sent", correct: false, reason: "If the morning is still continuing, Present Perfect is normally used." }, { text: "have sent", correct: true, reason: "Correct! When the time period is unfinished, such as 'this morning' while it is still morning, Present Perfect can be used." }, { text: "send", correct: false, reason: "The action has already happened." }, { text: "was sending", correct: false, reason: "The sentence focuses on completed actions rather than an action in progress." } ] }, { topic: "Specific Past Time", question: "She ___ to London in 2022.", options: [ { text: "has gone", correct: false, reason: "'In 2022' is a finished time period, so Present Perfect is not appropriate." }, { text: "went", correct: true, reason: "Correct! We use Simple Past with a finished time such as 'in 2022'." }, { text: "has been going", correct: false, reason: "The sentence describes a completed past event." }, { text: "goes", correct: false, reason: "The sentence refers to a completed action in the past." } ] }, { topic: "Life Experience", question: "___ you ever ___ sushi?", options: [ { text: "Did / eat", correct: false, reason: "For general life experience without a specific past time, Present Perfect is normally used." }, { text: "Have / eaten", correct: true, reason: "Correct! We use Present Perfect for life experiences when no specific time is mentioned." }, { text: "Have / ate", correct: false, reason: "After 'have', we need the past participle 'eaten'." }, { text: "Did / eaten", correct: false, reason: "After 'did', we use the base form 'eat', not 'eaten'." } ] }, { topic: "Finished Past Event", question: "We ___ that film last Saturday.", options: [ { text: "have watched", correct: false, reason: "'Last Saturday' is a specific finished time." }, { text: "watched", correct: true, reason: "Correct! Simple Past is used with specific finished past time expressions." }, { text: "have been watching", correct: false, reason: "The sentence refers to a completed event at a finished time." }, { text: "watch", correct: false, reason: "The event happened last Saturday." } ] }, { topic: "Just", question: "She has ___ arrived at the station.", options: [ { text: "just", correct: true, reason: "Correct! 'Just' is commonly used with Present Perfect for a very recent action." }, { text: "yesterday", correct: false, reason: "'Yesterday' is a finished past time and cannot normally be used with Present Perfect." }, { text: "last year", correct: false, reason: "A finished past time requires Simple Past." }, { text: "in 2020", correct: false, reason: "A specific finished time requires Simple Past." } ] }, { topic: "Yet", question: "I haven't finished my project ___.", options: [ { text: "already", correct: false, reason: "'Yet' is the appropriate word in a negative sentence asking whether something has happened." }, { text: "yet", correct: true, reason: "Correct! 'Yet' is commonly used with Present Perfect in negative sentences and questions." }, { text: "last night", correct: false, reason: "A finished past time does not fit this Present Perfect structure." }, { text: "ago", correct: false, reason: "'Ago' is used with Simple Past, not Present Perfect." } ] }, { topic: "Already", question: "They have ___ eaten dinner.", options: [ { text: "already", correct: true, reason: "Correct! 'Already' is commonly used with Present Perfect to show that something has happened sooner than expected." }, { text: "yesterday", correct: false, reason: "A specific finished time is not normally used with Present Perfect." }, { text: "last night", correct: false, reason: "A finished past time normally requires Simple Past." }, { text: "ago", correct: false, reason: "'Ago' is used with Simple Past." } ] }, { topic: "Ago", question: "I ___ this book two weeks ago.", options: [ { text: "have read", correct: false, reason: "'Two weeks ago' refers to a finished time in the past." }, { text: "read", correct: true, reason: "Correct! We use Simple Past with 'ago'." }, { text: "have been reading", correct: false, reason: "The sentence describes a completed action at a specific past time." }, { text: "am reading", correct: false, reason: "The action happened two weeks ago." } ] }, { topic: "Since", question: "I ___ here since 2020.", options: [ { text: "lived", correct: false, reason: "When the situation started in the past and continues to the present, Present Perfect is normally used." }, { text: "have lived", correct: true, reason: "Correct! 'Since 2020' shows a situation that started in the past and continues until now." }, { text: "live", correct: false, reason: "Although the present meaning is possible, 'since 2020' requires a perfect form to show duration from the past to now." }, { text: "was living", correct: false, reason: "Past Continuous does not express a situation continuing until the present." } ] }, { topic: "For", question: "She ___ English for five years.", options: [ { text: "studied", correct: false, reason: "If she still studies English, Present Perfect is appropriate." }, { text: "has studied", correct: true, reason: "Correct! Present Perfect can describe an action or situation that started in the past and continues to the present." }, { text: "studies", correct: false, reason: "The duration beginning in the past is better expressed with Present Perfect." }, { text: "was studying", correct: false, reason: "Past Continuous does not normally express a continuing duration up to the present." } ] }, { topic: "Specific Past Time", question: "Tom ___ his car last month.", options: [ { text: "has sold", correct: false, reason: "'Last month' is a completed past time." }, { text: "sold", correct: true, reason: "Correct! Simple Past is used with 'last month'." }, { text: "has been selling", correct: false, reason: "The sentence refers to a completed event." }, { text: "sells", correct: false, reason: "The action happened last month." } ] }, { topic: "Recent Events", question: "Look! Someone ___ the window.", options: [ { text: "broke", correct: false, reason: "Simple Past is possible when a specific past time is given, but here the result is important now." }, { text: "has broken", correct: true, reason: "Correct! Present Perfect focuses on the present result: the window is broken now." }, { text: "breaks", correct: false, reason: "The action has already happened." }, { text: "was breaking", correct: false, reason: "The sentence focuses on the result of the completed action." } ] }, { topic: "Life Experience", question: "I ___ never ___ to Australia.", options: [ { text: "did / go", correct: false, reason: "This is a general life experience with no specific past time." }, { text: "have / been", correct: true, reason: "Correct! Present Perfect is used to talk about life experiences." }, { text: "have / went", correct: false, reason: "After 'have', we need the past participle 'been'." }, { text: "was / been", correct: false, reason: "This structure is grammatically incorrect." } ] }, { topic: "Finished Period", question: "I ___ my grandparents three times last year.", options: [ { text: "have visited", correct: false, reason: "'Last year' is a finished time period." }, { text: "visited", correct: true, reason: "Correct! Simple Past is used because 'last year' is finished." }, { text: "have been visiting", correct: false, reason: "The sentence describes completed visits in a finished period." }, { text: "visit", correct: false, reason: "The visits happened last year." } ] }, { topic: "Unfinished Time", question: "We ___ four tests this term.", options: [ { text: "have taken", correct: true, reason: "Correct! 'This term' is an unfinished time period, so Present Perfect is appropriate." }, { text: "took", correct: false, reason: "Simple Past is possible if the term has finished, but here the period is understood as unfinished." }, { text: "take", correct: false, reason: "The tests have already happened." }, { text: "were taking", correct: false, reason: "The sentence focuses on completed tests." } ] }, { topic: "Specific Past Time", question: "When ___ you ___ your first job?", options: [ { text: "have / started", correct: false, reason: "'When' asks about a specific past time, so Simple Past is normally used." }, { text: "did / start", correct: true, reason: "Correct! We use Simple Past when asking about a specific completed event in the past." }, { text: "have / start", correct: false, reason: "The structure is grammatically incorrect." }, { text: "do / start", correct: false, reason: "The question refers to a past event." } ] }, { topic: "How Long", question: "How long ___ you ___ your best friend?", options: [ { text: "did / know", correct: false, reason: "If the friendship continues now, Present Perfect is normally used." }, { text: "have / known", correct: true, reason: "Correct! We use Present Perfect for a situation that started in the past and continues until now." }, { text: "have / knew", correct: false, reason: "After 'have', we need the past participle 'known'." }, { text: "do / know", correct: false, reason: "The question asks about the duration of a relationship from the past until now." } ] }, { topic: "Never + Life Experience", question: "She ___ never ___ a horse before.", options: [ { text: "has / ridden", correct: true, reason: "Correct! Present Perfect is used for life experiences with 'never'." }, { text: "did / ride", correct: false, reason: "There is no specific finished past time." }, { text: "has / rode", correct: false, reason: "After 'has', we need the past participle 'ridden'." }, { text: "was / riding", correct: false, reason: "Past Continuous is not appropriate for this life experience." } ] }, { topic: "Finished Event vs Present Result", question: "John ___ his keys yesterday, but he ___ them now.", options: [ { text: "lost / has found", correct: true, reason: "Correct! 'Yesterday' requires Simple Past ('lost'), while the present result uses Present Perfect ('has found')." }, { text: "has lost / found", correct: false, reason: "'Yesterday' requires Simple Past." }, { text: "lost / found", correct: false, reason: "The second action has a present connection, so Present Perfect is more appropriate." }, { text: "has lost / has found", correct: false, reason: "'Yesterday' is a finished past time and requires Simple Past." } ] } ]; let currentQuestion = 0; let score = 0; const questionsContainer = document.getElementById("mafen-ppsp-questions"); const resultContainer = document.getElementById("mafen-ppsp-result"); const currentNumber = document.getElementById("mafen-ppsp-current"); const totalNumber = document.getElementById("mafen-ppsp-total"); const scoreDisplay = document.getElementById("mafen-ppsp-score"); const progressFill = document.getElementById("mafen-ppsp-progress-fill"); totalNumber.textContent = quizData.length; function loadQuestion() { const question = quizData[currentQuestion]; currentNumber.textContent = currentQuestion + 1; scoreDisplay.textContent = score; progressFill.style.width = ((currentQuestion + 1) / quizData.length * 100) + "%"; let html = ` ${question.topic} ${currentQuestion + 1}. ${question.question} `; question.options.forEach(function(option, index) { html += ` ${option.text} `; }); html += ` `; questionsContainer.innerHTML = html; const buttons = questionsContainer.querySelectorAll(".mafen-ppsp-option"); buttons.forEach(function(button) { button.addEventListener("click", function() { const selectedIndex = parseInt(this.getAttribute("data-index")); checkAnswer(selectedIndex, buttons); }); }); } function checkAnswer(selectedIndex, buttons) { const question = quizData[currentQuestion]; buttons.forEach(function(button) { button.disabled = true; }); const selectedButton = buttons[selectedIndex]; const correctIndex = question.options.findIndex(function(option) { return option.correct === true; }); const correctButton = buttons[correctIndex]; if (question.options[selectedIndex].correct) { score++; selectedButton.classList.add("correct"); } else { selectedButton.classList.add("incorrect"); correctButton.classList.add("correct"); } scoreDisplay.textContent = score; const feedback = document.getElementById("mafen-ppsp-feedback"); if (question.options[selectedIndex].correct) { feedback.className = "mafen-ppsp-feedback correct-feedback"; feedback.innerHTML = "✓ Correct!" + question.options[selectedIndex].reason; } else { feedback.className = "mafen-ppsp-feedback incorrect-feedback"; feedback.innerHTML = "✗ Incorrect." + question.options[selectedIndex].reason + "Correct answer: " + question.options[correctIndex].text; } feedback.style.display = "block"; if (currentQuestion < quizData.length - 1) { const nextButton = document.createElement("button"); nextButton.type = "button"; nextButton.className = "mafen-ppsp-next"; nextButton.textContent = "Next Question →"; nextButton.addEventListener("click", function() { currentQuestion++; loadQuestion(); window.scrollTo({ top: questionsContainer.offsetTop - 20, behavior: "smooth" }); }); feedback.parentNode.appendChild(nextButton); } else { const finishButton = document.createElement("button"); finishButton.type = "button"; finishButton.className = "mafen-ppsp-next"; finishButton.textContent = "View My Result"; finishButton.addEventListener("click", function() { showResult(); }); feedback.parentNode.appendChild(finishButton); } } function showResult() { questionsContainer.style.display = "none"; const percentage = Math.round((score / quizData.length) * 100); let message = ""; if (percentage >= 90) { message = "Excellent! You have a very strong understanding of Present Perfect and Simple Past."; } else if (percentage >= 75) { message = "Very good! You understand the main differences between the two tenses."; } else if (percentage >= 60) { message = "Good effort! Review finished and unfinished time expressions."; } else { message = "Keep practising! Pay special attention to words such as yesterday, ago, since, for, just, already and yet."; } resultContainer.innerHTML = ` Quiz Complete! ${score} / ${quizData.length} ${percentage}% ${message} ↻ Restart Quiz `; resultContainer.style.display = "block"; document .getElementById("mafen-ppsp-restart") .addEventListener("click", restartQuiz); resultContainer.scrollIntoView({ behavior: "smooth", block: "center" }); } function restartQuiz() { currentQuestion = 0; score = 0; resultContainer.style.display = "none"; questionsContainer.style.display = "block"; scoreDisplay.textContent = "0"; loadQuestion(); window.scrollTo({ top: questionsContainer.offsetTop - 20, behavior: "smooth" }); } loadQuestion(); });