math3craft commited on
Commit
e17a309
·
verified ·
1 Parent(s): 2ce9127

Add 2 files

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +495 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Math Site
3
- emoji: 🏃
4
- colorFrom: indigo
5
- colorTo: blue
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: math-site
3
+ emoji: 🐳
4
+ colorFrom: green
5
+ colorTo: yellow
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,495 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ru">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Математические игры - Подготовка к ОГЭ и ЕГЭ</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .game-card:hover .game-overlay {
11
+ opacity: 1;
12
+ transform: translateY(0);
13
+ }
14
+ .game-overlay {
15
+ transition: all 0.3s ease;
16
+ opacity: 0;
17
+ transform: translateY(10px);
18
+ }
19
+ .exam-tab.active {
20
+ border-bottom: 3px solid #3b82f6;
21
+ color: #3b82f6;
22
+ font-weight: 600;
23
+ }
24
+ .variant-btn.free {
25
+ background-color: #10b981;
26
+ color: white;
27
+ }
28
+ .variant-btn.free:hover {
29
+ background-color: #059669;
30
+ }
31
+ .variant-btn.selected {
32
+ background-color: #3b82f6;
33
+ color: white;
34
+ border-color: #3b82f6;
35
+ }
36
+ #game-container {
37
+ min-height: 500px;
38
+ background-color: #f3f4f6;
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ border-radius: 0.5rem;
43
+ }
44
+ .loading-spinner {
45
+ border: 4px solid rgba(0, 0, 0, 0.1);
46
+ border-left-color: #3b82f6;
47
+ animation: spin 1s linear infinite;
48
+ border-radius: 50%;
49
+ width: 40px;
50
+ height: 40px;
51
+ }
52
+ @keyframes spin {
53
+ to { transform: rotate(360deg); }
54
+ }
55
+ </style>
56
+ </head>
57
+ <body class="bg-gray-50 font-sans">
58
+ <!-- Header -->
59
+ <header class="bg-blue-600 text-white shadow-lg">
60
+ <div class="container mx-auto px-4 py-6">
61
+ <div class="flex justify-between items-center">
62
+ <div class="flex items-center space-x-2">
63
+ <i class="fas fa-square-root-alt text-3xl"></i>
64
+ <h1 class="text-2xl font-bold">Математические игры</h1>
65
+ </div>
66
+ <nav class="hidden md:flex space-x-6">
67
+ <a href="#" class="hover:text-blue-200 transition">Главная</a>
68
+ <a href="#" class="hover:text-blue-200 transition">Игры</a>
69
+ <a href="#" class="hover:text-blue-200 transition">О проекте</a>
70
+ <a href="#" class="hover:text-blue-200 transition">Контакты</a>
71
+ </nav>
72
+ <button class="md:hidden text-xl">
73
+ <i class="fas fa-bars"></i>
74
+ </button>
75
+ </div>
76
+ <div class="mt-6 text-center">
77
+ <h2 class="text-3xl md:text-4xl font-bold mb-3">Подготовка к ОГЭ и ЕГЭ по математике</h2>
78
+ <p class="text-xl md:text-2xl text-blue-100">Обучайтесь через увлекательные игры!</p>
79
+ </div>
80
+ </div>
81
+ </header>
82
+
83
+ <!-- Main Content -->
84
+ <main class="container mx-auto px-4 py-8">
85
+ <!-- Games Section -->
86
+ <section class="mb-12">
87
+ <h2 class="text-2xl font-bold mb-6 text-center">Выберите игру</h2>
88
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
89
+ <!-- Game 1 -->
90
+ <div class="bg-white rounded-lg shadow-md overflow-hidden relative game-card">
91
+ <img src="https://via.placeholder.com/600x400?text=Математическая+Рулетка" alt="Математическая Рулетка" class="w-full h-48 object-cover">
92
+ <div class="p-4">
93
+ <h3 class="text-xl font-bold mb-2">Математическая Рулетка</h3>
94
+ <p class="text-gray-600 mb-4">Решайте задачи на время, крутя рулетку с заданиями из ОГЭ и ЕГЭ.</p>
95
+ <button class="bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 transition select-game" data-game="roulette">
96
+ Выбрать игру
97
+ </button>
98
+ </div>
99
+ <div class="absolute inset-0 bg-blue-600 bg-opacity-90 flex items-center justify-center game-overlay">
100
+ <div class="text-white text-center p-4">
101
+ <h3 class="text-xl font-bold mb-2">Математическая Рулетка</h3>
102
+ <p class="mb-4">Крутите рулетку и получайте случайные задания. Чем быстрее решаете - тем больше очков!</p>
103
+ <div class="flex justify-center space-x-2">
104
+ <span class="bg-blue-500 px-2 py-1 rounded text-sm">ОГЭ</span>
105
+ <span class="bg-blue-500 px-2 py-1 rounded text-sm">ЕГЭ</span>
106
+ <span class="bg-blue-500 px-2 py-1 rounded text-sm">Таймер</span>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ </div>
111
+
112
+ <!-- Game 2 -->
113
+ <div class="bg-white rounded-lg shadow-md overflow-hidden relative game-card">
114
+ <img src="https://via.placeholder.com/600x400?text=Математический+Футбол" alt="Математический Футбол" class="w-full h-48 object-cover">
115
+ <div class="p-4">
116
+ <h3 class="text-xl font-bold mb-2">Математический Футбол</h3>
117
+ <p class="text-gray-600 mb-4">Забивайте голы, правильно решая задачи из экзаменационных вариантов.</p>
118
+ <button class="bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 transition select-game" data-game="football">
119
+ Выбрать игру
120
+ </button>
121
+ </div>
122
+ <div class="absolute inset-0 bg-blue-600 bg-opacity-90 flex items-center justify-center game-overlay">
123
+ <div class="text-white text-center p-4">
124
+ <h3 class="text-xl font-bold mb-2">Математический Футбол</h3>
125
+ <p class="mb-4">Решайте задачи и забивайте голы! Каждый правильный ответ - удар по воротам.</p>
126
+ <div class="flex justify-center space-x-2">
127
+ <span class="bg-blue-500 px-2 py-1 rounded text-sm">ОГЭ</span>
128
+ <span class="bg-blue-500 px-2 py-1 rounded text-sm">ЕГЭ</span>
129
+ <span class="bg-blue-500 px-2 py-1 rounded text-sm">Соревнование</span>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </div>
134
+
135
+ <!-- Game 3 -->
136
+ <div class="bg-white rounded-lg shadow-md overflow-hidden relative game-card">
137
+ <img src="https://via.placeholder.com/600x400?text=Математическая+Гонка" alt="Математическая Гонка" class="w-full h-48 object-cover">
138
+ <div class="p-4">
139
+ <h3 class="text-xl font-bold mb-2">Математическая Гонка</h3>
140
+ <p class="text-gray-600 mb-4">Участвуйте в гонках, решая задачи на скорость и точность.</p>
141
+ <button class="bg-blue-600 text-white px-4 py-2 rounded-md hover:bg-blue-700 transition select-game" data-game="race">
142
+ Выбрать игру
143
+ </button>
144
+ </div>
145
+ <div class="absolute inset-0 bg-blue-600 bg-opacity-90 flex items-center justify-center game-overlay">
146
+ <div class="text-white text-center p-4">
147
+ <h3 class="text-xl font-bold mb-2">Математическая Гонка</h3>
148
+ <p class="mb-4">Ваша машина едет быстрее, когда вы правильно решаете задачи. Догоните лидеров!</p>
149
+ <div class="flex justify-center space-x-2">
150
+ <span class="bg-blue-500 px-2 py-1 rounded text-sm">ОГЭ</span>
151
+ <span class="bg-blue-500 px-2 py-1 rounded text-sm">ЕГЭ</span>
152
+ <span class="bg-blue-500 px-2 py-1 rounded text-sm">Гонка</span>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ </section>
159
+
160
+ <!-- Game Selection Area -->
161
+ <section id="game-selection" class="bg-white rounded-lg shadow-lg p-6 mb-8 hidden">
162
+ <div class="flex justify-between items-center mb-6">
163
+ <h2 class="text-2xl font-bold" id="selected-game-title">Математическая Рулетка</h2>
164
+ <button id="change-game" class="text-blue-600 hover:text-blue-800 transition">
165
+ <i class="fas fa-exchange-alt mr-2"></i>Сменить игру
166
+ </button>
167
+ </div>
168
+
169
+ <!-- Exam Type Tabs -->
170
+ <div class="mb-8">
171
+ <div class="flex border-b">
172
+ <button class="exam-tab active px-4 py-2" data-exam="oge">ОГЭ</button>
173
+ <button class="exam-tab px-4 py-2" data-exam="ege">ЕГЭ</button>
174
+ </div>
175
+ </div>
176
+
177
+ <!-- Variant Selection -->
178
+ <div>
179
+ <h3 class="text-xl font-semibold mb-4">Выберите вариант:</h3>
180
+ <div class="grid grid-cols-2 sm:grid-cols-5 md:grid-cols-10 gap-2 mb-6" id="variant-grid">
181
+ <!-- Variants will be loaded here by JavaScript -->
182
+ </div>
183
+
184
+ <div class="bg-blue-50 border-l-4 border-blue-500 p-4 mb-6">
185
+ <div class="flex">
186
+ <div class="flex-shrink-0">
187
+ <i class="fas fa-info-circle text-blue-500"></i>
188
+ </div>
189
+ <div class="ml-3">
190
+ <p class="text-sm text-blue-700">
191
+ <span class="font-bold">Первый вариант каждого экзамена доступен бесплатно</span> - попробуйте игру перед покупкой других вариантов.
192
+ </p>
193
+ </div>
194
+ </div>
195
+ </div>
196
+ </div>
197
+
198
+ <!-- Purchase and Play Area -->
199
+ <div class="mt-8">
200
+ <div class="flex flex-col md:flex-row justify-between items-center bg-gray-100 p-4 rounded-lg">
201
+ <div class="mb-4 md:mb-0">
202
+ <h3 class="font-bold text-lg" id="selected-variant-info">Выбран вариант: ОГЭ, вариант 1 (бесплатно)</h3>
203
+ <p class="text-gray-600" id="price-info">Цена: Бесплатно</p>
204
+ </div>
205
+ <div class="flex space-x-4">
206
+ <button id="buy-btn" class="bg-green-600 hover:bg-green-700 text-white px-6 py-3 rounded-lg font-medium transition hidden">
207
+ Купить за <span id="price-amount">149</span> ₽
208
+ </button>
209
+ <button id="play-btn" class="bg-blue-600 hover:bg-blue-700 text-white px-6 py-3 rounded-lg font-medium transition">
210
+ <i class="fas fa-play mr-2"></i>Играть
211
+ </button>
212
+ </div>
213
+ </div>
214
+ </div>
215
+ </section>
216
+
217
+ <!-- Game Container -->
218
+ <section id="game-play-section" class="hidden">
219
+ <div class="flex justify-between items-center mb-4">
220
+ <h2 class="text-xl font-bold" id="game-playing-title">Играем: Математическая Рулетка (ОГЭ, вариант 1)</h2>
221
+ <button id="back-to-selection" class="text-blue-600 hover:text-blue-800 transition">
222
+ <i class="fas fa-arrow-left mr-2"></i>Вернуться к выбору
223
+ </button>
224
+ </div>
225
+
226
+ <div id="game-container">
227
+ <div class="text-center">
228
+ <div class="loading-spinner mb-4"></div>
229
+ <p class="text-gray-600">Загрузка игры...</p>
230
+ </div>
231
+ </div>
232
+
233
+ <div class="mt-4 bg-yellow-50 border-l-4 border-yellow-400 p-4">
234
+ <div class="flex">
235
+ <div class="flex-shrink-0">
236
+ <i class="fas fa-lightbulb text-yellow-500"></i>
237
+ </div>
238
+ <div class="ml-3">
239
+ <p class="text-sm text-yellow-700">
240
+ <span class="font-bold">Совет:</span> Решайте задачи внимательно. В конце игры вы увидите подробный разбор всех заданий.
241
+ </p>
242
+ </div>
243
+ </div>
244
+ </div>
245
+ </section>
246
+
247
+ <!-- Features Section -->
248
+ <section class="my-12">
249
+ <h2 class="text-2xl font-bold mb-8 text-center">Почему наши игры эффективны?</h2>
250
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
251
+ <div class="bg-white p-6 rounded-lg shadow-md">
252
+ <div class="text-blue-600 mb-4 text-4xl">
253
+ <i class="fas fa-brain"></i>
254
+ </div>
255
+ <h3 class="text-xl font-bold mb-2">Геймификация обучения</h3>
256
+ <p class="text-gray-600">Игровая форма повышает мотивацию и делает процесс подготовки увлекательным.</p>
257
+ </div>
258
+ <div class="bg-white p-6 rounded-lg shadow-md">
259
+ <div class="text-blue-600 mb-4 text-4xl">
260
+ <i class="fas fa-tasks"></i>
261
+ </div>
262
+ <h3 class="text-xl font-bold mb-2">Реальные варианты</h3>
263
+ <p class="text-gray-600">Все задания взяты из актуальных вариантов ОГЭ и ЕГЭ прошлых лет.</p>
264
+ </div>
265
+ <div class="bg-white p-6 rounded-lg shadow-md">
266
+ <div class="text-blue-600 mb-4 text-4xl">
267
+ <i class="fas fa-chart-line"></i>
268
+ </div>
269
+ <h3 class="text-xl font-bold mb-2">Отслеживание прогресса</h3>
270
+ <p class="text-gray-600">После каждой игры вы видите статистику по решенным задачам и свои слабые места.</p>
271
+ </div>
272
+ </div>
273
+ </section>
274
+ </main>
275
+
276
+ <!-- Footer -->
277
+ <footer class="bg-gray-800 text-white py-8">
278
+ <div class="container mx-auto px-4">
279
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-8">
280
+ <div>
281
+ <h3 class="text-lg font-bold mb-4">Математические игры</h3>
282
+ <p class="text-gray-300">Подготовка к ОГЭ и ЕГЭ по математике через увлекательные игры.</p>
283
+ </div>
284
+ <div>
285
+ <h3 class="text-lg font-bold mb-4">Игры</h3>
286
+ <ul class="space-y-2">
287
+ <li><a href="#" class="text-gray-300 hover:text-white transition">Математическая Рулетка</a></li>
288
+ <li><a href="#" class="text-gray-300 hover:text-white transition">Математический Футбол</a></li>
289
+ <li><a href="#" class="text-gray-300 hover:text-white transition">Математическая Гонка</a></li>
290
+ </ul>
291
+ </div>
292
+ <div>
293
+ <h3 class="text-lg font-bold mb-4">Поддержка</h3>
294
+ <ul class="space-y-2">
295
+ <li><a href="#" class="text-gray-300 hover:text-white transition">FAQ</a></li>
296
+ <li><a href="#" class="text-gray-300 hover:text-white transition">Оплата</a></li>
297
+ <li><a href="#" class="text-gray-300 hover:text-white transition">Контакты</a></li>
298
+ </ul>
299
+ </div>
300
+ <div>
301
+ <h3 class="text-lg font-bold mb-4">Контакты</h3>
302
+ <ul class="space-y-2">
303
+ <li class="flex items-center">
304
+ <i class="fas fa-envelope mr-2 text-gray-300"></i>
305
+ <span class="text-gray-300">[email protected]</span>
306
+ </li>
307
+ <li class="flex items-center">
308
+ <i class="fas fa-phone mr-2 text-gray-300"></i>
309
+ <span class="text-gray-300">+7 (123) 456-78-90</span>
310
+ </li>
311
+ </ul>
312
+ </div>
313
+ </div>
314
+ <div class="border-t border-gray-700 mt-8 pt-6 text-center text-gray-400">
315
+ <p>© 2023 Математические игры. Все права защищены.</p>
316
+ </div>
317
+ </div>
318
+ </footer>
319
+
320
+ <script>
321
+ document.addEventListener('DOMContentLoaded', function() {
322
+ // Current selection state
323
+ const state = {
324
+ game: null,
325
+ exam: 'oge',
326
+ variant: 1,
327
+ isFree: true
328
+ };
329
+
330
+ // DOM elements
331
+ const gameSelectionSection = document.getElementById('game-selection');
332
+ const gamePlaySection = document.getElementById('game-play-section');
333
+ const selectedGameTitle = document.getElementById('selected-game-title');
334
+ const gamePlayingTitle = document.getElementById('game-playing-title');
335
+ const variantGrid = document.getElementById('variant-grid');
336
+ const selectedVariantInfo = document.getElementById('selected-variant-info');
337
+ const priceInfo = document.getElementById('price-info');
338
+ const priceAmount = document.getElementById('price-amount');
339
+ const buyBtn = document.getElementById('buy-btn');
340
+ const playBtn = document.getElementById('play-btn');
341
+ const gameContainer = document.getElementById('game-container');
342
+
343
+ // Game names mapping
344
+ const gameNames = {
345
+ roulette: 'Математическая Рулетка',
346
+ football: 'Математический Футбол',
347
+ race: 'Математическая Гонка'
348
+ };
349
+
350
+ // Prices for games (in rubles)
351
+ const gamePrices = {
352
+ roulette: 149,
353
+ football: 179,
354
+ race: 199
355
+ };
356
+
357
+ // Select game handler
358
+ document.querySelectorAll('.select-game').forEach(button => {
359
+ button.addEventListener('click', function() {
360
+ state.game = this.dataset.game;
361
+ state.exam = 'oge';
362
+ state.variant = 1;
363
+ state.isFree = true;
364
+
365
+ // Update UI
366
+ selectedGameTitle.textContent = gameNames[state.game];
367
+ gameSelectionSection.classList.remove('hidden');
368
+
369
+ // Scroll to selection
370
+ gameSelectionSection.scrollIntoView({ behavior: 'smooth' });
371
+
372
+ // Load variants
373
+ loadVariants();
374
+ updateSelectionInfo();
375
+ });
376
+ });
377
+
378
+ // Change game handler
379
+ document.getElementById('change-game').addEventListener('click', function() {
380
+ gameSelectionSection.classList.add('hidden');
381
+ gamePlaySection.classList.add('hidden');
382
+ state.game = null;
383
+ });
384
+
385
+ // Exam tab handler
386
+ document.querySelectorAll('.exam-tab').forEach(tab => {
387
+ tab.addEventListener('click', function() {
388
+ // Update active tab
389
+ document.querySelectorAll('.exam-tab').forEach(t => t.classList.remove('active'));
390
+ this.classList.add('active');
391
+
392
+ // Update state
393
+ state.exam = this.dataset.exam;
394
+ state.variant = 1;
395
+ state.isFree = true;
396
+
397
+ // Load variants and update UI
398
+ loadVariants();
399
+ updateSelectionInfo();
400
+ });
401
+ });
402
+
403
+ // Back to selection handler
404
+ document.getElementById('back-to-selection').addEventListener('click', function() {
405
+ gamePlaySection.classList.add('hidden');
406
+ gameSelectionSection.classList.remove('hidden');
407
+
408
+ // Clear game container
409
+ gameContainer.innerHTML = `
410
+ <div class="text-center">
411
+ <div class="loading-spinner mb-4"></div>
412
+ <p class="text-gray-600">Загрузка игры...</p>
413
+ </div>
414
+ `;
415
+ });
416
+
417
+ // Play button handler
418
+ playBtn.addEventListener('click', function() {
419
+ if (!state.game || !state.exam || !state.variant) return;
420
+
421
+ // Update game playing title
422
+ const examName = state.exam === 'oge' ? 'ОГЭ' : 'ЕГЭ';
423
+ gamePlayingTitle.textContent = `Играем: ${gameNames[state.game]} (${examName}, вариант ${state.variant})`;
424
+
425
+ // Show game section
426
+ gameSelectionSection.classList.add('hidden');
427
+ gamePlaySection.classList.remove('hidden');
428
+
429
+ // Scroll to game
430
+ gamePlaySection.scrollIntoView({ behavior: 'smooth' });
431
+
432
+ // In a real implementation, here you would load the Unity WebGL game
433
+ // For this example, we'll simulate loading
434
+ setTimeout(() => {
435
+ gameContainer.innerHTML = `
436
+ <div class="text-center p-8">
437
+ <i class="fas fa-gamepad text-6xl text-blue-500 mb-4"></i>
438
+ <h3 class="text-xl font-bold mb-2">${gameNames[state.game]}</h3>
439
+ <p class="text-gray-600 mb-4">${examName}, вариант ${state.variant}</p>
440
+ <p class="text-gray-700">Здесь будет загружена игра в формате WebGL</p>
441
+ </div>
442
+ `;
443
+ }, 1500);
444
+ });
445
+
446
+ // Load variants into the grid
447
+ function loadVariants() {
448
+ variantGrid.innerHTML = '';
449
+
450
+ // Create 50 variants (1 is free)
451
+ for (let i = 1; i <= 50; i++) {
452
+ const variantBtn = document.createElement('button');
453
+ variantBtn.className = `variant-btn py-2 px-3 rounded border border-gray-300 hover:bg-gray-100 transition ${i === 1 ? 'free' : ''}`;
454
+ variantBtn.textContent = i;
455
+ variantBtn.dataset.variant = i;
456
+
457
+ if (i === state.variant) {
458
+ variantBtn.classList.add('selected');
459
+ }
460
+
461
+ variantBtn.addEventListener('click', function() {
462
+ // Update selected variant
463
+ document.querySelectorAll('.variant-btn').forEach(btn => btn.classList.remove('selected'));
464
+ this.classList.add('selected');
465
+
466
+ // Update state
467
+ state.variant = parseInt(this.dataset.variant);
468
+ state.isFree = state.variant === 1;
469
+
470
+ // Update UI
471
+ updateSelectionInfo();
472
+ });
473
+
474
+ variantGrid.appendChild(variantBtn);
475
+ }
476
+ }
477
+
478
+ // Update selection info and buttons
479
+ function updateSelectionInfo() {
480
+ const examName = state.exam === 'oge' ? 'ОГЭ' : 'ЕГЭ';
481
+ selectedVariantInfo.textContent = `Выбран вариант: ${examName}, вариант ${state.variant}${state.isFree ? ' (бесплатно)' : ''}`;
482
+
483
+ if (state.isFree) {
484
+ priceInfo.textContent = 'Цена: Бесплатно';
485
+ buyBtn.classList.add('hidden');
486
+ } else {
487
+ priceInfo.textContent = `Цена: ${gamePrices[state.game]} ₽`;
488
+ priceAmount.textContent = gamePrices[state.game];
489
+ buyBtn.classList.remove('hidden');
490
+ }
491
+ }
492
+ });
493
+ </script>
494
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=math3craft/math-site" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
495
+ </html>