calculator / index.html
kolaslab's picture
Update index.html
fcba6f7 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Calculator Game</title>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Roboto', sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f0f0f0;
margin: 0;
}
.calculator {
width: 300px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
border-radius: 10px;
overflow: hidden;
background: #fff;
}
.display {
background-color: #222;
color: #fff;
font-size: 2rem;
text-align: right;
padding: 20px;
box-sizing: border-box;
}
.buttons {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
.button {
border: 1px solid #ddd;
padding: 20px;
font-size: 1.5rem;
cursor: pointer;
transition: background 0.3s;
}
.button:hover {
background-color: #f7f7f7;
}
.explode {
animation: explode 0.5s forwards;
}
@keyframes explode {
0% { transform: scale(1); }
100% { transform: scale(0); }
}
</style>
</head>
<body>
<div class="calculator">
<div class="display" id="display">0</div>
<div class="buttons">
<div class="button">7</div>
<div class="button">8</div>
<div class="button">9</div>
<div class="button">/</div>
<div class="button">4</div>
<div class="button">5</div>
<div class="button">6</div>
<div class="button">*</div>
<div class="button">1</div>
<div class="button">2</div>
<div class="button">3</div>
<div class="button">-</div>
<div class="button">0</div>
<div class="button">C</div>
<div class="button">=</div>
<div class="button">+</div>
</div>
</div>
<!-- Placeholder for explosion sound -->
<audio id="explosionSound" src="explosion.mp3"></audio>
<script>
const display = document.getElementById('display');
const explosionSound = document.getElementById('explosionSound');
let expression = '';
document.querySelectorAll('.button').forEach(button => {
button.addEventListener('click', () => {
const value = button.textContent;
if (value === 'C') {
expression = '';
display.textContent = '0';
} else if (value === '=') {
try {
if (expression.includes('/0')) {
explodeScreen();
} else {
expression = eval(expression).toString();
display.textContent = expression;
}
} catch {
display.textContent = 'Error';
expression = '';
}
} else {
expression += value;
display.textContent = expression;
}
});
});
function explodeScreen() {
explosionSound.play();
display.textContent = 'Boom!';
document.querySelector('.calculator').classList.add('explode');
setTimeout(() => {
expression = '';
display.textContent = '0';
document.querySelector('.calculator').classList.remove('explode');
}, 500);
}
</script>
</body>
</html><script async data-explicit-opt-in="true" data-cookie-opt-in="true" src="https://vercel.live/_next-live/feedback/feedback.js"></script>