Lashtw commited on
Commit
f0446b7
·
verified ·
1 Parent(s): 316ba76

Upload 2 files

Browse files
Files changed (2) hide show
  1. function.html +41 -14
  2. sequence.html +33 -2
function.html CHANGED
@@ -122,12 +122,40 @@
122
  gap: 12px;
123
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
124
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
 
 
125
  }
126
 
127
  #virtual-keypad.active {
128
  transform: translateX(-50%) translateY(0);
129
  }
130
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  .keypad-btn {
132
  width: 60px;
133
  height: 60px;
@@ -241,6 +269,7 @@
241
 
242
  <!-- Virtual Keypad HTML -->
243
  <div id="virtual-keypad">
 
244
  <div class="keypad-btn" onclick="keypad.input(1)">1</div>
245
  <div class="keypad-btn" onclick="keypad.input(2)">2</div>
246
  <div class="keypad-btn" onclick="keypad.input(3)">3</div>
@@ -712,11 +741,11 @@
712
  html = `
713
  <h2 class="text-3xl font-bold text-cyan-400 mb-4">核心運作法則確認</h2>
714
  <div class="text-center bg-slate-800/80 p-6 rounded-xl border border-cyan-500/30 mb-8">
715
- <div class="font-tech text-6xl mb-6">
716
  <span class="text-cyan-400">y</span> = 2<span class="text-amber-400">x</span> + 3
717
  </div>
718
- <p class="text-slate-300 text-4xl leading-relaxed font-bold">
719
- 每投入 <span class="text-amber-400 font-bold text-7xl mx-2 border-b-2 border-amber-400/50">x</span> 顆晶石,<br>就會產生 <span class="text-cyan-400 font-bold text-7xl mx-2 border-b-2 border-cyan-400/50">y</span> 點電力。
720
  </p>
721
  </div>
722
  <button onclick="startQPhase()" class="w-full py-5 bg-slate-700 hover:bg-slate-600 text-white rounded-xl font-bold text-xl border border-slate-500">
@@ -755,7 +784,7 @@
755
  <div class="text-slate-400 font-bold text-xl border-b border-slate-500/30 pb-2">2. 坐標描點</div>
756
  <div class="bg-slate-800/30 p-4 rounded-xl border border-slate-700/30 flex flex-col items-center justify-center flex-grow">
757
  <div class="text-sm text-slate-500 mb-1">對應座標</div>
758
- <div class="font-tech text-3xl font-bold text-slate-500">
759
  (<span class="text-amber-400">${xVal}</span>, <span class="text-cyan-400">y</span>)
760
  </div>
761
  </div>
@@ -802,7 +831,7 @@
802
  <div id="coord-step-1" class="flex flex-col gap-4 h-full">
803
  <div class="bg-slate-800/80 p-4 rounded-xl border border-cyan-500/50 flex flex-col items-center justify-center flex-grow">
804
  <div class="text-sm text-cyan-300 font-bold mb-2 tracking-widest">對應座標</div>
805
- <div class="font-tech text-4xl font-bold z-10 mb-2">
806
  (<span class="text-amber-400">${xValC}</span>, <span class="text-cyan-400">y</span>)
807
  </div>
808
  </div>
@@ -815,7 +844,7 @@
815
  <div id="coord-step-2" class="hidden flex flex-col gap-4 h-full">
816
  <div class="bg-slate-800/80 p-4 rounded-xl border border-cyan-500 shadow-[0_0_20px_rgba(34,211,238,0.2)] flex flex-col items-center justify-center relative overflow-hidden transform transition-all flex-grow animate-pulse-once">
817
  <div class="text-sm text-cyan-300 font-bold mb-2 tracking-widest">對應座標</div>
818
- <div class="font-tech text-4xl font-bold z-10 mb-2">
819
  (<span class="text-amber-400">${xValC}</span>, <span class="text-cyan-400">${yValC}</span>)
820
  </div>
821
  <div class="absolute inset-0 bg-cyan-500/10 animate-pulse"></div>
@@ -874,10 +903,8 @@
874
  <br>根據 y=2x+3,請問要投入多少晶石 <span class="text-amber-400 font-bold">(x)</span> 才足夠?
875
  </p>
876
  <div class="flex items-center gap-2 mt-4 bg-slate-800/50 p-4 rounded-xl flex-wrap">
877
- <span class="font-tech text-amber-400 text-4xl whitespace-nowrap">x = </span>
878
  <span class="font-tech text-amber-400 text-4xl whitespace-nowrap">x = </span>
879
  <input id="ans-input" type="text" readonly onclick="keypad.open(this)" class="tech-input flex-1 min-w-[100px] p-2 rounded text-4xl text-amber-400" placeholder="?">
880
- <button onclick="checkFinalAnswer()" class="px-6 py-3 bg-red-600 hover:bg-red-500 text-white rounded font-bold shadow-[0_0_15px_rgba(239,68,68,0.5)] whitespace-nowrap flex-shrink-0">
881
  <button onclick="checkFinalAnswer()" class="px-6 py-3 bg-red-600 hover:bg-red-500 text-white rounded font-bold shadow-[0_0_15px_rgba(239,68,68,0.5)] whitespace-nowrap flex-shrink-0">
882
  投入晶石
883
  </button>
@@ -897,11 +924,11 @@
897
 
898
  <!-- Teaching Content -->
899
  <div class="bg-slate-800/80 p-4 rounded-xl border border-cyan-500/30 mb-6 text-left">
900
- <h3 class="text-3xl font-bold text-white mb-2 text-center">任務小結:什麼是「函數」?</h3>
901
- <p class="text-slate-200 text-2xl leading-relaxed mb-3">
902
- 剛剛我們使用的「能量轉換法則」,在數學上就叫做<span class="text-amber-400 font-bold text-3xl mx-1">「函數」(Function)</span>。
903
  </p>
904
- <p class="text-slate-300 text-2xl leading-relaxed">
905
  函數就像一座<span class="text-cyan-400 font-bold">工廠</span>:<br>
906
  它會把原料 <span class="font-bold text-amber-400">x (晶石)</span>,藉由固定的規則,<br>轉換成產品 <span class="font-bold text-cyan-400">y (電力)</span>。
907
  </p>
@@ -1112,10 +1139,10 @@
1112
 
1113
  html = `
1114
  <div class="text-center w-full h-full flex flex-col items-center">
1115
- <h2 class="text-5xl md:text-6xl font-black text-transparent bg-clip-text bg-gradient-to-r from-cyan-400 to-green-400 mb-6 drop-shadow-[0_0_15px_rgba(34,211,238,0.6)] tracking-widest">
1116
  任務完成 SYSTEM RESTORED
1117
  </h2>
1118
- <div class="text-amber-400 font-tech text-4xl mb-10 tracking-[0.5em]">MISSION ACCOMPLISHED</div>
1119
 
1120
  <!-- Score Board -->
1121
  <div class="flex gap-16 mb-10 bg-slate-800/80 px-16 py-8 rounded-3xl border-2 border-slate-600 transform scale-110">
 
122
  gap: 12px;
123
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
124
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
125
+ /* Dragging */
126
+ touch-action: none;
127
  }
128
 
129
  #virtual-keypad.active {
130
  transform: translateX(-50%) translateY(0);
131
  }
132
 
133
+ #virtual-keypad.dragging {
134
+ transition: none;
135
+ transform: none;
136
+ /* Controlled by JS during drag */
137
+ }
138
+
139
+ .keypad-handle {
140
+ grid-column: span 3;
141
+ height: 20px;
142
+ margin-bottom: 5px;
143
+ background: rgba(255, 255, 255, 0.2);
144
+ border-radius: 10px;
145
+ cursor: grab;
146
+ display: flex;
147
+ justify-content: center;
148
+ align-items: center;
149
+ }
150
+
151
+ .keypad-handle::after {
152
+ content: '';
153
+ width: 40px;
154
+ height: 4px;
155
+ background: rgba(255, 255, 255, 0.4);
156
+ border-radius: 2px;
157
+ }
158
+
159
  .keypad-btn {
160
  width: 60px;
161
  height: 60px;
 
269
 
270
  <!-- Virtual Keypad HTML -->
271
  <div id="virtual-keypad">
272
+ <div class="keypad-handle"></div>
273
  <div class="keypad-btn" onclick="keypad.input(1)">1</div>
274
  <div class="keypad-btn" onclick="keypad.input(2)">2</div>
275
  <div class="keypad-btn" onclick="keypad.input(3)">3</div>
 
741
  html = `
742
  <h2 class="text-3xl font-bold text-cyan-400 mb-4">核心運作法則確認</h2>
743
  <div class="text-center bg-slate-800/80 p-6 rounded-xl border border-cyan-500/30 mb-8">
744
+ <div class="font-tech text-4xl md:text-6xl mb-6">
745
  <span class="text-cyan-400">y</span> = 2<span class="text-amber-400">x</span> + 3
746
  </div>
747
+ <p class="text-slate-300 text-2xl md:text-4xl leading-relaxed font-bold">
748
+ 每投入 <span class="text-amber-400 font-bold text-5xl md:text-7xl mx-2 border-b-2 border-amber-400/50">x</span> 顆晶石,<br>就會產生 <span class="text-cyan-400 font-bold text-5xl md:text-7xl mx-2 border-b-2 border-cyan-400/50">y</span> 點電力。
749
  </p>
750
  </div>
751
  <button onclick="startQPhase()" class="w-full py-5 bg-slate-700 hover:bg-slate-600 text-white rounded-xl font-bold text-xl border border-slate-500">
 
784
  <div class="text-slate-400 font-bold text-xl border-b border-slate-500/30 pb-2">2. 坐標描點</div>
785
  <div class="bg-slate-800/30 p-4 rounded-xl border border-slate-700/30 flex flex-col items-center justify-center flex-grow">
786
  <div class="text-sm text-slate-500 mb-1">對應座標</div>
787
+ <div class="font-tech text-2xl md:text-3xl font-bold text-slate-500">
788
  (<span class="text-amber-400">${xVal}</span>, <span class="text-cyan-400">y</span>)
789
  </div>
790
  </div>
 
831
  <div id="coord-step-1" class="flex flex-col gap-4 h-full">
832
  <div class="bg-slate-800/80 p-4 rounded-xl border border-cyan-500/50 flex flex-col items-center justify-center flex-grow">
833
  <div class="text-sm text-cyan-300 font-bold mb-2 tracking-widest">對應座標</div>
834
+ <div class="font-tech text-3xl md:text-4xl font-bold z-10 mb-2">
835
  (<span class="text-amber-400">${xValC}</span>, <span class="text-cyan-400">y</span>)
836
  </div>
837
  </div>
 
844
  <div id="coord-step-2" class="hidden flex flex-col gap-4 h-full">
845
  <div class="bg-slate-800/80 p-4 rounded-xl border border-cyan-500 shadow-[0_0_20px_rgba(34,211,238,0.2)] flex flex-col items-center justify-center relative overflow-hidden transform transition-all flex-grow animate-pulse-once">
846
  <div class="text-sm text-cyan-300 font-bold mb-2 tracking-widest">對應座標</div>
847
+ <div class="font-tech text-3xl md:text-4xl font-bold z-10 mb-2">
848
  (<span class="text-amber-400">${xValC}</span>, <span class="text-cyan-400">${yValC}</span>)
849
  </div>
850
  <div class="absolute inset-0 bg-cyan-500/10 animate-pulse"></div>
 
903
  <br>根據 y=2x+3,請問要投入多少晶石 <span class="text-amber-400 font-bold">(x)</span> 才足夠?
904
  </p>
905
  <div class="flex items-center gap-2 mt-4 bg-slate-800/50 p-4 rounded-xl flex-wrap">
 
906
  <span class="font-tech text-amber-400 text-4xl whitespace-nowrap">x = </span>
907
  <input id="ans-input" type="text" readonly onclick="keypad.open(this)" class="tech-input flex-1 min-w-[100px] p-2 rounded text-4xl text-amber-400" placeholder="?">
 
908
  <button onclick="checkFinalAnswer()" class="px-6 py-3 bg-red-600 hover:bg-red-500 text-white rounded font-bold shadow-[0_0_15px_rgba(239,68,68,0.5)] whitespace-nowrap flex-shrink-0">
909
  投入晶石
910
  </button>
 
924
 
925
  <!-- Teaching Content -->
926
  <div class="bg-slate-800/80 p-4 rounded-xl border border-cyan-500/30 mb-6 text-left">
927
+ <h3 class="text-xl md:text-3xl font-bold text-white mb-2 text-center">任務小結:什麼是「函數」?</h3>
928
+ <p class="text-slate-200 text-lg md:text-2xl leading-relaxed mb-3">
929
+ 剛剛我們使用的「能量轉換法則」,在數學上就叫做<span class="text-amber-400 font-bold text-2xl md:text-3xl mx-1">「函數」(Function)</span>。
930
  </p>
931
+ <p class="text-slate-300 text-lg md:text-2xl leading-relaxed">
932
  函數就像一座<span class="text-cyan-400 font-bold">工廠</span>:<br>
933
  它會把原料 <span class="font-bold text-amber-400">x (晶石)</span>,藉由固定的規則,<br>轉換成產品 <span class="font-bold text-cyan-400">y (電力)</span>。
934
  </p>
 
1139
 
1140
  html = `
1141
  <div class="text-center w-full h-full flex flex-col items-center">
1142
+ <h2 class="text-3xl md:text-6xl font-black text-transparent bg-clip-text bg-gradient-to-r from-cyan-400 to-green-400 mb-6 drop-shadow-[0_0_15px_rgba(34,211,238,0.6)] tracking-widest">
1143
  任務完成 SYSTEM RESTORED
1144
  </h2>
1145
+ <div class="text-amber-400 font-tech text-2xl md:text-4xl mb-10 tracking-[0.5em]">MISSION ACCOMPLISHED</div>
1146
 
1147
  <!-- Score Board -->
1148
  <div class="flex gap-16 mb-10 bg-slate-800/80 px-16 py-8 rounded-3xl border-2 border-slate-600 transform scale-110">
sequence.html CHANGED
@@ -306,12 +306,39 @@
306
  gap: 12px;
307
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
308
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
 
 
309
  }
310
 
311
  #virtual-keypad.active {
312
  transform: translateX(-50%) translateY(0);
313
  }
314
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
315
  .keypad-btn {
316
  width: 60px;
317
  height: 60px;
@@ -384,12 +411,16 @@
384
  </div>
385
 
386
  <!-- Credits Footer -->
387
- <div>臉書社團:<a href="https://www.facebook.com/groups/1554372228718393" target="_blank"
388
- class="hover:text-amber-400 pointer-events-auto transition-colors">萬物皆數</a></div>
 
 
 
389
  </div>
390
 
391
  <!-- Virtual Keypad HTML -->
392
  <div id="virtual-keypad">
 
393
  <div class="keypad-btn" onclick="keypad.input(1)">1</div>
394
  <div class="keypad-btn" onclick="keypad.input(2)">2</div>
395
  <div class="keypad-btn" onclick="keypad.input(3)">3</div>
 
306
  gap: 12px;
307
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
308
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
309
+ /* Dragging */
310
+ touch-action: none;
311
  }
312
 
313
  #virtual-keypad.active {
314
  transform: translateX(-50%) translateY(0);
315
  }
316
 
317
+ #virtual-keypad.dragging {
318
+ transition: none;
319
+ transform: none;
320
+ }
321
+
322
+ .keypad-handle {
323
+ grid-column: span 3;
324
+ height: 20px;
325
+ margin-bottom: 5px;
326
+ background: rgba(255, 255, 255, 0.2);
327
+ border-radius: 10px;
328
+ cursor: grab;
329
+ display: flex;
330
+ justify-content: center;
331
+ align-items: center;
332
+ }
333
+
334
+ .keypad-handle::after {
335
+ content: '';
336
+ width: 40px;
337
+ height: 4px;
338
+ background: rgba(255, 255, 255, 0.4);
339
+ border-radius: 2px;
340
+ }
341
+
342
  .keypad-btn {
343
  width: 60px;
344
  height: 60px;
 
411
  </div>
412
 
413
  <!-- Credits Footer -->
414
+ <div class="fixed bottom-1 right-2 text-right text-[10px] text-slate-500/50 pointer-events-none z-50 font-sans">
415
+ <div>遊戲設計:新竹縣精華國中藍星宇老師</div>
416
+ <div>臉書社團:<a href="https://www.facebook.com/groups/1554372228718393" target="_blank"
417
+ class="hover:text-amber-400 pointer-events-auto transition-colors">萬物皆數</a></div>
418
+ </div>
419
  </div>
420
 
421
  <!-- Virtual Keypad HTML -->
422
  <div id="virtual-keypad">
423
+ <div class="keypad-handle"></div>
424
  <div class="keypad-btn" onclick="keypad.input(1)">1</div>
425
  <div class="keypad-btn" onclick="keypad.input(2)">2</div>
426
  <div class="keypad-btn" onclick="keypad.input(3)">3</div>