Newer
Older
TADOKOROc1231429 / slot.js
const reels = [document.getElementById('reel1'), document.getElementById('reel2'), document.getElementById('reel3')];
const stopButtons = [document.getElementById('stopButton1'), document.getElementById('stopButton2'), document.getElementById('stopButton3')];
const startButton = document.getElementById('startButton');
const symbols = ['1', '2', '3', '4', '5', '6', '7', '8', '9'];
let spinning = false;
let spinIntervals = [];

function spinReel(reel, index) {
    return setInterval(() => {
        reel.textContent = symbols[Math.floor(Math.random() * symbols.length)];
    }, 100);
}

function startSpin() {
    if (spinning) return;
    spinning = true;
    startButton.textContent = "スピン中";
    spinIntervals = reels.map((reel, index) => {
        stopButtons[index].disabled = false;
        return spinReel(reel, index);
    });
}

function stopReel(index) {
    clearInterval(spinIntervals[index]);
    spinIntervals[index] = null;
    stopButtons[index].disabled = true;
    if (spinIntervals.every(interval => interval === null)) {
        spinning = false;
        startButton.textContent = "リスタート";
        startButton.disabled = false;
        checkWin();
    }
}

function checkWin() {
    if (reels[0].textContent === reels[1].textContent && reels[1].textContent === reels[2].textContent) {
        alert('おめでとう!');
    }
}

function resetGame() {
    spinning = false;
    spinIntervals = [];
    reels.forEach(reel => reel.textContent = '1');
    stopButtons.forEach(button => button.disabled = true);
    startButton.textContent = "スタート";
}

startButton.addEventListener('click', () => {
    if (spinning) {
        return;
    }
    if (spinIntervals.every(interval => interval === null)) {
        resetGame();
    }
    startSpin();
});

stopButtons.forEach((button, index) => {
    button.addEventListener('click', () => stopReel(index));
});