Files changed (1) hide show
  1. index.html +103 -97
index.html CHANGED
@@ -560,19 +560,19 @@
560
  <div id="sidebar" class="sidebar">
561
  <a href="javascript:void(0)" class="closebtn" onclick="closeSidebar()">&times;</a>
562
  <ul class="sidebar-links">
563
- <li><a href="#" onclick="setPage('tifinagh'); closeSidebar();">تعلم الحروف</a></li>
564
- <li><a href="#" onclick="setPage('numbers'); closeSidebar();">تعلم الأرقام</a></li>
565
- <li><a href="#" onclick="setPage('animals'); closeSidebar();">الحيوانات</a></li>
566
- <li><a href="#" onclick="setPage('schoolSupplies'); closeSidebar();">أدوات مدرسية</a></li>
567
- <li><a href="#" onclick="setPage('colors'); closeSidebar();">الألوان</a></li>
568
- <li><a href="#" onclick="setPage('family'); closeSidebar();">العائلة</a></li>
569
- <li><a href="#" onclick="setPage('bodyParts'); closeSidebar();">أجزاء الجسم</a></li>
570
- <li><a href="#" onclick="setPage('seasons'); closeSidebar();">فصول السنة</a></li>
571
- <li><a href="#" onclick="setPage('fruits'); closeSidebar();">الفواكه</a></li>
572
- <li><a href="#" onclick="setPage('vegetables'); closeSidebar();">الخضروات</a></li>
573
- <li><a href="#" onclick="setPage('months'); closeSidebar();">الشهور</a></li>
574
- <li><a href="#" onclick="setPage('days'); closeSidebar();">أيام الأسبوع</a></li>
575
- <li><a href="#" onclick="setPage('gameMenu'); closeSidebar();">ألعاب تعليمية</a></li>
576
  <li><a href="#" onclick="showAboutInfo(); closeSidebar();">حول التطبيق</a></li>
577
  <li><a href="#" onclick="showContactInfo(); closeSidebar();">تواصل معنا</a></li>
578
  </ul>
@@ -717,62 +717,62 @@
717
  { letter: 'ⵟ', word: 'ⵡⴰ', image: 'images/18ba9148bea2d0c08b4eb17fa5bb4191.jpg', audio: 'audio/wa.mp3' },
718
  { letter: 'ⵡ', word: 'ⵢⴰ', image: 'images/7003fb876f05322043f933e3aa69b4b2.jpg', audio: 'audio/ya.mp3' },
719
  { letter: 'ⵢ', word: 'ⵣⴰ', image: 'images/d6fff0c6ae47f7a1975b0552f9a27ea3.jpg', audio: 'audio/za.mp3' },
720
- { letter: 'ⵣ', word: 'ⵉⵣⵎ', image: 'images/16ed553e1340aff9c328037809f77630.jpg', audio: 'audio/zza.mp3' },
721
  { letter: 'ⵥ', word: 'ⵀⴰ', image: 'images/65b06b2cc59501fde624f2791ed29b7f.jpg', audio: 'audio/ha.mp3' },
722
  ];
723
 
724
  const animalsData = [
725
- { word: 'قطة', image: 'images/cat.jpeg', audio: 'audio/animaux.ogg' },
726
- { word: 'كلب', image: 'images/124419894dcfde81ffbca1e072804c71.jpg', audio: 'audio/dog.mp3' },
727
- { word: 'أسد', image: 'images/16ed553e1340aff9c328037809f77630.jpg', audio: 'audio/lion.mp3' },
728
- { word: 'فيل', image: 'images/9effc4c9c62ffca84b93c65bc298836f.jpg', audio: 'audio/elephant.mp3' },
729
- { word: 'قرد', image: 'images/bd76426bddeb01a4d10e00630ecf1af4.jpg', audio: 'audio/monkey.mp3' },
730
- { word: 'غزالة', image: 'images/962d3b8c713deb410ee5b8b50e4bd717.jpg', audio: 'audio/giraffe.mp3' },
731
- { word: 'نمر', image: 'images/aafe42802b757cd64eacd46369c434e7.jpg', audio: 'audio/tiger.mp3' },
732
- { word: 'دب', image: 'images/5b8ac2e52472946d311318ef526b6beb.jpg', audio: 'audio/bear.mp3' },
733
- { word: 'سمكة', image: 'images/da8aec162d9a6d5d9fe43a74275ee101.jpg', audio: 'audio/fish.mp3' },
734
- { word: 'حمامة', image: 'images/a84e9e05df41e5e0b719516010e98a4b.jpg', audio: 'audio/bird.mp3' },
735
- { word: 'أرنب', image: 'images/a63049990b70e79ff55923e73c7e238e.jpg', audio: 'audio/rabbit.mp3' },
736
- { word: 'خروف', image: 'images/e2c175ddc37997fd99ad5287e50e5377.jpg', audio: 'audio/sheep.mp3' },
737
- { word: 'حصان', image: 'images/c7b9740d4a6a0a8b6a13f7f7b317af0d.jpg', audio: 'audio/horse.mp3' },
738
- { word: 'سلحفاة', image: 'images/69ef8ef015eaee077cb590f45fa79f3d.jpg', audio: 'audio/fox.mp3' },
739
- { word: 'بومة', image: 'images/b9b6d56ad9077190a9923a63bd78d8bc.jpg', audio: 'audio/owl.mp3' },
740
- { word: 'ذئب', image: 'images/2241ff059ca5b87903f61f336a4aa430.jpg', audio: 'audio/wolf.mp3' },
741
- { word: 'بطة', image: 'images/c93987d8f7f0baf0d29f9c20c83c97e3.jpg', audio: 'audio/duck.mp3' },
742
- { word: 'زرافة', image: 'images/c0cc7605f98169dfc456eb36d3a0582a.jpg', audio: 'audio/deer.mp3' },
743
- { word: 'جمل', image: 'images/897c6933dd87410c603aae4c04feb091.jpg', audio: 'audio/camel.mp3' },
744
- { word: 'فراشة', image: 'images/3fd6beebd231e2f325469a40b0831b59.jpg', audio: 'audio/butterfly.mp3' }
745
  ];
746
 
747
  const numbersData = [
748
- { number: '1', word: 'واحد', image: 'images/b26681eaa5caacbf1c7bfb112f546def.jpg', audio: 'audio/one.mp3' },
749
- { number: '2', word: 'اثنان', image: 'images/c391d2e8b5081720ab58b167d96abd50.jpg', audio: 'audio/two.mp3' },
750
- { number: '3', word: 'ثلاثة', image: 'images/8baf8accac02f718e274f7f0efe8e208.jpg', audio: 'audio/three.mp3' },
751
- { number: '4', word: 'أربعة', image: 'images/5af82e7a87c9d7d1a93173d953e2c033.jpg', audio: 'audio/four.mp3' },
752
- { number: '5', word: 'خمسة', image: 'images/569cc0c8af30f8116c776a21a230f9d0.jpg', audio: 'audio/five.mp3' },
753
- { number: '6', word: 'ستة', image: 'images/8b693928c5447c7381948bd23fa0a94c.jpg', audio: 'audio/six.mp3' },
754
- { number: '7', word: 'سبعة', image: 'images/17a897f15be1f2e5976f0eb51f4cdbc8.jpg', audio: 'audio/seven.mp3' },
755
- { number: '8', word: 'ثمانية', image: 'images/bbf58163e3765676d6dadffbc94dd6fb.jpg', audio: 'audio/eight.mp3' },
756
- { number: '9', word: 'تسعة', image: 'images/83e98be29b454d400cc1c78160a51207.jpg', audio: 'audio/nine.mp3' },
757
- { number: '10', word: 'عشرة', image: 'images/a1b9f28aa43bda697d0bff6ae52bc06c.jpg', audio: 'audio/ten.mp3' },
758
- { number: '11', word: 'أحد عشر', image: 'images/d4ef0ea2c17f056b7c67aa6553b27199.jpg', audio: 'audio/eleven.mp3' },
759
- { number: '12', word: 'اثنا عشر', image: 'images/799c20391c8da09c7d215758ab073e37.jpg', audio: 'audio/twelve.mp3' },
760
- { number: '13', word: 'ثلاثة عشر', image: 'images/6e399d0a8789755580e42baab5dc139c.jpg', audio: 'audio/thirteen.mp3' },
761
- { number: '14', word: 'أربعة عشر', image: 'images/d343262b3b9442fcc9762211933606cc.jpg', audio: 'audio/fourteen.mp3' },
762
- { number: '15', word: 'خمسة عشر', image: 'images/c15420b455196337d1bb3262c76e0205.jpg', audio: 'audio/fifteen.mp3' },
763
- { number: '16', word: 'ستة عشر', image: 'images/f78e9d858b7d623189b5c92069e1bed6.jpg', audio: 'audio/sixteen.mp3' },
764
- { number: '17', word: 'سبعة عشر', image: 'images/59521d81566c71406f14deae2109e398.jpg', audio: 'audio/seventeen.mp3' },
765
- { number: '18', word: 'ثمانية عشر', image: 'images/941eca2038794392f5068e4ad4c26968 (1).jpg', audio: 'audio/eighteen.mp3' },
766
- { number: '19', word: 'تسعة عشر', image: 'images/a45794b6674c50601ed941cf1779e659.jpg', audio: 'audio/nineteen.mp3' },
767
- { number: '20', word: 'عشرون', image: 'images/e6129621d08c4d9d1d4ea409c25da4d0.jpg', audio: 'audio/twenty.mp3' },
768
- { number: '30', word: 'ثلاثون', image: 'images/b36ee0ac2527f343cdc6901178d13f79.jpg', audio: 'audio/thirty.mp3' },
769
- { number: '40', word: 'أربعون', image: 'images/0654ca9081b2713cfc7bbffeac57bbe0.jpg', audio: 'audio/forty.mp3' },
770
- { number: '50', word: 'خمسون', image: 'images/3164ba91b5bb3ff493744e6c818a16d0.jpg', audio: 'audio/fifty.mp3' },
771
- { number: '60', word: 'ستون', image: 'images/2246588b5c3c296bd437d680aba2215e.jpg', audio: 'audio/sixty.mp3' },
772
- { number: '70', word: 'سبعون', image: 'images/99888182607727f778a54d7928e6c9da.jpg', audio: 'audio/seventy.mp3' },
773
- { number: '80', word: 'ثمانون', image: 'images/06712963a5e7ec91b2a92f6e784f497f.jpg', audio: 'audio/eighty.mp3' },
774
- { number: '90', word: 'تسعون', image: 'images/200b2d90f616135b9a370edc61a6352d.jpg', audio: 'audio/ninety.mp3' },
775
- { number: '100', word: 'مئة', image: 'images/6c0d711f25cf417970f12ec5547e6b53.jpg', audio: 'audio/one_hundred.mp3' },
776
  ];
777
  const schoolSuppliesData = [
778
  { word: 'قلم رصاص', image: '', audio: 'audio/pencil.mp3' },
@@ -895,10 +895,16 @@
895
  ];
896
 
897
  // Data for memory game images
898
- const memoryGameImages = [
899
- 'placeholder.png', 'placeholder.png', 'placeholder.png', 'placeholder.png',
900
- 'placeholder.png', 'placeholder.png', 'placeholder.png', 'placeholder.png',
901
- 'placeholder.png', 'placeholder.png', 'placeholder.png', 'placeholder.png'
 
 
 
 
 
 
902
  ];
903
 
904
  // Memory game levels with image pairs
@@ -917,15 +923,10 @@
917
 
918
  // Data for the new shadow matching game
919
  const shadowGameData = [
920
- { animal: 'دب', image: '', shadow: '' },
921
- { animal: 'أرنب', image: '', shadow: '' },
922
- { animal: 'ثعلب', image: '', shadow: '' },
923
- { animal: 'غزال', image: '', shadow: '' },
924
- { animal: 'بومة', image: '', shadow: '' },
925
- { animal: 'نمر', image: '', shadow: '' },
926
- { animal: 'ذئب', image: '', audio: '' },
927
- { animal: 'خنزير', image: '', audio: '' },
928
- { animal: 'سنجاب', image: '', audio: '' },
929
  ];
930
 
931
  // New letter game data
@@ -1113,43 +1114,43 @@
1113
  const mainContent = document.createElement('div');
1114
  mainContent.className = 'grid-container';
1115
  mainContent.innerHTML = `
1116
- <a class="card" onclick="setPage('tifinagh')" style="background-image: url('images/6e318d538a2d8f0b5ad685db558ffe4e.jpg');">
1117
  <span class="card-text">تعلم الحروف</span>
1118
  </a>
1119
- <a class="card" onclick="setPage('numbers')" style="background-image: url('images/0751e273c2de27e4b04dfeb7ee99b448.jpg');">
1120
  <span class="card-text">تعلم الأرقام</span>
1121
  </a>
1122
- <a class="card" onclick="setPage('animals')" style="background-image: url('images/cc47a84c5a0bc2ca1dbcd62f10a55c87.jpg');">
1123
  <span class="card-text">الحيوانات</span>
1124
  </a>
1125
- <a class="card" onclick="setPage('schoolSupplies')" style="background-image: url('images/0c213d91ee39eb05ef6f72bd4bcba069.jpg');">
1126
  <span class="card-text">أدوات مدرسية</span>
1127
  </a>
1128
- <a class="card" onclick="setPage('colors')" style="background-image: url('images/006982c7d7140beec732267e28d68605.jpg');">
1129
  <span class="card-text">الألوان</span>
1130
  </a>
1131
- <a class="card" onclick="setPage('family')" style="background-image: url('images/d79c9d03554cd6fee1d53198741968b7.jpg');">
1132
  <span class="card-text">العائلة</span>
1133
  </a>
1134
- <a class="card" onclick="setPage('bodyParts')" style="background-image: url('images/06e6590e35375b8ef3a2e74882661597.jpg');">
1135
  <span class="card-text">أجزاء الجسم</span>
1136
  </a>
1137
- <a class="card" onclick="setPage('seasons')" style="background-image: url('images/ea0c045a62c0ee0f966ab451c442a7bc.jpg');">
1138
  <span class="card-text">فصول السنة</span>
1139
  </a>
1140
- <a class="card" onclick="setPage('fruits')" style="background-image: url('images/06373d4c110a73840102a0eb6369d686.jpg');">
1141
  <span class="card-text">الفواكه</span>
1142
  </a>
1143
- <a class="card" onclick="setPage('vegetables')" style="background-image: url('images/105d0617ac9684db8508f7f5997943d0.jpg');">
1144
  <span class="card-text">الخضروات</span>
1145
  </a>
1146
- <a class="card" onclick="setPage('months')" style="background-image: url('images/490f057fea8b448d6ca63c1bcd2d1443.jpg');">
1147
  <span class="card-text">الشهور</span>
1148
  </a>
1149
- <a class="card" onclick="setPage('days')" style="background-image: url('images/7b3d97b91460a3452340081ea39f81d1.jpg');">
1150
  <span class="card-text">أيام الأسبوع</span>
1151
  </a>
1152
- <a class="card" onclick="setPage('gameMenu')" style="background-image: url('images/10718386fa98b751dd0ec58cfdb9b5c9.jpg');">
1153
  <span class="card-text">ألعاب تعليمية</span>
1154
  </a>
1155
  `;
@@ -1304,20 +1305,21 @@
1304
  const info = document.getElementById('game-info');
1305
  if (!board || !info) return;
1306
 
1307
- totalPairs = memoryGameLevels[currentLevel].pairs;
1308
- const shuffledImages = shuffleArray([...memoryGameImages].slice(0, totalPairs));
1309
- const cardImages = [...shuffledImages, ...shuffledImages];
1310
- shuffleArray(cardImages);
1311
 
1312
  board.innerHTML = '';
1313
- board.style.gridTemplateColumns = memoryGameLevels[currentLevel].grid;
1314
 
1315
- cardImages.forEach((imgSrc, index) => {
1316
  const card = document.createElement('div');
1317
  card.className = 'game-card';
1318
- card.dataset.image = imgSrc;
 
1319
  card.innerHTML = `
1320
- <div class="game-card-front" style="background-image: url('${imgSrc}');"></div>
1321
  <div class="game-card-back"></div>
1322
  `;
1323
  card.addEventListener('click', flipCard);
@@ -1352,6 +1354,7 @@
1352
  secondCard.removeEventListener('click', flipCard);
1353
  firstCard.classList.add('matched');
1354
  secondCard.classList.add('matched');
 
1355
  matchedPairs++;
1356
  const matchedCount = document.getElementById('matched-count');
1357
  if (matchedCount) matchedCount.innerText = matchedPairs;
@@ -1491,7 +1494,7 @@
1491
  const shadowBox = document.createElement('div');
1492
  shadowBox.className = 'shadow-box';
1493
  shadowBox.dataset.animal = item.animal;
1494
- shadowBox.innerHTML = `<img src="${item.image}" alt="${item.animal} shadow" class="shadow-image">`;
1495
  shadowBox.addEventListener('dragover', e => e.preventDefault());
1496
  shadowBox.addEventListener('drop', handleDrop);
1497
  topContainer.appendChild(shadowBox);
@@ -1502,6 +1505,7 @@
1502
  const animalImg = document.createElement('div');
1503
  animalImg.className = 'draggable-animal';
1504
  animalImg.dataset.animal = item.animal;
 
1505
  animalImg.draggable = true;
1506
  animalImg.style.backgroundImage = `url('${item.image}')`;
1507
  animalImg.addEventListener('dragstart', handleDragStart);
@@ -1529,6 +1533,8 @@
1529
  targetElement.style.border = 'none';
1530
  targetElement.classList.add('matched-correctly');
1531
 
 
 
1532
  draggedItem.remove();
1533
  draggedItem = null;
1534
  matchedShadows++;
 
560
  <div id="sidebar" class="sidebar">
561
  <a href="javascript:void(0)" class="closebtn" onclick="closeSidebar()">&times;</a>
562
  <ul class="sidebar-links">
563
+ <li><a href="#" onclick="setPage('tifinagh'); playSound('audio/tifinagh_category.mp3'); closeSidebar();">تعلم الحروف</a></li>
564
+ <li><a href="#" onclick="setPage('numbers'); playSound('audio/numbers_category.mp3'); closeSidebar();">تعلم الأرقام</a></li>
565
+ <li><a href="#" onclick="setPage('animals'); playSound('audio/animals_category.mp3'); closeSidebar();">الحيوانات</a></li>
566
+ <li><a href="#" onclick="setPage('schoolSupplies'); playSound('audio/school_supplies_category.mp3'); closeSidebar();">أدوات مدرسية</a></li>
567
+ <li><a href="#" onclick="setPage('colors'); playSound('audio/colors_category.mp3'); closeSidebar();">الألوان</a></li>
568
+ <li><a href="#" onclick="setPage('family'); playSound('audio/family_category.mp3'); closeSidebar();">العائلة</a></li>
569
+ <li><a href="#" onclick="setPage('bodyParts'); playSound('audio/body_parts_category.mp3'); closeSidebar();">أجزاء الجسم</a></li>
570
+ <li><a href="#" onclick="setPage('seasons'); playSound('audio/seasons_category.mp3'); closeSidebar();">فصول السنة</a></li>
571
+ <li><a href="#" onclick="setPage('fruits'); playSound('audio/fruits_category.mp3'); closeSidebar();">الفواكه</a></li>
572
+ <li><a href="#" onclick="setPage('vegetables'); playSound('audio/vegetables_category.mp3'); closeSidebar();">الخضروات</a></li>
573
+ <li><a href="#" onclick="setPage('months'); playSound('audio/months_category.mp3'); closeSidebar();">الشهور</a></li>
574
+ <li><a href="#" onclick="setPage('days'); playSound('audio/days_category.mp3'); closeSidebar();">أيام الأسبوع</a></li>
575
+ <li><a href="#" onclick="setPage('gameMenu'); playSound('audio/games_category.mp3'); closeSidebar();">ألعاب تعليمية</a></li>
576
  <li><a href="#" onclick="showAboutInfo(); closeSidebar();">حول التطبيق</a></li>
577
  <li><a href="#" onclick="showContactInfo(); closeSidebar();">تواصل معنا</a></li>
578
  </ul>
 
717
  { letter: 'ⵟ', word: 'ⵡⴰ', image: 'images/18ba9148bea2d0c08b4eb17fa5bb4191.jpg', audio: 'audio/wa.mp3' },
718
  { letter: 'ⵡ', word: 'ⵢⴰ', image: 'images/7003fb876f05322043f933e3aa69b4b2.jpg', audio: 'audio/ya.mp3' },
719
  { letter: 'ⵢ', word: 'ⵣⴰ', image: 'images/d6fff0c6ae47f7a1975b0552f9a27ea3.jpg', audio: 'audio/za.mp3' },
720
+ { letter: 'ⵣ', word: 'ⵥⴰ', image: 'images/16ed553e1340aff9c328037809f77630.jpg', audio: 'audio/zza.mp3' },
721
  { letter: 'ⵥ', word: 'ⵀⴰ', image: 'images/65b06b2cc59501fde624f2791ed29b7f.jpg', audio: 'audio/ha.mp3' },
722
  ];
723
 
724
  const animalsData = [
725
+ { word: 'قطة', image: 'images/cat.jpg', audio: 'audio/cat.mp3' },
726
+ { word: 'كلب', image: 'images/dog.jpg', audio: 'audio/dog.mp3' },
727
+ { word: 'أسد', image: 'images/lion.jpg', audio: 'audio/lion.mp3' },
728
+ { word: 'فيل', image: 'images/elephant.jpg', audio: 'audio/elephant.mp3' },
729
+ { word: 'قرد', image: 'images/monkey.jpg', audio: 'audio/monkey.mp3' },
730
+ { word: 'زرافة', image: 'images/giraffe.jpg', audio: 'audio/giraffe.mp3' },
731
+ { word: 'نمر', image: 'images/tiger.jpg', audio: 'audio/tiger.mp3' },
732
+ { word: 'دب', image: 'images/bear.jpg', audio: 'audio/bear.mp3' },
733
+ { word: 'سمكة', image: 'images/fish.jpg', audio: 'audio/fish.mp3' },
734
+ { word: 'طائر', image: 'images/bird.jpg', audio: 'audio/bird.mp3' },
735
+ { word: 'أرنب', image: 'images/rabbit.jpg', audio: 'audio/rabbit.mp3' },
736
+ { word: 'خروف', image: 'images/sheep.jpg', audio: 'audio/sheep.mp3' },
737
+ { word: 'حصان', image: 'images/horse.jpg', audio: 'audio/horse.mp3' },
738
+ { word: 'ثعلب', image: 'images/fox.jpg', audio: 'audio/fox.mp3' },
739
+ { word: 'بومة', image: 'images/owl.jpg', audio: 'audio/owl.mp3' },
740
+ { word: 'ذئب', image: 'images/wolf.jpg', audio: 'audio/wolf.mp3' },
741
+ { word: 'بطة', image: 'images/duck.jpg', audio: 'audio/duck.mp3' },
742
+ { word: 'غزال', image: 'images/deer.jpg', audio: 'audio/deer.mp3' },
743
+ { word: 'جمل', image: 'images/camel.jpg', audio: 'audio/camel.mp3' },
744
+ { word: 'فراشة', image: 'images/butterfly.jpg', audio: 'audio/butterfly.mp3' }
745
  ];
746
 
747
  const numbersData = [
748
+ { number: '1', word: 'واحد', image: '', audio: 'audio/one.mp3' },
749
+ { number: '2', word: 'اثنان', image: '', audio: 'audio/two.mp3' },
750
+ { number: '3', word: 'ثلاثة', image: '', audio: 'audio/three.mp3' },
751
+ { number: '4', word: 'أربعة', image: '', audio: 'audio/four.mp3' },
752
+ { number: '5', word: 'خمسة', image: '', audio: 'audio/five.mp3' },
753
+ { number: '6', word: 'ستة', image: '', audio: 'audio/six.mp3' },
754
+ { number: '7', word: 'سبعة', image: '', audio: 'audio/seven.mp3' },
755
+ { number: '8', word: 'ثمانية', image: '', audio: 'audio/eight.mp3' },
756
+ { number: '9', word: 'تسعة', image: '', audio: 'audio/nine.mp3' },
757
+ { number: '10', word: 'عشرة', image: '', audio: 'audio/ten.mp3' },
758
+ { number: '11', word: 'أحد عشر', image: '', audio: 'audio/eleven.mp3' },
759
+ { number: '12', word: 'اثنا عشر', image: '', audio: 'audio/twelve.mp3' },
760
+ { number: '13', word: 'ثلاثة عشر', image: '', audio: 'audio/thirteen.mp3' },
761
+ { number: '14', word: 'أربعة عشر', image: '', audio: 'audio/fourteen.mp3' },
762
+ { number: '15', word: 'خمسة عشر', image: '', audio: 'audio/fifteen.mp3' },
763
+ { number: '16', word: 'ستة عشر', image: '', audio: 'audio/sixteen.mp3' },
764
+ { number: '17', word: 'سبعة عشر', image: '', audio: 'audio/seventeen.mp3' },
765
+ { number: '18', word: 'ثمانية عشر', image: '', audio: 'audio/eighteen.mp3' },
766
+ { number: '19', word: 'تسعة عشر', image: '', audio: 'audio/nineteen.mp3' },
767
+ { number: '20', word: 'عشرون', image: '', audio: 'audio/twenty.mp3' },
768
+ { number: '30', word: 'ثلاثون', image: '', audio: 'audio/thirty.mp3' },
769
+ { number: '40', word: 'أربعون', image: '', audio: 'audio/forty.mp3' },
770
+ { number: '50', word: 'خمسون', image: '', audio: 'audio/fifty.mp3' },
771
+ { number: '60', word: 'ستون', image: '', audio: 'audio/sixty.mp3' },
772
+ { number: '70', word: 'سبعون', image: '', audio: 'audio/seventy.mp3' },
773
+ { number: '80', word: 'ثمانون', image: '', audio: 'audio/eighty.mp3' },
774
+ { number: '90', word: 'تسعون', image: '', audio: 'audio/ninety.mp3' },
775
+ { number: '100', word: 'مئة', image: '', audio: 'audio/one_hundred.mp3' },
776
  ];
777
  const schoolSuppliesData = [
778
  { word: 'قلم رصاص', image: '', audio: 'audio/pencil.mp3' },
 
895
  ];
896
 
897
  // Data for memory game images
898
+ // Using a subset of animalsData for the memory game
899
+ const memoryGameData = [
900
+ { word: 'قطة', image: 'images/cat.jpg', audio: 'audio/cat.mp3' },
901
+ { word: 'كلب', image: 'images/dog.jpg', audio: 'audio/dog.mp3' },
902
+ { word: 'أسد', image: 'images/lion.jpg', audio: 'audio/lion.mp3' },
903
+ { word: 'فيل', image: 'images/elephant.jpg', audio: 'audio/elephant.mp3' },
904
+ { word: 'قرد', image: 'images/monkey.jpg', audio: 'audio/monkey.mp3' },
905
+ { word: 'أرنب', image: 'images/rabbit.jpg', audio: 'audio/rabbit.mp3' },
906
+ { word: 'حصان', image: 'images/horse.jpg', audio: 'audio/horse.mp3' },
907
+ { word: 'بومة', image: 'images/owl.jpg', audio: 'audio/owl.mp3' },
908
  ];
909
 
910
  // Memory game levels with image pairs
 
923
 
924
  // Data for the new shadow matching game
925
  const shadowGameData = [
926
+ { animal: 'دب', image: 'images/bear.jpg', shadow: 'images/bear-shadow.png', audio: 'audio/bear.mp3' },
927
+ { animal: 'أرنب', image: 'images/rabbit.jpg', shadow: 'images/rabbit-shadow.png', audio: 'audio/rabbit.mp3' },
928
+ { animal: 'ثعلب', image: 'images/fox.jpg', shadow: 'images/fox-shadow.png', audio: 'audio/fox.mp3' },
929
+ { animal: 'بومة', image: 'images/owl.jpg', shadow: 'images/owl-shadow.png', audio: 'audio/owl.mp3' },
 
 
 
 
 
930
  ];
931
 
932
  // New letter game data
 
1114
  const mainContent = document.createElement('div');
1115
  mainContent.className = 'grid-container';
1116
  mainContent.innerHTML = `
1117
+ <a class="card" onclick="setPage('tifinagh'); playSound('audio/tifinagh_category.mp3')" style="background-image: url('images/6e318d538a2d8f0b5ad685db558ffe4e.jpg');">
1118
  <span class="card-text">تعلم الحروف</span>
1119
  </a>
1120
+ <a class="card" onclick="setPage('numbers'); playSound('audio/numbers_category.mp3')" style="background-image: url('images/0751e273c2de27e4b04dfeb7ee99b448.jpg');">
1121
  <span class="card-text">تعلم الأرقام</span>
1122
  </a>
1123
+ <a class="card" onclick="setPage('animals'); playSound('audio/animals_category.mp3')" style="background-image: url('images/cc47a84c5a0bc2ca1dbcd62f10a55c87.jpg');">
1124
  <span class="card-text">الحيوانات</span>
1125
  </a>
1126
+ <a class="card" onclick="setPage('schoolSupplies'); playSound('audio/school_supplies_category.mp3')" style="background-image: url('images/0c213d91ee39eb05ef6f72bd4bcba069.jpg');">
1127
  <span class="card-text">أدوات مدرسية</span>
1128
  </a>
1129
+ <a class="card" onclick="setPage('colors'); playSound('audio/colors_category.mp3')" style="background-image: url('images/006982c7d7140beec732267e28d68605.jpg');">
1130
  <span class="card-text">الألوان</span>
1131
  </a>
1132
+ <a class="card" onclick="setPage('family'); playSound('audio/family_category.mp3')" style="background-image: url('images/d79c9d03554cd6fee1d53198741968b7.jpg');">
1133
  <span class="card-text">العائلة</span>
1134
  </a>
1135
+ <a class="card" onclick="setPage('bodyParts'); playSound('audio/body_parts_category.mp3')" style="background-image: url('images/06e6590e35375b8ef3a2e74882661597.jpg');">
1136
  <span class="card-text">أجزاء الجسم</span>
1137
  </a>
1138
+ <a class="card" onclick="setPage('seasons'); playSound('audio/seasons_category.mp3')" style="background-image: url('images/ea0c045a62c0ee0f966ab451c442a7bc.jpg');">
1139
  <span class="card-text">فصول السنة</span>
1140
  </a>
1141
+ <a class="card" onclick="setPage('fruits'); playSound('audio/fruits_category.mp3')" style="background-image: url('images/06373d4c110a73840102a0eb6369d686.jpg');">
1142
  <span class="card-text">الفواكه</span>
1143
  </a>
1144
+ <a class="card" onclick="setPage('vegetables'); playSound('audio/vegetables_category.mp3')" style="background-image: url('images/105d0617ac9684db8508f7f5997943d0.jpg');">
1145
  <span class="card-text">الخضروات</span>
1146
  </a>
1147
+ <a class="card" onclick="setPage('months'); playSound('audio/months_category.mp3')" style="background-image: url('images/490f057fea8b448d6ca63c1bcd2d1443.jpg');">
1148
  <span class="card-text">الشهور</span>
1149
  </a>
1150
+ <a class="card" onclick="setPage('days'); playSound('audio/days_category.mp3')" style="background-image: url('images/7b3d97b91460a3452340081ea39f81d1.jpg');">
1151
  <span class="card-text">أيام الأسبوع</span>
1152
  </a>
1153
+ <a class="card" onclick="setPage('gameMenu'); playSound('audio/games_category.mp3')" style="background-image: url('images/10718386fa98b751dd0ec58cfdb9b5c9.jpg');">
1154
  <span class="card-text">ألعاب تعليمية</span>
1155
  </a>
1156
  `;
 
1305
  const info = document.getElementById('game-info');
1306
  if (!board || !info) return;
1307
 
1308
+ const cardsToUse = shuffleArray(memoryGameData).slice(0, 8); // Use up to 8 unique animals
1309
+ const cardData = [...cardsToUse, ...cardsToUse];
1310
+ totalPairs = cardsToUse.length;
1311
+ shuffleArray(cardData);
1312
 
1313
  board.innerHTML = '';
1314
+ board.style.gridTemplateColumns = 'repeat(4, 1fr)'; // Fixed grid for 8 pairs
1315
 
1316
+ cardData.forEach(item => {
1317
  const card = document.createElement('div');
1318
  card.className = 'game-card';
1319
+ card.dataset.image = item.image;
1320
+ card.dataset.audio = item.audio;
1321
  card.innerHTML = `
1322
+ <div class="game-card-front" style="background-image: url('${item.image}');"></div>
1323
  <div class="game-card-back"></div>
1324
  `;
1325
  card.addEventListener('click', flipCard);
 
1354
  secondCard.removeEventListener('click', flipCard);
1355
  firstCard.classList.add('matched');
1356
  secondCard.classList.add('matched');
1357
+ playSound(firstCard.dataset.audio); // Play audio on match
1358
  matchedPairs++;
1359
  const matchedCount = document.getElementById('matched-count');
1360
  if (matchedCount) matchedCount.innerText = matchedPairs;
 
1494
  const shadowBox = document.createElement('div');
1495
  shadowBox.className = 'shadow-box';
1496
  shadowBox.dataset.animal = item.animal;
1497
+ shadowBox.innerHTML = `<img src="${item.shadow}" alt="${item.animal} shadow" class="shadow-image">`;
1498
  shadowBox.addEventListener('dragover', e => e.preventDefault());
1499
  shadowBox.addEventListener('drop', handleDrop);
1500
  topContainer.appendChild(shadowBox);
 
1505
  const animalImg = document.createElement('div');
1506
  animalImg.className = 'draggable-animal';
1507
  animalImg.dataset.animal = item.animal;
1508
+ animalImg.dataset.audio = item.audio;
1509
  animalImg.draggable = true;
1510
  animalImg.style.backgroundImage = `url('${item.image}')`;
1511
  animalImg.addEventListener('dragstart', handleDragStart);
 
1533
  targetElement.style.border = 'none';
1534
  targetElement.classList.add('matched-correctly');
1535
 
1536
+ playSound(draggedItem.dataset.audio);
1537
+
1538
  draggedItem.remove();
1539
  draggedItem = null;
1540
  matchedShadows++;