Lashtw commited on
Commit
b0e725d
·
verified ·
1 Parent(s): 07762af

Upload 2 files

Browse files
Files changed (2) hide show
  1. function.html +45 -0
  2. sequence.html +113 -91
function.html CHANGED
@@ -54,6 +54,51 @@
54
  z-index: 0;
55
  }
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  /* Tech UI Styling */
58
  .glass-panel {
59
  background: rgba(15, 23, 42, 0.95);
 
54
  z-index: 0;
55
  }
56
 
57
+ /* Dialogue Box */
58
+ #dialogue-box {
59
+ position: fixed;
60
+ bottom: 2rem;
61
+ left: 2rem;
62
+ width: 450px;
63
+ max-width: 90%;
64
+ z-index: 40;
65
+ transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
66
+ }
67
+
68
+ @media (max-width: 768px) {
69
+ #dialogue-box {
70
+ left: 50%;
71
+ transform: translateX(-50%);
72
+ bottom: 1rem;
73
+ width: 95%;
74
+ }
75
+ }
76
+
77
+ #dialogue-box.translate-y-full {
78
+ transform: translateY(150%);
79
+ }
80
+
81
+ /* Banner */
82
+ #formula-banner {
83
+ position: fixed;
84
+ top: 2rem;
85
+ right: 2rem;
86
+ width: 380px;
87
+ z-index: 35;
88
+ transition: opacity 0.5s;
89
+ }
90
+
91
+ @media (max-width: 768px) {
92
+ #formula-banner {
93
+ top: 0.5rem;
94
+ right: 0.5rem;
95
+ width: 200px;
96
+ /* Smaller on mobile */
97
+ transform: scale(0.8);
98
+ transform-origin: top right;
99
+ }
100
+ }
101
+
102
  /* Tech UI Styling */
103
  .glass-panel {
104
  background: rgba(15, 23, 42, 0.95);
sequence.html CHANGED
@@ -388,41 +388,43 @@
388
 
389
  <!-- Quiz Screen -->
390
  <div id="screen-quiz"
391
- class="absolute inset-0 flex flex-col items-center justify-center bg-slate-900/95 backdrop-blur-md z-50 hidden">
392
- <div class="glass-panel p-8 rounded-2xl max-w-2xl w-[95%] border-t-4 border-amber-500">
393
- <h2 class="text-3xl font-bold text-amber-400 mb-4">✨ 數列觀念檢測</h2>
394
- <div class="bg-slate-800/50 p-6 rounded-lg mb-6 text-left space-y-4 border border-slate-700">
395
- <p class="text-xl text-slate-200"><strong class="text-amber-400 text-2xl">公差</strong> 的意思是:<span
 
396
  class="border-b-2 border-amber-500">後項 - 前項</span> (固定差距)。</p>
397
  <div class="pl-4 border-l-4 border-slate-600">
398
- <p class="text-lg text-slate-300 font-bold mb-2">範例:首項 2,公差 3</p>
399
- <p class="text-xl font-mono text-cyan-300 leading-relaxed">➜ 2, 5, 8, 11...</p>
400
- <p class="text-lg font-mono text-slate-400 leading-relaxed">(2, 2+3, 2+3+3, 2+3+3+3...)</p>
 
401
  </div>
402
  </div>
403
  <div class="mb-6">
404
- <p class="text-xl mb-4 font-bold">請問:若首項是 <span id="quiz-start-val"
405
- class="text-amber-400 text-3xl mx-1">?</span>,公差是 <span id="quiz-diff-val"
406
- class="text-amber-400 text-3xl mx-1">?</span></p>
407
  <p class="mb-2 text-slate-300">數列的前四項會是什麼?</p>
408
  <div class="flex justify-center items-center gap-2 md:gap-4 flex-wrap">
409
- <input type="number" id="quiz-1" class="math-input w-20 h-14 md:w-24 md:h-16 text-2xl"
410
- placeholder="?">
411
  <span class="text-slate-500 font-bold text-xl">,</span>
412
- <input type="number" id="quiz-2" class="math-input w-20 h-14 md:w-24 md:h-16 text-2xl"
413
- placeholder="?">
414
  <span class="text-slate-500 font-bold text-xl">,</span>
415
- <input type="number" id="quiz-3" class="math-input w-20 h-14 md:w-24 md:h-16 text-2xl"
416
- placeholder="?">
417
  <span class="text-slate-500 font-bold text-xl">,</span>
418
- <input type="number" id="quiz-4" class="math-input w-20 h-14 md:w-24 md:h-16 text-2xl"
419
- placeholder="?">
420
  <span class="text-slate-500 font-bold text-xl">...</span>
421
  </div>
422
  <p id="quiz-error" class="text-red-400 mt-2 text-lg h-6 font-bold"></p>
423
  </div>
424
  <button onclick="checkQuiz()"
425
- class="w-full py-4 rounded-xl bg-gradient-to-r from-amber-600 to-orange-600 hover:from-amber-500 hover:to-orange-500 text-white font-bold text-2xl transition-all shadow-lg active:scale-95 border border-amber-400/30">送出答案
426
  (SUBMIT)</button>
427
  </div>
428
  </div>
@@ -430,96 +432,116 @@
430
  <!-- Mission Screen -->
431
  <div id="screen-mission"
432
  class="absolute inset-0 flex flex-col items-center justify-center bg-slate-900/90 backdrop-blur-md z-50 hidden">
433
- <div class="glass-panel p-8 rounded-2xl text-center border-t-4 border-amber-500 max-w-lg w-[90%]">
434
  <h3 class="text-amber-300 tracking-widest mb-4">任務開始</h3>
435
- <h1 class="text-4xl font-bold mb-6 text-white">尋找 <span id="mission-highlight"
436
  class="text-amber-400 drop-shadow-md"></span></h1>
437
- <p class="text-slate-300 mb-6 leading-relaxed">地板會依照規律生成。<br>只要符合此規律的數字都是安全的。<br>蒐集完數字後,需要<span
 
438
  class="text-yellow-400 font-bold border-b border-yellow-400">建造階梯</span>才能進入城堡。</p>
439
  <button onclick="confirmMission()"
440
- class="w-full py-4 rounded-xl bg-amber-600 hover:bg-amber-500 text-white font-bold text-xl shadow-[0_0_15px_rgba(245,158,11,0.4)] transition-all active:scale-95">出發
441
  (START)</button>
442
  </div>
443
  </div>
444
 
445
  <!-- Ritual UI -->
446
  <div id="screen-ritual"
447
- class="absolute inset-0 hidden z-40 pointer-events-auto flex flex-col items-center justify-end pb-4 md:pb-10 fade-in">
448
- <div class="flex-1 w-full"><!-- Spacer for canvas --></div>
449
- <div class="ritual-content-wrapper">
450
- <div id="ritual-step-1" class="transition-all duration-500 mb-4">
 
451
  <button onclick="triggerRitualAnimation()"
452
- class="btn-magic px-10 py-4 rounded-full bg-gradient-to-r from-amber-500 to-orange-600 text-white font-bold text-xl border-4 border-white/20 shadow-[0_0_20px_rgba(245,158,11,0.6)] hover:scale-105 transition-transform">✨
453
  施展分身術</button>
454
  </div>
455
- <div id="ritual-step-2"
456
- class="glass-panel p-4 rounded-2xl w-[95%] hidden border border-amber-500 transition-all">
457
- <div class="original-content">
458
- <h3 class="text-lg font-bold text-amber-400 mb-2">步驟 1:觀察長方形邊長</h3>
459
- <div class="flex flex-col md:flex-row gap-3 justify-center items-center">
460
- <div class="bg-slate-800/50 p-2 rounded-lg flex items-center gap-2 border border-slate-600">
461
- <span class="text-amber-300 font-bold text-sm">寬度</span>
462
- <input type="number" id="rit-start" class="math-input w-14 h-10 text-lg"
463
- placeholder="">
464
- <span class="text-white">+</span>
465
- <input type="number" id="rit-end" class="math-input w-14 h-10 text-lg" placeholder="末">
466
- </div>
467
- <div class="bg-slate-800/50 p-2 rounded-lg flex items-center gap-2 border border-slate-600">
468
- <span class="text-yellow-300 font-bold text-sm">項數</span>
469
- <input type="number" id="rit-n" class="math-input w-14 h-10 text-lg" placeholder="n">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
470
  </div>
471
- <button id="btn-rit-2" onclick="checkRitualDim()"
472
- class="px-6 py-2 rounded-lg bg-amber-600 hover:bg-amber-500 text-white font-bold shadow-lg">確認</button>
473
  </div>
474
- <p id="ritual-msg-1" class="text-red-400 mt-1 text-sm h-4 text-center"></p>
475
- </div>
476
- <div class="summary-content hidden">
477
- <span class="text-green-400 font-bold">✅ 步驟 1 完成</span>
478
- <span class="text-slate-300 text-sm" id="summary-dim"></span>
479
- </div>
480
- </div>
481
- <div id="ritual-step-3"
482
- class="glass-panel p-4 rounded-2xl w-[95%] hidden border border-green-500 transition-all">
483
- <div class="original-content">
484
- <h3 class="text-lg font-bold text-green-400 mb-2">步驟 2:計算長方形總數</h3>
485
- <div class="flex items-center justify-center gap-3">
486
- <span class="text-sm text-slate-300">總磚塊數 (寬×高) = </span>
487
- <input type="number" id="rit-total" class="math-input w-24 h-10 text-lg">
488
- <button id="btn-rit-3" onclick="checkRitualTotal()"
489
- class="px-6 py-2 rounded-lg bg-green-600 hover:bg-green-500 text-white font-bold shadow-lg">確認</button>
490
  </div>
491
- <p id="ritual-msg-2" class="text-red-400 mt-1 text-sm h-4 text-center"></p>
492
  </div>
493
- <div class="summary-content hidden">
494
- <span class="text-green-400 font-bold">✅ 步驟 2 完成</span>
495
- <span class="text-slate-300 text-sm" id="summary-total"></span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
496
  </div>
497
- </div>
498
- <div id="ritual-step-4"
499
- class="glass-panel p-4 rounded-2xl w-[95%] hidden border border-yellow-500 transition-all">
500
- <h3 class="text-lg font-bold text-yellow-400 mb-2">步驟 3:求原本階梯總和</h3>
501
- <p class="text-slate-300 mb-2 text-center text-xs">原本階梯是長方形的 <span
502
- class="text-amber-400 font-bold">一半</span></p>
503
- <div class="flex items-center justify-center gap-3">
504
- <span class="text-sm font-bold text-amber-300">階梯總和 = </span>
505
- <input type="number" id="rit-final" class="math-input w-24 h-10 text-lg">
506
- <button id="btn-rit-4" onclick="checkRitualFinal()"
507
- class="px-6 py-2 rounded-lg bg-amber-600 hover:bg-amber-500 text-white font-bold shadow-lg">完成</button>
 
 
 
508
  </div>
509
- <p id="ritual-msg-3" class="text-red-400 mt-1 text-sm h-4 text-center"></p>
510
- </div>
511
- <div id="ritual-step-5" class="glass-panel p-4 rounded-2xl w-[95%] hidden text-center">
512
- <h3
513
- class="text-2xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-yellow-300 to-red-400 mb-2">
514
- 計算完成!</h3>
515
- <p class="text-lg font-black text-yellow-400 mt-2 mb-4 leading-relaxed bg-slate-800 p-2 rounded">
516
- 階梯已生成!快爬上去升起旗幟吧!
517
- </p>
518
- <div class="flex gap-4 justify-center">
519
- <button onclick="finishRitualAndBuild()"
520
- class="px-8 py-3 rounded-lg bg-green-600 hover:bg-green-500 font-bold text-white text-xl shadow-lg animate-bounce">
521
- 前往城堡
522
- </button>
 
523
  </div>
524
  </div>
525
  </div>
 
388
 
389
  <!-- Quiz Screen -->
390
  <div id="screen-quiz"
391
+ class="absolute inset-0 flex flex-col items-center justify-center bg-slate-900/95 backdrop-blur-md z-50 hidden overflow-y-auto py-8">
392
+ <div class="glass-panel p-6 md:p-8 rounded-2xl w-[95%] max-w-2xl border-t-4 border-amber-500 my-auto">
393
+ <h2 class="text-2xl md:text-3xl font-bold text-amber-400 mb-4">✨ 數列觀念檢測</h2>
394
+ <div class="bg-slate-800/50 p-4 md:p-6 rounded-lg mb-6 text-left space-y-4 border border-slate-700">
395
+ <p class="text-lg md:text-xl text-slate-200"><strong
396
+ class="text-amber-400 text-xl md:text-2xl">公差</strong> 的意思是:<span
397
  class="border-b-2 border-amber-500">後項 - 前項</span> (固定差距)。</p>
398
  <div class="pl-4 border-l-4 border-slate-600">
399
+ <p class="text-base md:text-lg text-slate-300 font-bold mb-2">範例:首項 2,公差 3</p>
400
+ <p class="text-lg md:text-xl font-mono text-cyan-300 leading-relaxed">➜ 2, 5, 8, 11...</p>
401
+ <p class="text-base md:text-lg font-mono text-slate-400 leading-relaxed">(2, 2+3, 2+3+3,
402
+ 2+3+3+3...)</p>
403
  </div>
404
  </div>
405
  <div class="mb-6">
406
+ <p class="text-lg md:text-xl mb-4 font-bold">請問:若首項是 <span id="quiz-start-val"
407
+ class="text-amber-400 text-2xl md:text-3xl mx-1">?</span>,公差是 <span id="quiz-diff-val"
408
+ class="text-amber-400 text-2xl md:text-3xl mx-1">?</span></p>
409
  <p class="mb-2 text-slate-300">數列的前四項會是什麼?</p>
410
  <div class="flex justify-center items-center gap-2 md:gap-4 flex-wrap">
411
+ <input type="number" id="quiz-1"
412
+ class="math-input w-16 h-12 md:w-24 md:h-16 text-xl md:text-2xl" placeholder="?">
413
  <span class="text-slate-500 font-bold text-xl">,</span>
414
+ <input type="number" id="quiz-2"
415
+ class="math-input w-16 h-12 md:w-24 md:h-16 text-xl md:text-2xl" placeholder="?">
416
  <span class="text-slate-500 font-bold text-xl">,</span>
417
+ <input type="number" id="quiz-3"
418
+ class="math-input w-16 h-12 md:w-24 md:h-16 text-xl md:text-2xl" placeholder="?">
419
  <span class="text-slate-500 font-bold text-xl">,</span>
420
+ <input type="number" id="quiz-4"
421
+ class="math-input w-16 h-12 md:w-24 md:h-16 text-xl md:text-2xl" placeholder="?">
422
  <span class="text-slate-500 font-bold text-xl">...</span>
423
  </div>
424
  <p id="quiz-error" class="text-red-400 mt-2 text-lg h-6 font-bold"></p>
425
  </div>
426
  <button onclick="checkQuiz()"
427
+ class="w-full py-3 md:py-4 rounded-xl bg-gradient-to-r from-amber-600 to-orange-600 hover:from-amber-500 hover:to-orange-500 text-white font-bold text-xl md:text-2xl transition-all shadow-lg active:scale-95 border border-amber-400/30">送出答案
428
  (SUBMIT)</button>
429
  </div>
430
  </div>
 
432
  <!-- Mission Screen -->
433
  <div id="screen-mission"
434
  class="absolute inset-0 flex flex-col items-center justify-center bg-slate-900/90 backdrop-blur-md z-50 hidden">
435
+ <div class="glass-panel p-6 md:p-8 rounded-2xl text-center border-t-4 border-amber-500 w-[90%] max-w-lg">
436
  <h3 class="text-amber-300 tracking-widest mb-4">任務開始</h3>
437
+ <h1 class="text-3xl md:text-4xl font-bold mb-6 text-white">尋找 <span id="mission-highlight"
438
  class="text-amber-400 drop-shadow-md"></span></h1>
439
+ <p class="text-slate-300 mb-6 leading-relaxed text-sm md:text-base">
440
+ 地板會依照規律生成。<br>只要符合此規律的數字都是安全的。<br>蒐集完數字後,需要<span
441
  class="text-yellow-400 font-bold border-b border-yellow-400">建造階梯</span>才能進入城堡。</p>
442
  <button onclick="confirmMission()"
443
+ class="w-full py-3 md:py-4 rounded-xl bg-amber-600 hover:bg-amber-500 text-white font-bold text-xl shadow-[0_0_15px_rgba(245,158,11,0.4)] transition-all active:scale-95">出發
444
  (START)</button>
445
  </div>
446
  </div>
447
 
448
  <!-- Ritual UI -->
449
  <div id="screen-ritual"
450
+ class="absolute inset-0 hidden z-40 pointer-events-auto flex flex-col items-center justify-end pb-4 md:pb-10 fade-in pointer-events-none">
451
+ <div class="flex-1 w-full pointer-events-none"><!-- Spacer for canvas --></div>
452
+ <div
453
+ class="ritual-content-wrapper pointer-events-auto w-[95%] max-w-[600px] bg-slate-900/80 backdrop-blur-md rounded-t-2xl p-4 border-t border-amber-500/50 max-h-[50vh] overflow-y-auto">
454
+ <div id="ritual-step-1" class="transition-all duration-500 mb-4 w-full flex justify-center">
455
  <button onclick="triggerRitualAnimation()"
456
+ class="btn-magic px-8 py-3 md:px-10 md:py-4 rounded-full bg-gradient-to-r from-amber-500 to-orange-600 text-white font-bold text-lg md:text-xl border-4 border-white/20 shadow-[0_0_20px_rgba(245,158,11,0.6)] hover:scale-105 transition-transform">✨
457
  施展分身術</button>
458
  </div>
459
+ <!-- Steps Container -->
460
+ <div class="w-full flex flex-col items-center gap-4">
461
+ <div id="ritual-step-2"
462
+ class="glass-panel p-3 md:p-4 rounded-2xl w-full hidden border border-amber-500 transition-all">
463
+ <div class="original-content">
464
+ <h3 class="text-base md:text-lg font-bold text-amber-400 mb-2">步驟 1:觀察長方形邊長</h3>
465
+ <div class="flex flex-wrap gap-2 justify-center items-center">
466
+ <div
467
+ class="bg-slate-800/50 p-2 rounded-lg flex items-center gap-1 md:gap-2 border border-slate-600">
468
+ <span
469
+ class="text-amber-300 font-bold text-xs md:text-sm whitespace-nowrap">寬度</span>
470
+ <input type="number" id="rit-start"
471
+ class="math-input w-12 h-8 md:w-14 md:h-10 text-base md:text-lg"
472
+ placeholder="">
473
+ <span class="text-white">+</span>
474
+ <input type="number" id="rit-end"
475
+ class="math-input w-12 h-8 md:w-14 md:h-10 text-base md:text-lg"
476
+ placeholder="末">
477
+ </div>
478
+ <div
479
+ class="bg-slate-800/50 p-2 rounded-lg flex items-center gap-1 md:gap-2 border border-slate-600">
480
+ <span
481
+ class="text-yellow-300 font-bold text-xs md:text-sm whitespace-nowrap">項數</span>
482
+ <input type="number" id="rit-n"
483
+ class="math-input w-12 h-8 md:w-14 md:h-10 text-base md:text-lg"
484
+ placeholder="n">
485
+ </div>
486
+ <button id="btn-rit-2" onclick="checkRitualDim()"
487
+ class="px-4 py-2 md:px-6 rounded-lg bg-amber-600 hover:bg-amber-500 text-white font-bold shadow-lg text-sm md:text-base whitespace-nowrap">確認</button>
488
  </div>
489
+ <p id="ritual-msg-1" class="text-red-400 mt-1 text-xs md:text-sm h-4 text-center"></p>
 
490
  </div>
491
+ <div class="summary-content hidden">
492
+ <span class="text-green-400 font-bold text-sm">✅ 步驟 1 完成</span>
493
+ <span class="text-slate-300 text-xs md:text-sm ml-2" id="summary-dim"></span>
 
 
 
 
 
 
 
 
 
 
 
 
 
494
  </div>
 
495
  </div>
496
+
497
+ <div id="ritual-step-3"
498
+ class="glass-panel p-3 md:p-4 rounded-2xl w-full hidden border border-green-500 transition-all">
499
+ <div class="original-content">
500
+ <h3 class="text-base md:text-lg font-bold text-green-400 mb-2">步驟 2:計算長方形總數</h3>
501
+ <div class="flex flex-wrap items-center justify-center gap-2 md:gap-3">
502
+ <span class="text-xs md:text-sm text-slate-300">總磚塊數 (寬×高) = </span>
503
+ <input type="number" id="rit-total"
504
+ class="math-input w-20 h-8 md:w-24 md:h-10 text-base md:text-lg">
505
+ <button id="btn-rit-3" onclick="checkRitualTotal()"
506
+ class="px-4 py-2 md:px-6 rounded-lg bg-green-600 hover:bg-green-500 text-white font-bold shadow-lg text-sm md:text-base">確認</button>
507
+ </div>
508
+ <p id="ritual-msg-2" class="text-red-400 mt-1 text-xs md:text-sm h-4 text-center"></p>
509
+ </div>
510
+ <div class="summary-content hidden">
511
+ <span class="text-green-400 font-bold text-sm">✅ 步驟 2 完成</span>
512
+ <span class="text-slate-300 text-xs md:text-sm ml-2" id="summary-total"></span>
513
+ </div>
514
  </div>
515
+
516
+ <div id="ritual-step-4"
517
+ class="glass-panel p-3 md:p-4 rounded-2xl w-full hidden border border-yellow-500 transition-all">
518
+ <h3 class="text-base md:text-lg font-bold text-yellow-400 mb-2">步驟 3:求原本階梯總和</h3>
519
+ <p class="text-slate-300 mb-2 text-center text-xs">原本階梯是長方形的 <span
520
+ class="text-amber-400 font-bold">一半</span></p>
521
+ <div class="flex flex-wrap items-center justify-center gap-2 md:gap-3">
522
+ <span class="text-xs md:text-sm font-bold text-amber-300">階梯總和 = </span>
523
+ <input type="number" id="rit-final"
524
+ class="math-input w-20 h-8 md:w-24 md:h-10 text-base md:text-lg">
525
+ <button id="btn-rit-4" onclick="checkRitualFinal()"
526
+ class="px-4 py-2 md:px-6 rounded-lg bg-amber-600 hover:bg-amber-500 text-white font-bold shadow-lg text-sm md:text-base">完成</button>
527
+ </div>
528
+ <p id="ritual-msg-3" class="text-red-400 mt-1 text-xs md:text-sm h-4 text-center"></p>
529
  </div>
530
+
531
+ <div id="ritual-step-5" class="glass-panel p-3 md:p-4 rounded-2xl w-full hidden text-center">
532
+ <h3
533
+ class="text-xl md:text-2xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-yellow-300 to-red-400 mb-2">
534
+ 計算完成!</h3>
535
+ <p
536
+ class="text-base md:text-lg font-black text-yellow-400 mt-2 mb-4 leading-relaxed bg-slate-800 p-2 rounded">
537
+ 階梯已生成!快爬上去升起旗幟吧!
538
+ </p>
539
+ <div class="flex gap-4 justify-center">
540
+ <button onclick="finishRitualAndBuild()"
541
+ class="px-6 py-2 md:px-8 md:py-3 rounded-lg bg-green-600 hover:bg-green-500 font-bold text-white text-lg md:text-xl shadow-lg animate-bounce">
542
+ 前往城堡
543
+ </button>
544
+ </div>
545
  </div>
546
  </div>
547
  </div>