import React, { useState, useEffect } from “react”; const MemoryTest = () => { const [data, setData] = useState(null); const [userInput, setUserInput] = useState({ speed: “”, altitude: “”, heading: “”, radio: “” }); const [screen, setScreen] = useState(“difficulty”); const [message, setMessage] = useState(“”); const [difficulty, setDifficulty] = useState(“easy”); useEffect(() => { if (screen === “memorize”) generateData(); }, [screen]); const generateData = () => { const speedValues = Array.from({ length: (380 – 80) / 10 + 1 }, (_, i) => 80 + i * 10); const altitudeValues = [3000, 8500, 30000, 35000, 40000, 45000]; const radioValues = Array.from({ length: (11795 – 10800) / 5 + 1 }, (_, i) => 10800 + i * 5); const newData = { speed: “SPEED ” + speedValues[Math.floor(Math.random() * speedValues.length)], altitude: “ALTITUDE ” + altitudeValues[Math.floor(Math.random() * altitudeValues.length)], heading: “HEADING ” + Math.floor(Math.random() * 360), radio: “RADIO ” + radioValues[Math.floor(Math.random() * radioValues.length)], }; let selectedData = {}; if (difficulty === “easy”) { const keys = Object.keys(newData).sort(() => 0.5 – Math.random()).slice(0, 2); keys.forEach((key) => (selectedData[key] = newData[key])); } else if (difficulty === “medium”) { const keys = Object.keys(newData).sort(() => 0.5 – Math.random()).slice(0, 3); keys.forEach((key) => (selectedData[key] = newData[key])); } else { selectedData = newData; } setData(selectedData); setScreen(“memorize”); setTimeout(() => setScreen(“recall”), 5000); }; const handleChange = (e) => { setUserInput({ …userInput, [e.target.name]: e.target.value }); }; const checkAnswers = () => { let correct = true; Object.keys(data).forEach((key) => { if (userInput[key].toUpperCase() !== data[key]) { correct = false; } }); setMessage(correct ? “Answer correct!” : “Incorrect. Try again!”); }; return (
{screen === “difficulty” ? (

Select Difficulty:

) : screen === “memorize” ? (

Memorize the data below

{Object.values(data).map((value, index) => (

{value}

))}
) : (
{Object.keys(data).map((key, index) => ( ))}

{message}

)}
); }; export default MemoryTest;