part-1-sports-physical-activity-practice
/* Basic Reset & Body Styling */ body { font-family: 'Inter', sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f8f8f8; } /* Main Layout Container */…
) */
.faq-section {
margin-top: 40px;
padding: 20px;
background-color: #f9f9f9;
border-radius: 12px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}
.faq-section h3 {
text-align: center;
color: #000;
margin-bottom: 25px;
}
.faq-section details {
background-color: #fff;
border: 1px solid #ddd;
border-radius: 8px;
margin-bottom: 10px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.faq-section summary {
font-weight: bold;
padding: 15px 20px;
cursor: pointer;
color: #333;
list-style: none; /* Hide default arrow */
position: relative;
}
.faq-section summary::marker {
display: none;
}
.faq-section summary::after {
content: '+';
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
font-size: 1.2em;
color: #FBC462;
transition: transform 0.2s ease;
}
.faq-section details[open] summary::after {
content: '-';
transform: translateY(-50%) rotate(0deg); /* No rotation needed for '-' */
}
.faq-section details[open] summary {
border-bottom: 1px solid #eee;
}
.faq-section details p {
padding: 10px 20px 15px 20px;
margin: 0;
font-size: 0.95em;
color: #555;
}
/* Related Guides Carousel */
.carousel-container {
margin-top: 40px;
overflow: hidden;
padding: 40px 30px;
background-color: #f5f5f1;
border-radius: 12px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
position: relative;
}
.carousel-title {
text-align: center;
color: #000;
margin-bottom: 25px;
font-size: 1.8em;
font-weight: 700;
}
.carousel-wrapper {
display: flex;
justify-content: flex-start;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
padding: 0 10px;
scroll-snap-type: x mandatory;
gap: 30px;
}
.carousel-item {
flex: 0 0 auto;
width: 300px;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08);
scroll-snap-align: start;
transition: transform 0.3s ease;
display: flex;
flex-direction: column;
}
.carousel-item:hover {
transform: translateY(-5px);
}
.carousel-item h4 {
color: #000;
margin-top: 0;
font-size: 1.2em;
min-height: 50px;
}
.carousel-item p {
font-size: 0.9em;
color: #555;
min-height: 80px;
flex-grow: 1;
}
.carousel-item a {
display: inline-block;
background-color: #000;
color: #fff;
padding: 8px 15px;
border-radius: 8px;
text-decoration: none;
margin-top: 10px;
transition: background-color 0.3s ease;
font-weight: 600;
}
.carousel-item a:hover {
background-color: #FBC462;
color: #000;
}
.carousel-button {
position: absolute;
top: 50%;
transform: translateY(-50%);
background-color: rgba(0, 0, 0, 0.6);
color: #fff;
border: none;
padding: 10px 15px;
cursor: pointer;
font-size: 1.5em;
border-radius: 50%;
z-index: 10;
transition: background-color 0.3s ease;
}
.carousel-button:hover {
background-color: rgba(0, 0, 0, 0.8);
}
.carousel-button.left {
left: 10px;
}
.carousel-button.right {
right: 10px;
}
/* Responsive Adjustments */
@media (max-width: 992px) {
.toc-layout {
flex-direction: column;
margin: 15px auto;
padding: 15px;
}
.toc-sidebar {
position: static;
width: 100%;
margin-right: 0;
margin-bottom: 25px;
max-height: none;
}
.toc-sidebar h3 {
text-align: center;
padding-bottom: 5px;
margin-bottom: 10px;
}
.toc-sidebar ul {
display: flex;
flex-wrap: wrap;
justify-content: center;
padding: 0 10px;
}
.toc-sidebar ul li {
margin: 5px 8px;
}
.toc-sidebar ul li a {
padding: 6px 12px;
font-size: 0.9em;
text-align: center;
}
.toc-content {
width: 100%;
padding: 15px;
}
.toc-content h1 {
font-size: 2em;
}
.toc-content h2 {
font-size: 1.6em;
}
.toc-content h3 {
font-size: 1.3em;
}
.carousel-item {
width: 280px;
margin: 0 10px;
}
}
@media (max-width: 768px) {
.toc-layout {
margin: 10px;
padding: 10px;
}
.toc-content h1 {
font-size: 1.8em;
}
.toc-content h2 {
font-size: 1.4em;
}
.carousel-wrapper {
flex-wrap: nowrap;
overflow-x: auto;
scroll-snap-type: x mandatory;
}
.carousel-item {
min-width: 85%;
scroll-snap-align: start;
}
.carousel-button {
display: none;
}
.interactive-table-container .table-header {
display: none; /* Hide header on very small screens for simplicity */
}
/* Adjusted styling for details/summary on mobile */
.category-accordion summary.table-row-toggle {
flex-wrap: wrap;
text-align: left;
padding: 12px 15px;
}
.category-accordion summary.table-row-toggle .category-name {
flex-basis: 100%;
margin-bottom: 5px;
font-size: 0.95em;
}
.category-accordion summary.table-row-toggle::after {
position: static; /* Remove absolute positioning */
transform: none; /* Reset transform */
margin-left: auto; /* Push icon to the right */
}
.category-accordion[open] summary.table-row-toggle::after {
transform: none; /* Reset rotation for opened state */
}
.table-details {
padding: 10px;
}
.table-details p, .table-details ul li {
font-size: 0.85em;
}
.calculator-inputs {
align-items: stretch; /* Stretch inputs to full width */
max-width: 100%;
}
.calculator-inputs label,
.calculator-inputs input {
max-width: none; /* Remove max-width on mobile */
}
}
@media (max-width: 480px) {
.toc-sidebar ul li a {
font-size: 0.85em;
padding: 5px 10px;
}
.carousel-item {
min-width: 95%;
}
}
IELTS Speaking Part 1: Sports & Physical Activity - Interactive Practice
Welcome to your essential guide for **IELTS Speaking Part 1**, focusing on the dynamic topic of **Sports and Physical Activity**. This subject is highly common and allows you to discuss your hobbies, health, and lifestyle, offering a great opportunity to showcase your English communication skills. Part 1 of the IELTS Speaking test is designed as an introduction, where the examiner asks general questions on familiar subjects.
Your objective in Part 1 is to provide clear, well-structured answers (typically 2-4 sentences), expanding slightly to demonstrate your vocabulary and grammatical range. This comprehensive page will equip you with **25 diverse questions**, essential vocabulary, expert tips, and a range of **interactive exercises** to practice different aspects of the IELTS criteria, helping you achieve a higher band score.
For an overall strategy for the speaking test, explore our main IELTS English Speaking Course page.
Understanding IELTS Speaking Part 1
IELTS Speaking Part 1 is designed to be an introduction, warming you up for the more complex parts of the test. The examiner will ask you a series of general questions on familiar topics to gauge your ability to communicate basic information and opinions. This part usually lasts **4-5 minutes** and typically covers 2-3 different topics.
- Purpose: To break the ice and assess your ability to use English for everyday communication.
- Question Types: Simple, direct questions about your life, habits, opinions, and experiences.
- Expected Answer Length: Short to medium, usually 2-4 sentences. Avoid very short "yes/no" answers or overly long monologues.
Common topics include: Hometown, Home, Hobbies, Work/Study, Family & Friends, Food & Cooking, and, of course, Sports & Physical Activity. To see more practice topics, check out our general IELTS Speaking Questions and Answers guide.
[Source: Official IELTS Test Format Guidelines, British Council/IDP Education]
Why 'Sports & Physical Activity' is Key for Your Score
The "Sports & Physical Activity" topic is almost guaranteed to appear in IELTS Speaking Part 1. Here's why preparing for it is crucial:
- Universal & Relatable: Whether you're an athlete or just enjoy a casual walk, everyone has some connection to physical activity, making this topic easy to discuss authentically.
- Rich Vocabulary Opportunity: It allows you to use a diverse range of vocabulary related to different sports, physical actions, fitness, health, and leisure pursuits, which can significantly boost your Lexical Resource score.
- Natural Flow & Fluency: Because it's a topic you're familiar with, you can often speak more naturally and fluently, reducing hesitation and improving your coherence.
- Grammar Variety: Discussing past sporting experiences, current fitness routines, or future athletic goals can naturally lead to using a variety of tenses and complex sentence structures, enhancing your Grammatical Range & Accuracy.
Mastering this topic can give you a strong start in the test and significantly contribute to your overall band score.
Common Questions on Sports & Physical Activity (25 Questions)
Here are 25 typical questions you might encounter, along with tips on how to approach them:
Sports-Related Questions
- 1. Do you play any sports?
Tip: State yes/no and mention the sport(s) if applicable.
- 2. What is your favourite sport to watch?
Tip: Name the sport and briefly explain why you enjoy watching it.
- 3. What kind of sports are popular in your country?
Tip: Mention 2-3 popular sports and perhaps why.
- 4. Did you play any sports when you were a child?
Tip: Use past simple tense to describe childhood experiences.
- 5. Do you think it's important for children to play sports? Why?
Tip: Discuss the benefits for children (health, teamwork).
- 6. Have you ever been to a live sports event?
Tip: Describe the event and your experience.
- 7. Do you prefer individual sports or team sports?
Tip: State your preference and give a reason.
- 8. What is the most challenging sport you know?
Tip: Name a sport and explain why it's challenging.
- 9. Do you like extreme sports?
Tip: State your opinion and explain your reasoning.
- 10. How important is winning in sports?
Tip: Discuss the balance between winning and participation.
- 11. Do you think professional athletes are good role models?
Tip: Give a balanced opinion.
- 12. What kind of sports facilities are available where you live?
Tip: Mention local gyms, parks, courts, etc.
- 13. Do you think sports can bring people together? How?
Tip: Discuss community or national unity through sports.
Physical Activity-Related Questions
- 14. What kind of physical activity do you enjoy?
Tip: Mention activities like walking, cycling, dancing, gym.
- 15. How often do you exercise?
Tip: Use adverbs of frequency or specific timeframes.
- 16. Do you prefer exercising indoors or outdoors?
Tip: State your preference and explain why.
- 17. Is it important to keep fit? Why?
Tip: Discuss the health benefits.
- 18. What do you do to stay healthy?
Tip: Mention diet, exercise, sleep, etc.
- 19. Have you ever tried a new physical activity recently?
Tip: Describe it and your experience.
- 20. Do you think people nowadays are more or less active than in the past?
Tip: Compare modern lifestyles with past ones.
- 21. What are the benefits of regular exercise?
Tip: List physical and mental benefits.
- 22. Do you think technology helps or hinders physical activity?
Tip: Give a balanced view with examples.
- 23. What's your ideal way to relax after a physical activity?
Tip: Describe your post-exercise routine.
- 24. Do you prefer working out alone or with others?
Tip: State your preference and explain why.
- 25. What advice would you give to someone who wants to start exercising?
Tip: Offer practical, encouraging tips.
For more specific practice questions across various topics, check out our comprehensive IELTS Speaking Q&A section.
Practice: Core Vocabulary
Let's start with some quick exercises to boost your core vocabulary related to sports and physical activity. These will help you grasp fundamental terms and their usage.
Interactive Practice: Core Vocabulary Skills
1.1 Synonym Match
What is a synonym for "active" when describing a person?
1.2 Collocation Quiz
Choose the correct word to complete the collocation: "to keep ______".
Vocabulary Boosters for Sports & Physical Activity
To impress the examiner, use a wide range of relevant vocabulary. Here's a list of words and phrases related to 'Sports' and 'Physical Activity' that can help you sound more natural and precise. Try to incorporate these into your practice answers.
Sports Vocabulary
- Types of Sports: team sports (e.g., football, basketball), individual sports (e.g., tennis, swimming), extreme sports (e.g., skydiving, rock climbing), combat sports, water sports, winter sports, athletics.
- Participants & Events: athlete, player, coach, opponent, teammate, referee, fan, spectator, championship, tournament, league, match, game, competition, Olympics.
- Actions & Outcomes: to play, to compete, to train, to win, to lose, to score, to achieve a personal best, victory, defeat, draw, fair play, sportsmanship.
- Phrases: to be a keen sportsman/sportswoman, to follow a team, to be a couch potato, to be in good shape, to break a sweat, to be a good sport.
Physical Activity Vocabulary
- Activities: jogging, cycling, swimming, hiking, yoga, Pilates, weightlifting, cardio, gym workout, brisk walk, stretching, dancing.
- Benefits: to keep fit, to stay healthy, to boost energy, to reduce stress, to improve stamina, to build muscle, mental well-being, physical fitness, endurance, discipline.
- Equipment/Places: gym, fitness center, track, court, swimming pool, weights, treadmill, exercise bike.
- Phrases: to work out, to lead an active lifestyle, to hit the gym, to break a sweat, to be out of breath, to get in shape, to feel refreshed.
Expanding your lexical resource is key for higher band scores. Consider exploring our full list of Vocabulary Words for IELTS.
Practice: Advanced Vocabulary
Now, let's practice using more specific vocabulary in context with a fill-in-the-blanks exercise.
Interactive Practice: Advanced Vocabulary Skills
1.3 Fill in the Blanks (Vocabulary)
Running a marathon requires a lot of and mental strength.
Grammar & Fluency Tips for Part 1
Beyond vocabulary, how you structure your answers and how smoothly you speak are critical.
- Extend Your Answers: Don't give one-word answers. Aim for 2-4 sentences. Use the EEE technique:
- Explain (your direct answer)
- Expand (add a detail or reason)
- Example (give a brief personal example or illustration)
Example: "Do you play any sports?"
"Yes, I play badminton regularly. I usually play twice a week with a group of friends at a local sports centre. It's a great way to stay active and also quite competitive."
- Use Linking Words/Phrases: This improves coherence. Examples: "well," "actually," "to be honest," "I suppose," "as for me," "for instance," "in my opinion," "however," "therefore," "in addition."
- Vary Sentence Structure: Mix simple and compound sentences. Don't use the same sentence opener repeatedly.
- Maintain a Natural Pace: Don't rush or speak too slowly. Aim for a comfortable, conversational speed.
- Self-Correction: It's okay to correct small mistakes. It shows awareness and can even boost your score if done effectively.
For more general tips that apply across all parts of the test, visit our IELTS Tips and Strategies page.
Practice: Grammar & Coherence
These exercises will help you refine your grammatical accuracy and improve the logical flow of your ideas when talking about sports and physical activity.
Interactive Practice: Grammar & Coherence Skills
2.1 Error Correction
Identify and correct the error: "I like play football."
2.2 Sentence Transformation
Rewrite using 'despite': "Although it was raining, we played the match."
Despite , we played the match.
2.3 Combine Sentences
Combine using 'and': "I enjoy running. I also enjoy cycling."
I enjoy running cycling.
3.1 Sentence Ordering
Order these sentences to form a coherent paragraph:
3.2 Connectors Gap-Fill
Regular exercise is vital. , it boosts your energy levels.
3.3 Logical Paragraph Practice
Read the paragraph and choose the best concluding sentence:
"I enjoy playing team sports like basketball. It's not just about physical activity. It also teaches you about cooperation and strategy."
Pronunciation (Spelling/Word Form Practice)
While the IELTS Speaking test is assessed orally, practicing spelling and word forms can indirectly help with pronunciation and word recognition. These exercises focus on aspects that might lead to mispronunciations or incorrect word usage.
Practice: Pronunciation Aspects
Let's work on some common pronunciation challenges and word forms related to sports and physical activity vocabulary.
Interactive Practice: Pronunciation-Related Skills
4.1 Word Stress Quiz
Which syllable is stressed in the word "ATH-lete"?
4.2 Homophone Fill-in-the-Blank
I need to for the marathon. (choose between 'practice' or 'practise')
4.3 Syllable Sort
How many syllables are in the word "exercise"?
Band Score Examples & Analysis
Understanding what makes an answer a Band 5, 7, or 9 is crucial for your improvement. Let's look at examples for the question: "Do you play any sports?"
Band 5 Answer
"Yes, I play football. I play with friends. It is fun."
Analysis:
- Fluency & Coherence: Very short, simple sentences. Lacks expansion and linking words.
- Lexical Resource: Limited vocabulary ("play," "fun," "friends"). Repetitive.
- Grammatical Range & Accuracy: Basic grammar, no complex structures. Accurate but too simple.
- Pronunciation: (Assumed) May have some hesitation or unclear sounds, but the main issue is lack of content for assessment.
Band 7 Answer
"Yes, I regularly play badminton, usually twice a week. I find it a great way to keep fit and it's also quite a social activity, as I play with a group of friends at a local sports centre."
Analysis:
- Fluency & Coherence: Good length (3 sentences). Uses linking phrases like "and it's also," "as I play." Ideas are connected.
- Lexical Resource: Good range of vocabulary ("regularly," "keep fit," "social activity," "sports centre").
- Grammatical Range & Accuracy: Mix of simple and compound sentences. Accurate grammar.
- Pronunciation: (Assumed) Generally clear, but might have minor issues with intonation or some individual sounds.
Band 9 Answer
"Absolutely, I'm a keen badminton player. I've been playing for about five years now, and I try to get to the sports club at least twice a week. It's a fantastic full-body workout and also a brilliant opportunity to unwind and socialise with my friends after a long day."
Analysis:
- Fluency & Coherence: Smooth, natural flow with minimal hesitation. Excellent use of cohesive devices ("Absolutely," "and also," "after a long day"). Ideas are fully developed.
- Lexical Resource: Wide range of sophisticated and natural vocabulary ("keen player," "sports club," "fantastic full-body workout," "brilliant opportunity," "unwind," "socialise"). Uses less common collocations.
- Grammatical Range & Accuracy: Uses a variety of complex structures accurately and flexibly (e.g., present perfect continuous "I've been playing").
- Pronunciation: (Assumed) Clear, natural intonation and rhythm. All words are intelligible.
Sample Answer Critique: Identify Areas for Improvement
Let's take a Band 5 answer and identify what needs to be improved to get a higher score. Read the sample answer below, then select the areas that need improvement. You can choose multiple options.
Critique This Answer
Question: Do you play any sports?
"Yes, I play football. I play with friends. It is fun."
What could be improved in this answer to get a higher band score?
Build Your Own Answer
This section allows you to practice answering full IELTS Part 1 questions. Type your complete response and receive rule-based feedback on your answer's length and the inclusion of relevant keywords. This simulates the actual test experience more closely.
Practice answering full IELTS Part 1 questions and get feedback on your response. Focus on applying what you've learned!
Question 1/4:
Do you play any sports?
How to Practice Effectively
To make the most of this page and prepare for your IELTS Speaking test, follow these steps:
- Understand the Criteria: Familiarize yourself with the four marking criteria (Fluency & Coherence, Lexical Resource, Grammatical Range & Accuracy, Pronunciation).
- Study the Vocabulary: Go through the vocabulary lists provided. Try to incorporate new words and phrases naturally into your answers.
- Practice Answering Questions Aloud: Even though the interactive exercises are text-based, the real test is spoken. Practice answering the "Common Questions" section out loud, recording yourself if possible.
- Use the Interactive Exercises: Engage with all 12 types of exercises to strengthen specific areas. Pay attention to the feedback provided.
- Analyze Band Score Examples: Carefully read the provided band score examples and their analyses. Understand *why* an answer gets a certain score.
- Utilize "Sample Answer Critique": Use this tool to actively identify weaknesses in sample answers, training your eye for IELTS criteria.
- Utilize "Build Your Own Answer": This section is crucial. Type out your full answers and use the feedback to refine your responses based on the IELTS criteria.
- Review Sample Answers: Compare your answers to the provided sample answers to identify areas for improvement in structure, vocabulary, and grammar.
- Seek Human Feedback: If possible, practice with a native speaker, an IELTS tutor, or a study partner who can provide honest feedback on your *spoken* responses.
- Time Yourself: For Part 1, aim for answers that are 2-4 sentences long. Practice keeping your answers concise yet informative.
Common Mistakes & How to Avoid Them
Be aware of these common pitfalls when discussing 'Sports & Physical Activity' in IELTS Part 1:
- Giving One-Word Answers: Avoid simply saying "Yes" or "No." Always extend your answer with a reason or an example.
Instead of: "Do you play any sports? No."
Try: "No, I don't really play any organized sports, but I do enjoy going for long walks and cycling in my free time to stay active."
- Over-explaining/Monologuing: Part 1 requires concise answers. Don't go into too much detail as if it's Part 2 or 3.
Correction: Stick to 2-4 sentences per answer.
- Using Overly Complex Vocabulary Incorrectly: It's better to use simpler vocabulary correctly than to misuse advanced words.
Correction: Focus on accuracy first, then expand your range.
- Grammar Mistakes (especially tenses): Ensure you use appropriate tenses (e.g., present simple for current habits, past simple for childhood activities).
Correction: Review basic grammar rules and practice constructing correct sentences.
- Lack of Cohesion: Not using linking words or logical connectors makes your answers sound disjointed.
Correction: Practice using phrases like "however," "therefore," "in addition," "for instance."
- Memorizing Answers: Examiners can spot memorized answers easily. Your speech should sound natural and spontaneous.
Correction: Understand the questions and practice generating ideas, not memorizing full answers.
Frequently Asked Questions (FAQs)
Your Questions Answered
How long should my answers be in IELTS Speaking Part 1?
Aim for 2-4 sentences per answer. This allows you to explain and expand without giving an overly long monologue. It's about quality and clarity, not quantity.
What if I don't play any sports?
It's fine. You can honestly say you don't play sports but then talk about other physical activities you enjoy (e.g., walking, cycling, dancing, going to the gym). The topic is "Sports & Physical Activity," so focus on the latter if sports aren't your thing.
Should I use specific names of sports teams or athletes?
You can, but keep it brief. The examiner is testing your English, not your sports knowledge. For example: "I follow my local football team, the Rovers." Avoid going into lengthy details about statistics or player names.
How can I make my answers sound more natural?
Use common phrases related to sports and fitness (e.g., 'keep fit,' 'break a sweat,' 'couch potato'), linking words, and varied sentence structures. Practice speaking about physical activity as if you're having a casual conversation, focusing on clear and concise explanations.
Is it okay to say I dislike a popular sport?
Yes, it's perfectly fine to express a dislike. Just be ready to briefly explain why, without being overly negative or dramatic. For example: "I'm not a big fan of extreme sports, as I find them too risky for my taste."
How important is pronunciation when discussing sports and activity?
Pronunciation is crucial for all topics. Ensure your key vocabulary related to sports (e.g., 'athlete,' 'competition,' 'stamina') is clear. While accent is not graded, intelligibility is key. Practice word stress and intonation for natural delivery.
Conclusion
Mastering IELTS Speaking Part 1, especially on common topics like Sports and Physical Activity, is fundamental to achieving a high band score. By understanding the examiner's criteria, expanding your vocabulary, practicing grammatical accuracy, and enhancing your fluency, you can confidently navigate this section of the test.
The interactive exercises on this page are designed to give you targeted practice in key areas. Remember to combine these text-based exercises with actual spoken practice to fully prepare for the dynamic nature of the IELTS Speaking test. Keep practicing, and you'll be well on your way to success!
Explore More IELTS Speaking Guides
IELTS Speaking Part 1: Work/Study Practice
Practice common questions about your job or academic life with vocabulary and tips.
Start Practice
IELTS Speaking Part 1: Home Practice
Practice common questions about your home and living situation with vocabulary and tips.
Start Practice
IELTS Speaking Part 1: Weather Practice
Master questions about weather and climate with essential vocabulary and sample answers.
Start Practice
IELTS Speaking Part 1: Hobbies Practice
Learn to discuss your leisure activities and interests confidently.
Start Practice
IELTS Speaking Part 1: Family & Friends Practice
Prepare for questions about your relationships with family and friends.
Start Practice
IELTS Speaking Part 1: Food & Cooking Practice
Practice questions about your eating habits and culinary skills.
Start Practice
IELTS Speaking Part 2: Long Turn Strategy
Understand how to speak for 1-2 minutes on a given topic using cue cards.
Learn More
// --- Data for all exercises ---
// Section 1: Vocabulary Booster
const synonymQuestions = [
{ q: 'What is a synonym for "active" when describing a person?', options: ['lazy', 'energetic', 'tired', 'passive'], a: 'energetic' },
{ q: 'Choose the synonym for "competitive" in sports.', options: ['cooperative', 'rivalrous', 'friendly', 'easygoing'], a: 'rivalrous' },
{ q: 'What is a synonym for "stamina"?', options: ['weakness', 'endurance', 'fatigue', 'speed'], a: 'endurance' },
{ q: 'Which word is a synonym for "leisure" (as in free time)?', options: ['work', 'hobby', 'duty', 'obligation'], a: 'hobby' },
{ q: 'What is a synonym for "opponent" in a game?', options: ['teammate', 'friend', 'rival', 'partner'], a: 'rival' },
{ q: 'Synonym for "victory"?', options: ['defeat', 'win', 'draw', 'loss'], a: 'win' },
{ q: 'Synonym for "discipline" (in training)?', options: ['chaos', 'order', 'freedom', 'laziness'], a: 'order' },
{ q: 'Synonym for "recreational" activity?', options: ['professional', 'serious', 'leisure', 'work'], a: 'leisure' },
{ q: 'Synonym for "brisk" walk?', options: ['slow', 'quick', 'lazy', 'stroll'], a: 'quick' },
{ q: 'Synonym for "unwind" (after exercise)?', options: ['stress', 'relax', 'tense', 'work'], a: 'relax' }
];
let currentSynonymIndex = 0;
const collocationQuestions = [
{ q: 'Choose the correct word to complete the collocation: "to keep ______".', options: ['slow', 'fit', 'bad', 'down'], a: 'fit' },
{ q: 'Which verb collocates with "sports"? "to play ______".', options: ['do', 'make', 'play', 'go'], a: 'play' },
{ q: 'Complete the collocation: "to break a ______".', options: ['bone', 'sweat', 'rule', 'record'], a: 'sweat' },
{ q: 'Which word collocates with "team"? "to join a ______".', options: ['group', 'club', 'team', 'band'], a: 'team' },
{ q: 'Complete the collocation: "to hit the ______".', options: ['road', 'gym', 'books', 'bed'], a: 'gym' },
{ q: 'To have a ______ for something (a talent).', options: ['knack', 'skill', 'ability', 'gift'], a: 'knack' },
{ q: 'To achieve a personal ______.', options: ['best', 'record', 'goal', 'target'], a: 'best' },
{ q: 'To lead an ______ lifestyle.', options: ['inactive', 'sedentary', 'active', 'boring'], a: 'active' },
{ q: 'To build ______.', options: ['houses', 'muscle', 'sandcastles', 'bridges'], a: 'muscle' },
{ q: 'To boost ______ levels.', options: ['stress', 'energy', 'fatigue', 'anxiety'], a: 'energy' }
];
let currentCollocationIndex = 0;
const vocabFillQuestions = [
{ q: 'Running a marathon requires a lot of and mental strength.', a: 'endurance' },
{ q: 'I try to out at the gym three times a week.', a: 'work' },
{ q: 'She has incredible ; she can run for hours without getting tired.', a: 'stamina' },
{ q: 'Football is a very sport in my country.', a: 'popular' },
{ q: 'Yoga is a great way to improve your and flexibility.', a: 'fitness' },
{ q: 'I prefer sports like swimming, as I can do them at my own pace.', a: 'individual' },
{ q: 'He shows great in his daily training routine.', a: 'discipline' },
{ q: 'After a long run, I like to with some gentle stretching.', a: 'unwind' },
{ q: 'The new sports in our town are excellent.', a: 'facilities' },
{ q: 'Many people enjoy activities like hiking and cycling on weekends.', a: 'recreational' }
];
let currentVocabFillIndex = 0;
// Section 2: Grammar Range & Accuracy
const errorCorrectionQuestions = [
{ q: 'Identify and correct the error: "I like play football."', a: 'playing', tip: 'After "like", use the gerund (-ing) form of the verb.' },
{ q: 'Identify and correct the error: "He is good at run."', a: 'running', tip: 'After prepositions like "at", use the gerund (-ing) form of the verb.' },
{ q: 'Identify and correct the error: "She has been playing tennis since five years."', a: 'for', tip: 'Use "for" with a duration (e.g., "for five years"), and "since" with a starting point (e.g., "since 2020").' },
{ q: 'Identify and correct the error: "If I would have more time, I would join a gym."', a: 'had', tip: 'This is a Second Conditional. The "if" clause uses past simple: "If I had..."' },
{ q: 'Identify and correct the error: "Despite of the injury, he continued to play."', a: 'Despite', tip: '"Despite" does not take "of". Use "Despite the injury" or "In spite of the injury".' },
{ q: 'Identify and correct the error: "Everyone in my team are very supportive."', a: 'is', tip: '"Everyone" is a singular pronoun and takes a singular verb.' },
{ q: 'Identify and correct the error: "I look forward to go swimming tomorrow."', a: 'going', tip: '"Look forward to" is a phrasal verb followed by a gerund (-ing form).' },
{ q: 'Identify and correct the error: "The benefits of exercise is many."', a: 'are', tip: 'Subject-verb agreement: "Benefits" (plural) requires "are" (plural verb).' },
{ q: 'Identify and correct the error: "When I was child, I played a lot of sports."', a: 'a child', tip: 'Use the indefinite article "a" before "child".' },
{ q: 'Identify and correct the error: "He is used to wake up early for training."', a: 'waking', tip: '"Be used to" is followed by a gerund (-ing) form, meaning accustomed to something.' }
];
let currentErrorCorrectionIndex = 0;
const sentenceTransformQuestions = [
{ q: 'Rewrite using \'despite\': "Although it was raining, we played the match."
Despite , we played the match.', a: 'the rain', tip: '"Despite" is followed by a noun or gerund phrase.' },
{ q: 'Rewrite starting with \'Not only\': "He is a talented athlete. He is also a great coach."
Not only , but he is also a great coach.', a: 'is he a talented athlete', tip: 'Inversion occurs after "Not only" at the beginning of a sentence.' },
{ q: 'Rewrite using a passive voice: "Millions of people watch the Olympics every four years."
The Olympics by millions of people every four years.', a: 'are watched', tip: 'Passive voice: "are + past participle".' },
{ q: 'Rewrite using \'unless\': "You won\'t improve your fitness if you don\'t exercise regularly."
You won\'t improve your fitness .', a: 'unless you exercise regularly', tip: '"Unless" means "if not".' },
{ q: 'Rewrite using \'such a\': "It was a very exciting game. Everyone was on the edge of their seats."
It was that everyone was on the edge of their seats.', a: 'such an exciting game', tip: '"Such a/an + adjective + noun + that" for emphasis.' },
{ q: 'Rewrite using \'in spite of\': "She was tired, but she still went for a run."
In spite of , she still went for a run.', a: 'being tired', tip: '"In spite of" is followed by a noun or gerund phrase.' },
{ q: 'Rewrite using \'would rather\': "I prefer to work out alone than in a group."
I alone than in a group.', a: 'would rather work out', tip: '"Would rather + base verb + than + base verb" for preference.' },
{ q: 'Rewrite using \'provided that\': "You can join the club if you are over 18."
You can join the club over 18.', a: 'provided that you are', tip: '"Provided that" means "if" or "on condition that".' }
];
let currentSentenceTransformIndex = 0;
const combineSentencesQuestions = [
{ q: 'Combine using \'and\': "I enjoy running. I also enjoy cycling."
I enjoy running cycling.', a: 'and' },
{ q: 'Combine using \'because\': "I exercise regularly. It helps me stay healthy."
I exercise regularly it helps me stay healthy.', a: 'because' },
{ q: 'Combine using \'although\': "The gym is crowded. I still go there."
the gym is crowded, I still go there.', a: 'Although' },
{ q: 'Combine using \'so\': "I was out of shape. I decided to start jogging."
I was out of shape, I decided to start jogging.', a: 'so' },
{ q: 'Combine using \'where\': "This is the park. I often go for a run there."
This is the park I often go for a run.', a: 'where' },
{ q: 'Combine using \'but\': "I like team sports. I prefer individual activities."
I like team sports, I prefer individual activities.', a: 'but' },
{ q: 'Combine using \'after\': "I finished my workout. I took a shower."
finishing my workout, I took a shower.', a: 'After' },
{ q: 'Combine using \'as well as\': "Football is popular. Basketball is popular."
Football basketball are popular.', a: 'as well as' },
{ q: 'Combine using \'in order to\': "I train hard. I want to improve my performance."
I train hard improve my performance.', a: 'in order to' },
{ q: 'Combine using \'if\': "You want to get fit. You should exercise regularly."
you want to get fit, you should exercise regularly.', a: 'If' }
];
let currentCombineSentencesIndex = 0;
// Section 3: Fluency & Coherence
const sentenceOrderingQuestions = [
{
q: [
"1. It also teaches you about cooperation and strategy.",
"2. I enjoy playing team sports like basketball.",
"3. It's not just about physical activity."
],
a: "231",
full: "I enjoy playing team sports like basketball. It's not just about physical activity. It also teaches you about cooperation and strategy."
},
{
q: [
"1. I often go for a run in the park.",
"2. To stay healthy, I try to be active every day.",
"3. This helps me maintain my fitness and reduce stress."
],
a: "213",
full: "To stay healthy, I try to be active every day. I often go for a run in the park. This helps me maintain my fitness and reduce stress."
},
{
q: [
"1. It was an incredibly thrilling experience.",
"2. I once attended a live football match.",
"3. The atmosphere in the stadium was electric."
],
a: "231",
full: "I once attended a live football match. The atmosphere in the stadium was electric. It was an incredibly thrilling experience."
},
{
q: [
"1. They provide a great way to unwind.",
"2. I prefer exercising outdoors.",
"3. The fresh air and natural scenery are very refreshing."
],
a: "231",
full: "I prefer exercising outdoors. The fresh air and natural scenery are very refreshing. They provide a great way to unwind."
},
{
q: [
"1. They can inspire others to pursue their goals.",
"2. I believe professional athletes can be good role models.",
"3. Their dedication and discipline are particularly admirable."
],
a: "231",
full: "I believe professional athletes can be good role models. Their dedication and discipline are particularly admirable. They can inspire others to pursue their goals."
}
];
let currentSentenceOrderingIndex = 0;
const connectorsGapFillQuestions = [
{ q: 'Regular exercise is vital. , it boosts your energy levels.', options: ['However', 'Therefore', 'In addition', 'For example'], a: 'In addition' },
{ q: 'I enjoy playing team sports; , I also like individual activities like swimming.', options: ['consequently', 'on the other hand', 'similarly', 'furthermore'], a: 'on the other hand' },
{ q: 'He trains very hard. , he often achieves personal bests.', options: ['However', 'Therefore', 'In addition', 'In contrast'], a: 'Therefore' },
{ q: 'Keeping fit has many benefits. , it improves mental well-being.', options: ['Similarly', 'Furthermore', 'Consequently', 'On the other hand'], a: 'Furthermore' },
{ q: 'I don\'t play competitive sports. , I enjoy recreational activities.', options: ['Therefore', 'Nevertheless', 'In contrast', 'As a result'], a: 'Nevertheless' },
{ q: 'Technology can hinder physical activity. , it also offers apps for tracking fitness.', options: ['Moreover', 'However', 'In addition', 'Consequently'], a: 'However' },
{ q: 'Children should play sports. , it teaches them teamwork and discipline.', options: ['Therefore', 'Nevertheless', 'In contrast', 'As a result'], a: 'Therefore' },
{ q: 'I prefer working out alone. , I can focus better without distractions.', options: ['However', 'Therefore', 'In addition', 'In contrast'], a: 'Therefore' }
];
let currentConnectorsGapFillIndex = 0;
const logicalParagraphQuestions = [
{
q: 'I enjoy playing team sports like basketball. It\'s not just about physical activity. It also teaches you about cooperation and strategy.',
options: [
'Therefore, I prefer individual sports.',
'I find it very boring.',
'This makes it a well-rounded and engaging way to stay fit and develop important life skills.',
'I never play sports with others.'
],
a: 'This makes it a well-rounded and engaging way to stay fit and develop important life skills.'
},
{
q: 'To stay healthy, I try to be active every day. I often go for a run in the park or do some yoga at home. This helps me maintain my fitness and reduce stress.',
options: [
'I rarely do any physical activity.',
'I prefer to sit on the couch all day.',
'These regular activities are crucial for my overall physical and mental well-being.',
'I find exercise very difficult.'
],
a: 'These regular activities are crucial for my overall physical and mental well-being.'
},
{
q: 'I once attended a live football match. The atmosphere in the stadium was electric, with thousands of fans cheering. It was an incredibly thrilling experience.',
options: [
'I found it very dull and quiet.',
'I never want to go to a live event again.',
'The energy and excitement of being part of such a crowd were truly unforgettable.',
'I left early because I was bored.'
],
a: 'The energy and excitement of being part of such a crowd were truly unforgettable.'
},
{
q: 'I prefer exercising outdoors. The fresh air and natural scenery are very refreshing, especially when I go hiking in the mountains. They provide a great way to unwind.',
options: [
'I always prefer indoor gyms.',
'I dislike nature and fresh air.',
'This connection with nature makes my workouts much more enjoyable and invigorating.',
'Outdoor exercise is too difficult.'
],
a: 'This connection with nature makes my workouts much more enjoyable and invigorating.'
},
{
q: 'I believe professional athletes can be good role models. Their dedication and discipline are particularly admirable, showing what can be achieved through hard work. They can inspire others to pursue their goals.',
options: [
'They often behave badly.',
'I don\'t think they have any positive impact.',
'Their commitment to excellence and perseverance sets a powerful example for aspiring individuals.',
'I only care about their performance.'
],
a: 'Their commitment to excellence and perseverance sets a powerful example for aspiring individuals.'
}
];
let currentLogicalParagraphIndex = 0;
// Section 4: Pronunciation (Spelling/Word Form Practice)
const wordStressQuestions = [
{ q: 'Which syllable is stressed in the word "ATH-lete"?', options: ['ath', 'lete'], a: 'ath', explanation: 'ATH-lete' },
{ q: 'Which syllable is stressed in the word "COM-pe-ti-tion"?', options: ['com', 'pe', 'ti', 'tion'], a: 'ti', explanation: 'com-pe-TI-tion' },
{ q: 'Which syllable is stressed in the word "PHY-si-cal"?', options: ['phy', 'si', 'cal'], a: 'phy', explanation: 'PHY-si-cal' },
{ q: 'Which syllable is stressed in the word "AC-ti-vi-ty"?', options: ['ac', 'ti', 'vi', 'ty'], a: 'ti', explanation: 'ac-TI-vi-ty' },
{ q: 'Which syllable is stressed in the word "STA-di-um"?', options: ['sta', 'di', 'um'], a: 'sta', explanation: 'STA-di-um' },
{ q: 'Which syllable is stressed in the word "EN-du-rance"?', options: ['en', 'du', 'rance'], a: 'du', explanation: 'en-DU-rance' },
{ q: 'Which syllable is stressed in the word "DIS-ci-pline"?', options: ['dis', 'ci', 'pline'], a: 'dis', explanation: 'DIS-ci-pline' },
{ q: 'Which syllable is stressed in the word "REC-re-a-tion-al"?', options: ['rec', 're', 'a', 'tion', 'al'], a: 'rec', explanation: 'REC-re-a-tion-al' },
{ q: 'Which syllable is stressed in the word "O-PPO-nent"?', options: ['o', 'ppo', 'nent'], a: 'ppo', explanation: 'o-PPO-nent' },
{ q: 'Which syllable is stressed in the word "ATH-le-tics"?', options: ['ath', 'le', 'tics'], a: 'le', explanation: 'ath-LE-tics' }
];
let currentWordStressIndex = 0;
const homophoneQuestions = [
{ q: 'I need to for the marathon. (choose between \'practice\' or \'practise\')', a: 'practise', tip: 'In British English, "practise" is the verb, "practice" is the noun. In American English, "practice" is both.' },
{ q: 'He showed great in the race. (choose between \'feat\' or \'feet\')', a: 'feat', tip: 'Feat (noun) is an achievement. Feet (noun) are body parts.' },
{ q: 'Did your team the game? (choose between \'win\' or \'when\')', a: 'win', tip: 'Win (verb) means to be victorious. When (adverb) refers to time.' },
{ q: 'The is very competitive. (choose between \'sport\' or \'spot\')', a: 'sport', tip: 'Sport (noun) is an athletic activity. Spot (noun) is a small mark or place.' },
{ q: 'I like to in the park. (choose between \'run\' or \'ran\')', a: 'run', tip: 'Run (verb) is the present tense. Ran is the past tense.' },
{ q: 'She has a strong . (choose between \'body\' or \'bode\')', a: 'body', tip: 'Body (noun) is the physical structure. Bode (verb) means to be an omen.' },
{ q: 'I need to up for the match. (choose between \'warm\' or \'worm\')', a: 'warm', tip: 'Warm (verb) means to prepare for activity. Worm (noun) is a small invertebrate.' },
{ q: 'The was very exciting. (choose between \'game\' or \'gyme\')', a: 'game', tip: 'Game (noun) is a form of play or competition. "Gyme" is not a word.' },
{ q: 'He is a great . (choose between \'player\' or \'plair\')', a: 'player', tip: 'Player (noun) is someone who plays a game. "Plair" is not a word.' },
{ q: 'I like to in the swimming pool. (choose between \'dive\' or \'dife\')', a: 'dive', tip: 'Dive (verb) means to plunge into water. "Dife" is not a word.' }
];
let currentHomophoneIndex = 0;
const syllableSortQuestions = [
{ q: 'How many syllables are in the word "exercise"?', options: ['2', '3', '4', '5'], a: '3', explanation: 'ex-er-cise (3 syllables)' },
{ q: 'How many syllables are in the word "championship"?', options: ['3', '4', '5', '6'], a: '3', explanation: 'cham-pi-on-ship (3 syllables)' },
{ q: 'How many syllables are in the word "fitness"?', options: ['1', '2', '3', '4'], a: '2', explanation: 'fit-ness (2 syllables)' },
{ q: 'How many syllables are in the word "opponent"?', options: ['2', '3', '4', '5'], a: '3', explanation: 'op-po-nent (3 syllables)' },
{ q: 'How many syllables are in the word "physical"?', options: ['2', '3', '4', '5'], a: '3', explanation: 'phy-si-cal (3 syllables)' },
{ q: 'How many syllables are in the word "activity"?', options: ['3', '4', '5', '6'], a: '4', explanation: 'ac-ti-vi-ty (4 syllables)' },
{ q: 'How many syllables are in the word "stadium"?', options: ['2', '3', '4', '5'], a: '3', explanation: 'sta-di-um (3 syllables)' },
{ q: 'How many syllables are in the word "discipline"?', options: ['2', '3', '4', '5'], a: '3', explanation: 'dis-ci-pline (3 syllables)' },
{ q: 'How many syllables are in the word "swimming"?', options: ['1', '2', '3', '4'], a: '2', explanation: 'swim-ming (2 syllables)' },
{ q: 'How many syllables are in the word "athlete"?', options: ['1', '2', '3', '4'], a: '2', explanation: 'ath-lete (2 syllables)' }
];
let currentSyllableSortIndex = 0;
// Section 5: Build Your Own Answer (Rule-based Feedback)
const buildAnswerQuestions = [
{
q: "Do you play any sports?",
sample: "Absolutely, I'm a keen badminton player. I've been playing for about five years now, and I try to get to the sports club at least twice a week. It's a fantastic full-body workout and also a brilliant opportunity to unwind and socialise with my friends after a long day.",
minWords: 15,
maxWords: 40,
keywords: ['play', 'sports', 'badminton', 'football', 'tennis', 'swimming', 'team', 'individual', 'club', 'active']
},
{
q: "What kind of physical activity do you enjoy?",
sample: "I really enjoy cycling, especially on weekends when I can go for long rides in the countryside. It's a great way to explore new places, get some fresh air, and keep my cardiovascular fitness up. I also do some yoga for flexibility.",
minWords: 20,
maxWords: 50,
keywords: ['physical activity', 'exercise', 'enjoy', 'cycling', 'walking', 'running', 'gym', 'yoga', 'fitness', 'healthy']
},
{
q: "Is it important to keep fit? Why?",
sample: "Yes, I believe it's incredibly important to keep fit. Regular physical activity not only benefits your physical health by preventing diseases but also significantly boosts your mental well-being, reducing stress and improving mood. It's essential for a good quality of life.",
minWords: 20,
maxWords: 50,
keywords: ['important', 'keep fit', 'healthy', 'exercise', 'benefits', 'physical health', 'mental well-being', 'stress', 'energy']
},
{
q: "Did you play any sports when you were a child?",
sample: "Yes, when I was a child, I used to play a lot of football with my friends in the local park. I wasn't particularly skilled, but I loved the team spirit and the sheer joy of running around. It was a big part of my childhood.",
minWords: 20,
maxWords: 50,
keywords: ['child', 'childhood', 'play', 'sports', 'used to', 'football', 'team', 'friends', 'park', 'active']
}
];
let currentBuildAnswerIndex = 0;
// Sample Answer Critique Tool Data
const critiqueSampleAnswer = {
question: "Do you play any sports?",
answer: "Yes, I play football. I play with friends. It is fun.",
correctImprovements: [
"The answer is too short.",
"The vocabulary is too basic and repetitive.",
"The answer lacks detail and expansion.",
"The sentences are not well connected."
],
// Note: "There are grammatical errors" is not a correct improvement for this specific Band 5 answer,
// as the grammar, while simple, is technically accurate.
feedbackMessages: {
too_short: "Correct! For Part 1, aim for 2-4 sentences to provide enough information.",
limited_vocab: "Correct! Using a wider range of vocabulary (e.g., 'keen player,' 'regularly,' 'social activity') would improve your Lexical Resource score.",
grammar_errors: "While the grammar is very simple, it is actually accurate. The main issue isn't errors, but lack of grammatical range.",
lack_detail: "Correct! The answer needs more details, reasons, or examples to be fully developed. Think 'EEE' (Explain, Expand, Example).",
poor_coherence: "Correct! The sentences are very choppy. Using linking words (e.g., 'because,' 'also,' 'furthermore') would make the answer flow more naturally."
}
};
// --- Helper Functions for Exercises ---
function getRadioValue(name) {
const radios = document.querySelectorAll(`input[name="${name}"]:checked`);
return radios.length > 0 ? radios[0].value : null;
}
function setFeedback(elementId, isCorrect, message) {
const feedbackElem = document.getElementById(elementId);
feedbackElem.innerHTML = message; /* Use innerHTML to allow for highlights */
feedbackElem.className = `exercise-feedback ${isCorrect ? 'correct' : 'incorrect'}`;
feedbackElem.style.display = 'block';
}
function clearRadioSelection(name) {
document.querySelectorAll(`input[name="${name}"]`).forEach(radio => radio.checked = false);
}
function disableRadioOptions(name, disabled) {
document.querySelectorAll(`input[name="${name}"]`).forEach(radio => radio.disabled = disabled);
}
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
// --- Exercise 1.1: Synonym Match ---
function loadSynonymQuestion() {
const qData = synonymQuestions[currentSynonymIndex];
document.getElementById('synonymQuestion').textContent = qData.q;
const optionsElem = document.getElementById('synonymOptions');
optionsElem.innerHTML = '';
shuffleArray(qData.options).forEach(option => {
const label = document.createElement('label');
const input = document.createElement('input');
input.type = 'radio';
input.name = 'synonym';
input.value = option;
label.appendChild(input);
label.appendChild(document.createTextNode(` ${option}`));
optionsElem.appendChild(label);
});
document.getElementById('synonymFeedback').style.display = 'none';
disableRadioOptions('synonym', false);
}
function checkSynonym() {
const userAnswer = getRadioValue('synonym');
const correctAnswer = synonymQuestions[currentSynonymIndex].a;
const isCorrect = userAnswer === correctAnswer;
setFeedback('synonymFeedback', isCorrect, isCorrect ? 'Correct!' : `Incorrect. The correct answer is "${correctAnswer}".`);
disableRadioOptions('synonym', true);
}
function nextSynonym() {
currentSynonymIndex = (currentSynonymIndex + 1) % synonymQuestions.length;
loadSynonymQuestion();
}
// --- Exercise 1.2: Collocation Quiz ---
function loadCollocationQuestion() {
const qData = collocationQuestions[currentCollocationIndex];
document.getElementById('collocationQuestion').textContent = qData.q;
const optionsElem = document.getElementById('collocationOptions');
optionsElem.innerHTML = '';
shuffleArray(qData.options).forEach(option => {
const label = document.createElement('label');
const input = document.createElement('input');
input.type = 'radio';
input.name = 'collocation';
input.value = option;
label.appendChild(input);
label.appendChild(document.createTextNode(` ${option}`));
optionsElem.appendChild(label);
});
document.getElementById('collocationFeedback').style.display = 'none';
disableRadioOptions('collocation', false);
}
function checkCollocation() {
const userAnswer = getRadioValue('collocation');
const correctAnswer = collocationQuestions[currentCollocationIndex].a;
const isCorrect = userAnswer === correctAnswer;
setFeedback('collocationFeedback', isCorrect, isCorrect ? 'Correct!' : `Incorrect. The correct answer is "${correctAnswer}".`);
disableRadioOptions('collocation', true);
}
function nextCollocation() {
currentCollocationIndex = (currentCollocationIndex + 1) % collocationQuestions.length;
loadCollocationQuestion();
}
// --- Exercise 1.3: Fill in the Blanks (Vocabulary) ---
function loadVocabFillQuestion() {
const qData = vocabFillQuestions[currentVocabFillIndex];
document.getElementById('vocabFillQuestion').innerHTML = qData.q;
document.getElementById('vocabFillInput').value = '';
document.getElementById('vocabFillFeedback').style.display = 'none';
document.getElementById('vocabFillInput').disabled = false;
}
function checkVocabFill() {
const userAnswer = document.getElementById('vocabFillInput').value.trim().toLowerCase();
const correctAnswer = vocabFillQuestions[currentVocabFillIndex].a.toLowerCase();
const isCorrect = userAnswer === correctAnswer;
setFeedback('vocabFillFeedback', isCorrect, isCorrect ? 'Correct!' : `Incorrect. The correct answer is "${vocabFillQuestions[currentVocabFillIndex].a}".`);
document.getElementById('vocabFillInput').disabled = true;
}
function nextVocabFill() {
currentVocabFillIndex = (currentVocabFillIndex + 1) % vocabFillQuestions.length;
loadVocabFillQuestion();
}
// --- Exercise 2.1: Error Correction ---
function loadErrorCorrectionQuestion() {
const qData = errorCorrectionQuestions[currentErrorCorrectionIndex];
document.getElementById('errorCorrectionQuestion').textContent = qData.q;
document.getElementById('errorCorrectionInput').value = '';
document.getElementById('errorCorrectionFeedback').style.display = 'none';
document.getElementById('errorCorrectionInput').disabled = false;
}
function checkErrorCorrection() {
const userAnswer = document.getElementById('errorCorrectionInput').value.trim().toLowerCase();
const correctAnswer = errorCorrectionQuestions[currentErrorCorrectionIndex].a.toLowerCase();
const isCorrect = userAnswer === correctAnswer;
setFeedback('errorCorrectionFeedback', isCorrect, isCorrect ? `Correct! ${errorCorrectionQuestions[currentErrorCorrectionIndex].tip}` : `Incorrect. The correct answer is "${errorCorrectionQuestions[currentErrorCorrectionIndex].a}". ${errorCorrectionQuestions[currentErrorCorrectionIndex].tip}`);
document.getElementById('errorCorrectionInput').disabled = true;
}
function nextErrorCorrection() {
currentErrorCorrectionIndex = (currentErrorCorrectionIndex + 1) % errorCorrectionQuestions.length;
loadErrorCorrectionQuestion();
}
// --- Exercise 2.2: Sentence Transformation ---
function loadSentenceTransformQuestion() {
const qData = sentenceTransformQuestions[currentSentenceTransformIndex];
document.getElementById('sentenceTransformQuestion').innerHTML = qData.q;
document.getElementById('sentenceTransformInput').value = '';
document.getElementById('sentenceTransformFeedback').style.display = 'none';
document.getElementById('sentenceTransformInput').disabled = false;
}
function checkSentenceTransform() {
const userAnswer = document.getElementById('sentenceTransformInput').value.trim().toLowerCase();
const correctAnswer = sentenceTransformQuestions[currentSentenceTransformIndex].a.toLowerCase();
const isCorrect = userAnswer === correctAnswer;
setFeedback('sentenceTransformFeedback', isCorrect, isCorrect ? `Correct! ${sentenceTransformQuestions[currentSentenceTransformIndex].tip}` : `Incorrect. The correct answer is "${sentenceTransformQuestions[currentSentenceTransformIndex].a}". ${sentenceTransformQuestions[currentSentenceTransformIndex].tip}`);
document.getElementById('sentenceTransformInput').disabled = true;
}
function nextSentenceTransform() {
currentSentenceTransformIndex = (currentSentenceTransformIndex + 1) % sentenceTransformQuestions.length;
loadSentenceTransformQuestion();
}
// --- Exercise 2.3: Combine Sentences ---
function loadCombineSentencesQuestion() {
const qData = combineSentencesQuestions[currentCombineSentencesIndex];
const questionElem = document.getElementById('combineSentencesQuestion');
questionElem.innerHTML = qData.q;
document.getElementById('combineSentencesInput').value = '';
document.getElementById('combineSentencesFeedback').style.display = 'none';
document.getElementById('combineSentencesInput').disabled = false;
}
function checkCombineSentences() {
const userAnswer = document.getElementById('combineSentencesInput').value.trim().toLowerCase();
const correctAnswer = combineSentencesQuestions[currentCombineSentencesIndex].a.toLowerCase();
const isCorrect = userAnswer === correctAnswer;
setFeedback('combineSentencesFeedback', isCorrect, isCorrect ? 'Correct!' : `Incorrect. The correct answer is "${combineSentencesQuestions[currentCombineSentencesIndex].a}".`);
document.getElementById('combineSentencesInput').disabled = true;
}
function nextCombineSentences() {
currentCombineSentencesIndex = (currentCombineSentencesIndex + 1) % combineSentencesQuestions.length;
loadCombineSentencesQuestion();
}
// --- Exercise 3.1: Sentence Ordering ---
function loadSentenceOrderingQuestion() {
const qData = sentenceOrderingQuestions[currentSentenceOrderingIndex];
const listElem = document.getElementById('sentenceOrderingList');
listElem.innerHTML = '';
const shuffledSentences = shuffleArray([...qData.q]); // Shuffle a copy
shuffledSentences.forEach((sentence, index) => {
const li = document.createElement('li');
li.textContent = `${index + 1}. ${sentence.substring(sentence.indexOf('.') + 2)}`; // Remove original number
listElem.appendChild(li);
});
document.getElementById('sentenceOrderingInput').value = '';
document.getElementById('sentenceOrderingFeedback').style.display = 'none';
document.getElementById('sentenceOrderingInput').disabled = false;
}
function checkSentenceOrdering() {
const userAnswer = document.getElementById('sentenceOrderingInput').value.trim();
const correctAnswer = sentenceOrderingQuestions[currentSentenceOrderingIndex].a;
const isCorrect = userAnswer === correctAnswer;
setFeedback('sentenceOrderingFeedback', isCorrect, isCorrect ? 'Correct! The paragraph is now coherent.' : `Incorrect. The correct order is "${correctAnswer}". Full paragraph: "${sentenceOrderingQuestions[currentSentenceOrderingIndex].full}"`);
document.getElementById('sentenceOrderingInput').disabled = true;
}
function nextSentenceOrdering() {
currentSentenceOrderingIndex = (currentSentenceOrderingIndex + 1) % sentenceOrderingQuestions.length;
loadSentenceOrderingQuestion();
}
// --- Exercise 3.2: Connectors Gap-Fill ---
function loadConnectorsGapFillQuestion() {
const qData = connectorsGapFillQuestions[currentConnectorsGapFillIndex];
document.getElementById('connectorsGapFillQuestion').innerHTML = qData.q;
const optionsElem = document.getElementById('connectorsGapFillOptions');
optionsElem.innerHTML = '';
shuffleArray(qData.options).forEach(option => {
const label = document.createElement('label');
const input = document.createElement('input');
input.type = 'radio';
input.name = 'connectorsGapFill';
input.value = option;
label.appendChild(input);
label.appendChild(document.createTextNode(` ${option}`));
optionsElem.appendChild(label);
});
document.getElementById('connectorsGapFillFeedback').style.display = 'none';
disableRadioOptions('connectorsGapFill', false);
}
function checkConnectorsGapFill() {
const userAnswer = getRadioValue('connectorsGapFill');
const correctAnswer = connectorsGapFillQuestions[currentConnectorsGapFillIndex].a;
const isCorrect = userAnswer === correctAnswer;
setFeedback('connectorsGapFillFeedback', isCorrect, isCorrect ? 'Correct! This linking word improves coherence.' : `Incorrect. The best option is "${correctAnswer}".`);
disableRadioOptions('connectorsGapFill', true);
}
function nextConnectorsGapFill() {
currentConnectorsGapFillIndex = (currentConnectorsGapFillIndex + 1) % connectorsGapFillQuestions.length;
loadConnectorsGapFillQuestion();
}
// --- Exercise 3.3: Logical Paragraph Practice ---
function loadLogicalParagraphQuestion() {
const qData = logicalParagraphQuestions[currentLogicalParagraphIndex];
document.getElementById('logicalParagraphQuestion').innerHTML = `Read the paragraph and choose the best concluding sentence:
"${qData.q}"`;
const optionsElem = document.getElementById('logicalParagraphOptions');
optionsElem.innerHTML = '';
shuffleArray(qData.options).forEach(option => {
const label = document.createElement('label');
const input = document.createElement('input');
input.type = 'radio';
input.name = 'logicalParagraph';
input.value = option;
label.appendChild(input);
label.appendChild(document.createTextNode(` ${option}`));
optionsElem.appendChild(label);
});
document.getElementById('logicalParagraphFeedback').style.display = 'none';
disableRadioOptions('logicalParagraph', false);
}
function checkLogicalParagraph() {
const userAnswer = getRadioValue('logicalParagraph');
const correctAnswer = logicalParagraphQuestions[currentLogicalParagraphIndex].a;
const isCorrect = userAnswer === correctAnswer;
setFeedback('logicalParagraphFeedback', isCorrect, isCorrect ? 'Correct! This sentence logically completes the paragraph.' : `Incorrect. The best concluding sentence is: "${correctAnswer}"`);
disableRadioOptions('logicalParagraph', true);
}
function nextLogicalParagraph() {
currentLogicalParagraphIndex = (currentLogicalParagraphIndex + 1) % logicalParagraphQuestions.length;
loadLogicalParagraphQuestion();
}
// --- Exercise 4.1: Word Stress Quiz ---
function loadWordStressQuestion() {
const qData = wordStressQuestions[currentWordStressIndex];
document.getElementById('wordStressQuestion').textContent = qData.q;
const optionsElem = document.getElementById('wordStressOptions');
optionsElem.innerHTML = '';
shuffleArray(qData.options).forEach(option => {
const label = document.createElement('label');
const input = document.createElement('input');
input.type = 'radio';
input.name = 'wordStress';
input.value = option;
label.appendChild(input);
label.appendChild(document.createTextNode(` ${option.toUpperCase()}`));
optionsElem.appendChild(label);
});
document.getElementById('wordStressFeedback').style.display = 'none';
disableRadioOptions('wordStress', false);
}
function checkWordStress() {
const userAnswer = getRadioValue('wordStress');
const correctAnswer = wordStressQuestions[currentWordStressIndex].a;
const isCorrect = userAnswer === correctAnswer;
setFeedback('wordStressFeedback', isCorrect, isCorrect ? `Correct! ${wordStressQuestions[currentWordStressIndex].explanation}` : `Incorrect. ${wordStressQuestions[currentWordStressIndex].explanation}`);
disableRadioOptions('wordStress', true);
}
function nextWordStress() {
currentWordStressIndex = (currentWordStressIndex + 1) % wordStressQuestions.length;
loadWordStressQuestion();
}
// --- Exercise 4.2: Homophone Fill-in-the-Blank ---
function loadHomophoneQuestion() {
const qData = homophoneQuestions[currentHomophoneIndex];
document.getElementById('homophoneQuestion').innerHTML = qData.q;
document.getElementById('homophoneInput').value = '';
document.getElementById('homophoneFeedback').style.display = 'none';
document.getElementById('homophoneInput').disabled = false;
}
function checkHomophone() {
const userAnswer = document.getElementById('homophoneInput').value.trim().toLowerCase();
const correctAnswer = homophoneQuestions[currentHomophoneIndex].a.toLowerCase();
const isCorrect = userAnswer === correctAnswer;
setFeedback('homophoneFeedback', isCorrect, isCorrect ? `Correct! ${homophoneQuestions[currentHomophoneIndex].tip}` : `Incorrect. The correct word is "${homophoneQuestions[currentHomophoneIndex].a}". ${homophoneQuestions[currentHomophoneIndex].tip}`);
document.getElementById('homophoneInput').disabled = true;
}
function nextHomophone() {
currentHomophoneIndex = (currentHomophoneIndex + 1) % homophoneQuestions.length;
loadHomophoneQuestion();
}
// --- Exercise 4.3: Syllable Sort ---
function loadSyllableSortQuestion() {
const qData = syllableSortQuestions[currentSyllableSortIndex];
document.getElementById('syllableSortQuestion').textContent = qData.q;
const optionsElem = document.getElementById('syllableSortOptions');
optionsElem.innerHTML = '';
shuffleArray(qData.options).forEach(option => {
const label = document.createElement('label');
const input = document.createElement('input');
input.type = 'radio';
input.name = 'syllableSort';
input.value = option;
label.appendChild(input);
label.appendChild(document.createTextNode(` ${option}`));
optionsElem.appendChild(label);
});
document.getElementById('syllableSortFeedback').style.display = 'none';
disableRadioOptions('syllableSort', false);
}
function checkSyllableSort() {
const userAnswer = getRadioValue('syllableSort');
const correctAnswer = syllableSortQuestions[currentSyllableSortIndex].a.toString(); // Ensure string comparison
const isCorrect = userAnswer === correctAnswer;
setFeedback('syllableSortFeedback', isCorrect, isCorrect ? `Correct! ${syllableSortQuestions[currentSyllableSortIndex].explanation}` : `Incorrect. ${syllableSortQuestions[currentSyllableSortIndex].explanation}`);
disableRadioOptions('syllableSort', true);
}
function nextSyllableSort() {
currentSyllableSortIndex = (currentSyllableSortIndex + 1) % syllableSortQuestions.length;
loadSyllableSortQuestion();
}
// --- Sample Answer Critique Tool ---
function loadCritiqueTool() {
document.querySelector('#sampleCritiqueTool .critique-question .answer').textContent = critiqueSampleAnswer.answer;
const optionsElem = document.getElementById('critiqueOptions');
optionsElem.innerHTML = '';
// The options are static for this tool based on the Band 5 answer
critiqueSampleAnswer.correctImprovements.forEach(optionText => {
const label = document.createElement('label');
const input = document.createElement('input');
input.type = 'checkbox';
input.name = 'critiqueOption';
input.value = optionText.replace(/ /g, '_').toLowerCase(); // Create a value from text
label.appendChild(input);
label.appendChild(document.createTextNode(` ${optionText}`));
optionsElem.appendChild(label);
});
// Add the "grammar errors" option even if it's not a correct improvement for this specific answer
// to show how feedback works for incorrect selections.
const grammarLabel = document.createElement('label');
const grammarInput = document.createElement('input');
grammarInput.type = 'checkbox';
grammarInput.name = 'critiqueOption';
grammarInput.value = 'grammar_errors';
grammarLabel.appendChild(grammarInput);
grammarLabel.appendChild(document.createTextNode(' There are grammatical errors.'));
optionsElem.appendChild(grammarLabel);
document.getElementById('critiqueFeedback').style.display = 'none';
document.querySelectorAll('input[name="critiqueOption"]').forEach(checkbox => checkbox.disabled = false);
}
function checkCritique() {
const selectedOptions = Array.from(document.querySelectorAll('input[name="critiqueOption"]:checked')).map(cb => cb.value);
const feedbackElem = document.getElementById('critiqueFeedback');
feedbackElem.innerHTML = '';
feedbackElem.style.display = 'block';
let allCorrectlyIdentified = true;
let feedbackContent = '';
// Check each selected option
selectedOptions.forEach(optionValue => {
const message = critiqueSampleAnswer.feedbackMessages[optionValue];
if (critiqueSampleAnswer.correctImprovements.map(s => s.replace(/ /g, '_').toLowerCase()).includes(optionValue)) {
feedbackContent += `Correct! ${message}
`;
} else {
feedbackContent += `Consider this: ${message}
`;
allCorrectlyIdentified = false;
}
});
// Check for missed correct improvements
critiqueSampleAnswer.correctImprovements.forEach(correctOptionText => {
const correctOptionValue = correctOptionText.replace(/ /g, '_').toLowerCase();
if (!selectedOptions.includes(correctOptionValue)) {
feedbackContent += `Don't forget: ${critiqueSampleAnswer.feedbackMessages[correctOptionValue]}
`;
allCorrectlyIdentified = false;
}
});
if (selectedOptions.length === 0) {
feedbackContent = "Please select at least one option to get feedback.
";
allCorrectlyIdentified = false;
}
feedbackElem.innerHTML = feedbackContent;
feedbackElem.className = `critique-feedback ${allCorrectlyIdentified ? 'correct' : 'incorrect'}`;
document.querySelectorAll('input[name="critiqueOption"]').forEach(checkbox => checkbox.disabled = true);
}
function resetCritique() {
document.querySelectorAll('input[name="critiqueOption"]').forEach(checkbox => {
checkbox.checked = false;
checkbox.disabled = false;
});
document.getElementById('critiqueFeedback').style.display = 'none';
}
// --- Section 5: Build Your Own Answer (Rule-based Feedback) ---
function loadBuildAnswerQuestion() {
const qData = buildAnswerQuestions[currentBuildAnswerIndex];
document.getElementById('buildAnswerQNum').textContent = currentBuildAnswerIndex + 1;
document.getElementById('buildAnswerQuestionText').textContent = qData.q;
document.getElementById('buildAnswerUserAnswer').value = '';
document.getElementById('buildAnswerAiFeedback').style.display = 'none';
document.getElementById('buildAnswerBandEstimate').style.display = 'none'; // This will always be hidden now
document.getElementById('buildAnswerSampleAnswer').style.display = 'none';
document.getElementById('toggleBuildAnswerSampleBtn').textContent = 'Show Sample Band 9 Answer';
document.getElementById('submitBuildAnswer').disabled = false;
document.getElementById('buildAnswerUserAnswer').disabled = false;
document.getElementById('buildAnswerAiFeedback').innerHTML = '';
}
function getBuildAnswerFeedback() {
const qData = buildAnswerQuestions[currentBuildAnswerIndex];
const userResponse = document.getElementById('buildAnswerUserAnswer').value.trim();
const aiFeedbackElem = document.getElementById('buildAnswerAiFeedback');
const submitBtn = document.getElementById('submitBuildAnswer');
const userAnswerArea = document.getElementById('buildAnswerUserAnswer');
submitBtn.disabled = true;
userAnswerArea.disabled = true;
let feedbackMessages = [];
const words = userResponse.split(/\s+/).filter(word => word.length > 0);
const wordCount = words.length;
// 1. Length Check
if (wordCount < qData.minWords) {
feedbackMessages.push(`Your answer is a bit short (${wordCount} words). Try to expand more. Aim for around ${qData.minWords}-${qData.maxWords} words for Part 1.
`);
} else if (wordCount > qData.maxWords) {
feedbackMessages.push(`Your answer is quite long (${wordCount} words). For Part 1, aim for concise answers, typically ${qData.minWords}-${qData.maxWords} words.
`);
} else {
feedbackMessages.push(`Good length for Part 1! (${wordCount} words).
`);
}
// 2. Keyword Check
const lowerCaseResponse = userResponse.toLowerCase();
let foundKeywords = [];
qData.keywords.forEach(keyword => {
if (lowerCaseResponse.includes(keyword)) {
foundKeywords.push(keyword);
}
});
if (foundKeywords.length > 0) {
feedbackMessages.push(`You used relevant keywords: ${foundKeywords.join(', ')}.
`);
} else {
feedbackMessages.push(`Try to incorporate more topic-specific vocabulary. Consider words related to: ${qData.keywords.join(', ')}.
`);
}
// 3. General encouragement/tip (always include)
feedbackMessages.push("Remember to focus on clear articulation and natural fluency when speaking. Keep practicing!
");
aiFeedbackElem.style.display = "block";
aiFeedbackElem.innerHTML = feedbackMessages.join('');
aiFeedbackElem.className = 'feedback-response correct'; // Use correct style as it's general advice
// No band estimate with rule-based feedback
document.getElementById('buildAnswerBandEstimate').style.display = 'none';
submitBtn.disabled = false;
userAnswerArea.disabled = false;
}
function nextBuildAnswer() {
currentBuildAnswerIndex = (currentBuildAnswerIndex + 1) % buildAnswerQuestions.length;
loadBuildAnswerQuestion();
}
function toggleBuildAnswerSample() {
const sampleElem = document.getElementById('buildAnswerSampleAnswer');
const toggleBtn = document.getElementById('toggleBuildAnswerSampleBtn');
if (sampleElem.style.display === 'none') {
sampleElem.innerHTML = `Sample Band 9 Answer: ${buildAnswerQuestions[currentBuildAnswerIndex].sample.replace(/\n/g, '
')}
`;
sampleElem.style.display = 'block';
toggleBtn.textContent = 'Hide Sample Band 9 Answer';
} else {
sampleElem.style.display = 'none';
toggleBtn.textContent = 'Show Sample Band 9 Answer';
}
}
// --- Initial Page Load and Event Listeners ---
window.addEventListener('load', () => {
// Load initial questions for each exercise
loadSynonymQuestion();
loadCollocationQuestion();
loadVocabFillQuestion();
loadErrorCorrectionQuestion();
loadSentenceTransformQuestion();
loadCombineSentencesQuestion();
loadSentenceOrderingQuestion();
loadConnectorsGapFillQuestion();
loadLogicalParagraphQuestion();
loadWordStressQuestion();
loadHomophoneQuestion();
loadSyllableSortQuestion();
loadCritiqueTool(); // Load the critique tool
loadBuildAnswerQuestion(); // Load the first Build Your Own Answer question
// Event Listeners for Build Your Own Answer
document.getElementById('submitBuildAnswer').addEventListener('click', getBuildAnswerFeedback);
document.getElementById('nextBuildAnswer').addEventListener('click', nextBuildAnswer);
document.getElementById('toggleBuildAnswerSampleBtn').addEventListener('click', toggleBuildAnswerSample);
// Event Listeners for Sample Answer Critique
document.getElementById('checkCritique').addEventListener('click', checkCritique);
document.getElementById('resetCritique').addEventListener('click', resetCritique);
// Smooth scroll for TOC links
document.querySelectorAll('.toc-sidebar a').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
document.querySelectorAll('.toc-sidebar ul li a').forEach(link => {
link.classList.remove('active');
});
this.classList.add('active');
});
});
// Highlight active TOC link based on scroll position
window.addEventListener('scroll', () => {
const sections = document.querySelectorAll('.toc-content h2, .toc-content h1, .toc-content h3');
const navLinks = document.querySelectorAll('.toc-sidebar ul li a');
let current = '';
sections.forEach(section => {
const sectionTop = section.offsetTop;
const sectionHeight = section.clientHeight;
if (pageYOffset >= sectionTop - window.innerHeight / 3) {
current = section.getAttribute('id');
}
});
navLinks.forEach(link => {
link.classList.remove('active');
if (link.getAttribute('href') && link.getAttribute('href').includes(current)) {
link.classList.add('active');
}
});
});
// Initialize active class on page load if hash exists
if (window.location.hash) {
const targetId = window.location.hash;
const targetLink = document.querySelector(`.toc-sidebar a[href="${targetId}"]`);
if (targetLink) {
targetLink.classList.add('active');
const targetElement = document.querySelector(targetId);
if (targetElement) {
const headerOffset = 100;
const elementPosition = targetElement.getBoundingClientRect().top + window.pageYOffset;
const offsetPosition = elementPosition - headerOffset;
window.scrollTo({
top: offsetPosition,
behavior: "smooth"
});
}
} else {
const firstLink = document.querySelector('.toc-sidebar ul li a');
if (firstLink) {
firstLink.classList.add('active');
}
}
} else {
const firstLink = document.querySelector('.toc-sidebar ul li a');
if (firstLink) {
firstLink.classList.add('active');
}
}
// Carousel functionality
function scrollCarousel(direction) {
const carousel = document.querySelector('.carousel-wrapper');
const itemWidth = carousel.querySelector('.carousel-item').offsetWidth + 30; // Item width + gap
carousel.scrollBy({ left: direction * itemWidth, behavior: 'smooth' });
}
window.scrollCarousel = scrollCarousel; // Make it globally accessible for the buttons
});
{
"@context": "https://schema.org",
"@type": ["Article", "HowTo"],
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://atomic-temporary-240268778.wpcomstaging.com/ielts-speaking-practice/part-1-sports-physical-activity-practice/"
},
"headline": "IELTS Speaking Part 1: Sports & Physical Activity - Interactive Practice & Tips",
"description": "Master IELTS Speaking Part 1 'Sports & Physical Activity' questions with interactive exercises: vocabulary, grammar, coherence, pronunciation, band score examples, and rule-based feedback.",
"image": {
"@type": "ImageObject",
"url": "https://placehold.co/1200x675/FBC462/000?text=IELTS+Sports+Activity+Practice",
"width": 1200,
"height": 675,
"alt": "Various sports equipment and people exercising, representing sports and physical activity, with an IELTS score sheet."
},
"author": {
"@type": "Organization",
"name": "IELTS Training Camp"
},
"publisher": {
"@type": "Organization",
"name": "IELTS Training Camp",
"logo": {
"@type": "ImageObject",
"url": "https://atomic-temporary-240268778.wpcomstaging.com/logo/ieltstrainingcamp-logo.png",
"width": 250,
"height": 60
}
},
"datePublished": "2025-06-27T10:00:00+01:00",
"dateModified": "2025-07-02T23:00:00+01:00",
"keywords": [
"IELTS Speaking Part 1 Sports",
"IELTS Speaking Part 1 Physical Activity",
"IELTS Speaking practice questions sports",
"Sports vocabulary for IELTS",
"Physical activity vocabulary for IELTS",
"IELTS Speaking tips Part 1",
"IELTS practice exercises",
"IELTS speaking pronunciation",
"IELTS speaking coherence",
"IELTS preparation",
"English speaking course",
"fitness IELTS",
"exercise IELTS",
"IELTS grammar exercises",
"IELTS vocabulary exercises",
"IELTS fluency practice",
"IELTS band score examples"
],
"potentialAction": [
{
"@type": "HowTo",
"name": "Practice IELTS Speaking Part 1 Sports & Physical Activity Interactive Exercises",
"step": [
{
"@type": "HowToStep",
"name": "Vocabulary Booster: Synonym Match",
"text": "Match words to their synonyms to expand your lexical resource."
},
{
"@type": "HowToStep",
"name": "Vocabulary Booster: Collocation Quiz",
"text": "Test your knowledge of common word pairings for natural language use."
},
{
"@type": "HowToStep",
"name": "Vocabulary Booster: Fill in the Blanks",
"text": "Complete sentences with appropriate vocabulary words related to sports and physical activity."
},
{
"@type": "HowToStep",
"name": "Grammar Range & Accuracy: Error Correction",
"text": "Identify and correct grammatical errors in sentences."
},
{
"@type": "HowToStep",
"name": "Grammar Range & Accuracy: Sentence Transformation",
"text": "Rewrite sentences using different grammatical structures as instructed."
},
{
"@type": "HowToStep",
"name": "Grammar Range & Accuracy: Combine Sentences",
"text": "Practice combining sentences using various conjunctions and relative clauses."
},
{
"@type": "HowToStep",
"name": "Fluency & Coherence: Sentence Ordering",
"text": "Arrange scrambled sentences into a logical and coherent paragraph."
},
{
"@type": "HowToStep",
"name": "Fluency & Coherence: Connectors Gap-Fill",
"text": "Choose the best linking words or phrases to improve sentence and paragraph flow."
},
{
"@type": "HowToStep",
"name": "Fluency & Coherence: Logical Paragraph Practice",
"text": "Select the most logical sentence to complete a given paragraph."
},
{
"@type": "HowToStep",
"name": "Pronunciation (Spelling/Word Form Practice): Word Stress Quiz",
"text": "Identify the stressed syllable in common sports and physical activity words (text-based practice)."
},
{
"@type": "HowToStep",
"name": "Pronunciation (Spelling/Word Form Practice): Homophone Fill-in-the-Blank",
"text": "Choose the correct homophone to complete sentences, focusing on spelling and word form."
},
{
"@type": "HowToStep",
"name": "Pronunciation (Spelling/Word Form Practice): Syllable Sort",
"text": "Categorize words by the number of syllables they contain."
},
{
"@type": "HowToStep",
"name": "Sample Answer Critique: Identify Areas for Improvement",
"text": "Analyze a sample IELTS answer and identify areas for improvement based on band score criteria."
},
{
"@type": "HowToStep",
"name": "Build Your Own Answer: Free-Text Practice",
"text": "Type full answers to IELTS Part 1 questions and receive rule-based feedback on length and keyword usage."
}
]
}
],
"faqProperty": [
{
"@type": "Question",
"name": "How long should my answers be in IELTS Speaking Part 1?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Aim for 2-4 sentences per answer. This allows you to explain and expand without giving an overly long monologue. It's about quality and clarity, not quantity."
}
},
{
"@type": "Question",
"name": "What if I don't play any sports?",
"acceptedAnswer": {
"@type": "Answer",
"text": "It's fine. You can honestly say you don't play sports but then talk about other physical activities you enjoy (e.g., walking, cycling, dancing, going to the gym). The topic is 'Sports & Physical Activity,' so focus on the latter if sports aren't your thing."
}
},
{
"@type": "Question",
"name": "Should I use specific names of sports teams or athletes?",
"acceptedAnswer": {
"@type": "Answer",
"text": "You can, but keep it brief. The examiner is testing your English, not your sports knowledge. For example: 'I follow my local football team, the Rovers.' Avoid going into lengthy details about statistics or player names."
}
},
{
"@type": "Question",
"name": "How can I make my answers sound more natural?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Use common phrases related to sports and fitness (e.g., 'keep fit,' 'break a sweat,' 'couch potato'), linking words, and varied sentence structures. Practice speaking about physical activity as if you're having a casual conversation, focusing on clear and concise explanations."
}
},
{
"@type": "Question",
"name": "Is it okay to say I dislike a popular sport?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, it's perfectly fine to express a dislike. Just be ready to briefly explain why, without being overly negative or dramatic. For example: 'I'm not a big fan of extreme sports, as I find them too risky for my taste.'"
}
},
{
"@type": "Question",
"name": "How important is pronunciation when discussing sports and activity?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Pronunciation is crucial for all topics. Ensure your key vocabulary related to sports (e.g., 'athlete,' 'competition,' 'stamina') is clear. While accent is not graded, intelligibility is key. Practice word stress and intonation for natural delivery."
}
}
]
}
IELTS Speaking Part 1: Sports & Physical Activity - Interactive Practice
Welcome to your essential guide for **IELTS Speaking Part 1**, focusing on the dynamic topic of **Sports and Physical Activity**. This subject is highly common and allows you to discuss your hobbies, health, and lifestyle, offering a great opportunity to showcase your English communication skills. Part 1 of the IELTS Speaking test is designed as an introduction, where the examiner asks general questions on familiar subjects.
Your objective in Part 1 is to provide clear, well-structured answers (typically 2-4 sentences), expanding slightly to demonstrate your vocabulary and grammatical range. This comprehensive page will equip you with **25 diverse questions**, essential vocabulary, expert tips, and a range of **interactive exercises** to practice different aspects of the IELTS criteria, helping you achieve a higher band score.
For an overall strategy for the speaking test, explore our main IELTS English Speaking Course page.
Understanding IELTS Speaking Part 1
IELTS Speaking Part 1 is designed to be an introduction, warming you up for the more complex parts of the test. The examiner will ask you a series of general questions on familiar topics to gauge your ability to communicate basic information and opinions. This part usually lasts **4-5 minutes** and typically covers 2-3 different topics.
- Purpose: To break the ice and assess your ability to use English for everyday communication.
- Question Types: Simple, direct questions about your life, habits, opinions, and experiences.
- Expected Answer Length: Short to medium, usually 2-4 sentences. Avoid very short "yes/no" answers or overly long monologues.
Common topics include: Hometown, Home, Hobbies, Work/Study, Family & Friends, Food & Cooking, and, of course, Sports & Physical Activity. To see more practice topics, check out our general IELTS Speaking Questions and Answers guide.
[Source: Official IELTS Test Format Guidelines, British Council/IDP Education]
Why 'Sports & Physical Activity' is Key for Your Score
The "Sports & Physical Activity" topic is almost guaranteed to appear in IELTS Speaking Part 1. Here's why preparing for it is crucial:
- Universal & Relatable: Whether you're an athlete or just enjoy a casual walk, everyone has some connection to physical activity, making this topic easy to discuss authentically.
- Rich Vocabulary Opportunity: It allows you to use a diverse range of vocabulary related to different sports, physical actions, fitness, health, and leisure pursuits, which can significantly boost your Lexical Resource score.
- Natural Flow & Fluency: Because it's a topic you're familiar with, you can often speak more naturally and fluently, reducing hesitation and improving your coherence.
- Grammar Variety: Discussing past sporting experiences, current fitness routines, or future athletic goals can naturally lead to using a variety of tenses and complex sentence structures, enhancing your Grammatical Range & Accuracy.
Mastering this topic can give you a strong start in the test and significantly contribute to your overall band score.
Common Questions on Sports & Physical Activity (25 Questions)
Here are 25 typical questions you might encounter, along with tips on how to approach them:
Sports-Related Questions
- 1. Do you play any sports?
Tip: State yes/no and mention the sport(s) if applicable. - 2. What is your favourite sport to watch?
Tip: Name the sport and briefly explain why you enjoy watching it. - 3. What kind of sports are popular in your country?
Tip: Mention 2-3 popular sports and perhaps why. - 4. Did you play any sports when you were a child?
Tip: Use past simple tense to describe childhood experiences. - 5. Do you think it's important for children to play sports? Why?
Tip: Discuss the benefits for children (health, teamwork). - 6. Have you ever been to a live sports event?
Tip: Describe the event and your experience. - 7. Do you prefer individual sports or team sports?
Tip: State your preference and give a reason. - 8. What is the most challenging sport you know?
Tip: Name a sport and explain why it's challenging. - 9. Do you like extreme sports?
Tip: State your opinion and explain your reasoning. - 10. How important is winning in sports?
Tip: Discuss the balance between winning and participation. - 11. Do you think professional athletes are good role models?
Tip: Give a balanced opinion. - 12. What kind of sports facilities are available where you live?
Tip: Mention local gyms, parks, courts, etc. - 13. Do you think sports can bring people together? How?
Tip: Discuss community or national unity through sports.
Physical Activity-Related Questions
- 14. What kind of physical activity do you enjoy?
Tip: Mention activities like walking, cycling, dancing, gym. - 15. How often do you exercise?
Tip: Use adverbs of frequency or specific timeframes. - 16. Do you prefer exercising indoors or outdoors?
Tip: State your preference and explain why. - 17. Is it important to keep fit? Why?
Tip: Discuss the health benefits. - 18. What do you do to stay healthy?
Tip: Mention diet, exercise, sleep, etc. - 19. Have you ever tried a new physical activity recently?
Tip: Describe it and your experience. - 20. Do you think people nowadays are more or less active than in the past?
Tip: Compare modern lifestyles with past ones. - 21. What are the benefits of regular exercise?
Tip: List physical and mental benefits. - 22. Do you think technology helps or hinders physical activity?
Tip: Give a balanced view with examples. - 23. What's your ideal way to relax after a physical activity?
Tip: Describe your post-exercise routine. - 24. Do you prefer working out alone or with others?
Tip: State your preference and explain why. - 25. What advice would you give to someone who wants to start exercising?
Tip: Offer practical, encouraging tips.
For more specific practice questions across various topics, check out our comprehensive IELTS Speaking Q&A section.
Practice: Core Vocabulary
Let's start with some quick exercises to boost your core vocabulary related to sports and physical activity. These will help you grasp fundamental terms and their usage.
Interactive Practice: Core Vocabulary Skills
1.1 Synonym Match
What is a synonym for "active" when describing a person?
1.2 Collocation Quiz
Choose the correct word to complete the collocation: "to keep ______".
Vocabulary Boosters for Sports & Physical Activity
To impress the examiner, use a wide range of relevant vocabulary. Here's a list of words and phrases related to 'Sports' and 'Physical Activity' that can help you sound more natural and precise. Try to incorporate these into your practice answers.
Sports Vocabulary
- Types of Sports: team sports (e.g., football, basketball), individual sports (e.g., tennis, swimming), extreme sports (e.g., skydiving, rock climbing), combat sports, water sports, winter sports, athletics.
- Participants & Events: athlete, player, coach, opponent, teammate, referee, fan, spectator, championship, tournament, league, match, game, competition, Olympics.
- Actions & Outcomes: to play, to compete, to train, to win, to lose, to score, to achieve a personal best, victory, defeat, draw, fair play, sportsmanship.
- Phrases: to be a keen sportsman/sportswoman, to follow a team, to be a couch potato, to be in good shape, to break a sweat, to be a good sport.
Physical Activity Vocabulary
- Activities: jogging, cycling, swimming, hiking, yoga, Pilates, weightlifting, cardio, gym workout, brisk walk, stretching, dancing.
- Benefits: to keep fit, to stay healthy, to boost energy, to reduce stress, to improve stamina, to build muscle, mental well-being, physical fitness, endurance, discipline.
- Equipment/Places: gym, fitness center, track, court, swimming pool, weights, treadmill, exercise bike.
- Phrases: to work out, to lead an active lifestyle, to hit the gym, to break a sweat, to be out of breath, to get in shape, to feel refreshed.
Expanding your lexical resource is key for higher band scores. Consider exploring our full list of Vocabulary Words for IELTS.
Practice: Advanced Vocabulary
Now, let's practice using more specific vocabulary in context with a fill-in-the-blanks exercise.
Interactive Practice: Advanced Vocabulary Skills
1.3 Fill in the Blanks (Vocabulary)
Running a marathon requires a lot of and mental strength.
Grammar & Fluency Tips for Part 1
Beyond vocabulary, how you structure your answers and how smoothly you speak are critical.
- Extend Your Answers: Don't give one-word answers. Aim for 2-4 sentences. Use the EEE technique:
- Explain (your direct answer)
- Expand (add a detail or reason)
- Example (give a brief personal example or illustration)
Example: "Do you play any sports?"
"Yes, I play badminton regularly. I usually play twice a week with a group of friends at a local sports centre. It's a great way to stay active and also quite competitive."
- Use Linking Words/Phrases: This improves coherence. Examples: "well," "actually," "to be honest," "I suppose," "as for me," "for instance," "in my opinion," "however," "therefore," "in addition."
- Vary Sentence Structure: Mix simple and compound sentences. Don't use the same sentence opener repeatedly.
- Maintain a Natural Pace: Don't rush or speak too slowly. Aim for a comfortable, conversational speed.
- Self-Correction: It's okay to correct small mistakes. It shows awareness and can even boost your score if done effectively.
For more general tips that apply across all parts of the test, visit our IELTS Tips and Strategies page.
Practice: Grammar & Coherence
These exercises will help you refine your grammatical accuracy and improve the logical flow of your ideas when talking about sports and physical activity.
Interactive Practice: Grammar & Coherence Skills
2.1 Error Correction
Identify and correct the error: "I like play football."
2.2 Sentence Transformation
Rewrite using 'despite': "Although it was raining, we played the match."
Despite , we played the match.
2.3 Combine Sentences
Combine using 'and': "I enjoy running. I also enjoy cycling."
I enjoy running cycling.
3.1 Sentence Ordering
Order these sentences to form a coherent paragraph:
3.2 Connectors Gap-Fill
Regular exercise is vital. , it boosts your energy levels.
3.3 Logical Paragraph Practice
Read the paragraph and choose the best concluding sentence:
"I enjoy playing team sports like basketball. It's not just about physical activity. It also teaches you about cooperation and strategy."
Pronunciation (Spelling/Word Form Practice)
While the IELTS Speaking test is assessed orally, practicing spelling and word forms can indirectly help with pronunciation and word recognition. These exercises focus on aspects that might lead to mispronunciations or incorrect word usage.
Practice: Pronunciation Aspects
Let's work on some common pronunciation challenges and word forms related to sports and physical activity vocabulary.
Interactive Practice: Pronunciation-Related Skills
4.1 Word Stress Quiz
Which syllable is stressed in the word "ATH-lete"?
4.2 Homophone Fill-in-the-Blank
I need to for the marathon. (choose between 'practice' or 'practise')
4.3 Syllable Sort
How many syllables are in the word "exercise"?
Band Score Examples & Analysis
Understanding what makes an answer a Band 5, 7, or 9 is crucial for your improvement. Let's look at examples for the question: "Do you play any sports?"
Band 5 Answer
"Yes, I play football. I play with friends. It is fun."
Analysis:
- Fluency & Coherence: Very short, simple sentences. Lacks expansion and linking words.
- Lexical Resource: Limited vocabulary ("play," "fun," "friends"). Repetitive.
- Grammatical Range & Accuracy: Basic grammar, no complex structures. Accurate but too simple.
- Pronunciation: (Assumed) May have some hesitation or unclear sounds, but the main issue is lack of content for assessment.
Band 7 Answer
"Yes, I regularly play badminton, usually twice a week. I find it a great way to keep fit and it's also quite a social activity, as I play with a group of friends at a local sports centre."
Analysis:
- Fluency & Coherence: Good length (3 sentences). Uses linking phrases like "and it's also," "as I play." Ideas are connected.
- Lexical Resource: Good range of vocabulary ("regularly," "keep fit," "social activity," "sports centre").
- Grammatical Range & Accuracy: Mix of simple and compound sentences. Accurate grammar.
- Pronunciation: (Assumed) Generally clear, but might have minor issues with intonation or some individual sounds.
Band 9 Answer
"Absolutely, I'm a keen badminton player. I've been playing for about five years now, and I try to get to the sports club at least twice a week. It's a fantastic full-body workout and also a brilliant opportunity to unwind and socialise with my friends after a long day."
Analysis:
- Fluency & Coherence: Smooth, natural flow with minimal hesitation. Excellent use of cohesive devices ("Absolutely," "and also," "after a long day"). Ideas are fully developed.
- Lexical Resource: Wide range of sophisticated and natural vocabulary ("keen player," "sports club," "fantastic full-body workout," "brilliant opportunity," "unwind," "socialise"). Uses less common collocations.
- Grammatical Range & Accuracy: Uses a variety of complex structures accurately and flexibly (e.g., present perfect continuous "I've been playing").
- Pronunciation: (Assumed) Clear, natural intonation and rhythm. All words are intelligible.
Sample Answer Critique: Identify Areas for Improvement
Let's take a Band 5 answer and identify what needs to be improved to get a higher score. Read the sample answer below, then select the areas that need improvement. You can choose multiple options.
Critique This Answer
Question: Do you play any sports?
"Yes, I play football. I play with friends. It is fun."
What could be improved in this answer to get a higher band score?
Build Your Own Answer
This section allows you to practice answering full IELTS Part 1 questions. Type your complete response and receive rule-based feedback on your answer's length and the inclusion of relevant keywords. This simulates the actual test experience more closely.
Practice answering full IELTS Part 1 questions and get feedback on your response. Focus on applying what you've learned!
Question 1/4: Do you play any sports?
How to Practice Effectively
To make the most of this page and prepare for your IELTS Speaking test, follow these steps:
- Understand the Criteria: Familiarize yourself with the four marking criteria (Fluency & Coherence, Lexical Resource, Grammatical Range & Accuracy, Pronunciation).
- Study the Vocabulary: Go through the vocabulary lists provided. Try to incorporate new words and phrases naturally into your answers.
- Practice Answering Questions Aloud: Even though the interactive exercises are text-based, the real test is spoken. Practice answering the "Common Questions" section out loud, recording yourself if possible.
- Use the Interactive Exercises: Engage with all 12 types of exercises to strengthen specific areas. Pay attention to the feedback provided.
- Analyze Band Score Examples: Carefully read the provided band score examples and their analyses. Understand *why* an answer gets a certain score.
- Utilize "Sample Answer Critique": Use this tool to actively identify weaknesses in sample answers, training your eye for IELTS criteria.
- Utilize "Build Your Own Answer": This section is crucial. Type out your full answers and use the feedback to refine your responses based on the IELTS criteria.
- Review Sample Answers: Compare your answers to the provided sample answers to identify areas for improvement in structure, vocabulary, and grammar.
- Seek Human Feedback: If possible, practice with a native speaker, an IELTS tutor, or a study partner who can provide honest feedback on your *spoken* responses.
- Time Yourself: For Part 1, aim for answers that are 2-4 sentences long. Practice keeping your answers concise yet informative.
Common Mistakes & How to Avoid Them
Be aware of these common pitfalls when discussing 'Sports & Physical Activity' in IELTS Part 1:
- Giving One-Word Answers: Avoid simply saying "Yes" or "No." Always extend your answer with a reason or an example.
Instead of: "Do you play any sports? No."
Try: "No, I don't really play any organized sports, but I do enjoy going for long walks and cycling in my free time to stay active." - Over-explaining/Monologuing: Part 1 requires concise answers. Don't go into too much detail as if it's Part 2 or 3.
Correction: Stick to 2-4 sentences per answer. - Using Overly Complex Vocabulary Incorrectly: It's better to use simpler vocabulary correctly than to misuse advanced words.
Correction: Focus on accuracy first, then expand your range. - Grammar Mistakes (especially tenses): Ensure you use appropriate tenses (e.g., present simple for current habits, past simple for childhood activities).
Correction: Review basic grammar rules and practice constructing correct sentences. - Lack of Cohesion: Not using linking words or logical connectors makes your answers sound disjointed.
Correction: Practice using phrases like "however," "therefore," "in addition," "for instance." - Memorizing Answers: Examiners can spot memorized answers easily. Your speech should sound natural and spontaneous.
Correction: Understand the questions and practice generating ideas, not memorizing full answers.
Frequently Asked Questions (FAQs)
Your Questions Answered
How long should my answers be in IELTS Speaking Part 1?
Aim for 2-4 sentences per answer. This allows you to explain and expand without giving an overly long monologue. It's about quality and clarity, not quantity.
What if I don't play any sports?
It's fine. You can honestly say you don't play sports but then talk about other physical activities you enjoy (e.g., walking, cycling, dancing, going to the gym). The topic is "Sports & Physical Activity," so focus on the latter if sports aren't your thing.
Should I use specific names of sports teams or athletes?
You can, but keep it brief. The examiner is testing your English, not your sports knowledge. For example: "I follow my local football team, the Rovers." Avoid going into lengthy details about statistics or player names.
How can I make my answers sound more natural?
Use common phrases related to sports and fitness (e.g., 'keep fit,' 'break a sweat,' 'couch potato'), linking words, and varied sentence structures. Practice speaking about physical activity as if you're having a casual conversation, focusing on clear and concise explanations.
Is it okay to say I dislike a popular sport?
Yes, it's perfectly fine to express a dislike. Just be ready to briefly explain why, without being overly negative or dramatic. For example: "I'm not a big fan of extreme sports, as I find them too risky for my taste."
How important is pronunciation when discussing sports and activity?
Pronunciation is crucial for all topics. Ensure your key vocabulary related to sports (e.g., 'athlete,' 'competition,' 'stamina') is clear. While accent is not graded, intelligibility is key. Practice word stress and intonation for natural delivery.
Conclusion
Mastering IELTS Speaking Part 1, especially on common topics like Sports and Physical Activity, is fundamental to achieving a high band score. By understanding the examiner's criteria, expanding your vocabulary, practicing grammatical accuracy, and enhancing your fluency, you can confidently navigate this section of the test.
The interactive exercises on this page are designed to give you targeted practice in key areas. Remember to combine these text-based exercises with actual spoken practice to fully prepare for the dynamic nature of the IELTS Speaking test. Keep practicing, and you'll be well on your way to success!
Explore More IELTS Speaking Guides
IELTS Speaking Part 1: Work/Study Practice
Practice common questions about your job or academic life with vocabulary and tips.
Start PracticeIELTS Speaking Part 1: Home Practice
Practice common questions about your home and living situation with vocabulary and tips.
Start PracticeIELTS Speaking Part 1: Weather Practice
Master questions about weather and climate with essential vocabulary and sample answers.
Start PracticeIELTS Speaking Part 1: Hobbies Practice
Learn to discuss your leisure activities and interests confidently.
Start PracticeIELTS Speaking Part 1: Family & Friends Practice
Prepare for questions about your relationships with family and friends.
Start PracticeIELTS Speaking Part 1: Food & Cooking Practice
Practice questions about your eating habits and culinary skills.
Start PracticeIELTS Speaking Part 2: Long Turn Strategy
Understand how to speak for 1-2 minutes on a given topic using cue cards.
Learn MoreDespite , we played the match.', a: 'the rain', tip: '"Despite" is followed by a noun or gerund phrase.' }, { q: 'Rewrite starting with \'Not only\': "He is a talented athlete. He is also a great coach."
Not only , but he is also a great coach.', a: 'is he a talented athlete', tip: 'Inversion occurs after "Not only" at the beginning of a sentence.' }, { q: 'Rewrite using a passive voice: "Millions of people watch the Olympics every four years."
The Olympics by millions of people every four years.', a: 'are watched', tip: 'Passive voice: "are + past participle".' }, { q: 'Rewrite using \'unless\': "You won\'t improve your fitness if you don\'t exercise regularly."
You won\'t improve your fitness .', a: 'unless you exercise regularly', tip: '"Unless" means "if not".' }, { q: 'Rewrite using \'such a\': "It was a very exciting game. Everyone was on the edge of their seats."
It was that everyone was on the edge of their seats.', a: 'such an exciting game', tip: '"Such a/an + adjective + noun + that" for emphasis.' }, { q: 'Rewrite using \'in spite of\': "She was tired, but she still went for a run."
In spite of , she still went for a run.', a: 'being tired', tip: '"In spite of" is followed by a noun or gerund phrase.' }, { q: 'Rewrite using \'would rather\': "I prefer to work out alone than in a group."
I alone than in a group.', a: 'would rather work out', tip: '"Would rather + base verb + than + base verb" for preference.' }, { q: 'Rewrite using \'provided that\': "You can join the club if you are over 18."
You can join the club over 18.', a: 'provided that you are', tip: '"Provided that" means "if" or "on condition that".' } ]; let currentSentenceTransformIndex = 0; const combineSentencesQuestions = [ { q: 'Combine using \'and\': "I enjoy running. I also enjoy cycling."
I enjoy running cycling.', a: 'and' }, { q: 'Combine using \'because\': "I exercise regularly. It helps me stay healthy."
I exercise regularly it helps me stay healthy.', a: 'because' }, { q: 'Combine using \'although\': "The gym is crowded. I still go there."
the gym is crowded, I still go there.', a: 'Although' }, { q: 'Combine using \'so\': "I was out of shape. I decided to start jogging."
I was out of shape, I decided to start jogging.', a: 'so' }, { q: 'Combine using \'where\': "This is the park. I often go for a run there."
This is the park I often go for a run.', a: 'where' }, { q: 'Combine using \'but\': "I like team sports. I prefer individual activities."
I like team sports, I prefer individual activities.', a: 'but' }, { q: 'Combine using \'after\': "I finished my workout. I took a shower."
finishing my workout, I took a shower.', a: 'After' }, { q: 'Combine using \'as well as\': "Football is popular. Basketball is popular."
Football basketball are popular.', a: 'as well as' }, { q: 'Combine using \'in order to\': "I train hard. I want to improve my performance."
I train hard improve my performance.', a: 'in order to' }, { q: 'Combine using \'if\': "You want to get fit. You should exercise regularly."
you want to get fit, you should exercise regularly.', a: 'If' } ]; let currentCombineSentencesIndex = 0; // Section 3: Fluency & Coherence const sentenceOrderingQuestions = [ { q: [ "1. It also teaches you about cooperation and strategy.", "2. I enjoy playing team sports like basketball.", "3. It's not just about physical activity." ], a: "231", full: "I enjoy playing team sports like basketball. It's not just about physical activity. It also teaches you about cooperation and strategy." }, { q: [ "1. I often go for a run in the park.", "2. To stay healthy, I try to be active every day.", "3. This helps me maintain my fitness and reduce stress." ], a: "213", full: "To stay healthy, I try to be active every day. I often go for a run in the park. This helps me maintain my fitness and reduce stress." }, { q: [ "1. It was an incredibly thrilling experience.", "2. I once attended a live football match.", "3. The atmosphere in the stadium was electric." ], a: "231", full: "I once attended a live football match. The atmosphere in the stadium was electric. It was an incredibly thrilling experience." }, { q: [ "1. They provide a great way to unwind.", "2. I prefer exercising outdoors.", "3. The fresh air and natural scenery are very refreshing." ], a: "231", full: "I prefer exercising outdoors. The fresh air and natural scenery are very refreshing. They provide a great way to unwind." }, { q: [ "1. They can inspire others to pursue their goals.", "2. I believe professional athletes can be good role models.", "3. Their dedication and discipline are particularly admirable." ], a: "231", full: "I believe professional athletes can be good role models. Their dedication and discipline are particularly admirable. They can inspire others to pursue their goals." } ]; let currentSentenceOrderingIndex = 0; const connectorsGapFillQuestions = [ { q: 'Regular exercise is vital. , it boosts your energy levels.', options: ['However', 'Therefore', 'In addition', 'For example'], a: 'In addition' }, { q: 'I enjoy playing team sports; , I also like individual activities like swimming.', options: ['consequently', 'on the other hand', 'similarly', 'furthermore'], a: 'on the other hand' }, { q: 'He trains very hard. , he often achieves personal bests.', options: ['However', 'Therefore', 'In addition', 'In contrast'], a: 'Therefore' }, { q: 'Keeping fit has many benefits. , it improves mental well-being.', options: ['Similarly', 'Furthermore', 'Consequently', 'On the other hand'], a: 'Furthermore' }, { q: 'I don\'t play competitive sports. , I enjoy recreational activities.', options: ['Therefore', 'Nevertheless', 'In contrast', 'As a result'], a: 'Nevertheless' }, { q: 'Technology can hinder physical activity. , it also offers apps for tracking fitness.', options: ['Moreover', 'However', 'In addition', 'Consequently'], a: 'However' }, { q: 'Children should play sports. , it teaches them teamwork and discipline.', options: ['Therefore', 'Nevertheless', 'In contrast', 'As a result'], a: 'Therefore' }, { q: 'I prefer working out alone. , I can focus better without distractions.', options: ['However', 'Therefore', 'In addition', 'In contrast'], a: 'Therefore' } ]; let currentConnectorsGapFillIndex = 0; const logicalParagraphQuestions = [ { q: 'I enjoy playing team sports like basketball. It\'s not just about physical activity. It also teaches you about cooperation and strategy.', options: [ 'Therefore, I prefer individual sports.', 'I find it very boring.', 'This makes it a well-rounded and engaging way to stay fit and develop important life skills.', 'I never play sports with others.' ], a: 'This makes it a well-rounded and engaging way to stay fit and develop important life skills.' }, { q: 'To stay healthy, I try to be active every day. I often go for a run in the park or do some yoga at home. This helps me maintain my fitness and reduce stress.', options: [ 'I rarely do any physical activity.', 'I prefer to sit on the couch all day.', 'These regular activities are crucial for my overall physical and mental well-being.', 'I find exercise very difficult.' ], a: 'These regular activities are crucial for my overall physical and mental well-being.' }, { q: 'I once attended a live football match. The atmosphere in the stadium was electric, with thousands of fans cheering. It was an incredibly thrilling experience.', options: [ 'I found it very dull and quiet.', 'I never want to go to a live event again.', 'The energy and excitement of being part of such a crowd were truly unforgettable.', 'I left early because I was bored.' ], a: 'The energy and excitement of being part of such a crowd were truly unforgettable.' }, { q: 'I prefer exercising outdoors. The fresh air and natural scenery are very refreshing, especially when I go hiking in the mountains. They provide a great way to unwind.', options: [ 'I always prefer indoor gyms.', 'I dislike nature and fresh air.', 'This connection with nature makes my workouts much more enjoyable and invigorating.', 'Outdoor exercise is too difficult.' ], a: 'This connection with nature makes my workouts much more enjoyable and invigorating.' }, { q: 'I believe professional athletes can be good role models. Their dedication and discipline are particularly admirable, showing what can be achieved through hard work. They can inspire others to pursue their goals.', options: [ 'They often behave badly.', 'I don\'t think they have any positive impact.', 'Their commitment to excellence and perseverance sets a powerful example for aspiring individuals.', 'I only care about their performance.' ], a: 'Their commitment to excellence and perseverance sets a powerful example for aspiring individuals.' } ]; let currentLogicalParagraphIndex = 0; // Section 4: Pronunciation (Spelling/Word Form Practice) const wordStressQuestions = [ { q: 'Which syllable is stressed in the word "ATH-lete"?', options: ['ath', 'lete'], a: 'ath', explanation: 'ATH-lete' }, { q: 'Which syllable is stressed in the word "COM-pe-ti-tion"?', options: ['com', 'pe', 'ti', 'tion'], a: 'ti', explanation: 'com-pe-TI-tion' }, { q: 'Which syllable is stressed in the word "PHY-si-cal"?', options: ['phy', 'si', 'cal'], a: 'phy', explanation: 'PHY-si-cal' }, { q: 'Which syllable is stressed in the word "AC-ti-vi-ty"?', options: ['ac', 'ti', 'vi', 'ty'], a: 'ti', explanation: 'ac-TI-vi-ty' }, { q: 'Which syllable is stressed in the word "STA-di-um"?', options: ['sta', 'di', 'um'], a: 'sta', explanation: 'STA-di-um' }, { q: 'Which syllable is stressed in the word "EN-du-rance"?', options: ['en', 'du', 'rance'], a: 'du', explanation: 'en-DU-rance' }, { q: 'Which syllable is stressed in the word "DIS-ci-pline"?', options: ['dis', 'ci', 'pline'], a: 'dis', explanation: 'DIS-ci-pline' }, { q: 'Which syllable is stressed in the word "REC-re-a-tion-al"?', options: ['rec', 're', 'a', 'tion', 'al'], a: 'rec', explanation: 'REC-re-a-tion-al' }, { q: 'Which syllable is stressed in the word "O-PPO-nent"?', options: ['o', 'ppo', 'nent'], a: 'ppo', explanation: 'o-PPO-nent' }, { q: 'Which syllable is stressed in the word "ATH-le-tics"?', options: ['ath', 'le', 'tics'], a: 'le', explanation: 'ath-LE-tics' } ]; let currentWordStressIndex = 0; const homophoneQuestions = [ { q: 'I need to for the marathon. (choose between \'practice\' or \'practise\')', a: 'practise', tip: 'In British English, "practise" is the verb, "practice" is the noun. In American English, "practice" is both.' }, { q: 'He showed great in the race. (choose between \'feat\' or \'feet\')', a: 'feat', tip: 'Feat (noun) is an achievement. Feet (noun) are body parts.' }, { q: 'Did your team the game? (choose between \'win\' or \'when\')', a: 'win', tip: 'Win (verb) means to be victorious. When (adverb) refers to time.' }, { q: 'The is very competitive. (choose between \'sport\' or \'spot\')', a: 'sport', tip: 'Sport (noun) is an athletic activity. Spot (noun) is a small mark or place.' }, { q: 'I like to in the park. (choose between \'run\' or \'ran\')', a: 'run', tip: 'Run (verb) is the present tense. Ran is the past tense.' }, { q: 'She has a strong . (choose between \'body\' or \'bode\')', a: 'body', tip: 'Body (noun) is the physical structure. Bode (verb) means to be an omen.' }, { q: 'I need to up for the match. (choose between \'warm\' or \'worm\')', a: 'warm', tip: 'Warm (verb) means to prepare for activity. Worm (noun) is a small invertebrate.' }, { q: 'The was very exciting. (choose between \'game\' or \'gyme\')', a: 'game', tip: 'Game (noun) is a form of play or competition. "Gyme" is not a word.' }, { q: 'He is a great . (choose between \'player\' or \'plair\')', a: 'player', tip: 'Player (noun) is someone who plays a game. "Plair" is not a word.' }, { q: 'I like to in the swimming pool. (choose between \'dive\' or \'dife\')', a: 'dive', tip: 'Dive (verb) means to plunge into water. "Dife" is not a word.' } ]; let currentHomophoneIndex = 0; const syllableSortQuestions = [ { q: 'How many syllables are in the word "exercise"?', options: ['2', '3', '4', '5'], a: '3', explanation: 'ex-er-cise (3 syllables)' }, { q: 'How many syllables are in the word "championship"?', options: ['3', '4', '5', '6'], a: '3', explanation: 'cham-pi-on-ship (3 syllables)' }, { q: 'How many syllables are in the word "fitness"?', options: ['1', '2', '3', '4'], a: '2', explanation: 'fit-ness (2 syllables)' }, { q: 'How many syllables are in the word "opponent"?', options: ['2', '3', '4', '5'], a: '3', explanation: 'op-po-nent (3 syllables)' }, { q: 'How many syllables are in the word "physical"?', options: ['2', '3', '4', '5'], a: '3', explanation: 'phy-si-cal (3 syllables)' }, { q: 'How many syllables are in the word "activity"?', options: ['3', '4', '5', '6'], a: '4', explanation: 'ac-ti-vi-ty (4 syllables)' }, { q: 'How many syllables are in the word "stadium"?', options: ['2', '3', '4', '5'], a: '3', explanation: 'sta-di-um (3 syllables)' }, { q: 'How many syllables are in the word "discipline"?', options: ['2', '3', '4', '5'], a: '3', explanation: 'dis-ci-pline (3 syllables)' }, { q: 'How many syllables are in the word "swimming"?', options: ['1', '2', '3', '4'], a: '2', explanation: 'swim-ming (2 syllables)' }, { q: 'How many syllables are in the word "athlete"?', options: ['1', '2', '3', '4'], a: '2', explanation: 'ath-lete (2 syllables)' } ]; let currentSyllableSortIndex = 0; // Section 5: Build Your Own Answer (Rule-based Feedback) const buildAnswerQuestions = [ { q: "Do you play any sports?", sample: "Absolutely, I'm a keen badminton player. I've been playing for about five years now, and I try to get to the sports club at least twice a week. It's a fantastic full-body workout and also a brilliant opportunity to unwind and socialise with my friends after a long day.", minWords: 15, maxWords: 40, keywords: ['play', 'sports', 'badminton', 'football', 'tennis', 'swimming', 'team', 'individual', 'club', 'active'] }, { q: "What kind of physical activity do you enjoy?", sample: "I really enjoy cycling, especially on weekends when I can go for long rides in the countryside. It's a great way to explore new places, get some fresh air, and keep my cardiovascular fitness up. I also do some yoga for flexibility.", minWords: 20, maxWords: 50, keywords: ['physical activity', 'exercise', 'enjoy', 'cycling', 'walking', 'running', 'gym', 'yoga', 'fitness', 'healthy'] }, { q: "Is it important to keep fit? Why?", sample: "Yes, I believe it's incredibly important to keep fit. Regular physical activity not only benefits your physical health by preventing diseases but also significantly boosts your mental well-being, reducing stress and improving mood. It's essential for a good quality of life.", minWords: 20, maxWords: 50, keywords: ['important', 'keep fit', 'healthy', 'exercise', 'benefits', 'physical health', 'mental well-being', 'stress', 'energy'] }, { q: "Did you play any sports when you were a child?", sample: "Yes, when I was a child, I used to play a lot of football with my friends in the local park. I wasn't particularly skilled, but I loved the team spirit and the sheer joy of running around. It was a big part of my childhood.", minWords: 20, maxWords: 50, keywords: ['child', 'childhood', 'play', 'sports', 'used to', 'football', 'team', 'friends', 'park', 'active'] } ]; let currentBuildAnswerIndex = 0; // Sample Answer Critique Tool Data const critiqueSampleAnswer = { question: "Do you play any sports?", answer: "Yes, I play football. I play with friends. It is fun.", correctImprovements: [ "The answer is too short.", "The vocabulary is too basic and repetitive.", "The answer lacks detail and expansion.", "The sentences are not well connected." ], // Note: "There are grammatical errors" is not a correct improvement for this specific Band 5 answer, // as the grammar, while simple, is technically accurate. feedbackMessages: { too_short: "Correct! For Part 1, aim for 2-4 sentences to provide enough information.", limited_vocab: "Correct! Using a wider range of vocabulary (e.g., 'keen player,' 'regularly,' 'social activity') would improve your Lexical Resource score.", grammar_errors: "While the grammar is very simple, it is actually accurate. The main issue isn't errors, but lack of grammatical range.", lack_detail: "Correct! The answer needs more details, reasons, or examples to be fully developed. Think 'EEE' (Explain, Expand, Example).", poor_coherence: "Correct! The sentences are very choppy. Using linking words (e.g., 'because,' 'also,' 'furthermore') would make the answer flow more naturally." } }; // --- Helper Functions for Exercises --- function getRadioValue(name) { const radios = document.querySelectorAll(`input[name="${name}"]:checked`); return radios.length > 0 ? radios[0].value : null; } function setFeedback(elementId, isCorrect, message) { const feedbackElem = document.getElementById(elementId); feedbackElem.innerHTML = message; /* Use innerHTML to allow for highlights */ feedbackElem.className = `exercise-feedback ${isCorrect ? 'correct' : 'incorrect'}`; feedbackElem.style.display = 'block'; } function clearRadioSelection(name) { document.querySelectorAll(`input[name="${name}"]`).forEach(radio => radio.checked = false); } function disableRadioOptions(name, disabled) { document.querySelectorAll(`input[name="${name}"]`).forEach(radio => radio.disabled = disabled); } function shuffleArray(array) { for (let i = array.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [array[i], array[j]] = [array[j], array[i]]; } return array; } // --- Exercise 1.1: Synonym Match --- function loadSynonymQuestion() { const qData = synonymQuestions[currentSynonymIndex]; document.getElementById('synonymQuestion').textContent = qData.q; const optionsElem = document.getElementById('synonymOptions'); optionsElem.innerHTML = ''; shuffleArray(qData.options).forEach(option => { const label = document.createElement('label'); const input = document.createElement('input'); input.type = 'radio'; input.name = 'synonym'; input.value = option; label.appendChild(input); label.appendChild(document.createTextNode(` ${option}`)); optionsElem.appendChild(label); }); document.getElementById('synonymFeedback').style.display = 'none'; disableRadioOptions('synonym', false); } function checkSynonym() { const userAnswer = getRadioValue('synonym'); const correctAnswer = synonymQuestions[currentSynonymIndex].a; const isCorrect = userAnswer === correctAnswer; setFeedback('synonymFeedback', isCorrect, isCorrect ? 'Correct!' : `Incorrect. The correct answer is "${correctAnswer}".`); disableRadioOptions('synonym', true); } function nextSynonym() { currentSynonymIndex = (currentSynonymIndex + 1) % synonymQuestions.length; loadSynonymQuestion(); } // --- Exercise 1.2: Collocation Quiz --- function loadCollocationQuestion() { const qData = collocationQuestions[currentCollocationIndex]; document.getElementById('collocationQuestion').textContent = qData.q; const optionsElem = document.getElementById('collocationOptions'); optionsElem.innerHTML = ''; shuffleArray(qData.options).forEach(option => { const label = document.createElement('label'); const input = document.createElement('input'); input.type = 'radio'; input.name = 'collocation'; input.value = option; label.appendChild(input); label.appendChild(document.createTextNode(` ${option}`)); optionsElem.appendChild(label); }); document.getElementById('collocationFeedback').style.display = 'none'; disableRadioOptions('collocation', false); } function checkCollocation() { const userAnswer = getRadioValue('collocation'); const correctAnswer = collocationQuestions[currentCollocationIndex].a; const isCorrect = userAnswer === correctAnswer; setFeedback('collocationFeedback', isCorrect, isCorrect ? 'Correct!' : `Incorrect. The correct answer is "${correctAnswer}".`); disableRadioOptions('collocation', true); } function nextCollocation() { currentCollocationIndex = (currentCollocationIndex + 1) % collocationQuestions.length; loadCollocationQuestion(); } // --- Exercise 1.3: Fill in the Blanks (Vocabulary) --- function loadVocabFillQuestion() { const qData = vocabFillQuestions[currentVocabFillIndex]; document.getElementById('vocabFillQuestion').innerHTML = qData.q; document.getElementById('vocabFillInput').value = ''; document.getElementById('vocabFillFeedback').style.display = 'none'; document.getElementById('vocabFillInput').disabled = false; } function checkVocabFill() { const userAnswer = document.getElementById('vocabFillInput').value.trim().toLowerCase(); const correctAnswer = vocabFillQuestions[currentVocabFillIndex].a.toLowerCase(); const isCorrect = userAnswer === correctAnswer; setFeedback('vocabFillFeedback', isCorrect, isCorrect ? 'Correct!' : `Incorrect. The correct answer is "${vocabFillQuestions[currentVocabFillIndex].a}".`); document.getElementById('vocabFillInput').disabled = true; } function nextVocabFill() { currentVocabFillIndex = (currentVocabFillIndex + 1) % vocabFillQuestions.length; loadVocabFillQuestion(); } // --- Exercise 2.1: Error Correction --- function loadErrorCorrectionQuestion() { const qData = errorCorrectionQuestions[currentErrorCorrectionIndex]; document.getElementById('errorCorrectionQuestion').textContent = qData.q; document.getElementById('errorCorrectionInput').value = ''; document.getElementById('errorCorrectionFeedback').style.display = 'none'; document.getElementById('errorCorrectionInput').disabled = false; } function checkErrorCorrection() { const userAnswer = document.getElementById('errorCorrectionInput').value.trim().toLowerCase(); const correctAnswer = errorCorrectionQuestions[currentErrorCorrectionIndex].a.toLowerCase(); const isCorrect = userAnswer === correctAnswer; setFeedback('errorCorrectionFeedback', isCorrect, isCorrect ? `Correct! ${errorCorrectionQuestions[currentErrorCorrectionIndex].tip}` : `Incorrect. The correct answer is "${errorCorrectionQuestions[currentErrorCorrectionIndex].a}". ${errorCorrectionQuestions[currentErrorCorrectionIndex].tip}`); document.getElementById('errorCorrectionInput').disabled = true; } function nextErrorCorrection() { currentErrorCorrectionIndex = (currentErrorCorrectionIndex + 1) % errorCorrectionQuestions.length; loadErrorCorrectionQuestion(); } // --- Exercise 2.2: Sentence Transformation --- function loadSentenceTransformQuestion() { const qData = sentenceTransformQuestions[currentSentenceTransformIndex]; document.getElementById('sentenceTransformQuestion').innerHTML = qData.q; document.getElementById('sentenceTransformInput').value = ''; document.getElementById('sentenceTransformFeedback').style.display = 'none'; document.getElementById('sentenceTransformInput').disabled = false; } function checkSentenceTransform() { const userAnswer = document.getElementById('sentenceTransformInput').value.trim().toLowerCase(); const correctAnswer = sentenceTransformQuestions[currentSentenceTransformIndex].a.toLowerCase(); const isCorrect = userAnswer === correctAnswer; setFeedback('sentenceTransformFeedback', isCorrect, isCorrect ? `Correct! ${sentenceTransformQuestions[currentSentenceTransformIndex].tip}` : `Incorrect. The correct answer is "${sentenceTransformQuestions[currentSentenceTransformIndex].a}". ${sentenceTransformQuestions[currentSentenceTransformIndex].tip}`); document.getElementById('sentenceTransformInput').disabled = true; } function nextSentenceTransform() { currentSentenceTransformIndex = (currentSentenceTransformIndex + 1) % sentenceTransformQuestions.length; loadSentenceTransformQuestion(); } // --- Exercise 2.3: Combine Sentences --- function loadCombineSentencesQuestion() { const qData = combineSentencesQuestions[currentCombineSentencesIndex]; const questionElem = document.getElementById('combineSentencesQuestion'); questionElem.innerHTML = qData.q; document.getElementById('combineSentencesInput').value = ''; document.getElementById('combineSentencesFeedback').style.display = 'none'; document.getElementById('combineSentencesInput').disabled = false; } function checkCombineSentences() { const userAnswer = document.getElementById('combineSentencesInput').value.trim().toLowerCase(); const correctAnswer = combineSentencesQuestions[currentCombineSentencesIndex].a.toLowerCase(); const isCorrect = userAnswer === correctAnswer; setFeedback('combineSentencesFeedback', isCorrect, isCorrect ? 'Correct!' : `Incorrect. The correct answer is "${combineSentencesQuestions[currentCombineSentencesIndex].a}".`); document.getElementById('combineSentencesInput').disabled = true; } function nextCombineSentences() { currentCombineSentencesIndex = (currentCombineSentencesIndex + 1) % combineSentencesQuestions.length; loadCombineSentencesQuestion(); } // --- Exercise 3.1: Sentence Ordering --- function loadSentenceOrderingQuestion() { const qData = sentenceOrderingQuestions[currentSentenceOrderingIndex]; const listElem = document.getElementById('sentenceOrderingList'); listElem.innerHTML = ''; const shuffledSentences = shuffleArray([...qData.q]); // Shuffle a copy shuffledSentences.forEach((sentence, index) => { const li = document.createElement('li'); li.textContent = `${index + 1}. ${sentence.substring(sentence.indexOf('.') + 2)}`; // Remove original number listElem.appendChild(li); }); document.getElementById('sentenceOrderingInput').value = ''; document.getElementById('sentenceOrderingFeedback').style.display = 'none'; document.getElementById('sentenceOrderingInput').disabled = false; } function checkSentenceOrdering() { const userAnswer = document.getElementById('sentenceOrderingInput').value.trim(); const correctAnswer = sentenceOrderingQuestions[currentSentenceOrderingIndex].a; const isCorrect = userAnswer === correctAnswer; setFeedback('sentenceOrderingFeedback', isCorrect, isCorrect ? 'Correct! The paragraph is now coherent.' : `Incorrect. The correct order is "${correctAnswer}". Full paragraph: "${sentenceOrderingQuestions[currentSentenceOrderingIndex].full}"`); document.getElementById('sentenceOrderingInput').disabled = true; } function nextSentenceOrdering() { currentSentenceOrderingIndex = (currentSentenceOrderingIndex + 1) % sentenceOrderingQuestions.length; loadSentenceOrderingQuestion(); } // --- Exercise 3.2: Connectors Gap-Fill --- function loadConnectorsGapFillQuestion() { const qData = connectorsGapFillQuestions[currentConnectorsGapFillIndex]; document.getElementById('connectorsGapFillQuestion').innerHTML = qData.q; const optionsElem = document.getElementById('connectorsGapFillOptions'); optionsElem.innerHTML = ''; shuffleArray(qData.options).forEach(option => { const label = document.createElement('label'); const input = document.createElement('input'); input.type = 'radio'; input.name = 'connectorsGapFill'; input.value = option; label.appendChild(input); label.appendChild(document.createTextNode(` ${option}`)); optionsElem.appendChild(label); }); document.getElementById('connectorsGapFillFeedback').style.display = 'none'; disableRadioOptions('connectorsGapFill', false); } function checkConnectorsGapFill() { const userAnswer = getRadioValue('connectorsGapFill'); const correctAnswer = connectorsGapFillQuestions[currentConnectorsGapFillIndex].a; const isCorrect = userAnswer === correctAnswer; setFeedback('connectorsGapFillFeedback', isCorrect, isCorrect ? 'Correct! This linking word improves coherence.' : `Incorrect. The best option is "${correctAnswer}".`); disableRadioOptions('connectorsGapFill', true); } function nextConnectorsGapFill() { currentConnectorsGapFillIndex = (currentConnectorsGapFillIndex + 1) % connectorsGapFillQuestions.length; loadConnectorsGapFillQuestion(); } // --- Exercise 3.3: Logical Paragraph Practice --- function loadLogicalParagraphQuestion() { const qData = logicalParagraphQuestions[currentLogicalParagraphIndex]; document.getElementById('logicalParagraphQuestion').innerHTML = `Read the paragraph and choose the best concluding sentence:
"${qData.q}"`; const optionsElem = document.getElementById('logicalParagraphOptions'); optionsElem.innerHTML = ''; shuffleArray(qData.options).forEach(option => { const label = document.createElement('label'); const input = document.createElement('input'); input.type = 'radio'; input.name = 'logicalParagraph'; input.value = option; label.appendChild(input); label.appendChild(document.createTextNode(` ${option}`)); optionsElem.appendChild(label); }); document.getElementById('logicalParagraphFeedback').style.display = 'none'; disableRadioOptions('logicalParagraph', false); } function checkLogicalParagraph() { const userAnswer = getRadioValue('logicalParagraph'); const correctAnswer = logicalParagraphQuestions[currentLogicalParagraphIndex].a; const isCorrect = userAnswer === correctAnswer; setFeedback('logicalParagraphFeedback', isCorrect, isCorrect ? 'Correct! This sentence logically completes the paragraph.' : `Incorrect. The best concluding sentence is: "${correctAnswer}"`); disableRadioOptions('logicalParagraph', true); } function nextLogicalParagraph() { currentLogicalParagraphIndex = (currentLogicalParagraphIndex + 1) % logicalParagraphQuestions.length; loadLogicalParagraphQuestion(); } // --- Exercise 4.1: Word Stress Quiz --- function loadWordStressQuestion() { const qData = wordStressQuestions[currentWordStressIndex]; document.getElementById('wordStressQuestion').textContent = qData.q; const optionsElem = document.getElementById('wordStressOptions'); optionsElem.innerHTML = ''; shuffleArray(qData.options).forEach(option => { const label = document.createElement('label'); const input = document.createElement('input'); input.type = 'radio'; input.name = 'wordStress'; input.value = option; label.appendChild(input); label.appendChild(document.createTextNode(` ${option.toUpperCase()}`)); optionsElem.appendChild(label); }); document.getElementById('wordStressFeedback').style.display = 'none'; disableRadioOptions('wordStress', false); } function checkWordStress() { const userAnswer = getRadioValue('wordStress'); const correctAnswer = wordStressQuestions[currentWordStressIndex].a; const isCorrect = userAnswer === correctAnswer; setFeedback('wordStressFeedback', isCorrect, isCorrect ? `Correct! ${wordStressQuestions[currentWordStressIndex].explanation}` : `Incorrect. ${wordStressQuestions[currentWordStressIndex].explanation}`); disableRadioOptions('wordStress', true); } function nextWordStress() { currentWordStressIndex = (currentWordStressIndex + 1) % wordStressQuestions.length; loadWordStressQuestion(); } // --- Exercise 4.2: Homophone Fill-in-the-Blank --- function loadHomophoneQuestion() { const qData = homophoneQuestions[currentHomophoneIndex]; document.getElementById('homophoneQuestion').innerHTML = qData.q; document.getElementById('homophoneInput').value = ''; document.getElementById('homophoneFeedback').style.display = 'none'; document.getElementById('homophoneInput').disabled = false; } function checkHomophone() { const userAnswer = document.getElementById('homophoneInput').value.trim().toLowerCase(); const correctAnswer = homophoneQuestions[currentHomophoneIndex].a.toLowerCase(); const isCorrect = userAnswer === correctAnswer; setFeedback('homophoneFeedback', isCorrect, isCorrect ? `Correct! ${homophoneQuestions[currentHomophoneIndex].tip}` : `Incorrect. The correct word is "${homophoneQuestions[currentHomophoneIndex].a}". ${homophoneQuestions[currentHomophoneIndex].tip}`); document.getElementById('homophoneInput').disabled = true; } function nextHomophone() { currentHomophoneIndex = (currentHomophoneIndex + 1) % homophoneQuestions.length; loadHomophoneQuestion(); } // --- Exercise 4.3: Syllable Sort --- function loadSyllableSortQuestion() { const qData = syllableSortQuestions[currentSyllableSortIndex]; document.getElementById('syllableSortQuestion').textContent = qData.q; const optionsElem = document.getElementById('syllableSortOptions'); optionsElem.innerHTML = ''; shuffleArray(qData.options).forEach(option => { const label = document.createElement('label'); const input = document.createElement('input'); input.type = 'radio'; input.name = 'syllableSort'; input.value = option; label.appendChild(input); label.appendChild(document.createTextNode(` ${option}`)); optionsElem.appendChild(label); }); document.getElementById('syllableSortFeedback').style.display = 'none'; disableRadioOptions('syllableSort', false); } function checkSyllableSort() { const userAnswer = getRadioValue('syllableSort'); const correctAnswer = syllableSortQuestions[currentSyllableSortIndex].a.toString(); // Ensure string comparison const isCorrect = userAnswer === correctAnswer; setFeedback('syllableSortFeedback', isCorrect, isCorrect ? `Correct! ${syllableSortQuestions[currentSyllableSortIndex].explanation}` : `Incorrect. ${syllableSortQuestions[currentSyllableSortIndex].explanation}`); disableRadioOptions('syllableSort', true); } function nextSyllableSort() { currentSyllableSortIndex = (currentSyllableSortIndex + 1) % syllableSortQuestions.length; loadSyllableSortQuestion(); } // --- Sample Answer Critique Tool --- function loadCritiqueTool() { document.querySelector('#sampleCritiqueTool .critique-question .answer').textContent = critiqueSampleAnswer.answer; const optionsElem = document.getElementById('critiqueOptions'); optionsElem.innerHTML = ''; // The options are static for this tool based on the Band 5 answer critiqueSampleAnswer.correctImprovements.forEach(optionText => { const label = document.createElement('label'); const input = document.createElement('input'); input.type = 'checkbox'; input.name = 'critiqueOption'; input.value = optionText.replace(/ /g, '_').toLowerCase(); // Create a value from text label.appendChild(input); label.appendChild(document.createTextNode(` ${optionText}`)); optionsElem.appendChild(label); }); // Add the "grammar errors" option even if it's not a correct improvement for this specific answer // to show how feedback works for incorrect selections. const grammarLabel = document.createElement('label'); const grammarInput = document.createElement('input'); grammarInput.type = 'checkbox'; grammarInput.name = 'critiqueOption'; grammarInput.value = 'grammar_errors'; grammarLabel.appendChild(grammarInput); grammarLabel.appendChild(document.createTextNode(' There are grammatical errors.')); optionsElem.appendChild(grammarLabel); document.getElementById('critiqueFeedback').style.display = 'none'; document.querySelectorAll('input[name="critiqueOption"]').forEach(checkbox => checkbox.disabled = false); } function checkCritique() { const selectedOptions = Array.from(document.querySelectorAll('input[name="critiqueOption"]:checked')).map(cb => cb.value); const feedbackElem = document.getElementById('critiqueFeedback'); feedbackElem.innerHTML = ''; feedbackElem.style.display = 'block'; let allCorrectlyIdentified = true; let feedbackContent = ''; // Check each selected option selectedOptions.forEach(optionValue => { const message = critiqueSampleAnswer.feedbackMessages[optionValue]; if (critiqueSampleAnswer.correctImprovements.map(s => s.replace(/ /g, '_').toLowerCase()).includes(optionValue)) { feedbackContent += `
Correct! ${message}
`; } else { feedbackContent += `Consider this: ${message}
`; allCorrectlyIdentified = false; } }); // Check for missed correct improvements critiqueSampleAnswer.correctImprovements.forEach(correctOptionText => { const correctOptionValue = correctOptionText.replace(/ /g, '_').toLowerCase(); if (!selectedOptions.includes(correctOptionValue)) { feedbackContent += `Don't forget: ${critiqueSampleAnswer.feedbackMessages[correctOptionValue]}
`; allCorrectlyIdentified = false; } }); if (selectedOptions.length === 0) { feedbackContent = "Please select at least one option to get feedback.
"; allCorrectlyIdentified = false; } feedbackElem.innerHTML = feedbackContent; feedbackElem.className = `critique-feedback ${allCorrectlyIdentified ? 'correct' : 'incorrect'}`; document.querySelectorAll('input[name="critiqueOption"]').forEach(checkbox => checkbox.disabled = true); } function resetCritique() { document.querySelectorAll('input[name="critiqueOption"]').forEach(checkbox => { checkbox.checked = false; checkbox.disabled = false; }); document.getElementById('critiqueFeedback').style.display = 'none'; } // --- Section 5: Build Your Own Answer (Rule-based Feedback) --- function loadBuildAnswerQuestion() { const qData = buildAnswerQuestions[currentBuildAnswerIndex]; document.getElementById('buildAnswerQNum').textContent = currentBuildAnswerIndex + 1; document.getElementById('buildAnswerQuestionText').textContent = qData.q; document.getElementById('buildAnswerUserAnswer').value = ''; document.getElementById('buildAnswerAiFeedback').style.display = 'none'; document.getElementById('buildAnswerBandEstimate').style.display = 'none'; // This will always be hidden now document.getElementById('buildAnswerSampleAnswer').style.display = 'none'; document.getElementById('toggleBuildAnswerSampleBtn').textContent = 'Show Sample Band 9 Answer'; document.getElementById('submitBuildAnswer').disabled = false; document.getElementById('buildAnswerUserAnswer').disabled = false; document.getElementById('buildAnswerAiFeedback').innerHTML = ''; } function getBuildAnswerFeedback() { const qData = buildAnswerQuestions[currentBuildAnswerIndex]; const userResponse = document.getElementById('buildAnswerUserAnswer').value.trim(); const aiFeedbackElem = document.getElementById('buildAnswerAiFeedback'); const submitBtn = document.getElementById('submitBuildAnswer'); const userAnswerArea = document.getElementById('buildAnswerUserAnswer'); submitBtn.disabled = true; userAnswerArea.disabled = true; let feedbackMessages = []; const words = userResponse.split(/\s+/).filter(word => word.length > 0); const wordCount = words.length; // 1. Length Check if (wordCount < qData.minWords) { feedbackMessages.push(`Your answer is a bit short (${wordCount} words). Try to expand more. Aim for around ${qData.minWords}-${qData.maxWords} words for Part 1.
`); } else if (wordCount > qData.maxWords) { feedbackMessages.push(`Your answer is quite long (${wordCount} words). For Part 1, aim for concise answers, typically ${qData.minWords}-${qData.maxWords} words.
`); } else { feedbackMessages.push(`Good length for Part 1! (${wordCount} words).
`); } // 2. Keyword Check const lowerCaseResponse = userResponse.toLowerCase(); let foundKeywords = []; qData.keywords.forEach(keyword => { if (lowerCaseResponse.includes(keyword)) { foundKeywords.push(keyword); } }); if (foundKeywords.length > 0) { feedbackMessages.push(`You used relevant keywords: ${foundKeywords.join(', ')}.
`); } else { feedbackMessages.push(`Try to incorporate more topic-specific vocabulary. Consider words related to: ${qData.keywords.join(', ')}.
`); } // 3. General encouragement/tip (always include) feedbackMessages.push("Remember to focus on clear articulation and natural fluency when speaking. Keep practicing!
"); aiFeedbackElem.style.display = "block"; aiFeedbackElem.innerHTML = feedbackMessages.join(''); aiFeedbackElem.className = 'feedback-response correct'; // Use correct style as it's general advice // No band estimate with rule-based feedback document.getElementById('buildAnswerBandEstimate').style.display = 'none'; submitBtn.disabled = false; userAnswerArea.disabled = false; } function nextBuildAnswer() { currentBuildAnswerIndex = (currentBuildAnswerIndex + 1) % buildAnswerQuestions.length; loadBuildAnswerQuestion(); } function toggleBuildAnswerSample() { const sampleElem = document.getElementById('buildAnswerSampleAnswer'); const toggleBtn = document.getElementById('toggleBuildAnswerSampleBtn'); if (sampleElem.style.display === 'none') { sampleElem.innerHTML = `Sample Band 9 Answer: ${buildAnswerQuestions[currentBuildAnswerIndex].sample.replace(/\n/g, '
')}
Ready to achieve your target IELTS score?
Join 15,000+ students with expert-led courses and AI practice tests.
Start Free Trial