Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Laita shakkilauta järjestykseen :)

PetriKeckman [16.10.2023 22:43:14]

#

On aina hauskaa keksiä uus peli! Laita shakkilauta järjestykseen. Aikaa 10 minuuttia. Ehkä liian helppo oletusarvo?

https://petke.info/chessmess/

Ei suositella tuota sivun kirjoittamista document.writeln toiminnolla - mitenköhän se siis pitäisi suorittaa, tässä tapauksessa? Ja niille, jotka taas ihmettelevät, että olen sotkenut englanninkieltä ja suomea, niin tiedoksi, että peli on tarkoitettu chess.com:in näytille...

<html>
<head>
<title>Mess in Chess board</title>
</head>
<body>
<div id="timer" style="position: absolute; top: 10px; right: 10px; font-size: 24px;"></div>
<script language="javascript">
var aseteltu=["a8","b8","c8","d8","e8","f8","g8","h8","a7","b7","c7","d7","e7","f7","g7","h7","a6","b6","c6","d6","e6","f6",
"g6","h6","a5","b5","c5","d5","e5","f5","g5","h5","a4","b4","c4","d4","e4","f4","g4","h4","a3","b3","c3","d3","e3","f3","g3","h3",
"a2","b2","c2","d2","e2","f2","g2","h2","a1","b1","c1","d1","e1","f1","g1","h1"];
var oikealauta=["a8","b8","c8","d8","e8","f8","g8","h8","a7","b7","c7","d7","e7","f7","g7","h7","a6","b6","c6","d6","e6","f6",
"g6","h6","a5","b5","c5","d5","e5","f5","g5","h5","a4","b4","c4","d4","e4","f4","g4","h4","a3","b3","c3","d3","e3","f3","g3","h3",
"a2","b2","c2","d2","e2","f2","g2","h2","a1","b1","c1","d1","e1","f1","g1","h1"];
let timeLeft = 600;
let timerInterval;
const timerElement = document.getElementById('timer');
var lkm=0; // klikkausten lukumäärä. Joka toisella vaihdetaan
startTimer();

// Käynnistää peliajan laskennan
function startTimer() {
    timerInterval = setInterval(function() {
        timeLeft--;
        timerElement.textContent = 'Time left: ' + timeLeft + ' s';

        if (timeLeft <= 0) {
            clearInterval(timerInterval);
            alert('Time ran out! You lost');
            location.reload(); // Lataa sivu uudelleen
        }
    }, 1000);
}
function isEqual() { // onko asetetut taulukko sama kuin oikea taulukko
		let on=true;
        for (let i = 0; i < oikealauta.length; i++) {
            if (oikealauta[i] != aseteltu[i]) {on=false}
        }
        return on;
}
function käsittele(indeksi) {
			lkm=lkm+1;
			if (lkm==1) {indeksi1=indeksi};
			if (lkm==2) {
				let indeksi2=indeksi;
				var img2 = document.getElementById(indeksi1);
				var img1 = document.getElementById(indeksi2);
				apu = img1.src;
				img1.src=img2.src;
				img2.src=apu;
				apu=aseteltu[indeksi1];
				aseteltu[indeksi1]=aseteltu[indeksi2];
				aseteltu[indeksi2]=apu;
				console.log(aseteltu);
				if (isEqual()) {
					alert('You made it! :)');
					console.log("jihuu!");
				}
				lkm=0;
			}
}
for (let i=1; i<=64; i++) { //sekoitetaan aseteltu taulukko
	let ind=Math.floor(Math.random()*64);
	let apu=aseteltu[i-1];
	aseteltu[i-1]=aseteltu[ind];
	aseteltu[ind]=apu;
}
let jindeksi=0;
document.writeln("<center><table  CELLSPACING='0' CELLPADDING='0'>");
for (var rivi=1; rivi<=8; rivi++) {
	document.writeln("<tr>");
	for (var sara=1; sara<=8; sara++) {
		let kuva=aseteltu[jindeksi];
		document.writeln('<td><img src="' + kuva + '.png' + '" id="' + jindeksi +  '" onclick="käsittele(' + jindeksi + ')"></td>');
		jindeksi=jindeksi+1;
	}
}
document.writeln("</tr>");
document.writeln("</table></center>");
</script>
<center>Put the board in order<br>Click two chess pieces to switch them</center>
</body>
</html>

TapaniS [18.10.2023 13:05:07]

#

Hieno peli! Aika ei kuitenkaan pysähdy, kun lauta on kasassa :(

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta