1<!DOCTYPE html> 2<html lang="zh-CN"> 3<head> 4 <meta charset="UTF-8"> 5<!-- This site is hosted on Netlify. Anyone can build and deploy a site 6 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=08f275d4-afe0-4156-8ebe-3c13c4f1a03b 7 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 9 <title>仿¹ççµè</title> 10 11 <!-- Favicon --> 12 <link rel="icon" type="image/svg+xml" href="icon/favicon.svg"> 13 <link rel="shortcut icon" type="image/svg+xml" href="icon/favicon.svg"> 14 15 <!-- å¤é¨ CSS æä»¶ --> 16 <link rel="stylesheet" href="css/main.css"> 17 <link rel="stylesheet" href="css/desktop.css"> 18 <link rel="stylesheet" href="css/windows.css"> 19 <link rel="stylesheet" href="css/thoughts.css"> 20 <link rel="stylesheet" href="css/context-menu.css"> 21 <link rel="stylesheet" href="css/snake.css"> 22 <link rel="stylesheet" href="css/notepad.css"> 23 <link rel="stylesheet" href="css/calculator.css"> 24 <link rel="stylesheet" href="css/album.css"> 25 <link rel="stylesheet" href="css/practice.css"> 26 <link rel="stylesheet" href="css/login.css"> 27 <link rel="stylesheet" href="css/minesweeper.css"> 28 <link rel="stylesheet" href="css/tetris.css"> 29 <link rel="stylesheet" href="css/piano.css"> 30 <link rel="stylesheet" href="css/image-compressor.css"> 31 <link rel="stylesheet" href="css/2048.css"> 32 <link rel="stylesheet" href="css/spaceInvaders.css"> 33 34 35</head> 36<body> 37 <!-- æ¡é¢åå --> 38 <div class="desktop" id="desktop" style="display: none;"> 39 <!-- æ¡é¢å示 --> 40 <!-- 个人ç¸å ³ --> 41 <div class="desktop-icon" style="top: 20px; left: 20px;" onclick="openWindow('about')"> 42 <div class="icon-image"> 43 <img src="icon/aboutme.svg" alt="å ³äºæ" style="width: 32px; height: 32px;"> 44 </div> 45 <div class="icon-text">å ³äºæ</div> 46 </div> 47 48 <div class="desktop-icon" style="top: 20px; left: 120px;" onclick="openWindow('contact')"> 49 <div class="icon-image"> 50 <img src="icon/concat.svg" alt="èç³»æ¹å¼" style="width: 32px; height: 32px;"> 51 </div> 52 <div class="icon-text">èç³»æ¹å¼</div> 53 </div> 54 55 <div class="desktop-icon" style="top: 20px; left: 220px;" onclick="window.open('https://fanghome.netlify.app/', '_blank')"> 56 <div class="icon-image"> 57 <img src="icon/mysite.svg" alt="æçç½ç«" style="width: 32px; height: 32px;"> 58 </div> 59 <div class="icon-text">æçç½ç«</div> 60 </div> 61 62 <div class="desktop-icon" style="top: 20px; left: 320px;" onclick="openWindow('thoughts')"> 63 <div class="icon-image"> 64 <img src="icon/jishiben.svg" alt="éæè®°" style="width: 32px; height: 32px;"> 65 </div> 66 <div class="icon-text">éæè®°</div> 67 </div> 68 69 <div class="desktop-icon" style="top: 20px; left: 420px;" onclick="openWindow('album')"> 70 <div class="icon-image"> 71 <img src="icon/photos.svg" alt="ç¸å" style="width: 32px; height: 32px;"> 72 </div> 73 <div class="icon-text">ç¸å</div> 74 </div> 75 76 <div class="desktop-icon" style="top: 20px; left: 520px;" onclick="openWindow('practice')"> 77 <div class="icon-image"> 78 <img src="icon/design.svg" alt="设计ç»ä¹ " style="width: 32px; height: 32px;"> 79 </div> 80 <div class="icon-text">设计ç»ä¹ </div> 81 </div> 82 83 <!-- 游æç¸å ³ --> 84 <div class="desktop-icon" style="top: 130px; left: 20px;" onclick="openWindow('games')"> 85 <div class="icon-image"> 86 <img src="icon/game.svg" alt="å°æ¸¸æ" style="width: 32px; height: 32px;"> 87 </div> 88 <div class="icon-text">å°æ¸¸æ</div> 89 </div> 90 91 92 93 94 95 <!-- å·¥å ·ç¸å ³ --> 96 <div class="desktop-icon" style="top: 240px; left: 20px;" onclick="openWindow('calculator')"> 97 <div class="icon-image"> 98 <img src="icon/jisuanqi.svg" alt="计ç®å¨" style="width: 32px; height: 32px;"> 99 </div> 100 <div class="icon-text">计ç®å¨</div> 101 </div> 102 103 <div class="desktop-icon" style="top: 240px; left: 120px;" onclick="openWindow('notes')"> 104 <div class="icon-image"> 105 <img src="icon/jishiben2.svg" alt="è®°äºæ¬" style="width: 32px; height: 32px;"> 106 </div> 107 <div class="icon-text">è®°äºæ¬</div> 108 </div> 109 110 <div class="desktop-icon" style="top: 240px; left: 220px;" onclick="openWindow('spotify')"> 111 <div class="icon-image"> 112 <img src="icon/music.svg" alt="é³ä¹ææ¾å¨" style="width: 32px; height: 32px;"> 113 </div> 114 <div class="icon-text">é³ä¹ææ¾å¨</div> 115 </div> 116 117 <div class="desktop-icon" style="top: 240px; left: 320px;" onclick="openWindow('compressor')"> 118 <div class="icon-image"> 119 <img src="icon/image.svg" alt="å¾çå缩" style="width: 32px; height: 32px;"> 120 </div> 121 <div class="icon-text">å¾çå缩</div> 122 </div> 123 124 125 126 <div class="desktop-icon" style="top: 240px; left: 520px;" onclick="openWindow('ie')"> 127 <div class="icon-image"> 128 <img src="icon/ie.svg" alt="IEæµè§å¨" style="width: 32px; height: 32px;"> 129 </div> 130 <div class="icon-text">IEæµè§å¨</div> 131 </div> 132 133 <div class="desktop-icon" style="top: 240px; left: 720px;" onclick="openWindow('bookmarks')"> 134 <div class="icon-image"> 135 <img src="icon/weblike.svg" alt="ç½åæ¶è" style="width: 32px; height: 32px;"> 136 </div> 137 <div class="icon-text">ç½åæ¶è</div> 138 </div> 139 140 <div class="desktop-icon" style="top: 240px; left: 820px;" onclick="window.open('https://fangwx.netlify.app/', '_blank')"> 141 <div class="icon-image"> 142 <img src="icon/wx.svg" alt="微信" style="width: 32px; height: 32px;"> 143 </div> 144 <div class="icon-text">微信</div> 145 </div> 146 147 <div class="desktop-icon" style="top: 240px; left: 920px;" onclick="window.open('https://x.com/faaaannng', '_blank')"> 148 <div class="icon-image"> 149 <div style="font-size: 32px;">ð</div> 150 </div> 151 <div class="icon-text">X</div> 152 </div> 153 154 <div class="desktop-icon" style="top: 240px; left: 1020px;" onclick="window.open('https://www.xiaohongshu.com/user/profile/6117873f000000000101cead', '_blank')"> 155 <div class="icon-image"> 156 <div style="font-size: 32px;">ð</div> 157 </div> 158 <div class="icon-text">å°çº¢ä¹¦</div> 159 </div> 160 161 <div class="desktop-icon" style="top: 350px; left: 20px;" onclick="openWindow('recycle')"> 162 <div class="icon-image"> 163 <img src="icon/Trash.svg" alt="åæ¶ç«" style="width: 32px; height: 32px;"> 164 </div> 165 <div class="icon-text">åæ¶ç«</div> 166 </div> 167 168 <div class="desktop-icon" style="top: 350px; left: 120px;" onclick="triggerBSOD()"> 169 <div class="icon-image"> 170 <div style="font-size: 32px;">â ï¸</div> 171 </div> 172 <div class="icon-text">
172ç»å¯¹ä¸è¦ç¹</div> 173 </div> 174 175 <!-- æ¥å¸¸æèè¦çª --> 176 <div class="window" id="thoughts-window" style="top: 50px; left: 100px; width: 600px; height: 400px; display: none;"> 177 <div class="title-bar"> 178 <div class="title-bar-text"> 179 æ¥å¸¸æè 180 </div> 181 <div class="title-bar-controls"> 182 <div class="title-bar-button" onclick="minimizeWindow('thoughts')">_</div> 183 <div class="title-bar-button" onclick="maximizeWindow('thoughts')">â¡</div> 184 <div class="title-bar-button" onclick="closeWindow('thoughts')">Ã</div> 185 </div> 186 </div> 187 <div class="window-content"> 188 <div class="menu-bar"> 189 <div class="menu-item">æä»¶(F)</div> 190 <div class="menu-item">ç¼è¾(E)</div> 191 <div class="menu-item">æ¥ç(V)</div> 192 <div class="menu-item" onclick="showAboutModal()">帮å©(H)</div> 193 </div> 194 <div class="toolbar"> 195 <div class="win95-button toolbar-button">ð æå¼</div> 196 <div class="win95-button toolbar-button">ð¾ ä¿å</div> 197 <div class="toolbar-separator"></div> 198 <div class="win95-button toolbar-button">ð æç´¢</div> 199 <div class="win95-button toolbar-button">ð§ é®ä»¶</div> 200 </div> 201 <div class="content-area"> 202 <!-- å 容åºåä¼ç± thoughts.js 卿填å --> 203 </div> 204 <div class="status-bar"> 205 <div>就绪</div> 206 <div>æç« æ°é: 8</div> 207 <div>æåæ´æ°: 2025å¹´11æ24æ¥</div> 208 </div> 209 </div> 210 </div> 211 212 <!-- éæ¼æè¦çª --> 213 <div class="window" id="about-window" style="top: 100px; left: 200px; width: 420px; height: 440px; display: none;"> 214 <div class="title-bar"> 215 <div class="title-bar-text"> 216 å ³äºæ 217 </div> 218 <div class="title-bar-controls"> 219 <div class="title-bar-button" onclick="minimizeWindow('about')">_</div> 220 <div class="title-bar-button" onclick="maximizeWindow('about')">â¡</div> 221 <div class="title-bar-button" onclick="closeWindow('about')">Ã</div> 222 </div> 223 </div> 224 <div class="window-content"> 225 <div class="menu-bar"> 226 <div class="menu-item">æä»¶(F)</div> 227 <div class="menu-item">ç¼è¾(E)</div> 228 <div class="menu-item">æ¥ç(V)</div> 229 <div class="menu-item" onclick="showAboutModal()">帮å©(H)</div> 230 </div> 231 <div class="content-area"> 232 <h5>ä½ å¥½ï¼ææ¯ä»æ¹ ð</h5> 233 <p style="margin-bottom: 12px;">ä¸ä¸ªçç±ææ¯ååæçå端å¼åè ï¼å欢ç¨ä»£ç æå»ºæè¶£çä¸è¥¿ã</p> 234 235 <h5>æè½ä¸é¿</h5> 236 <ul style="margin-bottom: 12px;"> 237 <li>å端å¼å / HTML · CSS · JavaScript</li> 238 <li>UI/UX 设计 / Figma</li> 239 <li>åç´ èºæ¯åä½</li> 240 </ul> 241 242 <h5>å ´è¶£ç±å¥½</h5> 243 <ul> 244 <li>å¤å¤æ¸¸æååç´ èºæ¯</li> 245 <li>ç¨åºè®¾è®¡å²å¦</li> 246 <li>ææ¯åä½</li> 247 <li>é³ä¹åä½</li> 248 </ul> 249 </div> 250 <div class="status-bar"> 251 <div>就绪</div> 252 <div>æåæ´æ°: 2025å¹´3æ</div> 253 </div> 254 </div> 255 </div> 256 257 258 259 260 261 <!-- åæ¶ç«è¦çª --> 262 <div class="window" id="recycle-window" style="top: 100px; left: 150px; width: 500px; height: 400px; display: none;"> 263 <div class="title-bar"> 264 <div class="title-bar-text"> 265 åæ¶ç« 266 </div>
267 <div class="title-bar-controls"> 268 <div class="title-bar-button" onclick="minimizeWindow('recycle')">_</div> 269 <div class="title-bar-button" onclick="maximizeWindow('recycle')">â¡</div> 270 <div class="title-bar-button" onclick="closeWindow('recycle')">Ã</div> 271 </div> 272 </div> 273 <div class="window-content"> 274 <div class="menu-bar"> 275 <div class="menu-item">æä»¶(F)</div> 276 <div class="menu-item">ç¼è¾(E)</div> 277 <div class="menu-item">æ¥ç(V)</div> 278 <div class="menu-item" onclick="showAboutModal()">帮å©(H)</div> 279 </div> 280 <div class="toolbar"> 281 <div class="win95-button toolbar-button">ð è¿å</div> 282 <div class="win95-button toolbar-button">ðï¸ æ¸ ç©ºåæ¶ç«</div> 283 <div class="toolbar-separator"></div> 284 <div class="win95-button toolbar-button">ð æç´¢</div> 285 </div> 286 <div class="content-area"> 287 <div class="empty-recycle-bin"> 288 <div style="text-align: center; padding: 20px;"> 289 <div style="font-size: 48px; margin-bottom: 10px;">ðï¸</div> 290 <p>åæ¶ç«æ¯ç©ºç</p> 291 </div> 292 </div> 293 </div> 294 <div class="status-bar"> 295 <div>就绪</div> 296 <div>é¡¹ç®æ°é: 0</div> 297 <div>æ»å¤§å°: 0 KB</div> 298 </div> 299 </div> 300 </div> 301 302 <!-- è¯çµ¡æ¹å¼è¦çª --> 303 <div class="window" id="contact-window" style="top: 200px; left: 400px; width: 450px; height: 360px; display: none;"> 304 <div class="title-bar"> 305 <div class="title-bar-text"> 306 èç³»æ¹å¼ 307 </div> 308 <div class="title-bar-controls"> 309 <div class="title-bar-button" onclick="minimizeWindow('contact')">_</div> 310 <div class="title-bar-button" onclick="maximizeWindow('contact')">â¡</div> 311 <div class="title-bar-button" onclick="closeWindow('contact')">Ã</div> 312 </div> 313 </div> 314 <div class="window-content"> 315 <div class="menu-bar"> 316 <div class="menu-item">æä»¶(F)</div> 317 <div class="menu-item">ç¼è¾(E)</div> 318 <div class="menu-item">æ¥ç(V)</div> 319 <div class="menu-item" onclick="showAboutModal()">帮å©(H)</div> 320 </div> 321 <div class="content-area"> 322 <div style="margin-bottom: 13px;"> 323 <h5>é®ç®±</h5> 324 <p>[email protected]</p> 325 </div> 326 <div style="margin-bottom: 13px;"> 327 <h5>微信</h5> 328 <p>UXD700</p> 329 </div> 330 <div style="margin-bottom: 13px;"> 331 <h5>Twitter</h5> 332 <p>@faaaannng</p> 333 </div> 334 <div style="margin-bottom: 13px;"> 335 <h5>主页</h5> 336 <p>https://fang.wegic.app/home</p> 337 </div> 338 </div> 339 <div class="status-bar"> 340 <div>就绪</div> 341 <div>æåæ´æ°: 2025å¹´8æ15æ¥</div> 342 </div> 343 </div> 344 </div> 345 346 <!-- 鳿¨ææ¾å¨çªå£ --> 347 <div class="window" id="spotify-window" style="top: 80px; left: 150px; width: 600px; height: auto; display: none;"> 348 <div class="title-bar"> 349 <div class="title-bar-text"> 350 ðµ é³ä¹ææ¾å¨ 351 </div> 352 <div class="title-bar-controls"> 353 <div class="title-bar-button" onclick="minimizeWindow('spotify')">_</div> 354 <div class="title-bar-button" onclick="maximizeWindow('spotify')">â¡</div> 355 <div class="title-bar-button" onclick="closeWindow('spotify')">Ã</div> 356 </div> 357 </div> 358 <div class="window-content" style="padding: 8px;"> 359 <iframe data-testid="embed-iframe" style="border-radius:0" src="https://open.spotify.com/embed/playlist/37i9dQZF1DWVUmQhB7PvFH?utm_source=generator&theme=0" width="100%" height="352" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe> 360 </div> 361 </div> 362 363 364 365 <!-- è®°äºæ¬çªå£ --> 366 <div class="window" id="notes-window" style="top: 60px; left: 120px; width: 500px; height: 400px; display: none;"> 367 <div class="title-bar"> 368 <div class="title-bar-text"> 369 ð è®°äºæ¬ 370 </div>
371 <div class="title-bar-controls"> 372 <div class="title-bar-button" onclick="minimizeWindow('notes')">_</div> 373 <div class="title-bar-button" onclick="maximizeWindow('notes')">â¡</div> 374 <div class="title-bar-button" onclick="closeWindow('notes')">Ã</div> 375 </div> 376 </div> 377 <div class="window-content"> 378 <div class="menu-bar"> 379 <div class="menu-item">æä»¶(F)</div> 380 <div class="menu-item">ç¼è¾(E)</div> 381 <div class="menu-item">æ ¼å¼(O)</div> 382 <div class="menu-item">帮å©(H)</div> 383 </div> 384 <div class="toolbar"> 385 <div class="win95-button toolbar-button" onclick="clearNotepad()">æ¸ ç©º</div> 386 <div class="win95-button toolbar-button" onclick="saveNotepad()">ä¿å</div> 387 <div class="toolbar-separator"></div> 388 <div class="win95-button toolbar-button" onclick="toggleWordWrap()">èªåæè¡</div> 389 </div> 390 <div class="notepad-content"> 391 <textarea id="notepad-textarea" spellcheck="false" placeholder="卿¤å¤è¾å ¥æå..."></textarea> 392 </div> 393 <div class="status-bar"> 394 <div>就绪</div> 395 <div>忏ï¼0</div> 396 <div>Ln 1, Col 1</div> 397 </div> 398 </div> 399 </div> 400 401 <!-- è®°äºæ¬æ¸ 空确认弹çªåé®ç½© --> 402 <div id="notepad-modal-overlay" style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: none; z-index: 99999;"></div> 403 <div class="window" id="notepad-clear-confirm" style="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 300px; height: 20px; display: none; z-index: 100000;"> 404 <div class="title-bar"> 405 <div class="title-bar-text"> 406 â ï¸ ç¡®è®¤æ¸ ç©º 407 </div> 408 </div> 409 <div class="window-content" style="padding: 16px;"> 410 <div style="margin-bottom: 16px;"> 411 確å®è¦æ¸ 空ææå §å®¹åï¼æ¤æä½ç¡æ³æ¤é·ã 412 </div> 413 <div style="display: flex; justify-content: center; gap: 8px;"> 414 <button class="win95-button" onclick="confirmClearNotepad()">確å®</button> 415 <button class="win95-button" onclick="cancelClearNotepad()">åæ¶</button> 416 </div> 417 </div> 418 </div> 419 420 <!-- è´ªåèæ¸¸æçªå£ --> 421 <div class="window" id="snake-window" style="top: 50px; left: 100px; width: 400px; height: auto; display: none;"> 422 <div class="title-bar"> 423 <div class="title-bar-text"> 424 ð è´ªåè 425 </div> 426 <div class="title-bar-controls"> 427 <div class="title-bar-button" onclick="minimizeWindow('snake')">_</div> 428 <div class="title-bar-button" onclick="maximizeWindow('snake')">â¡</div> 429 <div class="title-bar-button" onclick="closeWindow('snake')">Ã</div> 430 </div> 431 </div> 432 <div class="window-content"> 433 <div class="menu-bar"> 434 <div class="menu-item">éæ²(G)</div> 435 <div class="menu-item">è¨å®(S)</div> 436 <div class="menu-item">帮å©(H)</div> 437 </div> 438 <div class="snake-game-container"> 439 <canvas id="snake-canvas" width="320" height="320"></canvas> 440 <div class="game-controls"> 441 <div class="score-display">忏ï¼<span id="snake-score">0</span></div> 442 <div class="control-buttons"> 443 <div class="win95-button" onclick="startSnakeGame()">éå§éæ²</div> 444 <div class="win95-button" onclick="pauseSnakeGame()">æ«å</div> 445 </div> 446 </div> 447 </div> 448 <!-- 游æç»æå¼¹çª --> 449 <div id="game-over-dialog" class="win95-dialog" style="display: none;"> 450 <div class="dialog-content"> 451 <div class="dialog-header"> 452 <div class="dialog-title">游æç»æ</div> 453 </div> 454 <div class="dialog-body"> 455 <p>ä½ çå¾åï¼<span id="final-score">0</span></p> 456 <p>æé«åï¼<span id="high-score">0</span></p> 457 </div> 458 <div class="dialog-footer"> 459 <button class="win95-button" onclick="closeGameOverDialog()">ç¡®å®</button> 460 <button class="win95-button" onclick="restartGame()">éæ°å¼å§</button> 461 </div> 462 </div> 463 </div> 464 <div class="status-bar"> 465 <div>就绪</div> 466 <div>æé«åï¼0</div> 467 </div> 468 </div> 469 </div> 470 471 <!-- å°éæ²çªå£ --> 472 <div class="window" id="games-window" style="top: 90px; left: 260px; width: 500px; height: 320px; display: none;"> 473 <div class="title-bar"> 474 <div class="title-bar-text"> 475 ð® å°æ¸¸æ 476 </div>
477 <div class="title-bar-controls"> 478 <div class="title-bar-button" onclick="minimizeWindow('games')">_</div> 479 <div class="title-bar-button" onclick="maximizeWindow('games')">â¡</div> 480 <div class="title-bar-button" onclick="closeWindow('games')">Ã</div> 481 </div> 482 </div> 483 <div class="window-content" style="padding: 12px;"> 484 <div class="games-grid"> 485 <div class="game-icon" onclick="openWindow('snake')"> 486 <div class="icon-image">ð</div> 487 <div class="icon-text">è´ªåè</div> 488 </div> 489 <div class="game-icon" onclick="openWindow('minesweeper')"> 490 <div class="icon-image"> 491 <img src="icon/saolei.svg" alt="æ«é·" style="width: 32px; height: 32px;"> 492 </div> 493 <div class="icon-text">æ«é·</div> 494 </div> 495 <div class="game-icon" onclick="openWindow('tetris')"> 496 <div class="icon-image">ð§©</div> 497 <div class="icon-text">ä¿ç½æ¯æ¹å</div> 498 </div> 499 <div class="game-icon" onclick="openWindow('piano')"> 500 <div class="icon-image">ð¹</div> 501 <div class="icon-text">é¢ç´</div> 502 </div> 503 <div class="game-icon" onclick="openWindow('2048')"> 504 <div class="icon-image">8ï¸â£</div> 505 <div class="icon-text">2048</div> 506 </div> 507 <div class="game-icon" onclick="openWindow('space-invaders')"> 508 <div class="icon-image">ð</div> 509 <div class="icon-text">太空侵ç¥è </div> 510 </div> 511 </div> 512 </div> 513 </div> 514 515 <!-- ä¿ç½æ¯æ¹åçªå£ --> 516 <div class="window" id="tetris-window" style="top: 70px; left: 160px; width: 380px; height: 500px; display: none;"> 517 <div class="title-bar"> 518 <div class="title-bar-text">ð§© ä¿ç½æ¯æ¹å</div> 519 <div class="title-bar-controls"> 520 <div class="title-bar-button" onclick="minimizeWindow('tetris')">_</div> 521 <div class="title-bar-button" onclick="maximizeWindow('tetris')">â¡</div> 522 <div class="title-bar-button" onclick="closeWindow('tetris')">Ã</div> 523 </div> 524 </div> 525 <div class="window-content"> 526 <div class="menu-bar"> 527 <div class="menu-item">éæ²(G)</div> 528 <div class="menu-item">è¨å®(S)</div> 529 <div class="menu-item" onclick="showAboutModal()">帮å©(H)</div> 530 </div> 531 <div class="tetris-container"> 532 <div class="tetris-side"> 533 <div class="tetris-label">忏</div> 534 <div id="tetris-score" class="tetris-value">0</div> 535 <div class="tetris-label" style="margin-top:8px;">è¡æ¸</div> 536 <div id="tetris-lines" class="tetris-value">0</div> 537 <div class="tetris-label" style="margin-top:8px;">ä¸ä¸å</div> 538 <canvas id="tetris-next" width="80" height="80"></canvas> 539 <div class="tetris-controls"> 540 <button class="win95-button" onclick="startTetrisGame()">éå§</button> 541 <button class="win95-button" onclick="pauseTetrisGame()">æ«å</button> 542 <button class="win95-button" onclick="resetTetrisGame()">éç½®</button> 543 </div> 544 </div> 545 <canvas id="tetris-canvas" width="200" height="400"></canvas> 546 </div> 547 <div class="status-bar"> 548 <div>就绪</div> 549 <div>ä½¿ç¨æ¹åéµç§»åï¼âæè½¬ï¼ç©ºç½éµå é</div> 550 </div> 551 </div> 552 </div> 553 554 <!-- é¼ç´çªå£ --> 555 <div class="window" id="piano-window" style="top: 80px; left: 180px; width: 600px; height: 300px; display: none;"> 556 <div class="title-bar"> 557 <div class="title-bar-text">ð¹ é¢ç´</div>
558 <div class="title-bar-controls"> 559 <div class="title-bar-button" onclick="minimizeWindow('piano')">_</div> 560 <div class="title-bar-button" onclick="maximizeWindow('piano')">â¡</div> 561 <div class="title-bar-button" onclick="closeWindow('piano')">Ã</div> 562 </div> 563 </div> 564 <div class="window-content"> 565 <div class="menu-bar"> 566 <div class="menu-item">æä»¶(F)</div> 567 <div class="menu-item">ç¼è¾(E)</div> 568 <div class="menu-item" onclick="showAboutModal()">帮å©(H)</div> 569 </div> 570 <div class="piano-container"> 571 <div id="piano-keys" class="piano-keys"></div> 572 </div> 573 <div class="status-bar"> 574 <div>就绪</div> 575 <div>éµç¤: Z/S/X/D/C/V/G/B/H/N/J/M/,/L/. /; /</div> 576 </div> 577 </div> 578 </div> 579 580 <!-- åçå£ç¸®çªå£ --> 581 <div class="window" id="compressor-window" style="top: 90px; left: 220px; width: 720px; height: 520px; display: none;"> 582 <div class="title-bar"> 583 <div class="title-bar-text">å¾çå缩</div> 584 <div class="title-bar-controls"> 585 <div class="title-bar-button" onclick="minimizeWindow('compressor')">_</div> 586 <div class="title-bar-button" onclick="maximizeWindow('compressor')">â¡</div> 587 <div class="title-bar-button" onclick="closeWindow('compressor')">Ã</div> 588 </div> 589 </div> 590 <div class="window-content"> 591 <div class="menu-bar"> 592 <div class="menu-item">æä»¶(F)</div> 593 <div class="menu-item">ç¼è¾(E)</div> 594 <div class="menu-item" onclick="showAboutModal()">帮å©(H)</div> 595 </div> 596 <div class="compressor-container"> 597 <div class="uploader" id="compressor-drop"> 598 <input type="file" id="compressor-file" accept="image/*" /> 599 <div class="uploader-hint">ææ½å¾çå°æ¤å¤ï¼æç¹å»éæ©</div> 600 </div> 601 <div class="controls"> 602 <div class="control-row"> 603 <label>æ ¼å¼</label> 604 <select id="compressor-format"> 605 <option value="image/jpeg">JPEG</option> 606 <option value="image/webp">WEBP</option> 607 <option value="image/png">PNG</option> 608 </select> 609 </div> 610 <div class="control-row"> 611 <label>åè´¨</label> 612 <input type="range" id="compressor-quality" min="10" max="100" value="80" /> 613 <span id="compressor-quality-label">80%</span> 614 </div> 615 <div class="control-row"> 616 <label>æå¤§å®½åº¦</label> 617 <input type="number" id="compressor-maxwidth" value="1600" min="100" step="10" /> 618 <span class="hint">ä¿ææ¯ä¾ç¼©æ¾</span> 619 </div> 620 <div class="control-row"> 621 <button class="win95-button" id="compressor-run">å¼å§å缩</button> 622 <a class="win95-button" id="compressor-download" download style="display:none;">ä¸è½½</a> 623 </div> 624 <div class="stats" id="compressor-stats">æªå è½½å¾ç</div> 625 </div> 626 <div class="preview-grid"> 627 <div class="panel"> 628 <div class="panel-title">åå¾</div> 629 <img id="compressor-original" alt="original preview" /> 630 </div> 631 <div class="panel"> 632 <div class="panel-title">å缩å</div> 633 <img id="compressor-output" alt="compressed preview" /> 634 </div> 635 </div> 636 </div> 637 </div> 638 </div> 639 </div> 640 641 <!-- 任忬 --> 642 <div class="taskbar" style="display: none;"> 643 <div class="win95-button start-button" onclick="toggleStartMenu()"> 644 å¼å§ 645 </div> 646 647 <div class="taskbar-item" id="thoughts-taskbar" onclick="focusWindow('thoughts')" style="display: none;"> 648 ð æ¥å¸¸æè 649 </div> 650 651 <div class="taskbar-item" id="about-taskbar" onclick="focusWindow('about')" style="display: none; z-index: 10;"> 652 ð¤ å ³äºæ 653 </div> 654 655 <div class="taskbar-item" id="contact-taskbar" onclick="focusWindow('contact')" style="display: none; z-index: 10;"> 656 ð§ èç³»æ¹å¼ 657 </div> 658 659 <div class="taskbar-item" id="games-taskbar" onclick="focusWindow('games')" style="display: none; z-index: 10;"> 660 ð® å°æ¸¸æ 661 </div> 662 663 <div class="taskbar-item" id="spotify-taskbar" onclick="focusWindow('spotify')" style="display: none; z-index: 10;"> 664 ðµ 鳿¨ææ¾å¨ 665 </div> 666 667 <div class="taskbar-item" id="recycle-taskbar" onclick="focusWindow('recycle')" style="display: none; z-index: 10;"> 668 ðï¸ åæ¶ç« 669 </div> 670 671 <div class="taskbar-item" id="snake-taskbar" onclick="focusWindow('snake')" style="display: none; z-index: 10;"> 672 ð è´ªåè 673 </div> 674 675 <div class="taskbar-item" id="minesweeper-taskbar" onclick="focusWindow('minesweeper')" style="display: none; z-index: 10;"> 676 ð£ æ«é· 677 </div> 678 679 <div class="taskbar-item" id="album-taskbar" onclick="focusWindow('album')" style="display: none; z-index: 10;"> 680 ð¼ï¸ ç¸å 681 </div> 682 683 <div class="taskbar-item" id="calculator-taskbar" onclick="focusWindow('calculator')" style="display: none; z-index: 10;"> 684 𧮠计ç®å¨ 685 </div> 686 687 <div class="taskbar-item" id="practice-taskbar" onclick="focusWindow('practice')" style="display: none; z-index: 10;"> 688 ð ç»ä¹ 689 </div> 690 691 <div class="taskbar-item" id="tetris-taskbar" onclick="focusWindow('tetris')" style="display: none; z-index: 10;"> 692 ð§© ä¿ç½æ¯æ¹å 693 </div> 694 <div class="taskbar-item" id="piano-taskbar" onclick="focusWindow('piano')" style="display: none; z-index: 10;"> 695 ð¹ é¼ç´ 696 </div> 697 <div class="taskbar-item" id="compressor-taskbar" onclick="focusWindow('compressor')" style="display: none; z-index: 10;"> 698 ðï¸ åçå£ç¸® 699 </div> 700 <div class="taskbar-item" id="bookmarks-taskbar" onclick="focusWindow('bookmarks')" style="display: none; z-index: 10;"> 701 ð ç½åæ¶è 702 </div> 703 <div class="taskbar-item" id="ie-taskbar" onclick="focusWindow('ie')" style="display: none; z-index: 10;"> 704 ð IE æµè§å¨ 705 </div> 706 707 <div class="taskbar-item" id="2048-taskbar" onclick="focusWindow('2048')" style="display: none; z-index: 10;"> 708 ð® 2048 709 </div> 710 711 712 713 714 <div class="taskbar-clock" id="clock"> 715 12:00:00 716 </div> 717 </div> 718 719 <!-- éå§é¸å® --> 720 <div class="start-menu" id="start-menu" style="display: none;"> 721 <div class="start-menu-sidebar"> 722 Windows <span style="font-weight: normal;">95</span> 723 </div> 724 <div class="start-menu-content"> 725 <div class="start-menu-item" onclick="openWindow('thoughts')"> 726 ð æ¥å¸¸æè 727 </div> 728 <div class="start-menu-item" onclick="openWindow('about')"> 729 ð¤ å ³äºæ 730 </div> 731 732 <div class="start-menu-item" onclick="openWindow('contact')"> 733 ð§ èç³»æ¹å¼ 734 </div> 735 <div class="start-menu-separator"></div> 736 <div class="start-menu-item" onclick="openWindow('games')"> 737 ð® å°æ¸¸æ 738 </div> 739 <div class="start-menu-item" onclick="openWindow('spotify')"> 740 ðµ 鳿¨ææ¾å¨ 741 </div> 742 743 <div class="start-menu-item" onclick="openWindow('album')"> 744 ð¼ï¸ ç¸å 745 </div> 746 <div class="start-menu-item" onclick="openWindow('notes')"> 747 ð è¨äºæ¬ 748 </div> 749 750 <div class="start-menu-item" onclick="openWindow('calculator')"> 751 𧮠计ç®å¨ 752 </div> 753 <div class="start-menu-item" onclick="openWindow('practice')"> 754 ð ç»ä¹ 755 </div> 756 757 <div class="start-menu-item" onclick="openWindow('compressor')"> 758 ðï¸ åçå£ç¸® 759 </div> 760 <div class="start-menu-item" onclick="openWindow('bookmarks')"> 761 ð ç½åæ¶è 762 </div> 763 <div class="start-menu-separator"></div> 764 <div class="start-menu-item" onclick="openWindow('recycle')"> 765 ðï¸ åæ¶ç« 766 </div> 767 <div class="start-menu-separator"></div> 768 <div class="start-menu-item"> 769 âï¸ è¨å® 770 </div> 771 <div class="start-menu-item" onclick="showAboutModal(); toggleStartMenu()"> 772 â 說æ 773 </div> 774 <div class="start-menu-separator"></div> 775 <div class="start-menu-item" onclick="shutdown(); toggleStartMenu()"> 776 ðª éæ© 777 </div> 778 </div> 779 </div> 780 781 <!-- ç¸åçªå£ --> 782 <div class="window" id="album-window" style="top: 50px; left: 100px; width: 800px; height: 600px; display: none;"> 783 <div class="title-bar"> 784 <div class="title-bar-text"> 785 ð¼ï¸ ç¸å 786 </div>
787 <div class="title-bar-controls"> 788 <div class="title-bar-button" onclick="minimizeWindow('album')">_</div> 789 <div class="title-bar-button" onclick="maximizeWindow('album')">â¡</div> 790 <div class="title-bar-button" onclick="closeWindow('album')">Ã</div> 791 </div> 792 </div> 793 <div class="window-content"> 794 <div class="menu-bar"> 795 <div class="menu-item">æä»¶(F)</div> 796 <div class="menu-item">ç¼è¾(E)</div> 797 <div class="menu-item">æ¥ç(V)</div> 798 <div class="menu-item">帮å©(H)</div> 799 </div> 800 <div class="album-container"> 801 <!-- å¾çç½æ ¼å°å¨è¿éå¨æçæ --> 802 </div> 803 <div class="image-viewer"> 804 <div class="viewer-content"> 805 <img src="" alt="Full size image"> 806 <button class="viewer-close" onclick="closeImageViewer()">Ã</button> 807 <button class="viewer-nav viewer-prev" onclick="showPrevImage()">â®</button> 808 <button class="viewer-nav viewer-next" onclick="showNextImage()">â¯</button> 809 </div> 810 </div> 811 <div class="status-bar"> 812 <div>就绪</div> 813 </div> 814 </div> 815 </div> 816 817 <!-- ç»ä¹ ç¸åçªå£ --> 818 <div class="window" id="practice-window" style="top: 50px; left: 100px; width: 800px; height: 600px; display: none;"> 819 <div class="title-bar"> 820 <div class="title-bar-text"> 821 ð ç»ä¹ 822 </div> 823 <div class="title-bar-controls"> 824 <div class="title-bar-button" onclick="minimizeWindow('practice')">_</div> 825 <div class="title-bar-button" onclick="maximizeWindow('practice')">â¡</div> 826 <div class="title-bar-button" onclick="closeWindow('practice')">Ã</div> 827 </div> 828 </div> 829 <div class="window-content"> 830 <div class="menu-bar"> 831 <div class="menu-item">æä»¶(F)</div> 832 <div class="menu-item">ç¼è¾(E)</div> 833 <div class="menu-item">æ¥ç(V)</div> 834 <div class="menu-item">帮å©(H)</div> 835 </div> 836 <div class="practice-container"> 837 <!-- å¾çç½æ ¼å°å¨è¿éå¨æçæ --> 838 </div> 839 <div class="image-viewer"> 840 <div class="viewer-content"> 841 <img src="" alt="Full size image"> 842 <button class="viewer-close" onclick="closePracticeImageViewer()">Ã</button> 843 <button class="viewer-nav viewer-prev" onclick="showPrevPracticeImage()">â®</button> 844 <button class="viewer-nav viewer-next" onclick="showNextPracticeImage()">â¯</button> 845 </div> 846 </div> 847 <div class="status-bar"> 848 <div>就绪</div> 849 </div> 850 </div> 851 </div> 852 853 <!-- ç½åæ¶èçªå£ --> 854 <div class="window" id="bookmarks-window" style="top: 70px; left: 220px; width: 720px; height: 520px; display: none;"> 855 <div class="title-bar"> 856 <div class="title-bar-text">ð ç½åæ¶è</div> 857 <div class="title-bar-controls"> 858 <div class="title-bar-button" onclick="minimizeWindow('bookmarks')">_</div> 859 <div class="title-bar-button" onclick="maximizeWindow('bookmarks')">â¡</div> 860 <div class="title-bar-button" onclick="closeWindow('bookmarks')">Ã</div> 861 </div> 862 </div> 863 <div class="window-content"> 864 <div class="menu-bar"> 865 <div class="menu-item">æä»¶(F)</div> 866 <div class="menu-item">ç¼è¾(E)</div> 867 <div class="menu-item" onclick="showAboutModal()">帮å©(H)</div> 868 </div> 869 <div style="flex: 1; min-height: 0; display: flex;"> 870 <iframe id="bookmarks-iframe" title="bookmarks" style="border: 0; width: 100%; height: 100%; background: #dcdcdc;"></iframe> 871 </div> 872 <div class="status-bar"> 873 <div>就绪</div> 874 <div>å ±è¥å¹²é¾æ¥</div> 875 </div> 876 </div> 877 </div> 878 879 <!-- 计ç®å¨çªå£ --> 880 <div class="window" id="calculator-window" style="top: 50px; left: 100px; width: 280px; height: 400px; display: none;"> 881 <div class="title-bar"> 882 <div class="title-bar-text"> 883 𧮠计ç®å¨ 884 </div>
885 <div class="title-bar-controls"> 886 <div class="title-bar-button" onclick="minimizeWindow('calculator')">_</div> 887 <div class="title-bar-button" onclick="maximizeWindow('calculator')">â¡</div> 888 <div class="title-bar-button" onclick="closeWindow('calculator')">Ã</div> 889 </div> 890 </div> 891 <div class="window-content"> 892 <div class="menu-bar"> 893 <div class="menu-item">æ¥ç(V)</div> 894 <div class="menu-item">ç¼è¾(E)</div> 895 <div class="menu-item">帮å©(H)</div> 896 </div> 897 <div class="calculator-container"> 898 <div class="calculator-display"> 899 <input type="text" id="calculator-input" readonly value="0"> 900 </div> 901 <div class="calculator-buttons"> 902 <div class="calculator-row"> 903 <button class="win95-button calc-btn" onclick="clearCalculator()">C</button> 904 <button class="win95-button calc-btn" onclick="clearEntry()">CE</button> 905 <button class="win95-button calc-btn" onclick="backspace()">â«</button> 906 <button class="win95-button calc-btn operator" onclick="setOperator('/')">/</button> 907 </div> 908 <div class="calculator-row"> 909 <button class="win95-button calc-btn" onclick="appendNumber(7)">7</button> 910 <button class="win95-button calc-btn" onclick="appendNumber(8)">8</button> 911 <button class="win95-button calc-btn" onclick="appendNumber(9)">9</button> 912 <button class="win95-button calc-btn operator" onclick="setOperator('*')">*</button> 913 </div> 914 <div class="calculator-row"> 915 <button class="win95-button calc-btn" onclick="appendNumber(4)">4</button> 916 <button class="win95-button calc-btn" onclick="appendNumber(5)">5</button> 917 <button class="win95-button calc-btn" onclick="appendNumber(6)">6</button> 918 <button class="win95-button calc-btn operator" onclick="setOperator('-')">-</button> 919 </div> 920 <div class="calculator-row"> 921 <button class="win95-button calc-btn" onclick="appendNumber(1)">1</button> 922 <button class="win95-button calc-btn" onclick="appendNumber(2)">2</button> 923 <button class="win95-button calc-btn" onclick="appendNumber(3)">3</button> 924 <button class="win95-button calc-btn operator" onclick="setOperator('+')">+</button> 925 </div> 926 <div class="calculator-row"> 927 <button class="win95-button calc-btn" onclick="appendNumber(0)">0</button> 928 <button class="win95-button calc-btn" onclick="appendDecimal()">.</button> 929 <button class="win95-button calc-btn" onclick="toggleSign()">±</button> 930 <button class="win95-button calc-btn operator" onclick="calculate()">=</button> 931 </div> 932 </div> 933 </div> 934 <div class="status-bar"> 935 <div>就绪</div> 936 </div> 937 </div> 938 </div> 939 940 <!-- IE ç覽å¨çªå£ --> 941 <div class="window" id="ie-window" style="top: 60px; left: 160px; width: 860px; height: 600px; display: none;"> 942 <div class="title-bar"> 943 <div class="title-bar-text">ð IE æµè§å¨</div> 944 <div class="title-bar-controls"> 945 <div class="title-bar-button" onclick="minimizeWindow('ie')">_</div> 946 <div class="title-bar-button" onclick="maximizeWindow('ie')">â¡</div> 947 <div class="title-bar-button" onclick="closeWindow('ie')">Ã</div> 948 </div> 949 </div> 950 <div class="window-content"> 951 <div class="menu-bar"> 952 <div class="menu-item">æä»¶(F)</div> 953 <div class="menu-item">æ¥ç(V)</div> 954 <div class="menu-item" onclick="showAboutModal()">帮å©(H)</div> 955 </div> 956 <div class="toolbar" style="display: flex; align-items: center; gap: 6px; padding: 6px; background: #dcdcdc; border-bottom: 1px solid #808080;"> 957 <button class="win95-button" id="ie-back" title="ä¸ä¸é ">â</button> 958 <button class="win95-button" id="ie-forward" title="ä¸ä¸é ">â</button> 959 <button class="win95-button" id="ie-refresh" title="éæ°æ´ç">â»</button> 960 <button class="win95-button" id="ie-home" title="é¦é ">ð </button> 961 <input id="ie-address-input" type="text" placeholder="è¼¸å ¥ç¶²åæééµå" style="flex: 1; height: 22px; border: 1px inset #808080; background: #fff; padding: 2px 6px;" /> 962 <button class="win95-button" id="ie-go">åå¾</button> 963 <button class="win95-button" id="ie-open-external" title="卿°åé éå">æ°åé </button> 964 </div> 965 <div style="display: flex; flex-direction: column; height: 100%; min-height: 0;"> 966 <iframe id="ie-iframe" title="ie-browser" sandbox="allow-scripts allow-forms allow-same-origin allow-popups allow-top-navigation-by-user-activation" style="border: 0; width: 100%; height: 100%; background: #ffffff;"></iframe> 967 </div> 968 <div class="status-bar"> 969 <div id="ie-status-left">就绪</div> 970 <div id="ie-status-right" style="overflow: hidden; text-overflow: ellipsis; white-space: nowrap;"></div> 971 </div> 972 </div> 973 </div> 974 975 976 977 <!-- éç¨å ³äºå¼¹çª --> 978 <div id="about-modal" class="modal" style="display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #c0c0c0; border: 2px solid #808080; padding: 0; z-index: 1000;"> 979 <div class="modal-content" style="width: 300px;"> 980 <div class="title-bar" style="padding: 3px 2px 3px 3px; background: #000080; color: white;"> 981 <div class="title-bar-text">About Friday OS</div>
982 <div class="title-bar-controls"> 983 <div class="title-bar-button" onclick="hideAboutModal()" style="color: white; cursor: pointer;">Ã</div> 984 </div> 985 </div> 986 <div style="padding: 20px; font-size: 12px;"> 987 <p style="margin: 0 0 10px 0;">Author: fang</p> 988 <p style="margin: 0 0 10px 0;">Made with Cursor</p> 989 <p style="margin: 0 0 10px 0;">Version: 1.0.0</p> 990 <p style="margin: 0;">© 2025 All rights reserved</p> 991 <div style="text-align: center; margin-top: 20px;"> 992 <button class="win95-button" onclick="hideAboutModal()">OK</button> 993 </div> 994 </div> 995 </div> 996 </div> 997 998 <!-- å¤é¨ JavaScript æä»¶ --> 999
999<script src="js/main.js"></script>
999 1000
1000<script src="js/windowManager.js"></script>
1000 1001
1001<script src="js/contextMenu.js"></script>
1001 1002
1002<script src="js/apps/thoughts.js"></script>
1002 1003
1003<script src="js/apps/snake.js"></script>
1003 1004
1004<script src="js/apps/notepad.js"></script>
1004 1005
1005<script src="js/apps/calculator.js"></script>
1005 1006
1006<script src="js/apps/album.js"></script>
1006 1007
1007<script src="js/apps/practice.js"></script>
1007 1008
1008<script src="js/apps/minesweeper.js"></script>
1008 1009
1009<script src="js/apps/tetris.js"></script>
1009 1010
1010<script src="js/apps/piano.js"></script>
1010 1011
1011<script src="js/apps/imageCompressor.js"></script>
1011 1012
1012<script src="js/sounds.js"></script>
1012 1013
1013<script src="js/login.js"></script>
1013 1014 1015
1015<script src="js/apps/ie.js"></script>
1015 1016
1016<script src="js/apps/bookmarks.js"></script>
1016 1017
1017<script src="js/apps/2048.js"></script>
1017 1018
1018<script src="js/apps/spaceInvaders.js"></script>
1018 1019 1020 1021 1022 <!-- 2048游æçªå£ --> 1023 <div class="window" id="2048-window" style="top: 80px; left: 150px; width: 350px; height: auto; display: none;"> 1024 <div class="title-bar"> 1025 <div class="title-bar-text"> 1026 ð® 2048 1027 </div> 1028 <div class="title-bar-controls"> 1029 <div class="title-bar-button" onclick="minimizeWindow('2048')">_</div> 1030 <div class="title-bar-button" onclick="maximizeWindow('2048')">â¡</div> 1031 <div class="title-bar-button" onclick="closeWindow('2048')">Ã</div> 1032 </div> 1033 </div> 1034 <div class="window-content"> 1035 <div class="menu-bar"> 1036 <div class="menu-item">游æ(G)</div> 1037 <div class="menu-item">帮å©(H)</div> 1038 </div> 1039 <div class="game-2048-container"> 1040 <div class="game-2048-header"> 1041 <h1 class="game-2048-title">2048</h1> 1042 <div class="game-2048-scores"> 1043 <div class="score-container"> 1044 <div class="score-label">åæ°</div> 1045 <div class="score-value" id="game-2048-score">0</div> 1046 </div> 1047 <div class="score-container"> 1048 <div class="score-label">æä½³</div> 1049 <div class="score-value" id="game-2048-best-score">0</div> 1050 </div> 1051 </div> 1052 </div> 1053 <div class="game-2048-instructions"> 1054 ä½¿ç¨æ¹åé®ãé¼ æ æå¨æè§¦æ¸æ»å¨æ¥ç§»å¨æ¹åï¼ç¸åæ°åçæ¹åä¼åå¹¶ï¼ç®æ æ¯è¾¾å°2048ï¼ 1055 </div> 1056 <div class="game-2048-board" id="game-2048-board"></div> 1057 <div class="game-2048-controls"> 1058 <button class="game-2048-button" onclick="restart2048()">éæ°å¼å§</button> 1059 </div> 1060 <div class="game-2048-help"> 1061 ð® æ¹å鮿§å¶ | ð±ï¸ é¼ æ æå¨ | ð è§¦æ¸æ»å¨ 1062 </div> 1063 </div> 1064 <div class="status-bar"> 1065 <div>就绪</div> 1066 <div>ä½¿ç¨æ¹å鮿§å¶</div> 1067 </div> 1068 </div> 1069 </div> 1070 1071 1072 1073 <!-- æ«é·æ¸¸æçªå£ --> 1074 <div class="window" id="minesweeper-window" style="top: 50px; left: 100px; width: auto; height: 460px; display: none;"> 1075 <div class="title-bar"> 1076 <div class="title-bar-text"> 1077 ð£ æ«é· 1078 </div> 1079 <div class="title-bar-controls"> 1080 <div class="title-bar-button" onclick="minimizeWindow('minesweeper')">_</div> 1081 <div class="title-bar-button" onclick="maximizeWindow('minesweeper')">â¡</div> 1082 <div class="title-bar-button" onclick="closeWindow('minesweeper')">Ã</div> 1083 </div> 1084 </div> 1085 <div class="window-content"> 1086 <div class="menu-bar"> 1087 <div class="menu-item">游æ(G)</div> 1088 <div class="menu-item">设置(S)</div> 1089 <div class="menu-item" onclick="showAboutModal()">帮å©(H)</div> 1090 </div> 1091 <div id="minesweeper-container"></div> 1092 <div class="status-bar"> 1093 <div>就绪</div> 1094 <div>æé«åï¼0</div> 1095 </div> 1096 </div> 1097 </div> 1098 1099 1100 <!-- 太空侵ç¥è 游æçªå£ --> 1101 <div class="window" id="space-invaders-window" style="top: 50px; left: 100px; width: auto; height: auto; display: none;"> 1102 <div class="title-bar"> 1103 <div class="title-bar-text"> 1104 ð 太空侵ç¥è 1105 </div> 1106 <div class="title-bar-controls"> 1107 <div class="title-bar-button" onclick="minimizeWindow('space-invaders')">_</div> 1108 <div class="title-bar-button" onclick="maximizeWindow('space-invaders')">â¡</div> 1109 <div class="title-bar-button" onclick="closeWindow('space-invaders')">Ã</div> 1110 </div> 1111 </div> 1112 <div class="window-content"> 1113 <div class="menu-bar"> 1114 <div class="menu-item">游æ(G)</div> 1115 <div class="menu-item">帮å©(H)</div> 1116 </div> 1117 <div class="space-invaders-container"> 1118 <div class="space-invaders-ui"> 1119 <div>SCORE: <span id="space-score">00000</span></div> 1120 <div>LEVEL: <span id="space-level">LV 1</span></div> 1121 <div>LIVES: <span id="space-lives">â¥â¥â¥</span></div> 1122 </div>
1123 <canvas id="space-invaders-canvas" width="480" height="600"></canvas> 1124 <div class="space-controls-hint">â â ç§»å¨ | SPACE å°å»</div> 1125 1126 <!-- å¼å§çé¢é®ç½© --> 1127 <div id="space-start-screen" class="space-overlay" style="display: block;"> 1128 <h2>SPACE INVADERS</h2> 1129 <p style="margin-bottom: 20px;">æ¶çææå¤æäººï¼</p> 1130 <button class="space-btn" onclick="startSpaceGame()">START GAME</button> 1131 </div> 1132 1133 <!-- 游æç»æé®ç½© --> 1134 <div id="space-gameover-screen" class="space-overlay"> 1135 <h2>GAME OVER</h2> 1136 <p style="margin-bottom: 20px;">FINAL SCORE: <span id="space-gameover-score">0</span></p> 1137 <button class="space-btn" onclick="resetSpaceGame(); startSpaceGame()">TRY AGAIN</button> 1138 </div> 1139 </div> 1140 <div class="status-bar"> 1141 <div>就绪</div> 1142 <div>æç©ºæ ¼é®å¼å§</div> 1143 </div> 1144 </div> 1145 </div> 1146 1147 <!-- BSOD Screen --> 1148 <div id="bsod" class="bsod-screen"> 1149 <div class="bsod-title">Windows</div> 1150 <div class="bsod-content"> 1151 <div class="bsod-text">A fatal exception 0E has occurred at 0028:C0011E36 in VXD VMM(01) + 00010E36. The current application will be terminated.</div> 1152 <ul class="bsod-list"> 1153 <li>Press any key to terminate the current application.</li> 1154 <li>Press CTRL+ALT+DEL again to restart your computer. You will lose any unsaved information in all applications.</li> 1155 </ul> 1156 <div class="bsod-center">Press any key to continue _</div> 1157 </div> 1158 </div> 1159 1160</body> 1161</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.