"use client"
import { useState, useEffect } from "react"
import { Button } from "@/components/ui/button"
import { Progress } from "@/components/ui/progress"
import { Flame } from 'lucide-react'
export default function Component() {
const [score, setScore] = useState(498784)
const [level, setLevel] = useState(31)
const [selectedNumbers, setSelectedNumbers] = useState
([])
const [diamonds, setDiamonds] = useState(0)
const [timer, setTimer] = useState(34)
const [slots, setSlots] = useState([0, 0, 0])
const [isSpinning, setIsSpinning] = useState(false)
const [winningNumber, setWinningNumber] = useState(null)
const progressData = [
{ label: "S", value: 47, color: "bg-gray-400" },
{ label: "B", value: 53, color: "bg-blue-400" },
{ label: "E", value: 54, color: "bg-emerald-400" },
{ label: "O", value: 46, color: "bg-orange-400" },
]
const numbers = Array.from({ length: 28 }, (_, i) => i)
const flamePositions = [2, 3, 4, 5, 11, 13, 25, 27]
const handleNumberSelect = (num: number) => {
setSelectedNumbers(prev =>
prev.includes(num) ? prev.filter(n => n !== num) : [...prev, num]
)
}
const generateWinningNumber = () => {
return Math.floor(Math.random() * 28)
}
const calculateMultiplier = (num: number) => {
if (num === 0 || num === 27) return 100
if ((num >= 1 && num <= 6) || (num >= 22 && num <= 26)) return 20
return 10
}
const handlePlay = () => {
if (selectedNumbers.length === 0) return
setIsSpinning(true)
const newWinningNumber = generateWinningNumber()
setWinningNumber(newWinningNumber)
const spinInterval = setInterval(() => {
setSlots([
Math.floor(Math.random() * 10),
Math.floor(Math.random() * 10),
Math.floor(Math.random() * 10),
])
}, 100)
setTimeout(() => {
clearInterval(spinInterval)
setIsSpinning(false)
let sum = newWinningNumber
const num1 = Math.min(9, Math.floor(Math.random() * (sum + 1)))
sum -= num1
const num2 = Math.min(9, Math.floor(Math.random() * (sum + 1)))
sum -= num2
const num3 = Math.min(9, sum)
setSlots([num1, num2, num3])
if (selectedNumbers.includes(newWinningNumber)) {
const multiplier = calculateMultiplier(newWinningNumber)
const winAmount = newWinningNumber * multiplier * selectedNumbers.length
setScore(score + winAmount)
setDiamonds(diamonds + selectedNumbers.length)
}
}, 2000)
}
useEffect(() => {
if (timer > 0 && !isSpinning) {
const countdown = setInterval(() => {
setTimer((prevTimer) => prevTimer - 1)
}, 1000)
return () => clearInterval(countdown)
}
}, [timer, isSpinning])
return (
{level}
💎
{score.toLocaleString()}
{slots.map((slot, index) => (
{slot}
))}
{winningNumber !== null && (
Winning Number: {winningNumber}
)}
{timer}s
{progressData.map((progress) => (
{progress.label}
{progress.value}%
))}
{numbers.map((num) => (
))}
💎
{diamonds}
)
}
Share this