Calculator Tools Calculator Tools

Word Order Exercise

Dec 18, 2023

About this app

Exercise to practice word order

Word Order Exercise Word Order Exercise Check Reset

Put this on your site

Source

                    <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">

<title>Word Order Exercise</title>
<meta name="description" content="Exercise to practice word order">
<meta name="keywords" content="word order, exercise">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.
document.addEventListener("DOMContentLoaded", function() {
// Array of word groups
var wordGroups = [
['Put', 'the', 'apples', 'in', 'a', 'dish.'],
['Mix', 'some', 'butter', 'and', 'flour', 'in', 'a', 'bowl.'],
['Serve', 'the', 'soup', 'in', 'the', 'small', 'bowls.'],
['Slice', 'the', 'potatoes', 'with', 'this', 'knife.'],
['I', 'made', 'an', 'apple', 'pie', 'at', 'school.'],
['Fry', 'the', 'chicken', 'in', 'a', 'pan.']
];

// Function to shuffle the word groups
function shuffleWordGroups() {
for (var i = wordGroups.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = wordGroups[i];
wordGroups[i] = wordGroups[j];
wordGroups[j] = temp;
}
}

// Function to create the word order exercise
function createWordOrderExercise() {
var exerciseContainer = document.getElementById('exercise-container');

// Clear previous exercise
exerciseContainer.innerHTML = '';

// Shuffle word groups
shuffleWordGroups();

// Create word order exercise
for (var i = 0; i < wordGroups.length; i++) {
var wordGroup = wordGroups[i];

var exerciseItem = document.createElement('div');
exerciseItem.classList.add('exercise-item');

for (var j = 0; j < wordGroup.length; j++) {
var word = wordGroup[j];

var wordButton = document.createElement('button');
wordButton.classList.add('word-button');
wordButton.innerHTML = word;
wordButton.setAttribute('data-word', word);

exerciseItem.appendChild(wordButton);
}

exerciseContainer.appendChild(exerciseItem);
}
}

// Function to handle word button click
function handleWordButtonClick(event) {
var wordButton = event.target;

// Check if the word button is already selected
if (wordButton.classList.contains('selected')) {
// Deselect the word button
wordButton.classList.remove('selected');
} else {
// Select the word button
wordButton.classList.add('selected');
}
}

// Function to handle check button click
function handleCheckButtonClick() {
var exerciseItems = document.getElementsByClassName('exercise-item');

// Loop through each exercise item
for (var i = 0; i < exerciseItems.length; i++) {
var exerciseItem = exerciseItems[i];
var selectedWords = exerciseItem.getElementsByClassName('selected');

// Check if the selected words are in correct order
var isCorrectOrder = true;
for (var j = 0; j < selectedWords.length - 1; j++) {
var currentWord = selectedWords[j];
var nextWord = selectedWords[j + 1];

if (currentWord.compareDocumentPosition(nextWord) !== Node.DOCUMENT_POSITION_FOLLOWING) {
isCorrectOrder = false;
break;
}
}

// Add appropriate class to the exercise item
if (isCorrectOrder) {
exerciseItem.classList.add('correct');
} else {
exerciseItem.classList.add('incorrect');
}
}
}

// Function to handle reset button click
function handleResetButtonClick() {
var exerciseItems = document.getElementsByClassName('exercise-item');

// Loop through each exercise item
for (var i = 0; i < exerciseItems.length; i++) {
var exerciseItem = exerciseItems[i];

// Remove the selected and correct/incorrect classes
exerciseItem.classList.remove('selected');
exerciseItem.classList.remove('correct');
exerciseItem.classList.remove('incorrect');
}
}

// Attach event listeners
var exerciseContainer = document.getElementById('exercise-container');
exerciseContainer.addEventListener('click', function(event) {
var target = event.target;

// Check if the clicked element is a word button
if (target.classList.contains('word-button')) {
handleWordButtonClick(event);
}
});

var checkButton = document.getElementById('check-button');
checkButton.addEventListener('click', function() {
handleCheckButtonClick();
});

var resetButton = document.getElementById('reset-button');
resetButton.addEventListener('click', function() {
handleResetButtonClick();
});

// Create initial word order exercise
createWordOrderExercise();
});

} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>

<style>
/* App CSS Goes Here */
body {
font-family: 'Arial', sans-serif;
margin: 0;
padding: 0;
background-color: #f2f2f2;
}

.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}

h1 {
text-align: center;
color: #333;
}

.exercise-item {
margin-bottom: 20px;
background-color: #fff;
padding: 20px;
border-radius: 5px;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
}

.word-button {
display: inline-block;
border: none;
background-color: #eee;
color: #333;
padding: 10px 20px;
margin: 5px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s;
}

.word-button:hover {
background-color: #ddd;
}

.selected {
background-color: #333;
color: #fff;
}

.correct {
background-color: #d4edda;
}

.incorrect {
background-color: #f8d7da;
}

.button-container {
text-align: center;
margin-top: 20px;
}

.button-container button {
border: none;
background-color: #333;
color: #fff;
padding: 10px 20px;
margin: 5px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s;
}

.button-container button:hover {
background-color: #555;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Word Order Exercise</h1>
<div id="exercise-container"></div>
<div class="button-container">
<button id="check-button">Check</button>
<button id="reset-button">Reset</button>
</div>
</div>
</body>
</html>