Skip to content

Commit 099fb5b

Browse files
Merge pull request steam-bell-92#1108 from kumudasrip/fix/tower-of-hanoi
fix: responsive click selection for Tower of Hanoi
2 parents 4d24a24 + 8cc511b commit 099fb5b

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

web-app/js/projects/tower-of-hanoi.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -295,12 +295,10 @@ function initTowerOfHanoi() {
295295
const scaleX = canvas.width / rect.width;
296296
const x = (e.clientX - rect.left) * scaleX;
297297

298-
let clickedTower = -1;
299-
if (x < 300) clickedTower = 0;
300-
else if (x >= 300 && x < 500) clickedTower = 1;
301-
else if (x >= 500) clickedTower = 2;
302-
303-
if (clickedTower === -1) return;
298+
// Select the nearest tower center, so selection works even when the
299+
// canvas is scaled responsively or rendered at a different CSS width.
300+
const distances = towerX.map(center => Math.abs(x - center));
301+
const clickedTower = distances.indexOf(Math.min(...distances));
304302

305303
if (selectedTower === null) {
306304
if (towers[clickedTower].length > 0) {

0 commit comments

Comments
 (0)