number game 2

"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

Related Posts

Latest
Previous
Next Post »