We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 4d24a24 + 8cc511b commit 099fb5bCopy full SHA for 099fb5b
1 file changed
web-app/js/projects/tower-of-hanoi.js
@@ -295,12 +295,10 @@ function initTowerOfHanoi() {
295
const scaleX = canvas.width / rect.width;
296
const x = (e.clientX - rect.left) * scaleX;
297
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;
+ // Select the nearest tower center, so selection works even when the
+ // canvas is scaled responsively or rendered at a different CSS width.
+ const distances = towerX.map(center => Math.abs(x - center));
+ const clickedTower = distances.indexOf(Math.min(...distances));
304
305
if (selectedTower === null) {
306
if (towers[clickedTower].length > 0) {
0 commit comments