madansa7 commited on
Commit
5329450
·
verified ·
1 Parent(s): 3601133

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +6 -4
  2. index.html +667 -19
  3. prompts.txt +4 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Rajagame
3
- emoji: 👀
4
  colorFrom: green
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: rajagame
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,667 @@
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="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Kids Connect The Dots Game</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
+ body {
11
+ font-family: 'Comic Sans MS', 'Marker Felt', 'Arial Rounded MT Bold', sans-serif;
12
+ background-color: #f0f9ff;
13
+ }
14
+
15
+ .game-container {
16
+ perspective: 1000px;
17
+ background-color: white;
18
+ border-radius: 20px;
19
+ box-shadow: 0 10px 25px rgba(0,0,0,0.1);
20
+ }
21
+
22
+ .dot {
23
+ width: 60px;
24
+ height: 60px;
25
+ border-radius: 50%;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ font-weight: bold;
30
+ cursor: pointer;
31
+ transition: all 0.3s ease;
32
+ position: relative;
33
+ z-index: 1;
34
+ font-size: 24px;
35
+ border: 4px solid transparent;
36
+ }
37
+
38
+ .dot.active {
39
+ transform: scale(1.1);
40
+ box-shadow: 0 0 20px rgba(0, 119, 181, 0.5);
41
+ border-color: white;
42
+ animation: bounce 0.5s infinite alternate;
43
+ }
44
+
45
+ .dot.completed {
46
+ background-color: #10b981 !important;
47
+ color: white;
48
+ }
49
+
50
+ .line {
51
+ position: absolute;
52
+ background-color: #3b82f6;
53
+ height: 8px;
54
+ transform-origin: 0 0;
55
+ z-index: 0;
56
+ transition: all 0.3s ease;
57
+ border-radius: 4px;
58
+ }
59
+
60
+ .confetti {
61
+ position: absolute;
62
+ width: 12px;
63
+ height: 12px;
64
+ background-color: #f00;
65
+ border-radius: 50%;
66
+ animation: fall 3s linear forwards;
67
+ }
68
+
69
+ @keyframes fall {
70
+ to {
71
+ transform: translateY(100vh) rotate(720deg);
72
+ opacity: 0;
73
+ }
74
+ }
75
+
76
+ @keyframes bounce {
77
+ from { transform: scale(1.1); }
78
+ to { transform: scale(1.2); }
79
+ }
80
+
81
+ .pulse {
82
+ animation: pulse 1.5s infinite;
83
+ }
84
+
85
+ @keyframes pulse {
86
+ 0% { transform: scale(1); box-shadow: 0 0 0 rgba(255, 215, 0, 0.7); }
87
+ 50% { transform: scale(1.2); box-shadow: 0 0 20px rgba(255, 215, 0, 0.7); }
88
+ 100% { transform: scale(1); box-shadow: 0 0 0 rgba(255, 215, 0, 0.7); }
89
+ }
90
+
91
+ .pattern-btn {
92
+ transition: all 0.3s ease;
93
+ }
94
+
95
+ .pattern-btn.active {
96
+ transform: scale(1.05);
97
+ box-shadow: 0 0 15px rgba(59, 130, 246, 0.5);
98
+ border-color: #3b82f6;
99
+ }
100
+
101
+ .celebration {
102
+ position: fixed;
103
+ top: 0;
104
+ left: 0;
105
+ width: 100%;
106
+ height: 100%;
107
+ pointer-events: none;
108
+ z-index: 100;
109
+ display: flex;
110
+ justify-content: center;
111
+ align-items: center;
112
+ font-size: 5rem;
113
+ color: gold;
114
+ text-shadow: 0 0 10px rgba(0,0,0,0.5);
115
+ animation: zoomIn 1s forwards;
116
+ }
117
+
118
+ @keyframes zoomIn {
119
+ from { transform: scale(0); opacity: 0; }
120
+ to { transform: scale(1); opacity: 1; }
121
+ }
122
+ </style>
123
+ </head>
124
+ <body class="min-h-screen flex flex-col items-center justify-start p-4 pt-8">
125
+ <div class="text-center mb-6">
126
+ <h1 class="text-4xl font-bold text-blue-600 mb-2">Kids Connect The Dots</h1>
127
+ <p class="text-xl text-gray-600">Learn sequences by connecting the dots!</p>
128
+ </div>
129
+
130
+ <div class="flex flex-wrap justify-center gap-4 mb-8 w-full max-w-4xl">
131
+ <button data-pattern="numbers" class="pattern-btn active px-6 py-3 bg-blue-100 text-blue-800 rounded-xl border-2 border-blue-200 font-bold">
132
+ <i class="fas fa-sort-numeric-up-alt mr-2"></i>Numbers
133
+ </button>
134
+ <button data-pattern="letters" class="pattern-btn px-6 py-3 bg-purple-100 text-purple-800 rounded-xl border-2 border-purple-200 font-bold">
135
+ <i class="fas fa-font mr-2"></i>Letters
136
+ </button>
137
+ <button id="new-pattern-btn" class="px-6 py-3 bg-green-100 text-green-800 rounded-xl border-2 border-green-200 font-bold">
138
+ <i class="fas fa-sync-alt mr-2"></i>New Pattern
139
+ </button>
140
+ </div>
141
+
142
+ <div class="game-container relative w-full max-w-2xl h-96 mb-8 p-4">
143
+ <!-- Game board will be generated by JavaScript -->
144
+ </div>
145
+
146
+ <div class="flex flex-col items-center w-full max-w-md">
147
+ <div class="mb-6 grid grid-cols-3 gap-4 w-full">
148
+ <div class="flex items-center justify-center bg-blue-50 p-3 rounded-lg">
149
+ <div class="dot bg-blue-500 text-white mr-2"></div>
150
+ <span class="font-bold">Next</span>
151
+ </div>
152
+ <div class="flex items-center justify-center bg-gray-50 p-3 rounded-lg">
153
+ <div class="dot bg-gray-300 text-gray-700 mr-2"></div>
154
+ <span class="font-bold">Available</span>
155
+ </div>
156
+ <div class="flex items-center justify-center bg-green-50 p-3 rounded-lg">
157
+ <div class="dot bg-green-500 text-white mr-2"></div>
158
+ <span class="font-bold">Completed</span>
159
+ </div>
160
+ </div>
161
+
162
+ <div class="flex space-x-4 mb-6">
163
+ <button id="reset-btn" class="px-6 py-3 bg-red-100 text-red-800 rounded-xl border-2 border-red-200 font-bold hover:bg-red-200 transition flex items-center">
164
+ <i class="fas fa-redo mr-2"></i> Reset
165
+ </button>
166
+ <button id="hint-btn" class="px-6 py-3 bg-yellow-100 text-yellow-800 rounded-xl border-2 border-yellow-200 font-bold hover:bg-yellow-200 transition flex items-center">
167
+ <i class="fas fa-lightbulb mr-2"></i> Hint
168
+ </button>
169
+ <button id="sound-btn" class="px-6 py-3 bg-indigo-100 text-indigo-800 rounded-xl border-2 border-indigo-200 font-bold hover:bg-indigo-200 transition flex items-center">
170
+ <i class="fas fa-volume-up mr-2"></i> Sound On
171
+ </button>
172
+ </div>
173
+
174
+ <div id="timer" class="text-2xl font-mono bg-blue-100 px-6 py-3 rounded-xl mb-4 font-bold text-blue-800">
175
+ <i class="fas fa-clock mr-2"></i> 00:00
176
+ </div>
177
+
178
+ <div id="message" class="text-xl font-semibold text-center min-h-8 p-3 rounded-lg w-full"></div>
179
+ </div>
180
+
181
+ <!-- Audio elements -->
182
+ <audio id="correct-sound" src="https://assets.mixkit.co/sfx/preview/mixkit-correct-answer-tone-2870.mp3" preload="auto"></audio>
183
+ <audio id="wrong-sound" src="https://assets.mixkit.co/sfx/preview/mixkit-wrong-answer-fail-notification-946.mp3" preload="auto"></audio>
184
+ <audio id="celebration-sound" src="https://assets.mixkit.co/sfx/preview/mixkit-achievement-bell-600.mp3" preload="auto"></audio>
185
+ <audio id="click-sound" src="https://assets.mixkit.co/sfx/preview/mixkit-select-click-1109.mp3" preload="auto"></audio>
186
+
187
+ <script>
188
+ document.addEventListener('DOMContentLoaded', function() {
189
+ const gameContainer = document.querySelector('.game-container');
190
+ const resetBtn = document.getElementById('reset-btn');
191
+ const hintBtn = document.getElementById('hint-btn');
192
+ const soundBtn = document.getElementById('sound-btn');
193
+ const newPatternBtn = document.getElementById('new-pattern-btn');
194
+ const timerElement = document.getElementById('timer');
195
+ const messageElement = document.getElementById('message');
196
+ const patternButtons = document.querySelectorAll('.pattern-btn');
197
+
198
+ // Audio elements
199
+ const correctSound = document.getElementById('correct-sound');
200
+ const wrongSound = document.getElementById('wrong-sound');
201
+ const celebrationSound = document.getElementById('celebration-sound');
202
+ const clickSound = document.getElementById('click-sound');
203
+
204
+ let dots = [];
205
+ let lines = [];
206
+ let currentNumber = 1;
207
+ let gameStarted = false;
208
+ let startTime;
209
+ let timerInterval;
210
+ let completedDots = [];
211
+ let currentPattern = 'numbers';
212
+ let soundEnabled = true;
213
+ let currentPatternIndex = 0;
214
+
215
+ // Pattern configurations
216
+ const numberPatterns = [
217
+ {
218
+ name: "Numbers 1-9 (Square)",
219
+ items: [1, 2, 3, 4, 5, 6, 7, 8, 9],
220
+ positions: [
221
+ {x: 15, y: 15}, // 1
222
+ {x: 50, y: 15}, // 2
223
+ {x: 85, y: 15}, // 3
224
+ {x: 85, y: 50}, // 4
225
+ {x: 85, y: 85}, // 5
226
+ {x: 50, y: 85}, // 6
227
+ {x: 15, y: 85}, // 7
228
+ {x: 15, y: 50}, // 8
229
+ {x: 50, y: 50} // 9
230
+ ]
231
+ },
232
+ {
233
+ name: "Numbers 1-9 (Zigzag)",
234
+ items: [1, 2, 3, 4, 5, 6, 7, 8, 9],
235
+ positions: [
236
+ {x: 15, y: 15}, // 1
237
+ {x: 85, y: 15}, // 2
238
+ {x: 15, y: 30}, // 3
239
+ {x: 85, y: 30}, // 4
240
+ {x: 15, y: 45}, // 5
241
+ {x: 85, y: 45}, // 6
242
+ {x: 15, y: 60}, // 7
243
+ {x: 85, y: 60}, // 8
244
+ {x: 50, y: 85} // 9
245
+ ]
246
+ },
247
+ {
248
+ name: "Numbers 1-9 (Spiral)",
249
+ items: [1, 2, 3, 4, 5, 6, 7, 8, 9],
250
+ positions: [
251
+ {x: 50, y: 15}, // 1
252
+ {x: 70, y: 15}, // 2
253
+ {x: 70, y: 35}, // 3
254
+ {x: 50, y: 35}, // 4
255
+ {x: 50, y: 55}, // 5
256
+ {x: 70, y: 55}, // 6
257
+ {x: 70, y: 75}, // 7
258
+ {x: 50, y: 75}, // 8
259
+ {x: 30, y: 75} // 9
260
+ ]
261
+ },
262
+ {
263
+ name: "Numbers 1-9 (Diamond)",
264
+ items: [1, 2, 3, 4, 5, 6, 7, 8, 9],
265
+ positions: [
266
+ {x: 50, y: 15}, // 1
267
+ {x: 65, y: 30}, // 2
268
+ {x: 80, y: 45}, // 3
269
+ {x: 65, y: 60}, // 4
270
+ {x: 50, y: 75}, // 5
271
+ {x: 35, y: 60}, // 6
272
+ {x: 20, y: 45}, // 7
273
+ {x: 35, y: 30}, // 8
274
+ {x: 50, y: 45} // 9
275
+ ]
276
+ }
277
+ ];
278
+
279
+ const letterPatterns = [
280
+ {
281
+ name: "Letters A-I (Circle)",
282
+ items: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
283
+ positions: [
284
+ {x: 50, y: 15}, // A
285
+ {x: 75, y: 25}, // B
286
+ {x: 85, y: 50}, // C
287
+ {x: 75, y: 75}, // D
288
+ {x: 50, y: 85}, // E
289
+ {x: 25, y: 75}, // F
290
+ {x: 15, y: 50}, // G
291
+ {x: 25, y: 25}, // H
292
+ {x: 50, y: 50} // I
293
+ ]
294
+ },
295
+ {
296
+ name: "Letters A-I (Star)",
297
+ items: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
298
+ positions: [
299
+ {x: 50, y: 15}, // A
300
+ {x: 65, y: 35}, // B
301
+ {x: 85, y: 35}, // C
302
+ {x: 70, y: 55}, // D
303
+ {x: 85, y: 75}, // E
304
+ {x: 50, y: 65}, // F
305
+ {x: 15, y: 75}, // G
306
+ {x: 30, y: 55}, // H
307
+ {x: 15, y: 35} // I
308
+ ]
309
+ },
310
+ {
311
+ name: "Letters A-I (House)",
312
+ items: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
313
+ positions: [
314
+ {x: 50, y: 15}, // A
315
+ {x: 25, y: 35}, // B
316
+ {x: 75, y: 35}, // C
317
+ {x: 25, y: 75}, // D
318
+ {x: 75, y: 75}, // E
319
+ {x: 50, y: 75}, // F
320
+ {x: 25, y: 55}, // G
321
+ {x: 75, y: 55}, // H
322
+ {x: 50, y: 55} // I
323
+ ]
324
+ },
325
+ {
326
+ name: "Letters A-I (Tree)",
327
+ items: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
328
+ positions: [
329
+ {x: 50, y: 15}, // A
330
+ {x: 40, y: 30}, // B
331
+ {x: 60, y: 30}, // C
332
+ {x: 30, y: 45}, // D
333
+ {x: 70, y: 45}, // E
334
+ {x: 50, y: 45}, // F
335
+ {x: 40, y: 60}, // G
336
+ {x: 60, y: 60}, // H
337
+ {x: 50, y: 75} // I
338
+ ]
339
+ }
340
+ ];
341
+
342
+ // Initialize the game
343
+ initGame();
344
+
345
+ function initGame() {
346
+ gameContainer.innerHTML = '';
347
+ dots = [];
348
+ lines = [];
349
+ currentNumber = 1;
350
+ gameStarted = false;
351
+ completedDots = [];
352
+ clearInterval(timerInterval);
353
+ timerElement.innerHTML = '<i class="fas fa-clock mr-2"></i> 00:00';
354
+ messageElement.textContent = '';
355
+ messageElement.className = 'text-xl font-semibold text-center min-h-8 p-3 rounded-lg w-full';
356
+
357
+ // Get current pattern configuration
358
+ let pattern;
359
+ if (currentPattern === 'numbers') {
360
+ pattern = numberPatterns[currentPatternIndex % numberPatterns.length];
361
+ } else {
362
+ pattern = letterPatterns[currentPatternIndex % letterPatterns.length];
363
+ }
364
+
365
+ // Adjust positions for responsive layout
366
+ const containerWidth = gameContainer.clientWidth;
367
+ const containerHeight = gameContainer.clientHeight;
368
+
369
+ // Create dots
370
+ for (let i = 0; i < pattern.items.length; i++) {
371
+ const pos = pattern.positions[i];
372
+ const x = (pos.x / 100) * containerWidth;
373
+ const y = (pos.y / 100) * containerHeight;
374
+
375
+ const dot = document.createElement('div');
376
+ dot.className = 'dot absolute bg-gray-300 text-gray-700';
377
+ dot.textContent = pattern.items[i];
378
+ dot.style.left = `${x - 30}px`;
379
+ dot.style.top = `${y - 30}px`;
380
+ dot.dataset.number = i + 1;
381
+
382
+ dot.addEventListener('click', () => handleDotClick(dot));
383
+
384
+ gameContainer.appendChild(dot);
385
+ dots.push({
386
+ element: dot,
387
+ x: x,
388
+ y: y,
389
+ number: i + 1,
390
+ value: pattern.items[i]
391
+ });
392
+ }
393
+
394
+ // Highlight the first dot
395
+ updateDotStates();
396
+
397
+ // Update message with pattern name
398
+ messageElement.textContent = `Connect the dots to make: ${pattern.name}`;
399
+ messageElement.className = 'text-xl font-semibold text-center min-h-8 p-3 rounded-lg w-full bg-blue-100 text-blue-800';
400
+ }
401
+
402
+ function handleDotClick(dot) {
403
+ if (soundEnabled) clickSound.play();
404
+
405
+ const dotNumber = parseInt(dot.dataset.number);
406
+
407
+ if (dotNumber === currentNumber) {
408
+ if (!gameStarted) {
409
+ gameStarted = true;
410
+ startTime = new Date();
411
+ timerInterval = setInterval(updateTimer, 1000);
412
+ }
413
+
414
+ // Mark dot as completed
415
+ completedDots.push(dotNumber);
416
+ dot.classList.remove('bg-gray-300', 'text-gray-700');
417
+ dot.classList.add('bg-green-500', 'text-white', 'completed');
418
+
419
+ // Play correct sound
420
+ if (soundEnabled) correctSound.play();
421
+
422
+ // Draw line if this isn't the first dot
423
+ if (completedDots.length > 1) {
424
+ const prevDot = dots.find(d => d.number === completedDots[completedDots.length - 2]);
425
+ const currentDot = dots.find(d => d.number === dotNumber);
426
+
427
+ drawLine(prevDot, currentDot);
428
+ }
429
+
430
+ // Move to next number
431
+ currentNumber++;
432
+
433
+ // Check if game is complete
434
+ if (currentNumber > dots.length) {
435
+ clearInterval(timerInterval);
436
+ messageElement.textContent = `Great job! You completed the pattern!`;
437
+ messageElement.className = 'text-xl font-semibold text-center min-h-8 p-3 rounded-lg w-full bg-green-100 text-green-800';
438
+
439
+ if (soundEnabled) {
440
+ celebrationSound.currentTime = 0;
441
+ celebrationSound.play();
442
+ }
443
+ createConfetti();
444
+ showCelebration();
445
+ }
446
+
447
+ updateDotStates();
448
+ } else if (dotNumber < currentNumber) {
449
+ // Already completed this dot
450
+ messageElement.textContent = `You already connected ${dots.find(d => d.number === dotNumber).value}`;
451
+ messageElement.className = 'text-xl font-semibold text-center min-h-8 p-3 rounded-lg w-full bg-blue-100 text-blue-800';
452
+
453
+ setTimeout(() => {
454
+ if (currentNumber <= dots.length) {
455
+ messageElement.textContent = `Next is: ${dots.find(d => d.number === currentNumber).value}`;
456
+ messageElement.className = 'text-xl font-semibold text-center min-h-8 p-3 rounded-lg w-full bg-blue-100 text-blue-800';
457
+ } else {
458
+ messageElement.textContent = '';
459
+ }
460
+ }, 1500);
461
+ } else {
462
+ // Wrong dot clicked
463
+ const nextDotValue = dots.find(d => d.number === currentNumber).value;
464
+ messageElement.textContent = `Oops! Try connecting ${nextDotValue} next`;
465
+ messageElement.className = 'text-xl font-semibold text-center min-h-8 p-3 rounded-lg w-full bg-red-100 text-red-800';
466
+
467
+ if (soundEnabled) wrongSound.play();
468
+
469
+ setTimeout(() => {
470
+ if (currentNumber <= dots.length) {
471
+ messageElement.textContent = `Next is: ${nextDotValue}`;
472
+ messageElement.className = 'text-xl font-semibold text-center min-h-8 p-3 rounded-lg w-full bg-blue-100 text-blue-800';
473
+ } else {
474
+ messageElement.textContent = '';
475
+ }
476
+ }, 1500);
477
+ }
478
+ }
479
+
480
+ function updateDotStates() {
481
+ dots.forEach(dot => {
482
+ const dotElement = dot.element;
483
+ const dotNumber = dot.number;
484
+
485
+ // Reset all dots
486
+ dotElement.classList.remove('bg-blue-500', 'text-white', 'active');
487
+
488
+ if (completedDots.includes(dotNumber)) {
489
+ dotElement.classList.add('completed');
490
+ } else if (dotNumber === currentNumber) {
491
+ dotElement.classList.add('bg-blue-500', 'text-white', 'active');
492
+ } else {
493
+ dotElement.classList.add('bg-gray-300', 'text-gray-700');
494
+ }
495
+ });
496
+ }
497
+
498
+ function drawLine(startDot, endDot) {
499
+ const line = document.createElement('div');
500
+ line.className = 'line';
501
+
502
+ // Calculate line position and dimensions
503
+ const x1 = startDot.x;
504
+ const y1 = startDot.y;
505
+ const x2 = endDot.x;
506
+ const y2 = endDot.y;
507
+
508
+ const length = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
509
+ const angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
510
+
511
+ line.style.width = `${length}px`;
512
+ line.style.left = `${x1}px`;
513
+ line.style.top = `${y1}px`;
514
+ line.style.transform = `rotate(${angle}deg)`;
515
+
516
+ gameContainer.appendChild(line);
517
+ lines.push(line);
518
+ }
519
+
520
+ function updateTimer() {
521
+ const currentTime = new Date();
522
+ const elapsedTime = Math.floor((currentTime - startTime) / 1000);
523
+
524
+ const minutes = Math.floor(elapsedTime / 60).toString().padStart(2, '0');
525
+ const seconds = (elapsedTime % 60).toString().padStart(2, '0');
526
+
527
+ timerElement.innerHTML = `<i class="fas fa-clock mr-2"></i> ${minutes}:${seconds}`;
528
+ }
529
+
530
+ function createConfetti() {
531
+ for (let i = 0; i < 150; i++) {
532
+ const confetti = document.createElement('div');
533
+ confetti.className = 'confetti';
534
+
535
+ // Random color
536
+ const colors = ['#f00', '#0f0', '#00f', '#ff0', '#f0f', '#0ff', '#f90', '#09f', '#90f'];
537
+ const randomColor = colors[Math.floor(Math.random() * colors.length)];
538
+ confetti.style.backgroundColor = randomColor;
539
+
540
+ // Random shape
541
+ const shapes = ['circle', 'square', 'triangle'];
542
+ const randomShape = shapes[Math.floor(Math.random() * shapes.length)];
543
+
544
+ if (randomShape === 'square') {
545
+ confetti.style.borderRadius = '0';
546
+ } else if (randomShape === 'triangle') {
547
+ confetti.style.width = '0';
548
+ confetti.style.height = '0';
549
+ confetti.style.backgroundColor = 'transparent';
550
+ confetti.style.borderLeft = '8px solid transparent';
551
+ confetti.style.borderRight = '8px solid transparent';
552
+ confetti.style.borderBottom = `16px solid ${randomColor}`;
553
+ }
554
+
555
+ // Random position
556
+ const gameRect = gameContainer.getBoundingClientRect();
557
+ const x = Math.random() * gameRect.width;
558
+ confetti.style.left = `${x}px`;
559
+ confetti.style.top = `-20px`;
560
+
561
+ // Random size and animation duration
562
+ const size = Math.random() * 15 + 5;
563
+ if (randomShape !== 'triangle') {
564
+ confetti.style.width = `${size}px`;
565
+ confetti.style.height = `${size}px`;
566
+ }
567
+ confetti.style.animationDuration = `${Math.random() * 2 + 2}s`;
568
+
569
+ document.body.appendChild(confetti);
570
+
571
+ // Remove confetti after animation
572
+ setTimeout(() => {
573
+ confetti.remove();
574
+ }, 3000);
575
+ }
576
+ }
577
+
578
+ function showCelebration() {
579
+ const celebration = document.createElement('div');
580
+ celebration.className = 'celebration';
581
+ celebration.innerHTML = '<div class="text-center"><div>🎉</div><div class="text-3xl mt-4">Well Done!</div></div>';
582
+
583
+ document.body.appendChild(celebration);
584
+
585
+ setTimeout(() => {
586
+ celebration.remove();
587
+ }, 3000);
588
+ }
589
+
590
+ function showHint() {
591
+ if (currentNumber > dots.length) return;
592
+
593
+ const nextDot = dots.find(d => d.number === currentNumber);
594
+ if (nextDot) {
595
+ nextDot.element.classList.add('pulse');
596
+
597
+ if (soundEnabled) clickSound.play();
598
+
599
+ setTimeout(() => {
600
+ nextDot.element.classList.remove('pulse');
601
+ }, 2000);
602
+
603
+ messageElement.textContent = `Hint: Next is ${nextDot.value}`;
604
+ messageElement.className = 'text-xl font-semibold text-center min-h-8 p-3 rounded-lg w-full bg-yellow-100 text-yellow-800';
605
+ setTimeout(() => {
606
+ if (currentNumber <= dots.length) {
607
+ messageElement.textContent = `Next is: ${nextDot.value}`;
608
+ messageElement.className = 'text-xl font-semibold text-center min-h-8 p-3 rounded-lg w-full bg-blue-100 text-blue-800';
609
+ } else {
610
+ messageElement.textContent = '';
611
+ }
612
+ }, 2000);
613
+ }
614
+ }
615
+
616
+ function toggleSound() {
617
+ soundEnabled = !soundEnabled;
618
+ if (soundEnabled) {
619
+ soundBtn.innerHTML = '<i class="fas fa-volume-up mr-2"></i> Sound On';
620
+ soundBtn.className = 'px-6 py-3 bg-indigo-100 text-indigo-800 rounded-xl border-2 border-indigo-200 font-bold hover:bg-indigo-200 transition flex items-center';
621
+ } else {
622
+ soundBtn.innerHTML = '<i class="fas fa-volume-mute mr-2"></i> Sound Off';
623
+ soundBtn.className = 'px-6 py-3 bg-gray-200 text-gray-800 rounded-xl border-2 border-gray-300 font-bold hover:bg-gray-300 transition flex items-center';
624
+ }
625
+ }
626
+
627
+ function changePattern(pattern) {
628
+ currentPattern = pattern;
629
+ currentPatternIndex = Math.floor(Math.random() * (pattern === 'numbers' ? numberPatterns.length : letterPatterns.length));
630
+ patternButtons.forEach(btn => {
631
+ if (btn.dataset.pattern === pattern) {
632
+ btn.classList.add('active');
633
+ } else {
634
+ btn.classList.remove('active');
635
+ }
636
+ });
637
+
638
+ if (soundEnabled) clickSound.play();
639
+ initGame();
640
+ }
641
+
642
+ function getNewPattern() {
643
+ currentPatternIndex++;
644
+ if (soundEnabled) clickSound.play();
645
+ initGame();
646
+ }
647
+
648
+ // Event listeners
649
+ resetBtn.addEventListener('click', () => {
650
+ if (soundEnabled) clickSound.play();
651
+ initGame();
652
+ });
653
+
654
+ hintBtn.addEventListener('click', showHint);
655
+ soundBtn.addEventListener('click', toggleSound);
656
+ newPatternBtn.addEventListener('click', getNewPattern);
657
+
658
+ patternButtons.forEach(btn => {
659
+ btn.addEventListener('click', () => changePattern(btn.dataset.pattern));
660
+ });
661
+
662
+ // Make responsive
663
+ window.addEventListener('resize', initGame);
664
+ });
665
+ </script>
666
+ <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=madansa7/rajagame" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
667
+ </html>
prompts.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ Create a fully responsive and visually appealing interactive CV/Resume website for Praveen Kumar. He has extensive work experience across various industries, notably in the automobile sector and back-office administration. The design should be modern, clean, and mobile-friendly, using HTML, CSS (preferably Flexbox/Grid), and JavaScript if needed. Include elegant animations/transitions, smooth scroll behavior, and use fonts and colors that give it a professional yet approachable vibe. The CV should include the following sections: Header: Full name (Praveen Kumar), a short professional tagline ("Versatile Professional with Cross-Industry Experience"), and a navigation menu. About Me: A short paragraph on Praveen's background, work ethic, and adaptability. Emphasize soft skills like communication, coordination, and dedication to quality. Experience: Timeline or card-style format showing Praveen’s roles in the automobile sector and administrative/back-office jobs. Include company names, designations, and responsibilities (you can add generic but realistic ones like vendor coordination, office support, document management, or team assistance). Skills: A grid or bar-chart-style layout showing proficiency in skills such as Microsoft Office, Team Coordination, Inventory Management, Communication, Time Management, and Data Entry. Education: Mention highest qualifications and relevant certifications (create placeholder if exact data isn't available). Projects: Optional section to highlight any achievements or initiatives (e.g., improving office workflow or managing logistics). Contact Me: Interactive contact form and basic contact details. Footer: Simple copyright with social media icons (LinkedIn, email). Add relevant placeholder text and icons where required. Make sure the entire site is mobile responsive, uses semantic HTML5, and is SEO-friendly. Use subtle hover effects, card shadows, and a pleasing color palette (such as blue and white, or grey and teal). Add basic CSS animations for interactivity. Sales marketing Executive at vodafone, Sumerpur (Amit Enterprises) raj. Duration 2 Year (Aug 2015- Oct 2017) Responsibility Here my role used to deal with shopkeeper, used to sell this product over e-top,sim, recharge Coupon, Touch 50 shop in a day. Front Office (Receptionist) At Hotel, Kamba Jawai. Raj. Duration 2 Year (Nov 2017- Oct 2019) Responsibility Managing Front office for hotel.( Front office, Lendingkart Finance Ltd. Duration 1 year (Jan 2022 – Jan 2023) Responsibility Business Loan Specialist. Landmark, Honda Duration 11 Month March 2023-Feb 2024. Responsibility After Sales Service (Finance) Customer Relationship Executive BMW Gallops Duration Mar 2024-till now Responsibility Insurance Advisor:-Correspondence with regarding General insurance(Car Insurance) QUALIFICATION Academic *BA Graducation, *RSCIT Course 2016 *Tally ERP 9 *12th from Raj.Board,in the year 2013. *10th from Rajasthan Board, in the year 2010.
2
+ Design me a interactive ZIp game. Linkedin ZIp Game to connect 1 to 9 an
3
+ I like this idea, This is good for kids, i want you to create more pattern within this, we can make kids connect this dots and learn sequence of various things, again, consider easy to identify such number and letters, it should have celebration sound and wrong sound when connected wrong strings and correct sound when done it right way.
4
+ Remove basic shapes and animal shape, also add more pattern in Numbers and lettters, everytime there should be a new fresh page for numbers and letters game. and look into celebration sound as it is not working.