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 Wizard: A Fun Learning Game for 2nd Graders</title>
<meta name="description" content="A fun and educational game designed for 2nd graders to practice words, reading, and identifying letters in words.">
<meta name="keywords" content="education, game, 2nd grade, words, reading, letters, kids, fun">
<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">
<link href="https://fonts.googleapis.com/css?family=Baloo+Da+2|Raleway&display=swap" rel="stylesheet">
<!-- Built-In Functions for Apps -->
<script type="text/javascript">
var localStoragePrefix = "ct-168141168180041";
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">
// App Javascript Goes Here
$(document).ready(function() {
let words = ["apple", "banana", "cat", "dog", "elephant", "fish", "giraffe", "house", "icecream", "jump", "kite", "lion", "monkey", "nest", "ocean", "penguin", "queen", "rainbow", "sun", "tree", "umbrella", "violin", "whale", "xylophone", "yak", "zebra"];
let currentWord = "";
let revealedLetters = [];
let score = 0;
function newGame() {
currentWord = words[Math.floor(Math.random() * words.length)];
revealedLetters = Array(currentWord.length).fill(false);
$("#word-container").empty();
for (let i = 0; i < currentWord.length; i++) {
$("#word-container").append('<div class="letter-box" data-letter="' + currentWord[i] + '"><span>?</span></div>');
}
}
function updateScore() {
$("#score").text("Score: " + score);
}
function revealLetter(letter) {
let foundLetter = false;
for (let i = 0; i < currentWord.length; i++) {
if (currentWord[i] === letter && !revealedLetters[i]) {
revealedLetters[i] = true;
$(".letter-box").eq(i).children("span").text(letter);
foundLetter = true;
score++;
}
}
if (!foundLetter) {
score -= 2;
}
updateScore();
}
$("#letter-input").on("input", function() {
let letter = $(this).val().toLowerCase();
if (letter.length === 1 && /^[a-z]$/.test(letter)) {
revealLetter(letter);
$(this).val("");
}
});
$("#new-game-button").click(function() {
newGame();
});
newGame();
updateScore();
});
</script>
<style>
/* App CSS Goes Here */
body {
font-family: 'Raleway', sans-serif;
background: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%);
color: #333;
}
#main-container {
text-align: center;
padding: 40px 0;
}
h1 {
font-family: 'Baloo Da 2', cursive;
font-size: 48px;
margin-bottom: 20px;
}
.letter-box {
display: inline-block;
background-color: #fff;
border-radius: 5px;
padding: 10px;
margin: 5px;
width: 40px;
height: 40px;
line-height: 40px;
text-align: center;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
#score {
font-size: 24px;
margin-bottom: 20px;
}
#letter-input {
font-size: 24px;
padding: 10px;
width: 60px;
text-align: center;
}
</style>
<link rel="canonical" href="https://calculator.tools/prompt/343/">
<meta charset="utf-8">
</head>
<body>
<div id="main-container" class="container">
<!-- App HTML Goes Here -->
<h1>🧙 Word Wizard 🧙</h1>
<div id="score">Score: 0</div>
<div id="word-container"></div>
<input type="text" id="letter-input" maxlength="1" autocomplete="off" />
<br />
<button id="new-game-button" class="btn btn-primary mt-3">New Game</button>
</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>