This commit is contained in:
gpt-engineer-app[bot] 2025-12-08 10:00:39 +00:00
parent 065ce19cd1
commit 8115d26824

View file

@ -161,17 +161,26 @@ const DominoRetilingPuzzle: React.FC<DominoRetilingPuzzleProps> = ({ showSocialS
const handleCellHover = (row: number, col: number) => { const handleCellHover = (row: number, col: number) => {
if (selectedDomino === null) return; if (selectedDomino === null) return;
// Check which placements are valid for this cell // Check all possible placements where this cell could be part of a domino
const canH = canPlaceDomino(row, col, true, selectedDomino); // A domino can be placed with this cell as the first cell, or as the second cell
const canV = canPlaceDomino(row, col, false, selectedDomino);
// Horizontal placements: domino at (row, col) or (row, col-1)
const canH_start = canPlaceDomino(row, col, true, selectedDomino);
const canH_end = col > 0 && canPlaceDomino(row, col - 1, true, selectedDomino);
// Vertical placements: domino at (row, col) or (row-1, col)
const canV_start = canPlaceDomino(row, col, false, selectedDomino);
const canV_end = row > 0 && canPlaceDomino(row - 1, col, false, selectedDomino);
if (canH && canV) { // Prioritize: horizontal starting here, horizontal ending here, vertical starting here, vertical ending here
// Prefer horizontal if (canH_start) {
setHoverPlacement({ row, col, isHorizontal: true }); setHoverPlacement({ row, col, isHorizontal: true });
} else if (canH) { } else if (canH_end) {
setHoverPlacement({ row, col, isHorizontal: true }); setHoverPlacement({ row, col: col - 1, isHorizontal: true });
} else if (canV) { } else if (canV_start) {
setHoverPlacement({ row, col, isHorizontal: false }); setHoverPlacement({ row, col, isHorizontal: false });
} else if (canV_end) {
setHoverPlacement({ row: row - 1, col, isHorizontal: false });
} else { } else {
setHoverPlacement(null); setHoverPlacement(null);
} }