{"id":27090,"date":"2026-08-25T23:55:00","date_gmt":"2026-08-25T18:25:00","guid":{"rendered":"https:\/\/qsh.in\/boards\/wbbse\/?p=27090"},"modified":"2026-08-25T23:55:00","modified_gmt":"2026-08-25T18:25:00","slug":"multiply-by-11-magic-trick","status":"publish","type":"post","link":"https:\/\/qsh.in\/boards\/wbbse\/mental-math\/multiply-by-11-magic-trick\/","title":{"rendered":"\u09e7\u09e7 \u09a6\u09bf\u09df\u09c7 \u0997\u09c1\u09a3\u09c7\u09b0 \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u099f\u09cd\u09b0\u09bf\u0995! (Magic Train Bridge)"},"content":{"rendered":"<p>\u0986\u099c\u0995\u09c7\u09b0 \u09ae\u09bf\u09b6\u09a8 \u0996\u09c1\u09ac \u0989\u09a4\u09cd\u09a4\u09c7\u099c\u09a8\u09be\u09b0! \u098f\u0995\u099f\u09bf \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u099f\u09cd\u09b0\u09c7\u09a8 \u0997\u09ad\u09c0\u09b0 \u0996\u09be\u09a6\u09c7\u09b0 \u0993\u09aa\u09b0 \u09a6\u09bf\u09df\u09c7 \u09af\u09be\u099a\u09cd\u099b\u09c7, \u0995\u09bf\u09a8\u09cd\u09a4\u09c1 \u09ac\u09cd\u09b0\u09bf\u099c\u09c7\u09b0 \u09ae\u09be\u099d\u0996\u09be\u09a8\u099f\u09be \u09ad\u09be\u0999\u09be! \u099f\u09cd\u09b0\u09c7\u09a8\u099f\u09bf\u0995\u09c7 \u09ac\u09be\u0981\u099a\u09be\u09a4\u09c7 \u09b9\u09b2\u09c7 \u09a4\u09cb\u09ae\u09be\u0995\u09c7 \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u09ac\u09cd\u09b2\u0995 \u09a6\u09bf\u09df\u09c7 \u09ac\u09cd\u09b0\u09bf\u099c\u099f\u09bf \u09ae\u09c7\u09b0\u09be\u09ae\u09a4 \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7\u0964 \u0986\u09b0 \u098f\u0987 \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u09ac\u09cd\u09b2\u0995 \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09be\u09b0 \u098f\u0995\u099f\u09be\u0987 \u0989\u09aa\u09be\u09df\u2014\u09af\u09c7\u0995\u09cb\u09a8\u09cb \u09e8-\u0985\u0999\u09cd\u0995\u09c7\u09b0 \u09b8\u0982\u0996\u09cd\u09af\u09be\u0995\u09c7 \u09e7\u09e7 \u09a6\u09bf\u09df\u09c7 \u0996\u09be\u09a4\u09be-\u0995\u09b2\u09ae \u099b\u09be\u09dc\u09be \u09e8 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1\u09c7 \u0997\u09c1\u09a3 \u0995\u09b0\u09be!<\/p>\n<p>\u0995\u09cd\u09af\u09be\u09b2\u0995\u09c1\u09b2\u09c7\u099f\u09b0\u09c7\u09b0 \u099a\u09c7\u09df\u09c7\u0993 \u09a6\u09cd\u09b0\u09c1\u09a4 \u09e7\u09e7 \u09a6\u09bf\u09df\u09c7 \u0997\u09c1\u09a3 \u0995\u09b0\u09be \u09af\u09be\u09df? \u09b9\u09cd\u09af\u09be\u0981! \u0986\u099c \u0986\u09ae\u09b0\u09be \u09b6\u09bf\u0996\u09ac \u09ac\u09c8\u09a6\u09bf\u0995 \u0997\u09a3\u09bf\u09a4\u09c7\u09b0 \u09b8\u09ac\u099a\u09c7\u09df\u09c7 \u09ac\u09bf\u0996\u09cd\u09af\u09be\u09a4 \u098f\u09ac\u0982 \u09ae\u099c\u09be\u09b0 \u099f\u09cd\u09b0\u09bf\u0995\u0964<\/p>\n<p><!-- [qtv_video id=\"xyz\"] (Video Placeholder - Will be inserted here by your plugin\/shortcode system) --><\/p>\n<h3>\u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u099f\u09cd\u09b0\u09bf\u0995 \u09e7: \u09b8\u09be\u09a7\u09be\u09b0\u09a3 \u09a8\u09bf\u09df\u09ae (\u0995\u09cd\u09af\u09be\u09b0\u09bf \u099b\u09be\u09dc\u09be) \u2728<\/h3>\n<p>\u09af\u09c7\u0995\u09cb\u09a8\u09cb \u09e8-\u0985\u0999\u09cd\u0995\u09c7\u09b0 \u09b8\u0982\u0996\u09cd\u09af\u09be\u0995\u09c7 \u09e7\u09e7 \u09a6\u09bf\u09df\u09c7 \u0997\u09c1\u09a3 \u0995\u09b0\u09a4\u09c7 \u09b9\u09b2\u09c7, \u09b8\u0982\u0996\u09cd\u09af\u09be\u099f\u09bf\u09b0 \u09a6\u09c1\u099f\u09bf \u0985\u0999\u09cd\u0995 \u09a6\u09c1\u0987 \u09aa\u09be\u09b6\u09c7 \u099b\u09dc\u09bf\u09df\u09c7 \u09a6\u09be\u0993 \u098f\u09ac\u0982 \u09ae\u09be\u099d\u0996\u09be\u09a8\u09c7 \u09a4\u09be\u09a6\u09c7\u09b0 \u09af\u09cb\u0997\u09ab\u09b2 \u09ac\u09b8\u09bf\u09df\u09c7 \u09a6\u09be\u0993\u0964<\/p>\n<p><strong>\u0989\u09a6\u09be\u09b9\u09b0\u09a3: \u09e9\u09eb \u00d7 \u09e7\u09e7 = ?<\/strong><\/p>\n<ul>\n<li><strong>\u09a7\u09be\u09aa \u09e7:<\/strong> \u09e9 \u098f\u09ac\u0982 \u09eb \u0995\u09c7 \u09a6\u09c1\u0987 \u09aa\u09be\u09b6\u09c7 \u099b\u09dc\u09bf\u09df\u09c7 \u09a6\u09be\u0993 \u2794 <strong>\u09e9 _ \u09eb<\/strong><\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e8:<\/strong> \u098f\u09ac\u09be\u09b0 \u09e9 \u098f\u09ac\u0982 \u09eb \u09af\u09cb\u0997 \u0995\u09b0\u09cb (\u09e9 + \u09eb = <strong>\u09ee<\/strong>)\u0964<\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e9:<\/strong> \u098f\u0987 \u09ee \u0995\u09c7 \u09ae\u09be\u099d\u0996\u09be\u09a8\u09c7 \u09ac\u09b8\u09bf\u09df\u09c7 \u09a6\u09be\u0993 \u2794 <strong>\u09e9\u09ee\u09eb<\/strong>\u0964<\/li>\n<\/ul>\n<p><strong>\u0986\u09b0\u0993 \u09a6\u09c7\u0996\u09cb:<\/strong> \u09ed\u09e8 \u00d7 \u09e7\u09e7 \u2794 \u09ed (\u09ed+\u09e8) \u09e8 \u2794 <strong>\u09ed\u09ef\u09e8<\/strong>!<\/p>\n<h3>\u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u099f\u09cd\u09b0\u09bf\u0995 \u09e8: \u0985\u09cd\u09af\u09be\u09a1\u09ad\u09be\u09a8\u09cd\u09b8\u09a1 \u09a8\u09bf\u09df\u09ae (\u0995\u09cd\u09af\u09be\u09b0\u09bf \u09b8\u09b9) \ud83d\ude80<\/h3>\n<p>\u09ae\u09be\u099d\u0996\u09be\u09a8\u09c7\u09b0 \u09af\u09cb\u0997\u09ab\u09b2 \u09af\u09a6\u09bf \u09e7\u09e6 \u09ac\u09be \u09a4\u09be\u09b0 \u09ac\u09c7\u09b6\u09bf (\u09e8-\u0985\u0999\u09cd\u0995\u09c7\u09b0) \u09b9\u09df, \u09a4\u0996\u09a8 \u0995\u09c0 \u0995\u09b0\u09ac\u09c7? \u09a4\u0996\u09a8 \u09ae\u09be\u099d\u0996\u09be\u09a8\u09c7 \u09b6\u09c1\u09a7\u09c1 \u098f\u0995\u0995\u09c7\u09b0 \u0998\u09b0\u099f\u09bf \u09ac\u09b8\u09ac\u09c7 \u098f\u09ac\u0982 \u09a6\u09b6\u0995\u09c7\u09b0 \u0998\u09b0\u09c7\u09b0 \u09e7 \u0995\u09cd\u09af\u09be\u09b0\u09bf (Carry) \u09b9\u09df\u09c7 \u09ac\u09be\u09ae \u09a6\u09bf\u0995\u09c7\u09b0 \u0985\u0999\u09cd\u0995\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09af\u09cb\u0997 \u09b9\u09df\u09c7 \u09af\u09be\u09ac\u09c7\u0964<\/p>\n<p><strong>\u0989\u09a6\u09be\u09b9\u09b0\u09a3: \u09ee\u09eb \u00d7 \u09e7\u09e7 = ?<\/strong><\/p>\n<ul>\n<li><strong>\u09a7\u09be\u09aa \u09e7:<\/strong> \u09ee \u098f\u09ac\u0982 \u09eb \u0995\u09c7 \u099b\u09dc\u09bf\u09df\u09c7 \u09a6\u09be\u0993 \u2794 <strong>\u09ee _ \u09eb<\/strong><\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e8:<\/strong> \u09ee + \u09eb = <strong>\u09e7\u09e9<\/strong>\u0964 (\u09ae\u09be\u099d\u0996\u09be\u09a8\u09c7 \u09a4\u09cb \u09e7\u09e9 \u09b8\u09b0\u09be\u09b8\u09b0\u09bf \u09ac\u09b8\u09be\u09a8\u09cb \u09af\u09be\u09ac\u09c7 \u09a8\u09be)\u0964<\/li>\n<li><strong>\u09a7\u09be\u09aa \u09e9:<\/strong> \u09a4\u09be\u0987 \u09e7\u09e9 \u098f\u09b0 \u09e9 \u09ae\u09be\u099d\u0996\u09be\u09a8\u09c7 \u09ac\u09b8\u09be\u0993, \u0986\u09b0 \u09e7 \u09ac\u09be\u09ae \u09a6\u09bf\u0995\u09c7\u09b0 \u09ee \u098f\u09b0 \u09b8\u09be\u09a5\u09c7 \u09af\u09cb\u0997 \u0995\u09b0\u09c7 \u09ef \u09ac\u09be\u09a8\u09bf\u09df\u09c7 \u09a6\u09be\u0993 \u2794 <strong>\u09ef\u09e9\u09eb<\/strong>\u0964<\/li>\n<\/ul>\n<h3>\u098f\u09ac\u09be\u09b0 \u09a4\u09cb\u09ae\u09be\u09b0 \u09aa\u09be\u09b2\u09be! \u099f\u09cd\u09b0\u09c7\u09a8\u099f\u09bf\u0995\u09c7 \u09aa\u09be\u09b0 \u0995\u09b0\u09cb! \ud83d\ude82<\/h3>\n<p>\u0996\u09be\u09a4\u09be-\u0995\u09b2\u09ae \u09a6\u09c2\u09b0\u09c7 \u09b8\u09b0\u09bf\u09df\u09c7 \u09b0\u09be\u0996\u09cb! \u09a8\u09bf\u099a\u09c7 \u09a5\u09be\u0995\u09be \u0997\u09c7\u09ae\u099f\u09bf\u09a4\u09c7 <strong>\u201c\u099f\u09cd\u09b0\u09c7\u09a8 \u099a\u09be\u09b2\u09c1 \u0995\u09b0\u09cb\u201d<\/strong> \u09ac\u09be\u099f\u09a8\u09c7 \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09cb\u0964 \u09b8\u09cd\u0995\u09cd\u09b0\u09bf\u09a8\u09c7 \u09e7\u09e7 \u09a6\u09bf\u09df\u09c7 \u0997\u09c1\u09a3\u09c7\u09b0 \u0985\u0999\u09cd\u0995 \u098f\u09b2\u09c7\u0987 \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u099f\u09cd\u09b0\u09bf\u0995 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7 \u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0\u099f\u09bf \u09ac\u09c7\u099b\u09c7 \u09a8\u09be\u0993\u0964 \u09b8\u09a0\u09bf\u0995 \u0989\u09a4\u09cd\u09a4\u09b0 \u09a6\u09bf\u09b2\u09c7\u0987 \u098f\u0995\u099f\u09bf \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u09ac\u09cd\u09b2\u0995 \u098f\u09b8\u09c7 \u09ad\u09be\u0999\u09be \u09ac\u09cd\u09b0\u09bf\u099c\u09c7 \u09ac\u09b8\u09c7 \u09af\u09be\u09ac\u09c7 \u098f\u09ac\u0982 \u099f\u09cd\u09b0\u09c7\u09a8\u099f\u09bf \u09b9\u09c1\u09b6\u09b6 \u0995\u09b0\u09c7 \u09ac\u09c7\u09b0\u09bf\u09df\u09c7 \u09af\u09be\u09ac\u09c7!<\/p>\n<p>\u09ae\u09a8\u09c7 \u09b0\u09be\u0996\u09ac\u09c7, \u09af\u09cb\u0997\u09ab\u09b2 \u09e7\u09e6-\u098f\u09b0 \u09ac\u09c7\u09b6\u09bf \u09b9\u09b2\u09c7 \u0995\u09cd\u09af\u09be\u09b0\u09bf \u0995\u09b0\u09a4\u09c7 \u09ad\u09c1\u09b2\u09ac\u09c7 \u09a8\u09be \u0995\u09bf\u09a8\u09cd\u09a4\u09c1! \u099a\u09b2\u09cb \u0996\u09c7\u09b2\u09bf\u2026<\/p>\n    <div id=\"qsh-27090-520\" class=\"qsh-sim-frame-wrap\" style=\"--qsh-aspect: 1\/1;\">\n        <div class=\"qsh-sim-bar\">\n            <div class=\"qsh-sim-label\"><span class=\"qsh-dot\"><\/span> Interactive Simulator<\/div>\n            <div class=\"qsh-sim-controls\">\n                <button type=\"button\" class=\"qsh-sim-btn qsh-btn-reload\" onclick=\"document.getElementById('if-qsh-27090-520').srcdoc = document.getElementById('if-qsh-27090-520').srcdoc;\" aria-label=\"Restart\">\n                    <svg viewbox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"currentColor\"><path d=\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\"><\/path><\/svg>\n                <\/button>\n                <button type=\"button\" class=\"qsh-sim-btn qsh-btn-fs\" id=\"fs-btn-qsh-27090-520\" aria-label=\"Fullscreen\">\n                    <svg viewbox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"currentColor\"><path d=\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\"><\/path><\/svg>\n                    <span>Expand<\/span>\n                <\/button>\n            <\/div>\n        <\/div>\n        <div class=\"qsh-sim-viewport\">\n            <iframe id=\"if-qsh-27090-520\" srcdoc=\"&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;&lt;base href=&quot;https:\/\/qsh.in\/boards\/wbbse\/&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot;&gt;&lt;style&gt;*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;touch-action:manipulation;background:#0b0f19;color:#f8fafc;font-family:system-ui,-apple-system,sans-serif;}&lt;\/style&gt;&lt;style&gt;#sim-root {\r\n    position: relative;\r\n    width: 100%;\r\n    height: 100vh;\r\n    min-height: 600px;\r\n    background-color: #1a0b12;\r\n    color: #fdfbf7;\r\n    font-family: 'Noto Sans Bengali', system-ui, sans-serif;\r\n    overflow: hidden;\r\n    display: flex;\r\n    flex-direction: column;\r\n    touch-action: manipulation;\r\n    -webkit-tap-highlight-color: transparent;\r\n    user-select: none;\r\n}\r\n\r\n.screen {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    display: none;\r\n    flex-direction: column;\r\n    justify-content: center;\r\n    align-items: center;\r\n    background: radial-gradient(circle at bottom, #392b44 0%, #1a0b12 100%);\r\n    z-index: 10;\r\n}\r\n\r\n.screen.active {\r\n    display: flex;\r\n}\r\n\r\n#game-screen {\r\n    z-index: 1;\r\n    background: transparent;\r\n}\r\n\r\n.panel {\r\n    background: rgba(26, 11, 18, 0.9);\r\n    border: 2px solid #ff7043;\r\n    border-radius: 16px;\r\n    padding: 2rem;\r\n    max-width: 90%;\r\n    width: 450px;\r\n    text-align: center;\r\n    box-shadow: 0 0 30px rgba(255, 112, 67, 0.4);\r\n    backdrop-filter: blur(10px);\r\n}\r\n\r\n.panel h2 {\r\n    color: #ffcc80;\r\n    margin-top: 0;\r\n    font-size: clamp(1.8rem, 5vw, 2.5rem);\r\n    text-shadow: 0 0 10px rgba(255, 204, 128, 0.5);\r\n    margin-bottom: 1rem;\r\n}\r\n\r\n.panel p {\r\n    font-size: 1.1rem;\r\n    line-height: 1.6;\r\n    margin-bottom: 1.5rem;\r\n}\r\n\r\n.trick-box {\r\n    background: rgba(255, 112, 67, 0.15);\r\n    border-left: 4px solid #ff7043;\r\n    padding: 12px;\r\n    font-size: 1rem !important;\r\n    text-align: left;\r\n    color: #ffe0b2;\r\n    border-radius: 0 8px 8px 0;\r\n    margin-bottom: 1.5rem;\r\n}\r\n\r\n.action-btn {\r\n    background: #e64a19;\r\n    color: #fff;\r\n    border: none;\r\n    padding: 12px 35px;\r\n    font-size: 1.3rem;\r\n    border-radius: 8px;\r\n    cursor: pointer;\r\n    font-weight: bold;\r\n    transition: all 0.2s;\r\n    box-shadow: 0 4px 15px rgba(230, 74, 25, 0.5);\r\n}\r\n\r\n.action-btn:active {\r\n    transform: scale(0.95);\r\n    background: #bf360c;\r\n}\r\n\r\n\/* HUD *\/\r\n#hud {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    padding: 15px 20px;\r\n    display: flex;\r\n    justify-content: space-between;\r\n    box-sizing: border-box;\r\n    font-size: 1.2rem;\r\n    font-weight: bold;\r\n    color: #ffcc80;\r\n    z-index: 5;\r\n    background: linear-gradient(to bottom, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0) 100%);\r\n    text-shadow: 1px 1px 3px #000;\r\n}\r\n\r\n\/* Timer *\/\r\n#timer-container {\r\n    position: absolute;\r\n    top: 55px;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    width: 80%;\r\n    max-width: 400px;\r\n    height: 12px;\r\n    background: rgba(0,0,0,0.7);\r\n    border-radius: 6px;\r\n    overflow: hidden;\r\n    z-index: 5;\r\n    border: 1px solid #ff7043;\r\n    box-shadow: 0 0 10px rgba(0,0,0,0.5);\r\n}\r\n\r\n#timer-bar {\r\n    width: 100%;\r\n    height: 100%;\r\n    background: #ff7043;\r\n    transition: width 0.1s linear, background-color 0.3s;\r\n}\r\n\r\n\/* Problem Display *\/\r\n#problem-display {\r\n    position: absolute;\r\n    top: 80px;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    z-index: 5;\r\n    background: rgba(26, 11, 18, 0.85);\r\n    border: 2px solid #ff7043;\r\n    padding: 8px 35px;\r\n    border-radius: 12px;\r\n    backdrop-filter: blur(5px);\r\n    box-shadow: 0 5px 20px rgba(255, 112, 67, 0.4);\r\n}\r\n\r\n.problem-text {\r\n    font-size: clamp(2rem, 5vw, 2.8rem);\r\n    font-weight: bold;\r\n    color: #ffffff;\r\n    letter-spacing: 2px;\r\n    text-shadow: 0 0 10px rgba(255, 112, 67, 0.8);\r\n}\r\n\r\n\/* Canvas *\/\r\n#game-canvas {\r\n    position: absolute;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    z-index: 2;\r\n    background: linear-gradient(to bottom, #191224 0%, #2e1e3b 50%, #4a2a44 100%);\r\n}\r\n\r\n\/* Control Dock *\/\r\n#control-dock {\r\n    position: absolute;\r\n    bottom: 25px;\r\n    left: 50%;\r\n    transform: translateX(-50%);\r\n    width: 95%;\r\n    max-width: 600px;\r\n    display: grid;\r\n    grid-template-columns: repeat(3, 1fr);\r\n    gap: 12px;\r\n    z-index: 10;\r\n}\r\n\r\n.option-btn {\r\n    background: rgba(36, 18, 28, 0.95);\r\n    border: 2px solid #ff8a65;\r\n    color: #ffffff;\r\n    font-size: clamp(1.6rem, 4.5vw, 2.2rem);\r\n    padding: 12px 0;\r\n    border-radius: 12px;\r\n    cursor: pointer;\r\n    font-weight: bold;\r\n    transition: all 0.1s;\r\n    backdrop-filter: blur(8px);\r\n    box-shadow: 0 6px 15px rgba(0,0,0,0.5);\r\n}\r\n\r\n.option-btn:active {\r\n    background: #ff8a65;\r\n    color: #000;\r\n    transform: scale(0.95);\r\n}\r\n\r\n.option-btn.correct {\r\n    background: #00e676;\r\n    color: #000;\r\n    border-color: #00e676;\r\n}\r\n\r\n.option-btn.wrong {\r\n    background: #ff1744;\r\n    color: #fff;\r\n    border-color: #ff1744;\r\n    animation: shake 0.3s;\r\n}\r\n\r\n@keyframes shake {\r\n    0%, 100% { transform: translateX(0); }\r\n    25% { transform: translateX(-6px); }\r\n    75% { transform: translateX(6px); }\r\n}&lt;\/style&gt;&lt;\/head&gt;&lt;body&gt;&lt;div id=&quot;sim-root&quot;&gt;\r\n    <!-- Start Screen -->\r\n    &lt;div id=&quot;start-screen&quot; class=&quot;screen active&quot;&gt;\r\n        &lt;div class=&quot;panel&quot;&gt;\r\n            &lt;h2&gt;\u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u09ac\u09cd\u09b0\u09bf\u099c (Magic Train)&lt;\/h2&gt;\r\n            &lt;p&gt;\u098f\u0995\u099f\u09bf \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u099f\u09cd\u09b0\u09c7\u09a8 \u0997\u09ad\u09c0\u09b0 \u0996\u09be\u09a6\u09c7\u09b0 \u0993\u09aa\u09b0 \u09a6\u09bf\u09df\u09c7 \u09af\u09be\u099a\u09cd\u099b\u09c7, \u0995\u09bf\u09a8\u09cd\u09a4\u09c1 \u09ac\u09cd\u09b0\u09bf\u099c\u09c7\u09b0 \u09ae\u09be\u099d\u0996\u09be\u09a8\u099f\u09be \u09ad\u09be\u0999\u09be!&lt;\/p&gt;\r\n            &lt;p class=&quot;trick-box&quot;&gt;&lt;strong&gt;\u09e7\u09e7-\u098f\u09b0 \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u099f\u09cd\u09b0\u09bf\u0995:&lt;\/strong&gt; \u09b8\u0982\u0996\u09cd\u09af\u09be\u099f\u09bf\u0995\u09c7 \u09a6\u09c1\u0987 \u09aa\u09be\u09b6\u09c7 \u099b\u09dc\u09bf\u09df\u09c7 \u09a6\u09be\u0993 \u098f\u09ac\u0982 \u09ae\u09be\u099d\u0996\u09be\u09a8\u09c7 \u09a4\u09be\u09a6\u09c7\u09b0 \u09af\u09cb\u0997\u09ab\u09b2 \u09ac\u09b8\u09bf\u09df\u09c7 \u09a6\u09be\u0993\u0964 (\u09af\u09cb\u0997\u09ab\u09b2 \u09e7\u09e6 \u098f\u09b0 \u09ac\u09c7\u09b6\u09bf \u09b9\u09b2\u09c7 \u09e7 \u0995\u09cd\u09af\u09be\u09b0\u09bf \u0995\u09b0\u09c7 \u09ac\u09be\u09ae \u09a6\u09bf\u0995\u09c7\u09b0 \u09b8\u0982\u0996\u09cd\u09af\u09be\u09b0 \u09b8\u09be\u09a5\u09c7 \u09af\u09cb\u0997 \u0995\u09b0\u09cb)\u0964&lt;\/p&gt;\r\n            &lt;p&gt;\u09b8\u09a0\u09bf\u0995 \u09ac\u09cd\u09b2\u0995\u099f\u09bf \u09ac\u09c7\u099b\u09c7 \u09a8\u09bf\u09df\u09c7 \u09ac\u09cd\u09b0\u09bf\u099c\u099f\u09bf \u09ae\u09c7\u09b0\u09be\u09ae\u09a4 \u0995\u09b0\u09cb \u098f\u09ac\u0982 \u099f\u09cd\u09b0\u09c7\u09a8\u099f\u09bf\u0995\u09c7 \u09a8\u09bf\u09b0\u09be\u09aa\u09a6\u09c7 \u09aa\u09be\u09b0 \u0995\u09b0\u09cb!&lt;\/p&gt;\r\n            &lt;button id=&quot;start-btn&quot; class=&quot;action-btn&quot;&gt;\u099f\u09cd\u09b0\u09c7\u09a8 \u099a\u09be\u09b2\u09c1 \u0995\u09b0\u09cb&lt;\/button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n\r\n    <!-- Game Screen -->\r\n    &lt;div id=&quot;game-screen&quot; class=&quot;screen&quot;&gt;\r\n        <!-- HUD -->\r\n        &lt;div id=&quot;hud&quot;&gt;\r\n            &lt;div class=&quot;hud-item&quot;&gt;\u09b8\u09cd\u0995\u09cb\u09b0: &lt;span id=&quot;score-display&quot;&gt;\u09e6&lt;\/span&gt;&lt;\/div&gt;\r\n            &lt;div class=&quot;hud-item&quot;&gt;\u09b2\u09c7\u09ad\u09c7\u09b2: &lt;span id=&quot;level-display&quot;&gt;\u09e7&lt;\/span&gt;&lt;\/div&gt;\r\n            &lt;div class=&quot;hud-item&quot;&gt;\u09b2\u09be\u0987\u09ab: &lt;span id=&quot;lives-display&quot;&gt;\ud83d\ude82\ud83d\ude82\ud83d\ude82&lt;\/span&gt;&lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n        \r\n        <!-- Timer Bar -->\r\n        &lt;div id=&quot;timer-container&quot;&gt;\r\n            &lt;div id=&quot;timer-bar&quot;&gt;&lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n\r\n        <!-- Problem Display -->\r\n        &lt;div id=&quot;problem-display&quot;&gt;\r\n            &lt;div class=&quot;problem-text&quot; id=&quot;math-problem&quot;&gt;\u09e9\u09eb \u00d7 \u09e7\u09e7 = ?&lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n\r\n        <!-- Canvas for Animation -->\r\n        &lt;canvas id=&quot;game-canvas&quot;&gt;&lt;\/canvas&gt;\r\n\r\n        <!-- Controls \/ Numpad Dock (3 Options) -->\r\n        &lt;div id=&quot;control-dock&quot;&gt;\r\n            &lt;button class=&quot;option-btn&quot; data-index=&quot;0&quot;&gt;\u09e6&lt;\/button&gt;\r\n            &lt;button class=&quot;option-btn&quot; data-index=&quot;1&quot;&gt;\u09e6&lt;\/button&gt;\r\n            &lt;button class=&quot;option-btn&quot; data-index=&quot;2&quot;&gt;\u09e6&lt;\/button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n\r\n    <!-- Game Over Screen -->\r\n    &lt;div id=&quot;game-over-screen&quot; class=&quot;screen&quot;&gt;\r\n        &lt;div class=&quot;panel&quot;&gt;\r\n            &lt;h2 id=&quot;end-title&quot;&gt;\u099f\u09cd\u09b0\u09c7\u09a8 \u09a5\u09c7\u09ae\u09c7 \u0997\u09c7\u099b\u09c7!&lt;\/h2&gt;\r\n            &lt;p id=&quot;end-message&quot;&gt;\u09a4\u09c1\u09ae\u09bf \u09ac\u09cd\u09b0\u09bf\u099c\u099f\u09bf \u09a0\u09bf\u0995 \u0995\u09b0\u09a4\u09c7 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09df\u09c7\u099b\u09cb\u0964&lt;\/p&gt;\r\n            &lt;p&gt;\u09a4\u09cb\u09ae\u09be\u09b0 \u099a\u09c2\u09dc\u09be\u09a8\u09cd\u09a4 \u09b8\u09cd\u0995\u09cb\u09b0: &lt;span id=&quot;final-score&quot;&gt;\u09e6&lt;\/span&gt;&lt;\/p&gt;\r\n            &lt;button id=&quot;restart-btn&quot; class=&quot;action-btn&quot;&gt;\u0986\u09ac\u09be\u09b0 \u0996\u09c7\u09b2\u09cb&lt;\/button&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n&lt;\/div&gt;&lt;script&gt;\n        window.GameController = {\n            saveScore: function(score, time, extraData) {\n                window.parent.postMessage({\n                    action: 'qsh_save_score',\n                    sim_id: 27090,\n                    score: score,\n                    time: time || 0,\n                    meta: extraData || {}\n                }, 'https:\/\/qsh.in\/boards\/wbbse');\n            }\n        };\n    &lt;\/script&gt;&lt;script&gt;(function() {\r\n    'use strict';\r\n\r\n    \/\/ --- Utility: Bengali Numerals ---\r\n    const EN_TO_BN = { '0':'\u09e6', '1':'\u09e7', '2':'\u09e8', '3':'\u09e9', '4':'\u09ea', '5':'\u09eb', '6':'\u09ec', '7':'\u09ed', '8':'\u09ee', '9':'\u09ef' };\r\n    \r\n    function toBengali(num) {\r\n        return num.toString().split('').map(d =&gt; EN_TO_BN[d] || d).join('');\r\n    }\r\n\r\n    \/\/ --- State &amp; Variables ---\r\n    let state = {\r\n        isPlaying: false,\r\n        score: 0,\r\n        level: 1,\r\n        lives: 3,\r\n        timeLeft: 12000,\r\n        maxTime: 12000,\r\n        lastTime: 0,\r\n        currentProblem: null,\r\n        correctIndex: 0,\r\n        sceneState: 'idle', \/\/ idle, crossing, crash\r\n        accuracy: { correct: 0, total: 0 }\r\n    };\r\n\r\n    let animPhase = 0;\r\n    let trainX = -150;\r\n    let blockY = -100;\r\n    let particles = [];\r\n    let smokeArray = [];\r\n\r\n    \/\/ --- Audio System ---\r\n    const AudioCtx = window.AudioContext || window.webkitAudioContext;\r\n    let actx;\r\n\r\n    function initAudio() {\r\n        if (!actx) actx = new AudioCtx();\r\n        if (actx.state === 'suspended') actx.resume();\r\n    }\r\n\r\n    function playSound(type) {\r\n        if (!actx) return;\r\n        const osc = actx.createOscillator();\r\n        const gain = actx.createGain();\r\n        osc.connect(gain);\r\n        gain.connect(actx.destination);\r\n        const now = actx.currentTime;\r\n\r\n        if (type === 'whistle') {\r\n            \/\/ Train whistle (two notes)\r\n            osc.type = 'square';\r\n            osc.frequency.setValueAtTime(440, now);\r\n            osc.frequency.setValueAtTime(523.25, now + 0.3); \/\/ C5\r\n            gain.gain.setValueAtTime(0.2, now);\r\n            gain.gain.linearRampToValueAtTime(0.2, now + 0.6);\r\n            gain.gain.exponentialRampToValueAtTime(0.01, now + 0.8);\r\n            osc.start(now); osc.stop(now + 0.8);\r\n        } else if (type === 'drop') {\r\n            \/\/ Magic block snapping into place\r\n            osc.type = 'sine';\r\n            osc.frequency.setValueAtTime(800, now);\r\n            osc.frequency.exponentialRampToValueAtTime(100, now + 0.3);\r\n            gain.gain.setValueAtTime(0.5, now);\r\n            gain.gain.exponentialRampToValueAtTime(0.01, now + 0.3);\r\n            osc.start(now); osc.stop(now + 0.3);\r\n        } else if (type === 'screech') {\r\n            \/\/ Brakes \/ Crash\r\n            osc.type = 'sawtooth';\r\n            osc.frequency.setValueAtTime(800, now);\r\n            osc.frequency.linearRampToValueAtTime(200, now + 0.5);\r\n            gain.gain.setValueAtTime(0.3, now);\r\n            gain.gain.exponentialRampToValueAtTime(0.01, now + 0.5);\r\n            osc.start(now); osc.stop(now + 0.5);\r\n        }\r\n    }\r\n\r\n    function announce(text) {\r\n        if ('speechSynthesis' in window) {\r\n            window.speechSynthesis.cancel();\r\n            const msg = new SpeechSynthesisUtterance(text);\r\n            msg.rate = 1.2; msg.pitch = 1.1; msg.lang = 'bn-IN'; \r\n            window.speechSynthesis.speak(msg);\r\n        }\r\n    }\r\n\r\n    \/\/ --- Canvas Rendering (Vector Art) ---\r\n    const canvas = document.getElementById('game-canvas');\r\n    const ctx = canvas.getContext('2d');\r\n    let animationId;\r\n\r\n    function resizeCanvas() {\r\n        const dpr = window.devicePixelRatio || 1;\r\n        const rect = canvas.parentElement.getBoundingClientRect();\r\n        canvas.width = rect.width * dpr;\r\n        canvas.height = rect.height * dpr;\r\n        ctx.scale(dpr, dpr);\r\n        canvas.style.width = `${rect.width}px`;\r\n        canvas.style.height = `${rect.height}px`;\r\n    }\r\n\r\n    function createSparks(x, y, color) {\r\n        for (let i = 0; i &lt; 30; i++) {\r\n            particles.push({\r\n                x: x, y: y,\r\n                vx: (Math.random() - 0.5) * 12,\r\n                vy: (Math.random() - 1) * 10,\r\n                size: Math.random() * 5 + 2,\r\n                color: color,\r\n                life: 1.0, decay: 0.02 + Math.random() * 0.03\r\n            });\r\n        }\r\n    }\r\n\r\n    function spawnSmoke(x, y) {\r\n        if (Math.random() &gt; 0.6) {\r\n            smokeArray.push({\r\n                x: x, y: y,\r\n                vx: -1 - Math.random() * 2,\r\n                vy: -2 - Math.random() * 2,\r\n                size: 5,\r\n                life: 1.0\r\n            });\r\n        }\r\n    }\r\n\r\n    function drawCanyonAndBridge(w, h) {\r\n        \/\/ Deep Canyon background\r\n        ctx.fillStyle = '#1e142b';\r\n        ctx.beginPath();\r\n        ctx.moveTo(0, h * 0.7);\r\n        ctx.lineTo(w * 0.35, h * 0.8);\r\n        ctx.lineTo(w * 0.45, h);\r\n        ctx.lineTo(0, h);\r\n        ctx.fill();\r\n\r\n        ctx.beginPath();\r\n        ctx.moveTo(w, h * 0.7);\r\n        ctx.lineTo(w * 0.65, h * 0.8);\r\n        ctx.lineTo(w * 0.55, h);\r\n        ctx.lineTo(w, h);\r\n        ctx.fill();\r\n\r\n        \/\/ Left Cliff\r\n        ctx.fillStyle = '#3e2723';\r\n        ctx.fillRect(0, h * 0.6, w * 0.35, h * 0.4);\r\n        ctx.fillStyle = '#5d4037';\r\n        ctx.fillRect(0, h * 0.6, w * 0.35, 15); \/\/ Track base\r\n\r\n        \/\/ Right Cliff\r\n        ctx.fillStyle = '#3e2723';\r\n        ctx.fillRect(w * 0.65, h * 0.6, w * 0.35, h * 0.4);\r\n        ctx.fillStyle = '#5d4037';\r\n        ctx.fillRect(w * 0.65, h * 0.6, w * 0.35, 15); \/\/ Track base\r\n\r\n        \/\/ Rails\r\n        ctx.strokeStyle = '#90a4ae';\r\n        ctx.lineWidth = 4;\r\n        ctx.beginPath();\r\n        ctx.moveTo(0, h * 0.58); ctx.lineTo(w * 0.35, h * 0.58); \/\/ Left rail\r\n        ctx.moveTo(w * 0.65, h * 0.58); ctx.lineTo(w, h * 0.58); \/\/ Right rail\r\n        ctx.stroke();\r\n    }\r\n\r\n    function drawTrain(x, y, scale) {\r\n        ctx.save();\r\n        ctx.translate(x, y);\r\n        ctx.scale(scale, scale);\r\n\r\n        \/\/ Train Car (back)\r\n        ctx.fillStyle = '#0277bd';\r\n        ctx.fillRect(-120, -40, 60, 35);\r\n        ctx.fillStyle = '#81d4fa'; \/\/ windows\r\n        ctx.fillRect(-110, -30, 15, 15);\r\n        ctx.fillRect(-85, -30, 15, 15);\r\n\r\n        \/\/ Engine Cabin\r\n        ctx.fillStyle = '#c62828';\r\n        ctx.fillRect(-50, -50, 40, 45);\r\n        ctx.fillStyle = '#ffcdd2'; \/\/ window\r\n        ctx.fillRect(-40, -40, 20, 20);\r\n\r\n        \/\/ Engine Boiler\r\n        ctx.fillStyle = '#111';\r\n        ctx.beginPath();\r\n        ctx.roundRect(-10, -35, 50, 30, 10);\r\n        ctx.fill();\r\n\r\n        \/\/ Smokestack\r\n        ctx.fillStyle = '#b71c1c';\r\n        ctx.beginPath();\r\n        ctx.moveTo(25, -35); ctx.lineTo(15, -60); ctx.lineTo(40, -60); ctx.lineTo(30, -35);\r\n        ctx.fill();\r\n        \r\n        spawnSmoke(x + 30 * scale, y - 60 * scale); \/\/ Emit smoke\r\n\r\n        \/\/ Cowcatcher (Front slope)\r\n        ctx.fillStyle = '#424242';\r\n        ctx.beginPath();\r\n        ctx.moveTo(40, -5); ctx.lineTo(60, -5); ctx.lineTo(40, -25);\r\n        ctx.fill();\r\n\r\n        \/\/ Wheels\r\n        ctx.fillStyle = '#fbc02d';\r\n        const wheelAngle = (x * 0.1);\r\n        const drawWheel = (wx, wy, r) =&gt; {\r\n            ctx.save();\r\n            ctx.translate(wx, wy);\r\n            ctx.rotate(wheelAngle);\r\n            ctx.beginPath(); ctx.arc(0, 0, r, 0, Math.PI*2); ctx.fill();\r\n            ctx.strokeStyle = '#212121'; ctx.lineWidth = 3;\r\n            ctx.beginPath(); ctx.moveTo(-r, 0); ctx.lineTo(r, 0); ctx.stroke();\r\n            ctx.beginPath(); ctx.moveTo(0, -r); ctx.lineTo(0, r); ctx.stroke();\r\n            ctx.restore();\r\n        };\r\n\r\n        drawWheel(-100, -5, 12);\r\n        drawWheel(-75, -5, 12);\r\n        drawWheel(-30, -5, 15);\r\n        drawWheel(5, -5, 15);\r\n        drawWheel(30, -5, 10);\r\n\r\n        ctx.restore();\r\n    }\r\n\r\n    function drawMagicBlock(w, h, yPos, color, isBroken) {\r\n        ctx.save();\r\n        ctx.translate(w * 0.5, yPos);\r\n        \r\n        if (isBroken) {\r\n            ctx.fillStyle = 'rgba(255, 23, 68, 0.8)';\r\n            ctx.beginPath(); ctx.moveTo(-60, 0); ctx.lineTo(-10, -20); ctx.lineTo(-30, 20); ctx.fill();\r\n            ctx.beginPath(); ctx.moveTo(60, 0); ctx.lineTo(10, 20); ctx.lineTo(30, -20); ctx.fill();\r\n        } else {\r\n            ctx.fillStyle = color;\r\n            ctx.shadowBlur = 20;\r\n            ctx.shadowColor = color;\r\n            ctx.beginPath();\r\n            ctx.roundRect(-60, 0, 120, 20, 5); \/\/ Fills exactly w*0.35 to w*0.65 for a 400px width canvas, scaled\r\n            ctx.fill();\r\n            ctx.shadowBlur = 0;\r\n            \r\n            \/\/ Glowing Runes\r\n            ctx.fillStyle = '#fff';\r\n            ctx.font = 'bold 14px Arial';\r\n            ctx.textAlign = 'center';\r\n            ctx.fillText('\u2727 1 1 \u2727', 0, 15);\r\n        }\r\n\r\n        ctx.restore();\r\n    }\r\n\r\n    function drawScene() {\r\n        const w = canvas.width \/ (window.devicePixelRatio || 1);\r\n        const h = canvas.height \/ (window.devicePixelRatio || 1);\r\n        \r\n        ctx.clearRect(0, 0, w, h);\r\n\r\n        \/\/ Draw Canyon\r\n        drawCanyonAndBridge(w, h);\r\n\r\n        \/\/ Update Smoke\r\n        smokeArray.forEach(s =&gt; {\r\n            ctx.globalAlpha = s.life;\r\n            ctx.fillStyle = '#9e9e9e';\r\n            ctx.beginPath(); ctx.arc(s.x, s.y, s.size, 0, Math.PI*2); ctx.fill();\r\n            s.x += s.vx; s.y += s.vy; s.size += 0.5; s.life -= 0.02;\r\n        });\r\n        ctx.globalAlpha = 1.0;\r\n        smokeArray = smokeArray.filter(s =&gt; s.life &gt; 0);\r\n\r\n        let targetTrainX = w * 0.25; \/\/ Default stopping point before the gap\r\n\r\n        if (state.sceneState === 'idle') {\r\n            \/\/ Train approaches slowly based on timer\r\n            const timeRatio = 1 - (state.timeLeft \/ state.maxTime);\r\n            trainX = -100 + (timeRatio * (w * 0.25 + 100));\r\n        } else if (state.sceneState === 'crossing') {\r\n            \/\/ Block falls in\r\n            if (blockY &lt; h * 0.58) {\r\n                blockY += 15;\r\n            } else {\r\n                blockY = h * 0.58;\r\n                if (animPhase === 0) {\r\n                    playSound('drop');\r\n                    playSound('whistle');\r\n                    createSparks(w * 0.5, h * 0.58, '#00e676');\r\n                    animPhase = 1;\r\n                }\r\n                \/\/ Train crosses\r\n                trainX += 10;\r\n            }\r\n            drawMagicBlock(w, h, blockY, '#00e676', false);\r\n            \r\n        } else if (state.sceneState === 'crash') {\r\n            \/\/ Block falls and shatters\r\n            if (blockY &lt; h * 0.58) {\r\n                blockY += 15;\r\n            } else {\r\n                if (animPhase === 0) {\r\n                    playSound('screech');\r\n                    createSparks(w * 0.35, h * 0.58, '#ff1744'); \/\/ Sparks at the cliff edge\r\n                    animPhase = 1;\r\n                }\r\n                drawMagicBlock(w, h, h * 0.65, '#ff1744', true); \/\/ Broken pieces falling\r\n            }\r\n            \r\n            \/\/ Train brakes hard and bobs\r\n            trainX += (targetTrainX - trainX) * 0.1;\r\n            let brakeBob = Math.sin(animPhase * 0.5) * 5;\r\n            if (animPhase &gt; 0 &amp;&amp; animPhase &lt; 20) {\r\n                ctx.translate(0, brakeBob);\r\n                animPhase++;\r\n            }\r\n        }\r\n\r\n        \/\/ Draw Train\r\n        drawTrain(trainX, h * 0.6, 1);\r\n\r\n        \/\/ Draw Particles\r\n        particles.forEach(p =&gt; {\r\n            ctx.globalAlpha = p.life;\r\n            ctx.fillStyle = p.color;\r\n            ctx.beginPath(); ctx.arc(p.x, p.y, p.size, 0, Math.PI*2); ctx.fill();\r\n            p.x += p.vx; p.y += p.vy; p.vy += 0.5; p.life -= p.decay;\r\n        });\r\n        ctx.globalAlpha = 1.0;\r\n        particles = particles.filter(p =&gt; p.life &gt; 0);\r\n    }\r\n\r\n    function gameLoop(timestamp) {\r\n        if (!state.isPlaying) return;\r\n        \r\n        if (!state.lastTime) state.lastTime = timestamp;\r\n        const dt = timestamp - state.lastTime;\r\n        state.lastTime = timestamp;\r\n\r\n        if (state.sceneState === 'idle') {\r\n            state.timeLeft -= dt;\r\n            const timerBar = document.getElementById('timer-bar');\r\n            const pct = Math.max(0, (state.timeLeft \/ state.maxTime) * 100);\r\n            timerBar.style.width = `${pct}%`;\r\n            \r\n            if (pct &lt; 30) timerBar.style.backgroundColor = '#ff1744';\r\n            else timerBar.style.backgroundColor = '#ff7043';\r\n\r\n            if (state.timeLeft &lt;= 0) {\r\n                handleAnswer(-1); \r\n            }\r\n        }\r\n\r\n        drawScene();\r\n        animationId = requestAnimationFrame(gameLoop);\r\n    }\r\n\r\n    \/\/ --- Game Logic ---\r\n    function generateProblem() {\r\n        \/\/ Lesson 14: Multiplying by 11 (2-digit numbers)\r\n        let num1 = Math.floor(Math.random() * 89) + 11; \/\/ 11 to 99\r\n        let num2 = 11;\r\n\r\n        const correct = num1 * num2;\r\n        \r\n        const tens = Math.floor(num1 \/ 10);\r\n        const ones = num1 % 10;\r\n        const sum = tens + ones;\r\n        \r\n        let wrong1, wrong2;\r\n\r\n        \/\/ Smart wrong answer generation for Vedic 11s trick\r\n        if (sum &gt;= 10) {\r\n            \/\/ Likely mistake: forgetting to carry the 1\r\n            \/\/ e.g. 85 * 11 -&gt; 8 (13) 5 -&gt; 835 (instead of 935)\r\n            wrong1 = (tens * 100) + ((sum % 10) * 10) + ones;\r\n            wrong2 = correct + 10; \/\/ Simple addition error\r\n        } else {\r\n            \/\/ Likely mistake: miscalculating the middle sum by 1\r\n            wrong1 = (tens * 100) + ((sum + 1) * 10) + ones;\r\n            if (sum - 1 &gt;= 0) {\r\n                wrong2 = (tens * 100) + ((sum - 1) * 10) + ones;\r\n            } else {\r\n                wrong2 = correct + 100;\r\n            }\r\n        }\r\n\r\n        \/\/ Failsafe uniqueness\r\n        if (wrong1 === correct) wrong1 = correct - 10;\r\n        if (wrong2 === correct || wrong2 === wrong1) wrong2 = correct + 11;\r\n\r\n        let options = [correct, wrong1, wrong2];\r\n        options.sort(() =&gt; Math.random() - 0.5);\r\n\r\n        state.currentProblem = { num1, num2, correct, options };\r\n        state.correctIndex = options.indexOf(correct);\r\n\r\n        document.getElementById('math-problem').innerText = `${toBengali(num1)} \u00d7 \u09e7\u09e7 = ?`;\r\n        \r\n        const btns = document.querySelectorAll('.option-btn');\r\n        btns.forEach((btn, idx) =&gt; {\r\n            if(idx &lt; 3) {\r\n                btn.innerText = toBengali(options[idx]);\r\n                btn.className = 'option-btn'; \r\n            }\r\n        });\r\n\r\n        \/\/ Time shrinks as level increases\r\n        state.maxTime = Math.max(5000, 15000 - (state.level * 500));\r\n        state.timeLeft = state.maxTime;\r\n        state.lastTime = performance.now();\r\n        state.sceneState = 'idle';\r\n        \r\n        trainX = -150;\r\n        blockY = -100;\r\n        animPhase = 0;\r\n        particles = [];\r\n    }\r\n\r\n    function handleAnswer(selectedIndex) {\r\n        if (state.sceneState !== 'idle') return;\r\n        state.accuracy.total++;\r\n\r\n        const isCorrect = selectedIndex === state.correctIndex;\r\n        const btns = document.querySelectorAll('.option-btn');\r\n        \r\n        if (selectedIndex &gt;= 0) {\r\n            btns[selectedIndex].classList.add(isCorrect ? 'correct' : 'wrong');\r\n        }\r\n\r\n        if (isCorrect) {\r\n            state.sceneState = 'crossing';\r\n            state.accuracy.correct++;\r\n            state.score += Math.ceil(state.timeLeft \/ 100);\r\n            state.level++;\r\n            \r\n            announce(&quot;\u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u09ac\u09cd\u09b2\u0995 \u09ac\u09b8\u09be\u09a8\u09cb \u09b9\u09df\u09c7\u099b\u09c7!&quot;);\r\n            \r\n            document.getElementById('score-display').innerText = toBengali(state.score);\r\n            document.getElementById('level-display').innerText = toBengali(state.level);\r\n            \r\n            setTimeout(generateProblem, 2500);\r\n\r\n        } else {\r\n            state.sceneState = 'crash';\r\n            state.lives--;\r\n            updateLivesUI();\r\n            \r\n            announce(&quot;\u0993\u09b9 \u09a8\u09be! \u09ac\u09cd\u09b2\u0995 \u09ad\u09c7\u0999\u09c7 \u0997\u09c7\u099b\u09c7!&quot;);\r\n            \r\n            if (state.correctIndex &gt;= 0) {\r\n                btns[state.correctIndex].classList.add('correct');\r\n            }\r\n\r\n            setTimeout(() =&gt; {\r\n                if (state.lives &gt; 0) {\r\n                    generateProblem();\r\n                } else {\r\n                    endGame();\r\n                }\r\n            }, 2500);\r\n        }\r\n    }\r\n\r\n    function updateLivesUI() {\r\n        let hearts = '';\r\n        for(let i=0; i&lt;state.lives; i++) hearts += '\ud83d\ude82';\r\n        document.getElementById('lives-display').innerText = hearts || '\ud83d\udca5';\r\n    }\r\n\r\n    function startGame() {\r\n        initAudio();\r\n        state.isPlaying = true;\r\n        state.score = 0;\r\n        state.level = 1;\r\n        state.lives = 3;\r\n        state.accuracy = { correct: 0, total: 0 };\r\n        \r\n        updateLivesUI();\r\n        document.getElementById('score-display').innerText = toBengali(state.score);\r\n        document.getElementById('level-display').innerText = toBengali(state.level);\r\n        \r\n        document.querySelectorAll('.screen').forEach(s =&gt; s.classList.remove('active'));\r\n        document.getElementById('game-screen').classList.add('active');\r\n        \r\n        resizeCanvas();\r\n        generateProblem();\r\n        announce(&quot;\u099f\u09cd\u09b0\u09c7\u09a8 \u099b\u09c7\u09dc\u09c7\u099b\u09c7! \u09ac\u09cd\u09b0\u09bf\u099c \u09a0\u09bf\u0995 \u0995\u09b0\u09cb\u0964&quot;);\r\n        \r\n        if (!animationId) animationId = requestAnimationFrame(gameLoop);\r\n    }\r\n\r\n    function endGame() {\r\n        state.isPlaying = false;\r\n        cancelAnimationFrame(animationId);\r\n        animationId = null;\r\n        \r\n        document.querySelectorAll('.screen').forEach(s =&gt; s.classList.remove('active'));\r\n        document.getElementById('game-over-screen').classList.add('active');\r\n        document.getElementById('final-score').innerText = toBengali(state.score);\r\n        \r\n        if (window.GameController &amp;&amp; typeof window.GameController.saveScore === 'function') {\r\n            const acc = state.accuracy.total &gt; 0 ? Math.round((state.accuracy.correct \/ state.accuracy.total) * 100) : 0;\r\n            window.GameController.saveScore(state.score, state.level * 10, { level: state.level, accuracy: acc });\r\n        }\r\n    }\r\n\r\n    \/\/ --- Event Listeners ---\r\n    document.getElementById('start-btn').addEventListener('pointerdown', startGame);\r\n    document.getElementById('restart-btn').addEventListener('pointerdown', startGame);\r\n    \r\n    document.querySelectorAll('.option-btn').forEach(btn =&gt; {\r\n        btn.addEventListener('pointerdown', function(e) {\r\n            e.preventDefault();\r\n            const idx = parseInt(this.getAttribute('data-index'));\r\n            handleAnswer(idx);\r\n        });\r\n    });\r\n\r\n    window.addEventListener('resize', resizeCanvas);\r\n\r\n})();&lt;\/script&gt;&lt;\/body&gt;&lt;\/html&gt;\" sandbox=\"allow-scripts allow-forms allow-same-origin allow-pointer-lock\" allow=\"fullscreen; accelerometer; gyroscope\" allowfullscreen><\/iframe>\n        <\/div>\n    <\/div>\n    <script data-cfasync=\"false\">\n    (function() {\n        var wrap = document.getElementById('qsh-27090-520');\n        var btn  = document.getElementById('fs-btn-qsh-27090-520');\n        if (!wrap || !btn) return;\n        btn.addEventListener('click', function() {\n            if (!document.fullscreenElement) {\n                if (wrap.requestFullscreen) wrap.requestFullscreen();\n                else if (wrap.webkitRequestFullscreen) wrap.webkitRequestFullscreen();\n            } else {\n                if (document.exitFullscreen) document.exitFullscreen();\n            }\n        });\n        document.addEventListener('fullscreenchange', function() {\n            if (document.fullscreenElement === wrap) {\n                btn.classList.add('is-active');\n                btn.querySelector('span').textContent = 'Exit';\n            } else {\n                btn.classList.remove('is-active');\n                btn.querySelector('span').textContent = 'Expand';\n            }\n        });\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"<p>\u0986\u099c\u0995\u09c7\u09b0 \u09ae\u09bf\u09b6\u09a8 \u0996\u09c1\u09ac \u0989\u09a4\u09cd\u09a4\u09c7\u099c\u09a8\u09be\u09b0! \u098f\u0995\u099f\u09bf \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u099f\u09cd\u09b0\u09c7\u09a8 \u0997\u09ad\u09c0\u09b0 \u0996\u09be\u09a6\u09c7\u09b0 \u0993\u09aa\u09b0 \u09a6\u09bf\u09df\u09c7 \u09af\u09be\u099a\u09cd\u099b\u09c7, \u0995\u09bf\u09a8\u09cd\u09a4\u09c1 \u09ac\u09cd\u09b0\u09bf\u099c\u09c7\u09b0 \u09ae\u09be\u099d\u0996\u09be\u09a8\u099f\u09be \u09ad\u09be\u0999\u09be! \u099f\u09cd\u09b0\u09c7\u09a8\u099f\u09bf\u0995\u09c7 \u09ac\u09be\u0981\u099a\u09be\u09a4\u09c7 \u09b9\u09b2\u09c7 \u09a4\u09cb\u09ae\u09be\u0995\u09c7 \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u09ac\u09cd\u09b2\u0995 \u09a6\u09bf\u09df\u09c7 \u09ac\u09cd\u09b0\u09bf\u099c\u099f\u09bf \u09ae\u09c7\u09b0\u09be\u09ae\u09a4 \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7\u0964 \u0986\u09b0 \u098f\u0987 \u09ae\u09cd\u09af\u09be\u099c\u09bf\u0995 \u09ac\u09cd\u09b2\u0995 \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09be\u09b0 \u098f\u0995\u099f\u09be\u0987 \u0989\u09aa\u09be\u09df\u2014\u09af\u09c7\u0995\u09cb\u09a8\u09cb \u09e8-\u0985\u0999\u09cd\u0995\u09c7\u09b0 \u09b8\u0982\u0996\u09cd\u09af\u09be\u0995\u09c7 \u09e7\u09e7 \u09a6\u09bf\u09df\u09c7 \u0996\u09be\u09a4\u09be-\u0995\u09b2\u09ae \u099b\u09be\u09dc\u09be \u09e8 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1\u09c7 \u0997\u09c1\u09a3 \u0995\u09b0\u09be! \u0995\u09cd\u09af\u09be\u09b2\u0995\u09c1\u09b2\u09c7\u099f\u09b0\u09c7\u09b0 \u099a\u09c7\u09df\u09c7\u0993 \u09a6\u09cd\u09b0\u09c1\u09a4 \u09e7\u09e7 \u09a6\u09bf\u09df\u09c7 \u0997\u09c1\u09a3 \u0995\u09b0\u09be \u09af\u09be\u09df? \u09b9\u09cd\u09af\u09be\u0981! \u0986\u099c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-27090","post","type-post","status-publish","format-standard","hentry","category-mental-math-tricks"],"_links":{"self":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/27090","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/comments?post=27090"}],"version-history":[{"count":1,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/27090\/revisions"}],"predecessor-version":[{"id":27091,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/posts\/27090\/revisions\/27091"}],"wp:attachment":[{"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/media?parent=27090"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/categories?post=27090"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qsh.in\/boards\/wbbse\/wp-json\/wp\/v2\/tags?post=27090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}