Olen tehnyt hirttopuu-pelin javascriptillä, mutta siitä puuttuu vielä pistelasku. Miten tuo pistelasku onnistuisi yksinkertaisimmin? Minulla on score-muuttuja pistelaskua varten. Jos pelin haluaa aloittaa alusta pitää sivu ladata uudelleen ja score-muuttuja nollautuu. Sen voi varmaankin tallentaa evästeisiin, mutta koodi on liian monimutkainen noin yksinkertaisen toiminnon tekemiseen, ainakin näkemäni esimerkit.
Tee peli niin, ettei sivua tarvitse koskaan ladata uudestaan.
Sitäkin vaihtoehtoa mietin mutta en saa peliä toimimaan. Pistelasku toimii mutta koodi ei piirrä aakkosia tai arvattavaa sanaa uudelleen. setupgame pitäisi varmaan jakaa kahteen funktioon, mutta mitä muuta pitää korjata?
Tämän verran pääsin eteenpäin. Nyt se luo kirjaimet, mutta alempi funktio ei toimi oikein. Se ei ilmeisesti muuta luokkaa blanksiksi, koska vanha sana pysyy takana.
function setupgame() { var i; var x; var y; var uniqueid; var id = this.id; var an = alphabet.length; lettersguessed = 0; image = 1; countdown = 10; for(i=0;i<an;i++) { uniqueid = "a"+String(i); d = document.createElement('alphabet'); d.innerHTML = ( "<div class='letters' id='"+uniqueid+"'>"+alphabet[i]+"</div>"); document.body.appendChild(d); thingelem = document.getElementById(uniqueid); x = alphabetx + alphabetwidth*i; y = alphabety; thingelem.style.top = String(y)+"px"; thingelem.style.left = String(x)+"px"; thingelem.addEventListener('click',pickelement,false); thingelem.style.display = "block"; } setupword(); } function setupword() { for (i=0;i<secret.length;i++) { uniqueid = "s"+String(i); d = document.createElement('secret'); d.innerHTML = ( "<div class='blanks' id='"+uniqueid+"'> _ </div>"); document.body.appendChild(d); thingelem = document.getElementById(uniqueid); x = secretx + secretwidth*i; y = secrety; thingelem.style.top = String(y)+"px"; thingelem.style.left = String(x)+"px"; } draw(); cur++; return false; }
Olen varmaankin nyt ongelman juurilla, mutta en osaa korjata sitä. Funktio joka paljastaa kirjaimet, muuttaa siis viivat tekstielemenetiksi. Setupword-funktion pitäisi siis poistaa tekstielementti, mutta miten se onnistuu?
if (picked==secret[i]) { id = "s"+String(i); document.getElementById(id).textContent = picked; }
Kukaan ei vissiin osaa tehdä hirttopuuta?
Ei. Kerran joku yritti, mutta päättikin tehdä astetta helpomman ja koodasi CryEnginen.
Laita koko homma bodyn sijasta johonkin diviin, ja kun aloitat pelin, tyhjennä ensin kyseinen div.
Olet varmaan ymmärtänyt createElement-funktion aivan väärin. Sillä ei ole tarkoitus luoda mielivaltaisia elementtejä eikä antaa elementeille nimiä, vaan createElement("div") luo samanlaisen elementin kuin HTML-koodi <div></div>.
Aihe on jo aika vanha, joten et voi enää vastata siihen.