PageSourceSearch

https://demineur.nhtdev.com/es/

html nhtdev.com collected 2026-10-03 02:37:15 UTC 44,665 bytes, 851 lines download raw bytes

1<!doctype html>
2<html lang="es">
3    <head>
4        <title>Buscaminas Hugames - Jugar al Buscaminas en l&iacute;nea - Nivel Experto</title>
5<meta charset="utf-8">
6<meta name="description" content="Juega al Buscaminas en línea gratis, sin instalación ni registro. Pon a prueba tus habilidades con el nivel Experto y otros niveles exclusivos más difíciles, con tableros densos y desafíos exigentes." />
7<link rel="canonical" href="https://demineur.nhtdev.com/es/" />
8<link rel="icon" type="image/png" href="/img/favicon.png" />
9<link rel="stylesheet" href="/css/style.css?20260904">
10<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
11<meta name="og:site_name" content="Buscaminas Hugames" />
12<script type="application/ld+json">
13{
14    "@context": "https://schema.org",
15    "@type": "WebSite",
16    "@id": "https://demineur.nhtdev.com/es/#website",
17    "name": "Buscaminas Hugames",
18    "url": "https://demineur.nhtdev.com/es/",
19    "description": "Juega al Buscaminas en línea gratis, sin instalación ni registro. Pon a prueba tus habilidades con el nivel Experto y otros niveles exclusivos más difíciles, con tableros densos y desafíos exigentes.",
20    "inLanguage": "es"
21}</script>
21
22
23
24<link rel="alternate" hreflang="en" href="https://demineur.nhtdev.com/en/" />
25<link rel="alternate" hreflang="de" href="https://demineur.nhtdev.com/de/" />
26<link rel="alternate" hreflang="es" href="https://demineur.nhtdev.com/es/" />
27<link rel="alternate" hreflang="fr" href="https://demineur.nhtdev.com/" />
28<link rel="alternate" hreflang="it" href="https://demineur.nhtdev.com/it/" />
29<link rel="alternate" hreflang="pt" href="https://demineur.nhtdev.com/pt/" />
30<link rel="alternate" hreflang="pl" href="https://demineur.nhtdev.com/pl/" />
31<link rel="alternate" hreflang="uk" href="https://demineur.nhtdev.com/uk/" />
32<link rel="alternate" hreflang="nl" href="https://demineur.nhtdev.com/nl/" />
33<link rel="alternate" hreflang="x-default" href="https://demineur.nhtdev.com/en/" />
34        <meta property="og:title" content="Buscaminas Hugames - Jugar al Buscaminas en l&iacute;nea - Nivel Experto" />
35        <meta property="og:type" content="website" />
36        <meta property="og:url" content="https://demineur.nhtdev.com/es/" />
37        <meta property="og:image" content="https://demineur.nhtdev.com/img/screenshot.png" />
38        <meta property="og:description" content="Juega al Buscaminas en l&iacute;nea gratis, sin instalaci&oacute;n ni registro. Pon a prueba tus habilidades con el nivel Experto y otros niveles exclusivos m&aacute;s dif&iacute;ciles, con tableros densos y desaf&iacute;os exigentes." />
39        <meta name="twitter:image" content="https://demineur.nhtdev.com/img/screenshot.png">
40
41        
41<script type="application/ld+json">
42{
43    "@context": "https://schema.org",
44    "@type": "VideoGame",
45    "name": "Buscaminas Hugames",
46    "url": "https://demineur.nhtdev.com/es/",
47    "description": "Juega al Buscaminas en línea gratis, sin instalación ni registro. Pon a prueba tus habilidades con el nivel Experto y otros niveles exclusivos más difíciles, con tableros densos y desafíos exigentes.",
48    "inLanguage": "es",
49    "genre": "Minesweeper Puzzle Game",
50    "applicationCategory": "GameApplication",
51    "operatingSystem": "Any (web browser)",
52    "gamePlatform": "Web",
53    "image": "https://demineur.nhtdev.com/img/screenshot.png",
54    "offers": {
55        "@type": "Offer",
56        "price": "0",
57        "priceCurrency": "EUR"
58    }
59}        </script>
59
60
61                <meta name="version" content="20260904" />
62
63        <meta name="all-skins" content="checkerboard-gray,cell-gray-light,retro,checkerboard-blue,checkerboard-green,checkerboard-purple,checkerboard-pink,checkerboard-orange,checkerboard-dark,cell-dark,special-octobre-rose" />
64        <meta name="default-skin" content="checkerboard-gray" />
65
66        <meta name="level" content="{&quot;width&quot;:&quot;30&quot;,&quot;height&quot;:&quot;16&quot;,&quot;mines&quot;:&quot;99&quot;,&quot;continues&quot;:&quot;3&quot;,&quot;skin&quot;:&quot;free&quot;}" />
67        <meta name="level-name" content="Experto" />
68        <meta name="level-id" content="3" />
69        <meta name="level-size" content="30x16" />
70        <meta name="level-continues" content="3" />
71        <meta name="level-no-guess" content="on" />
72        <meta name="unlock-level-id" content="" />
73        <meta name="unlock-message" content="" />
74        <meta name="unlock-score" content="" />
75        <meta name="unlockable" content="{&quot;3&quot;:[{&quot;id&quot;:&quot;14&quot;,&quot;name&quot;:&quot;\u00c9lite&quot;,&quot;unlock_level_id&quot;:&quot;3&quot;,&quot;unlock_score&quot;:&quot;0&quot;}]}" />
76    </head>
77
78    <body class="typexx-light" data-typexx="light">
79
80        
80<script>
81                        if (localStorage.getItem('darkMode') === '1') {
82                document.body.classList.add('dark');
83            }
84        </script>
84
85
86        <div id="preroll"></div>
87
88        <div id="whole-page" class="ads-on-top-bottom">
89            <header>
90                
91<div id="lang-container">
92    <a class="current-lang lang-detail" href="#" id="lang-picker" title="Cambiar el idioma del sitio">
93        <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24">
94            <path d="m476-80 182-480h84L924-80h-84l-42-122H604L560-80h-84Zm152-192h144l-70-198h-4l-70 198Zm-468 72-56-56 202-202q-38-42-66.5-87T190-640h84q18 36 38.5 65t49.5 61q44-48 73-98.5T484-720H40v-80h280v-80h80v80h280v80H564q-21 71-57 138t-89 126l96 98-30 82-124-124-200 200Z" />
95        </svg>
96        <span class="lang-label">Espa&ntilde;ol</span>
97    </a>
98    <ul class="languages hidden">
99                    <li>
100                <a lang="en" href="https://demineur.nhtdev.com/en/" class="lang-detail lang-link">
101                    English                </a>
102            </li>
103                    <li>
104                <a lang="de" href="https://demineur.nhtdev.com/de/" class="lang-detail lang-link">
105                    Deutsch                </a>
106            </li>
107                    <li>
108                <a lang="es" href="https://demineur.nhtdev.com/es/" class="lang-detail lang-link">
109                    Espa&ntilde;ol                </a>
110            </li>
111                    <li>
112                <a lang="fr" href="https://demineur.nhtdev.com/" class="lang-detail lang-link">
113                    Fran&ccedil;ais                </a>
114            </li>
115                    <li>
116                <a lang="it" href="https://demineur.nhtdev.com/it/" class="lang-detail lang-link">
117                    Italiano                </a>
118            </li>
119                    <li>
120                <a lang="pt" href="https://demineur.nhtdev.com/pt/" class="lang-detail lang-link">
121                    Portugu&ecirc;s                </a>
122            </li>
123                    <li>
124                <a lang="pl" href="https://demineur.nhtdev.com/pl/" class="lang-detail lang-link">
125                    Polski                </a>
126            </li>
127                    <li>
128                <a lang="uk" href="https://demineur.nhtdev.com/uk/" class="lang-detail lang-link">
129                    Українська                </a>
130            </li>
131                    <li>
132                <a lang="nl" href="https://demineur.nhtdev.com/nl/" class="lang-detail lang-link">
133                    Nederlands                </a>
134            </li>
135            </ul>
136</div>
137
138<div class="main-title">
139    <img src="/img/mine.svg?20260904" alt="Mina" width="30" height="30" class="hide-dark">
140    <img src="/img/mine-dark.svg?20260904" alt="Mina" width="30" class="show-dark">
141    Buscaminas Hugames</div>
142
143<nav>
144    <ul>
145        <li><a href="/es/?level=principiante" title="Jugar al Buscaminas en línea - Nivel Principiante" >Principiante</a></li>
146        <li><a href="/es/?level=intermedio" title="Jugar al Buscaminas en línea - Nivel Intermedio" >Intermedio</a></li>
147        <li><a href="/es/?level=experto" title="Jugar al Buscaminas en línea - Nivel Experto" class="active">Experto</a></li>
148        <li><a href="/es/plus" id="play-plus" title="Jugar al Buscaminas en línea - Todos los niveles" >Más...</a></li>
149        <li class="nav-item-right"><a href="/es/rules" title="Reglas y trucos del Buscaminas" >Reglas</a></li>
150    </ul>
151</nav>
152                <div class="end-game" id="game-over" style="display: none;">
153                    <div>
154                        <div class="result-title">Fin del juego</div>
155                        <p>
156                            Lo siento, ¡has perdido!                        </p>
157                        <a href="#" id="game-over-restart" class="btn btn-primary">Nueva partida</a>
158                        <a href="#" id="game-over-continue" class="btn btn-secondary">Continuar partida</a>
159                        <a href="#" id="game-over-reveal" class="btn btn-secondary">Ver solución</a>
160                    </div>
161                </div>
162
163                <div class="end-game" id="game-win" style="display: none;">
164                    <div>
165                        <div class="result-title">
165¡Felicidades, has ganado!</div>
166                        <p class="win-subtitle">
167                            Nivel <span id="win-level-name"></span> completado en <span id="win-score"></span> segundos                        </p>
168                        <div class="new-best-score" id="new-best-score">
169                            <svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 576 512"><path d="M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z" fill="#ffcc00"/></svg>
170                            ¡Nuevo récord!                        </div>
171                        <div class="new-best-score" id="new-best-score-continued">
172                            <svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 576 512"><path d="M400 0H176c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8H24C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9H192c-17.7 0-32 14.3-32 32s14.3 32 32 32H384c17.7 0 32-14.3 32-32s-14.3-32-32-32H357.9C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24H446.4c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112h84.4c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6h84.4c-5.1 66.3-31.1 111.2-63 142.3z" fill="#aaaaaa"/></svg>
173                            ¡Nuevo récord! (con ayuda)                        </div>
174                        <div class="new-best-score" id="unlocked-levels">
175                            <svg height="1em" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 122.88 122.88" style="enable-background:new 0 0 122.88 122.88" xml:space="preserve"><style type="text/css">.st0{fill-rule:evenodd;clip-rule:evenodd;}</style><g><polygon class="st0" points="19.44,50.16 8.22,30.72 30.72,30.72 30.72,8.13 50.16,19.44 61.44,0 72.72,19.44 92.16,8.13 92.16,30.72 114.75,30.72 103.44,50.16 122.88,61.44 103.44,72.72 114.75,92.16 92.16,92.16 92.16,114.66 72.72,103.44 61.44,122.88 50.16,103.44 30.72,114.66 30.72,92.16 8.22,92.16 19.44,72.72 0,61.44 19.44,50.16" fill="#ff0000"/></g></svg>
176                            ¡Has desbloqueado el nivel <span id="unlocked-level-name"></span>!                            <a href="/es/plus" id="unlocked-levels-link">Mostrar</a>
177                        </div>
178                        <div class="win-buttons">
179                            <a href="#" id="game-win-restart" class="btn btn-primary">Nueva partida</a>
180                            <a href="#" id="game-win-share" class="btn btn-secondary">Compartir</a>
181                            <a href="#" id="game-save-image" class="btn btn-secondary">Guardar como imagen</a>
182                        <div>
183                    </div>
184                </div>
185            </header>
186
187            <div id="col-top-container">
188                <div id="col-top" style="min-width:970px; height:250px; overflow:hidden;"></div>
189            </div>
190
191            <div id="columns">
192
193                <div id="col-left-container">
194                    <div id="col-left">
195                    </div>
196                </div>
197
198                <div id="column-center">
199                    <article id="game">
200
201                        <h1>
202                            Jugar al Buscaminas en línea - 
203                            Nivel Experto                        </h1>
204
205                                                
206                        
207<div class="game-toolbar" id="game-toolbar" style="height:41px;">
208    <div class="toolbar-left">
209                <button id="screenshot" class="btn btn-secondary" title="Guardar como imagen">
210            <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="currentColor" class="bi bi-camera" viewB
210ox="0 0 16 16">
211            <path d="M15 12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h1.172a3 3 0 0 0 2.12-.879l.83-.828A1 1 0 0 1 6.827 3h2.344a1 1 0 0 1 .707.293l.828.828A3 3 0 0 0 12.828 5H14a1 1 0 0 1 1 1zM2 4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-1.172a2 2 0 0 1-1.414-.586l-.828-.828A2 2 0 0 0 9.172 2H6.828a2 2 0 0 0-1.414.586l-.828.828A2 2 0 0 1 3.172 4z"/>
212            <path d="M8 11a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5m0 1a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7M3 6.5a.5.5 0 1 1-1 0 .5.5 0 0 1 1 0"/>
213            </svg>
214        </button>
215    </div>
216    <div class="toolbar-zoom">
217        <button id="zoom-out" class="btn btn-secondary" title="Alejar">
218            <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="currentColor" class="bi bi-zoom-out" viewBox="0 0 16 16">
219            <path fill-rule="evenodd" d="M6.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zM13 6.5a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0z"/>
220            <path d="M10.344 11.742c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1 6.538 6.538 0 0 1-1.398 1.4z"/>
221            <path fill-rule="evenodd" d="M3 6.5a.5.5 0 0 1 .5-.5h6a.5.5 0 0 1 0 1h-6a.5.5 0 0 1-.5-.5z"/>
222            </svg>
223        </button>
224        <button id="zoom-in" class="btn btn-secondary" title="Acercar">
225            <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="currentColor" class="bi bi-zoom-in" viewBox="0 0 16 16">
226            <path fill-rule="evenodd" d="M6.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zM13 6.5a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0z"/>
227            <path d="M10.344 11.742c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1 6.538 6.538 0 0 1-1.398 1.4z"/>
228            <path fill-rule="evenodd" d="M6.5 3a.5.5 0 0 1 .5.5V6h2.5a.5.5 0 0 1 0 1H7v2.5a.5.5 0 0 1-1 0V7H3.5a.5.5 0 0 1 0-1H6V3.5a.5.5 0 0 1 .5-.5z"/>
229            </svg>
230        </button>
231    </div>
232    <div class="toolbar-settings">
233                <button id="theme" class="btn btn-secondary" title="Tema">
234            <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="currentColor" class="bi bi-palette" viewBox="0 0 16 16">
235            <path d="M8 5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3m4 3a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3M5.5 7a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0m.5 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3"/>
236            <path d="M16 8c0 3.15-1.866 2.585-3.567 2.07C11.42 9.763 10.465 9.473 10 10c-.603.683-.475 1.819-.351 2.92C9.826 14.495 9.996 16 8 16a8 8 0 1 1 8-8m-8 7c.611 0 .654-.171.655-.176.078-.146.124-.464.07-1.119-.014-.168-.037-.37-.061-.591-.052-.464-.112-1.005-.118-1.462-.01-.707.083-1.61.704-2.314.369-.417.845-.578 1.272-.618.404-.038.812.026 1.16.104.343.077.702.186 1.025.284l.028.008c.346.105.658.199.953.266.653.148.904.083.991.024C14.717 9.38 15 9.161 15 8a7 7 0 1 0-7 7"/>
237            </svg>
238        </button>
239                <button id="settings" class="btn btn-secondary" title="Opciones">
240            <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="currentColor" class="bi bi-gear" viewBox="0 0 16 16">
241            <path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492zM5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0z"/>
242            <path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52l-.094-.319zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.377l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115l.094-.319z"/>
243            </svg>
244        </button>
245    </div>
246</div>
247                        <div class="game-container">
248                            <div id="canvas-container" class="game-loading">
249                                <canvas id="canvas" width="400" height="400" class="game-img"></canvas>
250                                <canvas id="canvas2" width="400" height="400"></canvas>
251                                <canvas id="canvas3" width="400" height="400"></canvas>
252                            </div>
253                            <div id="loading-error" class="error" style="display:none;">
254                                Error al cargar el juego. Verifica tu conexión a internet y vuelve a cargar la página.                            </div>
255                            <div class="best-score" id="best-score">&nbsp;</div>
256                        </div>
257                        <div style="display:none">
258                            <canvas id="canvas-export" width="400" height="400" data-share-url="/es/share"></canvas>
259                        </div>
260
261                        
261<script type="text/javascript">
262
263    function clsGetZoomLevel()
264    {
265        let zoomLevel = localStorage.getItem('zoomLevel');
266        if (zoomLevel) {
267            return zoomLevel;
268        } else {
269                        if (window.innerWidth < 768) {
270                return 5;
271            } else {
272                return 3;
273            }
274        }
275    }
276
277    function clsGetSkin()
278    {
279        let skin = localStorage.getItem('skin');
280        if (!skin) {
281            skin = 'checkerboard-gray';
282        }
283
284        let metaLevel = document.querySelector('meta[name="level"]');
285        if (metaLevel) {
286            let json = metaLevel.getAttribute('content');
287            let level = JSON.parse(json); 
288                    
289            if (level.skin === 'free') {
290                return skin;
291            } else if (level.skin === 'free-checkerboard') {
292                return 'checkerboard-gray';
293            } else if (level.skin === 'free-non-retro') {
294                return 'checkerboard-gray';
295            } else if (level.skin === 'retro') {
296                return 'retro';
297            } else {
298                return 'checkerboard-gray';
299            }
300        }
301
302        return skin;
303    }
304
305    function clsGetGameSize()
306    {
307        let metaLevel = document.querySelector('meta[name="level-size"]');
308        let level = metaLevel.getAttribute('content');
309        level = level.split('x');
310        return [parseInt(level[0]), parseInt(level[1])];
311    }
312
313    function computeStdSize(zoom, width, height)
314    {
315        const zoomLevelToCellSize = {
316            1: 15,
317            2: 19,
318            3: 24,
319            4: 30,
320            5: 40,
321            6: 50,
322            7: 60
323        };
324        let cellSize = zoomLevelToCellSize[zoom];
325
326        let margins = 30;
327        let marginTop = 80;
328        let minWidth = 270;
329
330                if (width * cellSize + 2 * margins < minWidth) {
331            margins = Math.floor((minWidth - width * cellSize) / 2);
332        }
333
334        let resultWidth = width * cellSize + 2 * margins;
335        let resultHeight = height * cellSize + margins + marginTop;
336
337        return [resultWidth, resultHeight];
338    }
339
340    function computeRetroSize(zoom, width, height)
341    {
342        if (zoom < 2) {
343            zoom = 2;
344        }
345        if (zoom > 6) {
346            zoom = 6;
347        }
348
349        const zoomLevelToCellSize = {
350            2: 16,
351            3: 24,
352            4: 32,
353            5: 48,
354            6: 64
355        };
356        let cellSize = zoomLevelToCellSize[zoom];
357
358        const zoomLevelToSizeRatio = {
359            2: 1,
360            3: 1.5,
361            4: 2,
362            5: 3,
363            6: 4
364        };
365        let sizeRatio = zoomLevelToSizeRatio[zoom];
366        let margins = 12 * sizeRatio;
367        let marginTop = 52 * sizeRatio + margins;
368
369        let resultWidth = width * cellSize + 2 * margins;
370        let resultHeight = height * cellSize + margins + marginTop;
371
372        return [resultWidth, resultHeight];
373    }
374
375    function getDimensions()
376    {
377        let skin = clsGetSkin();
378        let zoom = clsGetZoomLevel();
379        let size = clsGetGameSize();
380
381        if (skin === 'retro') {
382            return computeRetroSize(zoom, size[0], size[1]);
383        } else {
384            return computeStdSize(zoom, size[0], size[1]);
385        }
386    }
387
388    function presizeGame()
389    {
390        let dim = getDimensions();
391
392                let allCanvas = [document.getElementById('canvas'), document.getElementById('canvas2'), document.getElementById('canvas3')];
393        for (let i = 0; i < allCanvas.length; i++) {
394            allCanvas[i].width = dim[0];
395            allCanvas[i].height = dim[1];
396        }
397
398                let canvasContainer = document.getElementById('canvas-container');
399        if (canvasContainer) {
400            canvasContainer.style.width = dim[0] + 'px';
401            canvasContainer.style.height = dim[1] + 'px';
402        }
403    }
404
405    function chooseAdType() {
406        let newType = null;
407        let canvasContainer = document.getElementById('canvas-container');
408        let wholePage = document.getElementById('whole-page');
409
410        if (canvasContainer && wholePage) {
411            let pageWidth = wholePage.offsetWidth;
412            let playWidth = canvasContainer.offsetWidth;
413            if (playWidth < 700) {
414                playWidth = 700;
415            }
416            if (pageWidth > 16 + 300 + 16 + playWidth + 16 + 300 + 16 + 10) {
417                             // newType = 'ads-on-sides'; // Pour test : mettre toujours les pubs en haut et en bas
418                newType = 'ads-on-top-bottom';
419            } else {
420                newType = 'ads-on-top-bottom';
421            }
422            wholePage.setAttribute('class', newType);
423        }
424        return newType;
425    }
426    presizeGame();
427    chooseAdType();
428
429</script>
429
430
431                        
432                                <div class="news-container">
433        <div class="news" style="position:relative; background-color:#fabced;">
434            <img src="/img/flag-octobre-rose-30.png" width="30" height="30" alt="" style="position: absolute; top: 5px;" />
435            <span style="padding-left: 30px; color: #333;">En octubre, prueba el tema especial: &quot;Mes de la concienciación sobre el cáncer de mama&quot;.</span>
436            <br />
437            <a href="#" style="color: #000;" 
438            onmouseover="this.style.textDecoration='underline'" onmouseout="this.style.textDecoration='none'"
439            onclick="document.querySelector('.skin[data-change-skin=\'special-octobre-rose\']').click(); return false;"
440            >Activar tema</a>
441                    </div>
442    </div>
443
444                            <h2 id="no-guess-container">
445                <div id="no-guess-intro" class="js-simple-tooltip" data-simpletooltip-text="Si el modo sin adivinanzas (no-guess) está activado, todos los juegos se podrán resolver puramente por lógica, sin tener situaciones en las que se deba hacer clic al azar." 
446            data-simpletooltip-prefix-class="minimalist-left">
447            <i class="tooltip-icon"></i>
448            Modo sin adivinanzas:        </div>
449        <label class="switch">
450            <input type="checkbox" id="no-guess" autocomplete="off">
451            <span class="slider round"></span>
452        </label>
453        <span id="no-guess-label">
454            <span class="label-on" style="display:none" id="no-guess-on">Activado</span>
455            <span class="label-off" style="display:none" id="no-guess-off">Off</span>
456        </span>
457    </h2>
458    <div id="no-guess-info" class="hide-on-new-game hidden">
459        El cambio se aplicará a partir del próximo juego.    </div>
460
461
462                    </article>
463
464                    
465<article id="help">
466
467<div class="help-intro">
468
469<h2>¿Cómo jugar al Buscaminas?</h2>
470<div>
471    El Buscaminas es un clásico juego de reflexión cuyo objetivo es sencillo: 
472    vaciar una cuadrícula sin hacer estallar las minas ocultas. Esta versión del Buscaminas en línea 
473    es accesible directamente desde tu navegador, sin descarga ni registro.
474    <br />
475    Para progresar, debes apoyarte en la lógica y en el análisis de los números.
476
477    <h3>Los controles básicos</h3>
478    <p>
479        <strong>El clic izquierdo</strong> permite abrir una casilla. Si la casilla está vacía, 
480        revela un número o un espacio vacío. Si haces clic en una mina, has perdido 
481        y la partida termina.
482        <br />
483        <strong>El clic derecho</strong> sirve para colocar una bandera. Úsalo para marcar 
484        las casillas que sospechas que contienen una mina.
485    </p>
486
487    <h3>Entender las pistas y los números</h3>
488    <p>
489    Cada casilla descubierta muestra un número del 1 al 8. Este número indica con precisión 
490    cuántas minas hay en las 8 casillas adyacentes (en horizontal, en vertical y en diagonal).
491    <br />
492    Es cruzando estas diferentes pistas visuales como podrás deducir qué casillas 
493    son totalmente seguras y cuáles deben bloquearse con una bandera.
494    </p>
495
496    <h3>Interfaz y modos de juego</h3>
497    <p>
498        Para seguir tu progreso, dos contadores enmarcan la cuadrícula:
499        <ul>
500        <li><strong>A la izquierda</strong>: la cantidad de minas que quedan por identificar.</li>
501        <li><strong>A la derecha</strong>: un cronómetro para evaluar tu velocidad y seguir tus récords personales.</li>
502        </ul>
503    </p>
504    <p>
505    El juego se adapta a tu nivel con tres modos estándar: Principiante, Intermedio y Experto, 
506    que ofrecen cuadrículas cada vez más grandes y llenas de trampas. También hay nuevos desafíos 
507    accesibles a través de la pestaña 
508    <a href="/es/plus" style="text-decoration:underline">Más</a>,
509    que se desbloquean a medida que vas ganando.<br />
510    También puedes activar el modo sin adivinanzas (no-guess) para un desafío basado puramente en la lógica.
511    </p>
512
513    <h3>Más información</h3>
514    <p>
515        Para aprender más sobre el juego, consulta nuestras guías:
516        <br />
517        <a href="/es/rules" class="btn btn-primary">
518            Ver las reglas completas
519        </a>
520        <a href="/es/rules/example" class="btn btn-primary">
521            Ejemplo de partida
522        </a>
523        <a href="/es/rules/logic" class="btn btn-primary">
524            Deducciones lógicas avanzadas y patrones
525        </a>
526    </p>
527</div>
528
529</div>
530
531</article>
532
533                    <article id="level-desc"><h2>Acerca del nivel Experto</h2>
534<p>
535    El nivel Experto de Buscaminas está pensado para jugadores a los que les gustan los retos exigentes.<br />
536    La cuadrícula contiene muchas minas y cada decisión requiere un buen análisis de los números.<br />
537    Se necesitan lógica, concentración y a veces un poco de suerte para conseguir terminar la partida.<br />
538    Tamaño de la cuadrícula: 30x16 casillas, 99 minas.
539</p>
540</article>                </div>
541
542
543                <div id="col-right-container">
544                    <div id="col-right">
545                    </div>
546                </div>
547
548            </div><!-- /#columns -->
549
550            <div class="modal" id="cookies-modal" style="display: none">
551    <div class="modal-title">
552        Elija sus preferencias de cookies
553    </div>
554    <div class="modal-body">
555
556        <p class="strong">Utilizamos cookies y otros datos para:</p>
557        <ul>
558            <li>Guardar sus mejores puntuaciones</li>
559            <li>Guardar la lista de niveles que ha iniciado, completado o desbloqueado</li>
560            <li>Guardar sus opciones de juego y visualización</li>
561        </ul>
562        <p class="strong">Si hace clic en "Aceptar todo", utilizaremos y compartiremos con terceros cookies y otros datos para:</p>
563        <ul>
564            <li>Personalizar los anuncios publicitarios que ve</li>
565        </ul>
566        <p class="strong">Si hace clic en "Aceptar solo las cookies esenciales", no utilizaremos cookies para estos fines adicionales.</p>
567        <p>
568            Haga clic en "Más opciones" para ver más información, incluido cómo administrar su configuración de privacidad.
569            Puede cambiar sus opciones en cualquier momento haciendo clic en "Cookies" en la parte inferior de esta página.
570            También puede consultar la página
571            <a href="/es/legal-cookies" style="text-decoration:underline">Política de cookies</a>
572            en cualquier momento.
573        </p>
574    </div>
575    <div class="modal-footer">
576        <a href="#" class="btn btn-primary" id="modal-cookies-no">Aceptar solo las cookies esenciales</a>
577        <a href="#" class="btn btn-primary" id="modal-cookies-yes">Aceptar todo</a>
578        <a href="#" id="modal-cookies-custom" class="more-options">Más opciones</a>
579    </div>
580</div>
581
582<div class="modal" id="cookies-light-modal" style="display: none; width: 475px;">
583    <div class="modal-title">
584        Elija sus preferencias de cookies
585    </div>
586    <div class="modal-body">
587        <p style="text-align:center; padding-bottom:12px">
588            <img src="/img/game-cookies.png?20260904" alt="Cookies" width="241" height="97" />
589        </p>
590        <p>
591            Utilizamos y compartimos cookies y otros datos para guardar sus mejores puntuaciones,
592            los niveles iniciados, completados y desbloqueados,
593            sus opciones de juego y visualización, y mostrar anuncios personalizados.
594            Puede cambiar sus opciones en cualquier momento haciendo clic en "Cookies" en la parte inferior de esta página.
595        </p>
596        <p>
597            <a href="#" style="text-decoration:underline" id="cookies-show-more">Mostrar más</a>
598        </p>
599
600    </div>
601    <div class="modal-footer">
602        <a href="#" class="btn btn-primary" id="modal-cookies-no-light">Aceptar solo las cookies esenciales</a>
603        <a href="#" class="btn btn-primary" id="modal-cookies-yes-light">Aceptar todo</a>
604    </div>
605</div>            <div class="modal" id="adblock-modal" style="display: none">
606    <div class="modal-title">
607        Error al mostrar el video
608        <a href="#" class="modal-close" data-hide-modal="adblock-modal">&times;</a>
609    </div>
610    <div class="modal-body">
611        <p class="strong">
612            No se puede mostrar el video: parece que estás utilizando un bloqueador de anuncios (adblock).
613        </p>
614        <p>
615            Para permitirte tener una segunda oportunidad y continuar el juego, vamos a mostrar un breve video publicitario.
616            Desactiva tu bloqueador de anuncios para este sitio y luego actualiza la página. No podrás continuar este juego, pero la funcionalidad estará activa para la próxima vez.
617        </p>
618        <p>
619            También puedes mantener tu bloqueador de anuncios activado, pero no podrás continuar los juegos perdidos.
620        </p>
621    </div>
622    <div class="modal-footer">
623        <a href="#" class="btn btn-secondary" data-hide-modal="adblock-modal">Cerrar</a>
624    </div>
625</div>
626
627
628<div class="modal" id="aderror-modal" style="display: none">
629    <div class="modal-title">
630        Error al cargar el video
631        <a href="#" class="modal-close" data-hide-modal="aderror-modal">&times;</a>
632    </div>
633    <div class="modal-body">
634        <p>
635            Para permitirte tener una segunda oportunidad y continuar el juego, vamos a mostrar un breve video publicitario.
636            Se produjo un problema al cargar el video.
637        </p>
638        <ul>
639            <li>Verifica tu conexión a internet y vuelve a intentarlo.</li>
640            <li>Si estás utilizando un bloqueador de anuncios, desactívalo para este sitio y luego actualiza la página. No podrás continuar este juego, pero la funcionalidad estará activa para la próxima vez.</li>
641            <li>Si el problema persiste, intenta con otro navegador.</li>
642        </ul>
643    </div>
644    <div class="modal-footer">
645        <a href="#" class="btn btn-secondary" data-hide-modal="aderror-modal">Cerrar</a>
646    </div>
647</div>
648
649
650<div class="modal modal-sm" id="toomanycontinue-modal" style="display: none">
651    <div class="modal-title">
652        Juego terminado
653        <a href="#" class="modal-close" data-hide-modal="toomanycontinue-modal">&times;</a>
654    </div>
655    <div class="modal-body">
656        <p class="strong">
657            En este nivel, solo puedes continuar el mismo juego 3 veces.
658        </p>
659        <p>
660            ¡Ya has utilizado tus 3 oportunidades para este juego&nbsp;!<br />
661            Puedes comenzar un nuevo juego.
662        </p>
663    </div>
664    <div class="modal-footer">
665        <a href="#" id="toomanycontinue-restart" class="btn btn-primary" data-hide-modal="toomanycontinue-modal">Nuevo juego</a>
666        <a href="#" class="btn btn-secondary" data-hide-modal="toomanycontinue-modal">Cerrar</a>
667    </div>
668</div>
669            <div class="modal modal-sm" id="settings-modal" style="display: none">
670    <div class="modal-title">
671        Opciones
672        <a href="#" class="modal-close" data-hide-modal="settings-modal">&times;</a>
673    </div>
674    <div class="modal-body">
675
676        <fieldset>
677            <legend>Inicio de partida</legend>
678            <div>
679                <input type="radio" name="startType" id="start-noMineAround" value="noMineAround" />
680                <label for="start-noMineAround">Gran área libre</label>
681
682                <i class="js-simple-tooltip tooltip-icon" data-simpletooltip-text="Si esta opción está seleccionad
682a, el juego comenzará con un gran área libre alrededor del primer clic. La casilla clicada y todas las casillas adyacentes nunca tendrán minas."></i>
683            </div>
684            <div>
685                <input type="radio" name="startType" id="start-noMine" value="noMine" />
686                <label for="start-noMine">Sin mina</label>
687                <i class="js-simple-tooltip tooltip-icon" data-simpletooltip-text="Si esta opción está seleccionada, la primera casilla clicada nunca será una mina."></i>
688            </div>
689            <div>
690                <input type="radio" name="startType" id="start-random" value="random" />
691                <label for="start-random">Aleatorio</label>
692                <i class="js-simple-tooltip tooltip-icon" data-simpletooltip-text="Si esta opción está seleccionada, la primera casilla clicada será aleatoria. Puede haber una mina en esta casilla."></i>
693            </div>
694            <em>Nota: esta opción se ignora cuando el modo sin adivinanzas (no-guess) está activado.</em>
695        </fieldset>
696
697        <fieldset>
698            <legend>
699                Activar casillas adyacentes
700                <i class="js-simple-tooltip tooltip-icon" data-simpletooltip-text="Cuando todas las minas están colocad
700as alrededor de una casilla con un número, hacer clic en ese número libera todas las casillas adyacentes restantes. Elija aquí los tipos de clics que se pueden usar para activar esta acción."></i>
701            </legend>
702            <div>
703                <input type="checkbox" name="specialClick-click" id="specialClick-click" />
704                <label for="specialClick-click">Clic izquierdo</label>
705            </div>
706            <div>
707                <input type="checkbox" name="specialClick-both" id="specialClick-both" />
708                <label for="specialClick-both">Clic izquierdo + derecho</label>
709            </div>
710            <div>
711                <input type="checkbox" name="specialClick-double" id="specialClick-double" />
712                <label for="specialClick-double">Doble clic izquierdo</label>
713            </div>
714            <div>
715                <input type="checkbox" name="specialClick-center" id="specialClick-center" />
716                <label for="specialClick-center">Clic de la rueda</label>
717            </div>
718        </fieldset>
719
720        <fieldset>
721            <legend>Opciones de juego</legend>
722            <div>
723                <input type="checkbox" name="gameOption-question" id="gameOption-question" />
724                <label for="gameOption-question">Activar el marcador "?"</label>
725                <i class="js-simple-tooltip tooltip-icon" data-simpletooltip-text="Un primer clic derecho coloca una bandera, un segundo clic derecho coloca un marcador de indicación &quot;?&quot;."></i>
726            </div>
727        </fieldset>
728
729        <fieldset>
730            <legend>Partida perdida</legend>
731            <div>
732                <input type="radio" name="endAction" id="end-ask" value="ask" />
733                <label for="end-ask">Ofrecer continuar o mostrar la solución</label>
734            </div>
735            <div>
736                <input type="radio" name="endAction" id="end-show" value="show" />
737                <label for="end-show">Mostrar directamente la solución</label>
738            </div>
739        </fieldset>
740
741    </div>
742    <div class="modal-footer">
743        <a href="#" class="btn btn-primary" id="modal-settings-save">Guardar</a>
744        <a href="#" class="btn btn-secondary" data-hide-modal="settings-modal">Cancelar</a>
745    </div>
746</div>            <div class="modal" id="theme-modal" style="display: none">
747    <div class="modal-title">
748        Tema        <a href="#" class="modal-close" data-hide-modal="theme-modal">&times;</a>
749    </div>
750    <div class="modal-body">
751        <div class="skin-list">
752                        <div class="skin" data-change-skin="checkerboard-gray">
753                <img src="/img/skins/skin-checkerboard-gray.png?20260904" width="122" height="74" alt="Tema Tablero de ajedrez" />
754                <div class="skin-name">Tablero de ajedrez</div>
755            </div>
756                        <div class="skin" data-change-skin="cell-gray-light">
757                <img src="/img/skins/skin-cell-gray-light.png?20260904" width="122" height="74" alt="Tema Clásico" />
758                <div class="skin-name">Clásico</div>
759            </div>
760                        <div class="skin" data-change-skin="retro">
761                <img src="/img/skins/skin-retro.png?20260904" width="122" height="74" alt="Tema Retro" />
762                <div class="skin-name">Retro</div>
763            </div>
764                        <div class="skin" data-change-skin="checkerboard-blue">
765                <img src="/img/skins/skin-checkerboard-blue.png?20260904" width="122" height="74" alt="Tema Azul" />
766                <div class="skin-name">Azul</div>
767            </div>
768                        <div class="skin" data-change-skin="checkerboard-green">
769                <img src="/img/skins/skin-checkerboard-green.png?20260904" width="122" height="74" alt="Tema Verde" />
770                <div class="skin-name">Verde</div>
771            </div>
772                        <div class="skin" data-change-skin="checkerboard-purple">
773                <img src="/img/skins/skin-checkerboard-purple.png?20260904" width="122" height="74" alt="Tema Morado" />
774                <div class="skin-name">Morado</div>
775            </div>
776                        <div class="skin" data-change-skin="checkerboard-pink">
777                <img src="/img/skins/skin-checkerboard-pink.png?20260904" width="122" height="74" alt="Tema Rosa" />
778                <div class="skin-name">Rosa</div>
779            </div>
780                        <div class="skin" data-change-skin="checkerboard-orange">
781                <img src="/img/skins/skin-checkerboard-orange.png?20260904" width="122" height="74" alt="Tema Naranja" />
782                <div class="skin-name">Naranja</div>
783            </div>
784                        <div class="skin" data-change-skin="checkerboard-dark">
785                <img src="/img/skins/skin-checkerboard-dark.png?20260904" width="122" height="74" alt="Tema Modo oscuro" />
786                <div class="skin-name">Modo oscuro</div>
787            </div>
788                        <div class="skin" data-change-skin="cell-dark">
789                <img src="/img/skins/skin-cell-dark.png?20260904" width="122" height="74" alt="Tema Modo oscuro 2" />
790                <div class="skin-name">Modo oscuro 2</div>
791            </div>
792                        <div class="skin" data-change-skin="special-octobre-rose">
793                <img src="/img/skins/skin-special-octobre-rose.png?20260904" width="122" height="74" alt="Tema Mes de la concienciación sobre el cáncer de mama" />
794                <div class="skin-name">Mes de la concienciación sobre el cáncer de mama</div>
795            </div>
796                    </div>
797    </div>
798    <div class="modal-footer">
799        <a href="#" class="btn btn-secondary" data-hide-modal="theme-modal">Cerrar</a>
800    </div>
801</div>
802            
803<div class="modal modal-sm" id="locked-modal" style="display: none">
804    <div class="modal-title">
805        Nivel bloqueado    </div>
806    <div class="modal-body">
807
808        <p>
809                    </p>
810
811    </div>
812    <div class="modal-footer">
813        <a href="/es/plus" class="btn btn-primary">OK</a>
814    </div>
815</div>
816            <div id="bottom-container">
817                <div id="col-bottom" style="height:90px; overflow:hidden;">
818                </div>
819            </div>
820
821            <div class="bottom-spacer">&nbsp;</div>
822            <footer>
823                <div class="footer-container">
824    &copy; 2026 Hugames    -
825    <a href="/es/legal">Aviso legal y cookies</a>
826        -
827    <a href="/es/contact">Enviar un comentario</a>
828</div>            </footer>
829
830            <form id="upload-form" enctype="multipart/form-data" style="display:none" id="form-share" action="/es/share">
831                <input type="file" id="image-input" name="image" accept="image/png, image/jpeg">
832                <button type="submit">OK</button>
833            </form>
834
835            <!-- Polyfill -->
836            
836<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
836
837            
837<script src="/jsfinal/fetch.umd.js?20260904"></script>
837
838            
838<script src="/jsfinal/foreach.js?20260904"></script>
838
839
840            
840<script src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
840
841            
841<script src="/jstranslations/es.js?20260904"></script>
841
842                
842<script src="/jsfinal/minesweeper-all.min.js?20260904"></script>
842
843            
844                            
844<script src="/jsfinal/minesweeper.min.js?20260904"></script>
844
845            
846
847                            
847<script async src="//api.adinplay.com/libs/aiptag/pub/NHT/nhtdev.com/tag.min.js"></script>
847
848            
849        </div>
850    </body>
851</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.