{\rtf1\ansi\ansicpg1252\cocoartf2580 \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 Menlo-Regular;} {\colortbl;\red255\green255\blue255;\red70\green137\blue204;\red23\green24\blue24;\red140\green211\blue254; \red202\green202\blue202;\red109\green109\blue109;\red194\green126\blue101;\red183\green111\blue247;\red212\green212\blue212; \red113\green192\blue131;\red167\green197\blue152;\red109\green115\blue120;\red246\green124\blue48;} {\*\expandedcolortbl;;\cssrgb\c33725\c61176\c83922;\cssrgb\c11765\c12157\c12549;\cssrgb\c61176\c86275\c99608; \cssrgb\c83137\c83137\c83137;\cssrgb\c50196\c50196\c50196;\cssrgb\c80784\c56863\c47059;\cssrgb\c77255\c54118\c97647;\cssrgb\c86275\c86275\c86275; \cssrgb\c50588\c78824\c58431;\cssrgb\c70980\c80784\c65882;\cssrgb\c50196\c52549\c54510;\cssrgb\c98039\c56471\c24314;} \paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0 \deftab720 \pard\pardeftab720\sl420\partightenfactor0 \f0\fs28 \cf2 \cb3 \expnd0\expndtw0\kerning0 \outl0\strokewidth0 \strokec2 \cf5 \cb1 \strokec5 \ \pard\pardeftab720\sl420\partightenfactor0 \cf6 \cb3 \strokec6 <\cf2 \strokec2 html\cf5 \strokec5 \cf4 \strokec4 lang\cf6 \strokec6 =\cf7 \strokec7 "it"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cf6 \cb3 \strokec6 <\cf2 \strokec2 head\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \pard\pardeftab720\sl420\partightenfactor0 \cf5 \cb3 \cf6 \strokec6 <\cf2 \strokec2 meta\cf5 \strokec5 \cf4 \strokec4 charset\cf6 \strokec6 =\cf7 \strokec7 "UTF-8"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 meta\cf5 \strokec5 \cf4 \strokec4 name\cf6 \strokec6 =\cf7 \strokec7 "viewport"\cf5 \strokec5 \cf4 \strokec4 content\cf6 \strokec6 =\cf7 \strokec7 "width=device-width, initial-scale=1.0"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 title\cf6 \strokec6 >\cf5 \strokec5 Escape Room: Le Opere di Puccini\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 script\cf5 \strokec5 \cf4 \strokec4 src\cf6 \strokec6 =\cf7 \strokec7 "https://cdn.tailwindcss.com"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 style\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 @import\cf5 \strokec5 \cf7 \strokec7 url\cf9 \strokec9 (\cf10 \strokec10 'https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf2 \strokec2 body\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 \cf4 \strokec4 font-family:\cf5 \strokec5 \cf10 \strokec10 'Merriweather'\cf9 \strokec9 ,\cf5 \strokec5 \cf7 \strokec7 serif\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf2 \strokec2 .text-shadow\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 \cf4 \strokec4 text-shadow:\cf5 \strokec5 \cf11 \strokec11 2px\cf5 \strokec5 \cf11 \strokec11 2px\cf5 \strokec5 \cf11 \strokec11 4px\cf5 \strokec5 \cf7 \strokec7 rgba(\cf11 \strokec11 0\cf9 \strokec9 ,\cf5 \strokec5 \cf11 \strokec11 0\cf9 \strokec9 ,\cf5 \strokec5 \cf11 \strokec11 0\cf9 \strokec9 ,\cf5 \strokec5 \cf11 \strokec11 0.5\cf7 \strokec7 )\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf2 \strokec2 .btn\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 @apply px-6 py-3 rounded-full font-bold shadow-lg transition-all duration-300 transform \cf4 \strokec4 hover:\cf7 \strokec7 scale-105\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf2 \strokec2 .game-input\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 @apply w-full p-3 rounded-lg bg-gray-700 text-white placeholder-gray-400 \cf4 \strokec4 focus:\cf7 \strokec7 outline-none\cf5 \strokec5 \cf7 \strokec7 focus\cf5 \strokec5 :\cf7 \strokec7 ring-2\cf5 \strokec5 \cf7 \strokec7 focus\cf5 \strokec5 :\cf7 \strokec7 ring-amber-500\cf5 \strokec5 \cf7 \strokec7 transition-all\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 \cf5 \cb1 \strokec5 \ \pard\pardeftab720\sl420\partightenfactor0 \cf6 \cb3 \strokec6 \cf5 \cb1 \strokec5 \ \cf6 \cb3 \strokec6 <\cf2 \strokec2 body\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "bg-gray-900 text-gray-100 flex items-center justify-center min-h-screen p-4"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \pard\pardeftab720\sl420\partightenfactor0 \cf5 \cb3 \cf6 \strokec6 <\cf2 \strokec2 div\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "game-container"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "bg-gray-800 rounded-3xl shadow-2xl p-8 max-w-2xl w-full mx-auto border-4 border-amber-600 relative"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 h1\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "text-4xl md:text-5xl font-bold text-center mb-2 text-amber-400 text-shadow"\cf6 \strokec6 >\cf5 \strokec5 Puccini Escape Room\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 p\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "text-center mb-6 text-lg text-gray-400"\cf6 \strokec6 >\cf5 \strokec5 Risolvi gli enigmi per fuggire! Ogni stanza \'e8 un'opera di Puccini.\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \ \cb3 \cf12 \strokec12 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 div\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "game-screen"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "space-y-6"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 div\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "game-image-container"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "relative overflow-hidden rounded-2xl shadow-xl w-full h-64 md:h-80 bg-gray-900 flex items-center justify-center p-4"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 p\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "game-image-text"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "text-lg text-center text-gray-500 italic"\cf6 \strokec6 >\cf5 \strokec5 Inizia per esplorare la prima opera...\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cb1 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 p\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "current-puzzle-text"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "text-lg md:text-xl text-center leading-relaxed"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \ \cb3 \cf12 \strokec12 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 div\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "flex flex-col md:flex-row space-y-4 md:space-y-0 md:space-x-4"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 input\cf5 \strokec5 \cf4 \strokec4 type\cf6 \strokec6 =\cf7 \strokec7 "text"\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "puzzle-input"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "game-input flex-1"\cf5 \strokec5 \cf4 \strokec4 placeholder\cf6 \strokec6 =\cf7 \strokec7 "Inserisci la tua risposta..."\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 button\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "check-btn"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "btn bg-amber-500 text-gray-900 hover:bg-amber-400"\cf6 \strokec6 >\cf5 \strokec5 Controlla\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 \cf5 \cb1 \strokec5 \ \ \cb3 \cf12 \strokec12 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 div\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "flex justify-center space-x-4 mt-4"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 button\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "hint-btn"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "btn bg-gray-600 text-gray-200 hover:bg-gray-500"\cf6 \strokec6 >\cf5 \strokec5 Aiuto\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 button\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "restart-btn"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "btn bg-red-600 text-white hover:bg-red-500"\cf6 \strokec6 >\cf5 \strokec5 Ricomincia\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 \cf5 \cb1 \strokec5 \ \ \cb3 \cf12 \strokec12 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 p\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "feedback-message"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "text-center text-red-400 font-semibold"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 \cf5 \cb1 \strokec5 \ \ \cb3 \cf12 \strokec12 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 div\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "start-screen"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "text-center"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 button\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "start-btn"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "btn bg-green-500 text-white hover:bg-green-400 mt-8"\cf6 \strokec6 >\cf5 \strokec5 Inizia a Giocare\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 \cf5 \cb1 \strokec5 \ \ \cb3 \cf12 \strokec12 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 div\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "end-screen"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "text-center hidden"\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 h2\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "text-3xl md:text-4xl font-bold text-amber-400 text-shadow mb-4"\cf6 \strokec6 >\cf5 \strokec5 Congratulazioni!\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 p\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "text-lg text-gray-300"\cf6 \strokec6 >\cf5 \strokec5 Sei riuscito a fuggire dall'opera di Puccini!\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 p\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "text-sm mt-2 text-gray-500"\cf6 \strokec6 >\cf5 \strokec5 Grazie per aver giocato.\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 button\cf5 \strokec5 \cf4 \strokec4 id\cf6 \strokec6 =\cf7 \strokec7 "play-again-btn"\cf5 \strokec5 \cf4 \strokec4 class\cf6 \strokec6 =\cf7 \strokec7 "btn bg-green-500 text-white hover:bg-green-400 mt-8"\cf6 \strokec6 >\cf5 \strokec5 Gioca Ancora\cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 \cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 \cf5 \cb1 \strokec5 \ \ \cb3 \cf6 \strokec6 <\cf2 \strokec2 script\cf6 \strokec6 >\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 gameContainer \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'game-container'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 gameScreen \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'game-screen'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 startScreen \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'start-screen'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 endScreen \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'end-screen'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 startBtn \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'start-btn'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 playAgainBtn \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'play-again-btn'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 gameImageText \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'game-image-text'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 currentPuzzleText \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'current-puzzle-text'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 puzzleInput \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'puzzle-input'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 checkBtn \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'check-btn'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 hintBtn \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'hint-btn'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 restartBtn \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'restart-btn'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 feedbackMessage \cf9 \strokec9 =\cf5 \strokec5 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'feedback-message'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \ \cb3 \cf12 \strokec12 // Game state\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 let\cf5 \strokec5 currentLevelIndex \cf9 \strokec9 =\cf5 \strokec5 \cf13 \strokec13 0\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 let\cf5 \strokec5 currentPuzzleIndex \cf9 \strokec9 =\cf5 \strokec5 \cf13 \strokec13 0\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \ \cb3 \cf12 \strokec12 // Puzzles data\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 levels \cf9 \strokec9 =\cf5 \strokec5 \cf9 \strokec9 [\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 name\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "La Boh\'e8me"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 description\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Sei bloccato in una gelida mansarda di Parigi. Le candele si sono spente e un gelo insopportabile ti stringe. Per sbloccare la porta, devi risolvere due enigmi legati all'amore e al freddo."\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 puzzles\cf9 \strokec9 :\cf5 \strokec5 \cf9 \strokec9 [\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 text\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Il mio nome \'e8 una donna. Sono la cosa pi\'f9 bella della Boh\'e8me ma non ho la luce. Chi sono?"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 answer\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "mimi"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 hint\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Sono la protagonista femminile."\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 text\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Ci sono quattro amici, ma solo uno ha il mio cognome. Qual \'e8 la nota mancante del quartetto?"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 answer\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "schaunard"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 hint\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Il nome del musicista."\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 ]\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 name\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Tosca"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 description\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Sei in un appartamento a Roma, vicino a Castel Sant'Angelo. Il tuo amico Cavaradossi \'e8 in pericolo. Per salvare lui e te, devi trovare un modo per uscire da qui."\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 puzzles\cf9 \strokec9 :\cf5 \strokec5 \cf9 \strokec9 [\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 text\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Ho un nome che evoca un luogo sacro, sono l'amore e la vendetta. Qual \'e8 il mio nome?"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 answer\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "tosca"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 hint\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Sono l'eroina dell'opera."\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 text\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Il mio amico ha dipinto una donna bionda. La sua chiave \'e8 il mio nome. Chi sono?"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 answer\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "cavaradossi"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 hint\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Il nome dell'artista."\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 ]\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 name\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Madama Butterfly"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 description\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Sei in una casa giapponese con una vista mozzafiato sul porto di Nagasaki. L'attesa \'e8 straziante. Per trovare la libert\'e0, devi decifrare i segreti di questa casa."\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 puzzles\cf9 \strokec9 :\cf5 \strokec5 \cf9 \strokec9 [\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 text\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Aspetto 'un bel d\'ec' che arrivi una nave. Il suo nome \'e8 la mia speranza. Qual \'e8 il nome della nave?"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 answer\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "abraham lincoln"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 hint\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "\'c8 una nave americana."\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 text\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Sono la protagonista. D'amore e di onore morii. Il mio cognome \'e8 il tuo prossimo indizio."\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 answer\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "ciocio-san"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 hint\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Il mio nome giapponese."\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 ]\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 name\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Turandot"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 description\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Sei bloccato in un palazzo a Pechino. La principessa ha tre enigmi e, se fallisci, non potrai pi\'f9 uscire. Per fortuna, qualcuno \'e8 gi\'e0 arrivato prima di te e ha lasciato degli indizi."\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 puzzles\cf9 \strokec9 :\cf5 \strokec5 \cf9 \strokec9 [\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 text\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Sono l'urlo del principe, il 'nessun dorma'. Il mio nome \'e8 la tua salvezza. Chi sono?"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 answer\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "calaf"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 hint\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Il nome del principe ignoto."\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 text\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "La schiava Li\'f9 muore per il suo padrone, ma il suo nome \'e8 una parola d'amore. Qual \'e8 il suo ultimo indizio?"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 answer\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "li\'f9"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 hint\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Il nome della schiava."\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 ]\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 name\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Il Gran Finale"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 description\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Hai attraversato le sale pi\'f9 famose dell'opera. Ora tutti i tuoi sforzi sono uniti in una sola stanza. Solo due enigmi, ma sono i pi\'f9 difficili di tutti. La libert\'e0 \'e8 vicina."\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 puzzles\cf9 \strokec9 :\cf5 \strokec5 \cf9 \strokec9 [\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 text\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Un pittore, un tenore, un soprano, una donna malata. Qual \'e8 il nome dell'opera che li unisce tutti?"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 answer\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "boheme"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 hint\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Quattro personaggi di un'opera."\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 text\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "Sono un luogo sacro, una vendetta, un amore che muore. Qual \'e8 l'opera a cui mi riferisco?"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 answer\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "tosca"\cf9 \strokec9 ,\cf5 \cb1 \strokec5 \ \cb3 hint\cf9 \strokec9 :\cf5 \strokec5 \cf10 \strokec10 "L'opera con Scarpia e Cavaradossi."\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 ]\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 ];\cf5 \cb1 \strokec5 \ \ \cb3 \cf12 \strokec12 // Functions\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 function\cf5 \strokec5 initGame\cf9 \strokec9 ()\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 currentLevelIndex \cf9 \strokec9 =\cf5 \strokec5 \cf13 \strokec13 0\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 currentPuzzleIndex \cf9 \strokec9 =\cf5 \strokec5 \cf13 \strokec13 0\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 gameScreen\cf9 \strokec9 .\cf5 \strokec5 classList\cf9 \strokec9 .\cf5 \strokec5 remove\cf9 \strokec9 (\cf10 \strokec10 'hidden'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 startScreen\cf9 \strokec9 .\cf5 \strokec5 classList\cf9 \strokec9 .\cf5 \strokec5 add\cf9 \strokec9 (\cf10 \strokec10 'hidden'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 endScreen\cf9 \strokec9 .\cf5 \strokec5 classList\cf9 \strokec9 .\cf5 \strokec5 add\cf9 \strokec9 (\cf10 \strokec10 'hidden'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 loadLevel\cf9 \strokec9 (\cf5 \strokec5 currentLevelIndex\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \ \cb3 \cf8 \strokec8 function\cf5 \strokec5 loadLevel\cf9 \strokec9 (\cf5 \strokec5 levelIndex\cf9 \strokec9 )\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 if\cf5 \strokec5 \cf9 \strokec9 (\cf5 \strokec5 levelIndex \cf9 \strokec9 >=\cf5 \strokec5 levels\cf9 \strokec9 .\cf5 \strokec5 length\cf9 \strokec9 )\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 endGame\cf9 \strokec9 ();\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 return\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 currentLevelIndex \cf9 \strokec9 =\cf5 \strokec5 levelIndex\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 currentPuzzleIndex \cf9 \strokec9 =\cf5 \strokec5 \cf13 \strokec13 0\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 updateUI\cf9 \strokec9 ();\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \ \cb3 \cf8 \strokec8 function\cf5 \strokec5 updateUI\cf9 \strokec9 ()\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 level \cf9 \strokec9 =\cf5 \strokec5 levels\cf9 \strokec9 [\cf5 \strokec5 currentLevelIndex\cf9 \strokec9 ];\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 puzzle \cf9 \strokec9 =\cf5 \strokec5 level\cf9 \strokec9 .\cf5 \strokec5 puzzles\cf9 \strokec9 [\cf5 \strokec5 currentPuzzleIndex\cf9 \strokec9 ];\cf5 \cb1 \strokec5 \ \ \cb3 document\cf9 \strokec9 .\cf5 \strokec5 getElementById\cf9 \strokec9 (\cf10 \strokec10 'game-image-container'\cf9 \strokec9 ).\cf5 \strokec5 style\cf9 \strokec9 .\cf5 \strokec5 backgroundImage \cf9 \strokec9 =\cf5 \strokec5 \cf10 \strokec10 `url('https://placehold.co/600x400/1e293b/d1d5db?text=\cf9 \strokec9 $\{\cf5 \strokec5 level\cf9 \strokec9 .\cf5 \strokec5 name\cf9 \strokec9 .\cf5 \strokec5 toUpperCase\cf9 \strokec9 ()\}\cf10 \strokec10 ')`\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 gameImageText\cf9 \strokec9 .\cf5 \strokec5 textContent \cf9 \strokec9 =\cf5 \strokec5 level\cf9 \strokec9 .\cf5 \strokec5 description\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 currentPuzzleText\cf9 \strokec9 .\cf5 \strokec5 textContent \cf9 \strokec9 =\cf5 \strokec5 \cf10 \strokec10 `Enigma \cf9 \strokec9 $\{\cf5 \strokec5 currentPuzzleIndex \cf9 \strokec9 +\cf5 \strokec5 \cf13 \strokec13 1\cf9 \strokec9 \}\cf10 \strokec10 /\cf9 \strokec9 $\{\cf5 \strokec5 level\cf9 \strokec9 .\cf5 \strokec5 puzzles\cf9 \strokec9 .\cf5 \strokec5 length\cf9 \strokec9 \}\cf10 \strokec10 : \cf9 \strokec9 $\{\cf5 \strokec5 puzzle\cf9 \strokec9 .\cf5 \strokec5 text\cf9 \strokec9 \}\cf10 \strokec10 `\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 puzzleInput\cf9 \strokec9 .\cf5 \strokec5 value \cf9 \strokec9 =\cf5 \strokec5 \cf10 \strokec10 ''\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 feedbackMessage\cf9 \strokec9 .\cf5 \strokec5 textContent \cf9 \strokec9 =\cf5 \strokec5 \cf10 \strokec10 ''\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \ \cb3 \cf8 \strokec8 function\cf5 \strokec5 checkSolution\cf9 \strokec9 ()\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 level \cf9 \strokec9 =\cf5 \strokec5 levels\cf9 \strokec9 [\cf5 \strokec5 currentLevelIndex\cf9 \strokec9 ];\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 puzzle \cf9 \strokec9 =\cf5 \strokec5 level\cf9 \strokec9 .\cf5 \strokec5 puzzles\cf9 \strokec9 [\cf5 \strokec5 currentPuzzleIndex\cf9 \strokec9 ];\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 userAnswer \cf9 \strokec9 =\cf5 \strokec5 puzzleInput\cf9 \strokec9 .\cf5 \strokec5 value\cf9 \strokec9 .\cf5 \strokec5 trim\cf9 \strokec9 ().\cf5 \strokec5 toLowerCase\cf9 \strokec9 ();\cf5 \cb1 \strokec5 \ \ \cb3 \cf8 \strokec8 if\cf5 \strokec5 \cf9 \strokec9 (\cf5 \strokec5 userAnswer \cf9 \strokec9 ===\cf5 \strokec5 puzzle\cf9 \strokec9 .\cf5 \strokec5 answer\cf9 \strokec9 )\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 feedbackMessage\cf9 \strokec9 .\cf5 \strokec5 textContent \cf9 \strokec9 =\cf5 \strokec5 \cf10 \strokec10 'Risposta corretta! Passi al prossimo enigma.'\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 feedbackMessage\cf9 \strokec9 .\cf5 \strokec5 classList\cf9 \strokec9 .\cf5 \strokec5 remove\cf9 \strokec9 (\cf10 \strokec10 'text-red-400'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 feedbackMessage\cf9 \strokec9 .\cf5 \strokec5 classList\cf9 \strokec9 .\cf5 \strokec5 add\cf9 \strokec9 (\cf10 \strokec10 'text-green-400'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 setTimeout\cf9 \strokec9 (()\cf5 \strokec5 \cf9 \strokec9 =>\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 currentPuzzleIndex\cf9 \strokec9 ++;\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 if\cf5 \strokec5 \cf9 \strokec9 (\cf5 \strokec5 currentPuzzleIndex \cf9 \strokec9 >=\cf5 \strokec5 level\cf9 \strokec9 .\cf5 \strokec5 puzzles\cf9 \strokec9 .\cf5 \strokec5 length\cf9 \strokec9 )\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 feedbackMessage\cf9 \strokec9 .\cf5 \strokec5 textContent \cf9 \strokec9 =\cf5 \strokec5 \cf10 \strokec10 'Livello completato! Passa alla prossima opera.'\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 setTimeout\cf9 \strokec9 (()\cf5 \strokec5 \cf9 \strokec9 =>\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 loadLevel\cf9 \strokec9 (\cf5 \strokec5 currentLevelIndex \cf9 \strokec9 +\cf5 \strokec5 \cf13 \strokec13 1\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \strokec5 \cf13 \strokec13 2000\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \strokec5 \cf8 \strokec8 else\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 updateUI\cf9 \strokec9 ();\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \},\cf5 \strokec5 \cf13 \strokec13 1500\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \strokec5 \cf8 \strokec8 else\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 feedbackMessage\cf9 \strokec9 .\cf5 \strokec5 textContent \cf9 \strokec9 =\cf5 \strokec5 \cf10 \strokec10 'Risposta errata. Riprova.'\cf9 \strokec9 ;\cf5 \cb1 \strokec5 \ \cb3 feedbackMessage\cf9 \strokec9 .\cf5 \strokec5 classList\cf9 \strokec9 .\cf5 \strokec5 remove\cf9 \strokec9 (\cf10 \strokec10 'text-green-400'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 feedbackMessage\cf9 \strokec9 .\cf5 \strokec5 classList\cf9 \strokec9 .\cf5 \strokec5 add\cf9 \strokec9 (\cf10 \strokec10 'text-red-400'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \ \cb3 \cf8 \strokec8 function\cf5 \strokec5 showHint\cf9 \strokec9 ()\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 level \cf9 \strokec9 =\cf5 \strokec5 levels\cf9 \strokec9 [\cf5 \strokec5 currentLevelIndex\cf9 \strokec9 ];\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 const\cf5 \strokec5 puzzle \cf9 \strokec9 =\cf5 \strokec5 level\cf9 \strokec9 .\cf5 \strokec5 puzzles\cf9 \strokec9 [\cf5 \strokec5 currentPuzzleIndex\cf9 \strokec9 ];\cf5 \cb1 \strokec5 \ \cb3 alert\cf9 \strokec9 (\cf10 \strokec10 `Aiuto: \cf9 \strokec9 $\{\cf5 \strokec5 puzzle\cf9 \strokec9 .\cf5 \strokec5 hint\cf9 \strokec9 \}\cf10 \strokec10 `\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \ \cb3 \cf8 \strokec8 function\cf5 \strokec5 restartGame\cf9 \strokec9 ()\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 if\cf5 \strokec5 \cf9 \strokec9 (\cf5 \strokec5 confirm\cf9 \strokec9 (\cf10 \strokec10 "Sei sicuro di voler ricominciare? Perderai i tuoi progressi."\cf9 \strokec9 ))\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 initGame\cf9 \strokec9 ();\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \ \cb3 \cf8 \strokec8 function\cf5 \strokec5 endGame\cf9 \strokec9 ()\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 gameScreen\cf9 \strokec9 .\cf5 \strokec5 classList\cf9 \strokec9 .\cf5 \strokec5 add\cf9 \strokec9 (\cf10 \strokec10 'hidden'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 endScreen\cf9 \strokec9 .\cf5 \strokec5 classList\cf9 \strokec9 .\cf5 \strokec5 remove\cf9 \strokec9 (\cf10 \strokec10 'hidden'\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \ \cb3 \cf12 \strokec12 // Event Listeners\cf5 \cb1 \strokec5 \ \cb3 startBtn\cf9 \strokec9 .\cf5 \strokec5 addEventListener\cf9 \strokec9 (\cf10 \strokec10 'click'\cf9 \strokec9 ,\cf5 \strokec5 initGame\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 playAgainBtn\cf9 \strokec9 .\cf5 \strokec5 addEventListener\cf9 \strokec9 (\cf10 \strokec10 'click'\cf9 \strokec9 ,\cf5 \strokec5 initGame\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 checkBtn\cf9 \strokec9 .\cf5 \strokec5 addEventListener\cf9 \strokec9 (\cf10 \strokec10 'click'\cf9 \strokec9 ,\cf5 \strokec5 checkSolution\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 puzzleInput\cf9 \strokec9 .\cf5 \strokec5 addEventListener\cf9 \strokec9 (\cf10 \strokec10 'keypress'\cf9 \strokec9 ,\cf5 \strokec5 \cf9 \strokec9 (\cf5 \strokec5 e\cf9 \strokec9 )\cf5 \strokec5 \cf9 \strokec9 =>\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 \cf8 \strokec8 if\cf5 \strokec5 \cf9 \strokec9 (\cf5 \strokec5 e\cf9 \strokec9 .\cf5 \strokec5 key \cf9 \strokec9 ===\cf5 \strokec5 \cf10 \strokec10 'Enter'\cf9 \strokec9 )\cf5 \strokec5 \cf9 \strokec9 \{\cf5 \cb1 \strokec5 \ \cb3 checkSolution\cf9 \strokec9 ();\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \}\cf5 \cb1 \strokec5 \ \cb3 \cf9 \strokec9 \});\cf5 \cb1 \strokec5 \ \cb3 hintBtn\cf9 \strokec9 .\cf5 \strokec5 addEventListener\cf9 \strokec9 (\cf10 \strokec10 'click'\cf9 \strokec9 ,\cf5 \strokec5 showHint\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 restartBtn\cf9 \strokec9 .\cf5 \strokec5 addEventListener\cf9 \strokec9 (\cf10 \strokec10 'click'\cf9 \strokec9 ,\cf5 \strokec5 restartGame\cf9 \strokec9 );\cf5 \cb1 \strokec5 \ \cb3 \cf6 \strokec6 \cf5 \cb1 \strokec5 \ \pard\pardeftab720\sl420\partightenfactor0 \cf6 \cb3 \strokec6 \cf5 \cb1 \strokec5 \ \cf6 \cb3 \strokec6 \cf5 \cb1 \strokec5 \ }