Dziwna sprawa....
Wytłumaczę od początku.
Robiłem z tutorialem grę w wisielca.
Całość poszła dość sprawnie.
Miałem hasło do odgadnięcia wpisane na sztywno.
Hasło było zakreskowane.
Po kliknięciu odpowiedniej litery alfabetu jeśli literka znajdowała się w haśle to się odkrywała.
Pięknie.
Teraz chcąc ulepszyć projekt chcę dodać wybór kategorii + automatyczne losowanie hasła z danej kategorii.
Myślałem że wystarczy podmienić
var haslo = "Ala ma kota";
na
var haslo = wylosowane_haslo_z_funkcji;
Tylko że nie chce mi to działać :/
Po kliknięciu w div'a LOSUJ, hasło się niby losuje, ale nie wyświetla się na ekranie, jak chcę żeby się wyświetliło na ekranie to nie jest zakreskowane i dodatkowo po kliknięciu w prawidłowe literki jest błędna reakcja (tj. kliknięcie w złą literkę)
Załączam cały kod. Może ktoś pomoże.
index.htm<!DOCTYPE HTML>
<link rel="stylesheet" type="text/css" href="style.css" /> <link href="https://fonts.googleapis.com/css?family=Cousine" rel="stylesheet"> <img src="img/s0.jpg" alt="" /> <div style="clear: both"></div> <div id="losowanie" onclick="haslo = losowanie();">LOSUJ
</div>
wisielec.jsvar kategorie = new Array(3);
kategorie[0] = "przyslowia";
kategorie[1] = "cytaty";
kategorie[2] = "motto";
var ilosc_kategorii = kategorie.length;
var przyslowia = new Array(3);
przyslowia[0] = "przyslowia Ala ma kota";
przyslowia[1] = "przyslowia Gość w domu dziecko w drodze";
przyslowia[2] = "przyslowia Być albo nie być oto jest pytanie";
var cytaty = new Array(3);
cytaty[0] = "cytaty Ala ma kota";
cytaty[1] = "cytaty Gość w domu dziecko w drodze";
cytaty[2] = "cytaty Być albo nie być oto jest pytanie";
var motto = new Array(3);
motto[0] = "Motto Ala ma kota";
motto[1] = "Motto Gość w domu dziecko w drodze";
motto[2] = "Motto Być albo nie być oto jest pytanie";
var haslo = "";
function losowanie()
{
var wylosowana_liczba = Math.floor(Math.random() * 3);
wylosowane_haslo = motto[wylosowana_liczba];
haslo = wylosowane_haslo;
document.getElementById("plansza").innerHTML = haslo;
wypisz_haslo();
return wylosowane_haslo;
}
haslo = haslo.toUpperCase();
var dlugosc= haslo.length;
var haslo1 = "";
var ile_skuch = "0";
var yes = new Audio('yes.wav');
var no = new Audio('no.wav');
for (i = 0; i<dlugosc; i++)
{
if (haslo.charAt(i) == " ") haslo1 = haslo1 +" ";
else haslo1 = haslo1 + "-";
}
var litery = new Array(35);
litery[0] = "A";
litery[1] = "Ą";
litery[2] = "B";
litery[3] = "C";
litery[4] = "Ć";
litery[5] = "D";
litery[6] = "E";
litery[7] = "Ę";
litery[8] = "F";
litery[9] = "G";
litery[10] = "H";
litery[11] = "I";
litery[12] = "J";
litery[13] = "K";
litery[14] = "L";
litery[15] = "Ł";
litery[16] = "M";
litery[17] = "N";
litery[18] = "Ń";
litery[19] = "O";
litery[20] = "Ó";
litery[21] = "P";
litery[22] = "Q";
litery[23] = "R";
litery[24] = "S";
litery[25] = "Ś";
litery[26] = "T";
litery[27] = "U";
litery[28] = "V";
litery[29] = "W";
litery[30] = "X";
litery[31] = "Y";
litery[32] = "Z";
litery[33] = "Ź";
litery[34] = "Ż";
function start()
{
var tresc_diva = "";
for (i = 0; i<=34; i++)
{
var element = "lit"+i;
tresc_diva = tresc_diva + '<div class="litera" id="'+element+'" onClick="sprawdz('+i+')">'+litery[i]+'
</div>';
if ((i + 1) % 7 == 0) tresc_diva = tresc_diva + '
<div style="clear: both"></div>';
}
document.getElementById("alfabet").innerHTML = tresc_diva;
}
function wypisz_haslo()
{
document.getElementById("plansza").innerHTML = haslo1;
}
String.prototype.ustawZnak = function (miejsce, znak)
{
if (miejsce > this.length -1) return this.toString();
else return this.substr(0, miejsce) + znak + this.substr(miejsce + 1);
}
function sprawdz(nr)
{
var trafiona = false;
for (i = 0; i<dlugosc; i++)
{
if (haslo.charAt(i) == litery[nr])
{
haslo1 = haslo1.ustawZnak(i, litery[nr]);
trafiona = true;
}
}
if(trafiona == true)
{
yes.play();
var element = "lit" +nr;
document.getElementById(element).style.background = "#003300";
document.getElementById(element).style.color = "#00ff00";
document.getElementById(element).style.border = "3px solid #00ff00";
document.getElementById(element).setAttribute("onclick",";");
wypisz_haslo();
}
else
{
no.play();
var element = "lit" +nr;
document.getElementById(element).style.background = "#330000";
document.getElementById(element).style.color = "#ff0000";
document.getElementById(element).style.border = "3px solid #ff0000";
document.getElementById(element).setAttribute("onclick",";");
ile_skuch++;
var link = "img/s"+ile_skuch+".jpg";
var obrazek = "<img src='"+link+"' alt='' />";
document.getElementById("szubienica").innerHTML = obrazek;
}
if(haslo == haslo1)
{
document.getElementById('alfabet').innerHTML = 'Gratulacje, wygrałeś!
<br /><br /> <span class="btn_reset" onclick="location.reload()">Jeszcze raz!
</span>';
}
if(ile_skuch >= 9)
{
document.getElementById('alfabet').innerHTML = 'Przegrana!
<br />Prawidłowe hasło:
<br/>'+haslo+'
<br /><br /> <span class="btn_reset" onclick="location.reload()">Jeszcze raz!
</span>';
}
}
window.onload = start;
Dziękuję i pozdrawiam