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;