import React, { useState, useEffect } from 'react';const WORD_LENGTH = 5;const MAX_GUESSES = 6;const KEYBOARD_LETTERS = [ 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C', 'V', 'B', 'N', 'M'];const getRandomWord = () => { const words = ['REACT', 'WORLD', 'GUESS', 'WORDLE', 'GAME']; return words[Math.floor(Math.random() * words.length)];};const App = () => { const [targetWord, setTargetWord] = useState(getRandomWord()); const [guesses, setGuesses] = useState(Array(MAX_GUESSES).fill('')); const [currentGuess, setCurrentGuess] = useState(''); const [gameOver, setGameOver] = useState(false); useEffect(() => { const handleKeyDown = (event) => { if (gameOver) return; if (event.key === 'Enter') { if (currentGuess.length !== WORD_LENGTH) return; const newGuesses = [...guesses]; const currentGuessIndex = newGuesses.findIndex(guess => guess === ''); newGuesses[currentGuessIndex] = currentGuess; setGuesses(newGuesses); setCurrentGuess(''); if (currentGuess === targetWord || currentGuessIndex === MAX_GUESSES - 1) { setGameOver(true); } } else if (event.key === 'Backspace') { setCurrentGuess(currentGuess.slice(0, -1)); } else if (event.key.match(/^[a-zA-Z]$/) && currentGuess.length < WORD_LENGTH) { setCurrentGuess(currentGuess + event.key.toUpperCase()); } }; window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); }, [currentGuess, gameOver, guesses, targetWord]); const getLetterColor = (letter, index, guess) => { if (targetWord[index] === letter) { return 'green'; } else if (targetWord.includes(letter)) { return 'yellow'; } else { return 'gray'; } }; return (
The word was: {targetWord}