728x90
반응형
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>슬롯 머신</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin-top: 50px;
}
.slot-machine {
display: flex;
justify-content: center;
margin-bottom: 20px;
}
.slot {
font-size: 100px; /* 폰트 크기 증가 */
border: 1px solid #ccc;
padding: 20px; /* 패딩 증가 */
margin: 0 10px; /* 마진 증가 */
width: 160px; /* 너비 증가 */
height: 160px; /* 높이 증가 */
display: flex;
align-items: center;
justify-content: center;
}
.spinning {
animation: spin 0.1s infinite;
}
@keyframes spin {
0% { transform: rotateX(0); }
100% { transform: rotateX(360deg); }
}
.button {
padding: 10px 20px;
font-size: 20px;
cursor: pointer;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 5px;
margin-top: 20px;
}
.button:hover {
background-color: #45a049;
}
.result {
margin-top: 20px;
font-size: 24px;
}
#resetButton {
display: none; /* 초기에는 보이지 않음 */
}
.rainbow {
font-size: 50px;
font-weight: bold;
color: #ff0000; /* 초기 색상 설정 */
animation: rainbow-font-animation 1s infinite;
}
@keyframes rainbow-font-animation {
0% { color: red; }
14% { color: orange; }
28% { color: yellow; }
42% { color: green; }
57% { color: blue; }
71% { color: indigo; }
85% { color: violet; }
100% { color: red; }
}
</style>
</head>
<body>
<h1 class="rainbow">슬롯 머신</h1>
<div class="slot-machine">
<div class="slot" id="slot1">7</div>
<div class="slot" id="slot2">7</div>
<div class="slot" id="slot3">7</div>
</div>
<button class="button" id="spinButton" onclick="spin()">스핀</button>
<button class="button" id="resetButton" onclick="resetMoney()">돈 채우기</button>
<div class="result" id="result"></div>
<script>
const slotValues = ['🍒', '🍋', '🍊', '🍉', '⭐', '7'];
let money = 100000; // 초기 자금 10만원
const spinCost = 5000; // 한 판당 5천원
const jackpotPrizes = {
'🍒': 1000000, // 예시: 100만원
'🍋': 2000000, // 예시: 200만원
'🍊': 3000000, // 예시: 300만원
'🍉': 4000000, // 예시: 400만원
'⭐': 50000000, // 예시: 5천만원
'7': 500000000 // 5억
};
function getRandomSlotValue() {
return slotValues[Math.floor(Math.random() * slotValues.length)];
}
function spin() {
const slot1 = document.getElementById('slot1');
const slot2 = document.getElementById('slot2');
const slot3 = document.getElementById('slot3');
const result = document.getElementById('result');
const spinButton = document.getElementById('spinButton');
const resetButton = document.getElementById('resetButton');
if (money < spinCost) {
result.textContent = '돈이 부족합니다. 돈을 채워주세요.';
spinButton.style.display = 'none';
resetButton.style.display = 'inline';
return;
}
money -= spinCost;
slot1.classList.add('spinning');
slot2.classList.add('spinning');
slot3.classList.add('spinning');
result.textContent = '';
setTimeout(() => {
slot1.classList.remove('spinning');
slot2.classList.remove('spinning');
slot3.classList.remove('spinning');
slot1.textContent = getRandomSlotValue();
slot2.textContent = getRandomSlotValue();
slot3.textContent = getRandomSlotValue();
if (slot1.textContent === slot2.textContent && slot2.textContent === slot3.textContent) {
const jackpot = jackpotPrizes[slot1.textContent];
money += jackpot;
result.textContent = `축하합니다! 잭팟입니다! 상금: ${jackpot.toLocaleString()}원`;
} else {
result.textContent = `다시 시도해보세요! 남은 돈: ${money.toLocaleString()}원`;
}
if (money < spinCost) {
result.textContent += ' 돈이 부족합니다. 돈을 채워주세요.';
spinButton.style.display = 'none';
resetButton.style.display = 'inline';
}
}, 2000); // 2초 동안 애니메이션
}
function resetMoney() {
money = 100000; // 돈을 다시 10만원으로 채움
const result = document.getElementById('result');
const spinButton = document.getElementById('spinButton');
const resetButton = document.getElementById('resetButton');
result.textContent = `돈이 다시 채워졌습니다. 남은 돈: ${money.toLocaleString()}원`;
spinButton.style.display = 'inline';
resetButton.style.display = 'none';
}
</script>
</body>
</html>
728x90
반응형
'프로그래밍(Web) > Javascript(TS,Node)' 카테고리의 다른 글
[바미] JS - 테트리스 (0) | 2024.09.21 |
---|---|
[바미] Node-Express 간단한 REST API 예제 (0) | 2024.08.01 |
[바미] 로또 추첨기(JS) (0) | 2024.06.02 |
ERROR : 'node_env'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다 (0) | 2023.10.11 |
페이징 예제 코드 (0) | 2023.05.24 |