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(“memorize”);
const [message, setMessage] = useState(“”);
useEffect(() => {
generateData();
}, []);
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)],
};
setData(newData);
setScreen(“memorize”);
setTimeout(() => setScreen(“recall”), 5000);
};
const handleChange = (e) => {
setUserInput({ …userInput, [e.target.name]: e.target.value });
};
const checkAnswers = () => {
if (
userInput.speed.toUpperCase() === data.speed &&
userInput.altitude.toUpperCase() === data.altitude &&
userInput.heading.toUpperCase() === data.heading &&
userInput.radio.toUpperCase() === data.radio
) {
setMessage(“Answer correct!”);
} else {
setMessage(“Incorrect. Try again!”);
}
};
return (
{screen === “memorize” ? (
Memorize the data below
{data?.speed}
{data?.altitude}
{data?.heading}
{data?.radio}
) : (
)}
);
};