import React, { useState, useEffect } from 'react';const WORD_LENGTH = 5;const MAX_GUESSES = 6;const MOVIES = ['ALIEN', 'JAWS', 'ROCKY', 'PSYCHO', 'MATRIX', 'FROZEN', 'AVATAR', 'CLUELESS', 'INCEPTION', 'TITANIC'];function Moviele() { const [targetMovie, setTargetMovie] = useState(''); const [guesses, setGuesses] = useState([]); const [currentGuess, setCurrentGuess] = useState(''); const [gameOver, setGameOver] = useState(false); const [message, setMessage] = useState(''); useEffect(() => { setTargetMovie(MOVIES[Math.floor(Math.random() * MOVIES.length)]); }, []); const handleGuess = () => { if (currentGuess.length !== WORD_LENGTH) return; const newGuesses = [...guesses, currentGuess]; setGuesses(newGuesses); setCurrentGuess(''); if (currentGuess === targetMovie) { setGameOver(true); setMessage(`🎬 You got it! The movie was ${targetMovie}. 🎥`); } else if (newGuesses.length === MAX_GUESSES) { setGameOver(true); setMessage(`🎭 Game over! The movie was ${targetMovie}.🍿`); } else { setMessage(getMovieHint(newGuesses.length)); } }; const handleKeyDown = (event) => { if (gameOver) return; if (event.key === 'Enter') { handleGuess(); } else if (event.key === 'Backspace') { setCurrentGuess(currentGuess.slice(0, -1)); } else if (event.key.match(/^[A-Za-z]$/) && currentGuess.length < WORD_LENGTH) { setCurrentGuess((prev) => prev + event.key.toUpperCase()); } }; useEffect(() => { window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); }, [currentGuess, gameOver]); const getMovieHint = (guessCount) => { const hints = [ "🎬 Action! First guess down.", "🎥 Keep rolling! You're doing great.", "🍿 Intermission! Grab some popcorn and keep guessing.", "🎭 Plot twist! Don't give up now.", "🌟 Final act approaching. You've got this!" ]; return hints[guessCount - 1] || "🎞️ The suspense is killing me!"; }; const renderGuess = (guess, isCurrentGuess = false) => { const tiles = []; for (let i = 0; i < WORD_LENGTH; i++) { let letter = guess[i]; let backgroundColor = 'rgba(18, 18, 18, 0.8)'; let borderColor = '#444'; let color = 'white'; if (!isCurrentGuess && letter) { if (letter === targetMovie[i]) { backgroundColor = '#538d4e';} else if (targetMovie.includes(letter)) { backgroundColor = '#b59f3b'; } else { backgroundColor = '#3a3a3c'; }borderColor = backgroundColor; } tiles.push(
{letter || ''}
); } return tiles; }; return (

Moviele

{guesses.map((guess, index) => (
{renderGuess(guess)}
))} {!gameOver && guesses.length < MAX_GUESSES && (
{renderGuess(currentGuess.padEnd(WORD_LENGTH), true)}
)}
{message}
Guess the 5-letter movie title. Type and press Enter. Use Backspace to delete.
);}export default Moviele;