Javascript, HTML, CSS Code
Copy
<html>
<head>
<script type="text/javascript"> window.addEventListener('error', function(event) { var message = JSON.parse(JSON.stringify(event.message)); var source = event.filename; var lineno = event.lineno; var colno = event.colno; var error = event.error; window.parent.postMessage({ type: 'iframeError', details: { message: message, source: source, lineno: lineno, colno: colno, error: error ? error.stack : '' } }, '*'); }); window.addEventListener('unhandledrejection', function(event) { window.parent.postMessage({ type: 'iframePromiseRejection', details: { reason: event.reason } }, '*'); }); </script>
<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 Scramble - Educational Game for 2nd Graders</title>
<meta name="description" content="Word Scramble is an educational game for 2nd graders that focuses on words, reading, and identifying letters in words.">
<meta name="keywords" content="Word Scramble, educational game, 2nd graders, words, reading, letters in words">
<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">
<!-- Built-In Functions for Apps -->
<script type="text/javascript">
var localStoragePrefix = "word-scramble";
var lastSave = 0;
// save to localstorage
function saveLocal(data) {
if (Date.now() - lastSave < 1000) {
return;
}
// save to cookie
let cookie = localStoragePrefix + "=" + JSON.stringify(data) + "; path=" + window.location.pathname + "'; SameSite=Strict";
cookie += "; expires=" + new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 1000).toUTCString();
document.cookie = cookie;
lastSave = Date.now();
}
// load from localstorage
function loadLocal() {
var cookiePrefix = localStoragePrefix + "=";
var cookieStart = document.cookie.indexOf(cookiePrefix);
if (cookieStart > -1) {
let cookieEnd = document.cookie.indexOf(";", cookieStart);
if (cookieEnd == -1) {
cookieEnd = document.cookie.length;
}
var cookieData = document.cookie.substring(cookieStart + cookiePrefix.length, cookieEnd);
return JSON.parse(cookieData);
}
}
</script>
<script type="text/javascript">
// Game Javascript Goes Here
const words = [
{ scrambled: "baloeb", correct: "bottle" },
{ scrambled: "steha", correct: "haste" },
{ scrambled: "lubemr", correct: "rumble" },
{ scrambled: "grine", correct: "reign" },
{ scrambled: "cray", correct: "car" },
{ scrambled: "esha", correct: "shea" },
{ scrambled: "lif", correct: "fil" },
{ scrambled: "taph", correct: "path" },
{ scrambled: "plak", correct: "kelp" },
{ scrambled: "toinm", correct: "mint" },
{ scrambled: "lade", correct: "dale" },
{ scrambled: "fola", correct: "loaf" },
{ scrambled: "henc", correct: "ench" },
{ scrambled: "worm", correct: "mrow" },
{ scrambled: "tray", correct: "raty" },
{ scrambled: "hick", correct: "kich" },
{ scrambled: "luds", correct: "suld" },
{ scrambled: "suet", correct: "tues" },
{ scrambled: "dell", correct: "ledl" },
{ scrambled: "toorn", correct: "ront" },
];
let score = 0;
let currentWordIndex = 0;
let startTime;
let timerInterval;
function startGame() {
$("#score").text(score);
$("#scrambled-word").text(words[currentWordIndex].scrambled);
startTime = Date.now();
timerInterval = setInterval(updateTimer, 1000);
}
function updateTimer() {
const elapsedTime = Math.floor((Date.now() - startTime) / 1000);
$("#timer").text(elapsedTime);
}
function checkAnswer() {
const answer = $("#answer").val().toLowerCase();
if (answer === words[currentWordIndex].correct) {
score += 10;
$("#score").text(score);
$("#answer-feedback").html("<span class='text-success'><i class='fa fa-check'></i> Correct!</span>");
} else {
score -= 5;
$("#score").text(score);
$("#answer-feedback").html("<span class='text-danger'><i class='fa fa-times'></i> Incorrect.</span>");
}
currentWordIndex++;
if (currentWordIndex === words.length) {
endGame();
} else {
$("#scrambled-word").text(words[currentWordIndex].scrambled);
$("#answer").val("");
}
}
function endGame() {
clearInterval(timerInterval);
const elapsedTime = Math.floor((Date.now() - startTime) / 1000);
$("#main-container").html(`
<div class="text-center">
<h2>Congratulations!</h2>
<p>You completed the game in ${elapsedTime} seconds.</p>
<p>Your final score is ${score}.</p>
<button type="button" class="btn btn-primary" onclick="location.reload()">Play Again</button>
</div>
`);
}
$(document).ready(function() {
startGame();
$("#check-answer").click(checkAnswer);
$("#answer").keypress(function(event) {
if (event.keyCode === 13) {
checkAnswer();
}
});
});
</script>
<style>
/* Game CSS Goes Here */
body {
background-color: #f2f2f2;
}
h1 {
text-align: center;
font-size: 3rem;
margin-top: 2rem;
}
#game-container {
display: flex;
flex-direction: column;
align-items: center;
margin: 2rem auto;
max-width: 600px;
}
#score-container {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
margin-bottom: 1rem;
}
#timer {
font-size: 2rem;
}
#scrambled-word {
font-size: 3rem;
margin-bottom: 2rem;
text-align: center;
}
#answer-feedback {
margin-bottom: 1rem;
}
#answer-container {
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 2rem;
}
#answer {
font-size: 2rem;
text-align: center;
padding: 0.5rem 1rem;
border: none;
background-color: white;
margin: 0 1rem;
}
#answer:focus {
outline: none;
}
#check-answer {
font-size: 2rem;
}
.text-success {
color: green;
}
.text-danger {
color: red;
}
</style>
<link rel="canonical" href="https://calculator.tools/prompt/337/">
<meta charset="utf-8">
</head>
<body>
<div id="main-container" class="container">
<h1>Word Scramble</h1>
<div id="game-container">
<div id="score-container">
<div>Score: <span id="score"></span></div>
<div>Time: <span id="timer"></span></div>
</div>
<div id="scrambled-word"></div>
<div id="answer-feedback"></div>
<div id="answer-container">
<div>Answer:</div>
<input type="text" id="answer" autocomplete="off">
<button type="button" id="check-answer" class="btn btn-primary"><i class="fa fa-check"></i></button>
</div>
</div>
</div>
<script type="text/javascript"> var localStoragePrefix = "ct-{{ cachebreaker }}"; var lastSave = 0; function saveLocal(data) { if (Date.now() - lastSave < 1000) { return; } let cookie = localStoragePrefix + "=" + JSON.stringify(data) + "; path=" + window.location.pathname + "'; SameSite=Strict"; cookie += "; expires=" + new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 1000).toUTCString(); document.cookie = cookie; lastSave = Date.now(); } function loadLocal() { var cookiePrefix = localStoragePrefix + "="; var cookieStart = document.cookie.indexOf(cookiePrefix); if (cookieStart > -1) { let cookieEnd = document.cookie.indexOf(";", cookieStart); if (cookieEnd == -1) { cookieEnd = document.cookie.length; } var cookieData = document.cookie.substring(cookieStart + cookiePrefix.length, cookieEnd); return JSON.parse(cookieData); } } </script>
<script type="text/javascript"> window.addEventListener('load', function() { var observer = new MutationObserver(function() { window.parent.postMessage({height: document.documentElement.scrollHeight || document.body.scrollHeight},"*"); }); observer.observe(document.body, {attributes: true, childList: true, subtree: true}); window.parent.postMessage({height: document.documentElement.scrollHeight || document.body.scrollHeight},"*"); }); </script>
</body>
</html>