-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgame.js
More file actions
55 lines (49 loc) · 1.49 KB
/
Copy pathgame.js
File metadata and controls
55 lines (49 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
let towers = [[], [], []];
let selectedTower = null;
function startGame(numDisks) {
towers = [[], [], []];
for (let i = numDisks; i > 0; i--) {
towers[0].push(i);
}
renderTowers();
}
function renderTowers() {
for (let i = 0; i < 3; i++) {
const tower = document.getElementById(`tower${i + 1}`);
tower.innerHTML = '';
towers[i].forEach(disk => {
const diskElement = document.createElement('div');
diskElement.className = 'disk';
diskElement.dataset.size = disk;
tower.appendChild(diskElement);
});
}
}
function selectTower(towerIndex) {
if (selectedTower === null) {
selectedTower = towerIndex;
} else {
moveDisk(selectedTower, towerIndex);
selectedTower = null;
}
}
function moveDisk(from, to) {
if (from === to) return;
const fromTower = towers[from - 1];
const toTower = towers[to - 1];
if (fromTower.length === 0) return;
const disk = fromTower[fromTower.length - 1];
if (toTower.length === 0 || disk < toTower[toTower.length - 1]) {
toTower.push(fromTower.pop());
renderTowers();
checkWin();
}
}
function checkWin() {
if (towers[1].length === towers[0].length || towers[2].length === towers[0].length) {
alert('Parabéns, você venceu!');
startGame(towers[0].length);
}
}
// Iniciar o jogo com o nível fácil por padrão
startGame(3);