Készíts egy JS quiz játékot, amely 10db európai ország fővárosát kérdezi meg, és számolja a helyes válaszokat! Az adatokat promt segítségével kérje be a program, és alert üzenetekkel írja ki az aktuális eredményt!
Az adatokat tömbben (orszagok) tároljuk. Következő lépésben a tömb elemeit a Fisher-Yates algoritmussal összekeverjük, és egy új tömbben (random_Orszagok) tároljuk. A játék során végigmegyünk a random_Orszagok tömb minden elemén, és összehasonlítjuk az adott országhoz tartozó fővárost a játékos által beírt értékkel. Ha a két string egyezik, növeljük a helyes válaszok darabszámát. A játék végén kiíratjuk, hogy mennyi helyes választ ért el a játékos.
<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Európai országok</title>
</head>
<body>
<script>
let orszagok = [
{ orszag: "Magyarország", fovaros: "Budapest" },
{ orszag: "Németország", fovaros: "Berlin" },
{ orszag: "Ausztria", fovaros: "Bécs" },
{ orszag: "Csehország", fovaros: "Prága" },
{ orszag: "Spanyolország", fovaros: "Madrid" },
{ orszag: "Olaszország", fovaros: "Róma" },
{ orszag: "Svédország", fovaros: "Stockholm" },
{ orszag: "Finnország", fovaros: "Helsinki" },
{ orszag: "Franciaország", fovaros: "Párizs" },
{ orszag: "Egyesült Királyság", fovaros: "London" }
];
// Fisher-Yates keverő algoritmus
function kevert_sorrend(tomb) {
for (let i = tomb.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[tomb[i], tomb[j]] = [tomb[j], tomb[i]];
}
return tomb;
}
function kerdezz() {
// Véletlenszerűen kevert tömb, a slice() új tömböt hoz létre, az eredetit nem módosítja
let random_Orszagok = kevert_sorrend(orszagok.slice());
let jovalaszok = 0; // Jó válaszok száma
for (let i = 0; i < random_Orszagok.length; i++)
{
let valasz = prompt(`Kérdés: 10/ ${i+1} Mi ${random_Orszagok[i].orszag} fővárosa?`);
if (valasz.toLowerCase() === random_Orszagok[i].fovaros.toLowerCase()) {
alert("Helyes válasz!");
jovalaszok++;
} else {
alert(`Sajnos rossz válasz. A helyes válasz: ${random_Orszagok[i].fovaros}.`);
}
}
alert(`Vége a játéknak! Összesen ${random_Orszagok.length} / ${jovalaszok} kérdésre adtál helyes választ.`);
}
kerdezz();
</script>
</body>
</html>