Web/aranyjanos/game.js
2021-11-02 07:56:51 +01:00

140 lines
3.9 KiB
JavaScript

var cimek = [
"A walesi bárdok",
"Ágnes asszony",
"Az örök zsidó",
"Híd-avatás",
"Szondi két apródja",
"Tengerihántás",
"Tetemre hívás",
"V. László",
"Vörös Rébék"
];
var balladak = [];
function init() {
for (var i = 0; i < 4; i++) {
let btn = document.createElement("input");
btn.type = "button";
btn.id = "btn" + i;
btn.setAttribute("onclick", "answer(" + i + ")");
document.getElementById("answers").appendChild(btn);
}
loadBallada(0);
}
function loadBallada(index) {
if (index < cimek.length) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
let vers = this.responseText.split("\r\n");
buildBallada(vers, index);
index++;
loadBallada(index);
}
};
xhttp.open("GET", "balladák/" + cimek[index] + ".txt", true);
xhttp.send();
}
}
function buildBallada(vers, i) {
let versszak = 0;
for (var j = 0; j < vers.length; j++) {
if (vers[j] == "") {
versszak++;
}
}
let sorok = 0;
balladak[i] = new Array(versszak);
for (var vsz = 0; vsz < versszak; vsz++) {
balladak[i][vsz] = new Array(vers.indexOf(""));
for (var sor = 0; sor < balladak[i][vsz].length; sor++) {
// console.log(sor + " " + sorok);
balladak[i][vsz][sor] = vers[sorok];
sorok++;
}
sorok++;
}
}
function start() {
console.log("started");
document.getElementById("mainmenu").hidden = true;
document.getElementById("game").hidden = false;
document.getElementById("newgame").hidden = true;
document.getElementById("pont").innerHTML = "Pontok: 0";
round = 0;
score = 0;
nextRound();
}
var ballada, versszak;
var correctBallada;
var nums = [];
var round = 0;
var helped = false;
var score = 0;
function nextRound() {
round++;
document.getElementById("help").disabled = false;
document.getElementById("help").value = "Segítség";
document.getElementById("help").setAttribute("onclick", "help()");
helped = false;
for (var i = 0; i < 4; i++) {
document.getElementById("btn" + i).style = "";
document.getElementById("btn" + i).disabled = false;
}
document.getElementById("feladat").innerHTML = round + ". kör"
ballada = Math.floor(Math.random() * balladak.length);
versszak = Math.floor(Math.random() * balladak[ballada].length);
document.getElementById("resz").innerHTML = balladak[ballada][versszak][0] + "<br>" + balladak[ballada][versszak][1];
correctBallada = Math.floor(Math.random() * 4);
for (var i = 0; i < cimek.length; i++) {
nums[i] = i;
}
writeAnswer(0, correctBallada, ballada);
}
function writeAnswer(a, b, i) {
if (a < 4) {
document.getElementById("btn" + (b % 4)).value = cimek[i];
nums.splice(nums.indexOf(i), 1);
// console.log((b % 4) + " " + i);
// console.log(nums);
a++;
b++;
writeAnswer(a, b, nums[Math.floor(Math.random() * nums.length)]);
}
}
function answer(answ) {
if (answ == correctBallada) {
score = helped ? score + 0.5 : score + 1;
}
else {
document.getElementById("btn" + answ).style.backgroundColor = "red";
}
document.getElementById("btn" + correctBallada).style.backgroundColor = "lime";
document.getElementById("pont").innerHTML = "Pontok: " + score;
document.getElementById("help").value = round < 10 ? "Következő" : "Végtelen";
document.getElementById("help").setAttribute("onclick", "nextRound()");
document.getElementById("help").disabled = false;
for (var i = 0; i < 4; i++) {
document.getElementById("btn" + i).disabled = true;
}
if (round == 10) {
alert("Elért pontszám: " + score + "/10");
document.getElementById("newgame").hidden = false;
}
}
function help() {
helped = true;
document.getElementById("resz").innerHTML = balladak[ballada][versszak].join("<br>");
document.getElementById("help").disabled = true;
}