@@ -412,6 +412,10 @@ function splitBlockAndAddNextOneIfOverlaps() {
412412 const overhangSize = Math . abs ( delta ) ;
413413 const overlap = size - overhangSize ;
414414
415+ const overlapPercent = Math . max ( 0 , Math . round ( ( overlap / size ) * 100 ) ) ;
416+ showOverlapPopup ( overlapPercent ) ;
417+
418+
415419 if ( overlap > 0 ) {
416420 cutBox ( top , overlap , size , delta ) ;
417421 const shift = ( overlap / 2 + overhangSize / 2 ) * Math . sign ( delta ) ;
@@ -440,6 +444,29 @@ function splitBlockAndAddNextOneIfOverlaps() {
440444 }
441445}
442446
447+ // Function to display overlap percentage
448+ function showOverlapPopup ( percent ) {
449+ const popup = document . getElementById ( "overlap-popup" ) ;
450+ popup . textContent = `${ percent } %` ;
451+
452+ // Color feedback
453+ if ( percent >= 90 ) {
454+ popup . style . background = "rgba(0, 128, 0, 0.8)" ; // green
455+ } else if ( percent >= 60 ) {
456+ popup . style . background = "rgba(255, 165, 0, 0.8)" ; // orange
457+ } else {
458+ popup . style . background = "rgba(178, 34, 34, 0.8)" ; // red
459+ }
460+
461+ popup . classList . add ( "show" ) ;
462+
463+ setTimeout ( ( ) => {
464+ popup . classList . remove ( "show" ) ;
465+ } , 1000 ) ;
466+ }
467+
468+
469+
443470// Function to handle game over scenario
444471function missedTheSpot ( ) {
445472 const top = stack [ stack . length - 1 ] ;
0 commit comments