Spaces:
Running
Running
Update index.html
#1
by Jaouadart - opened
- 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()">×</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: '
|
| 721 |
{ letter: 'ⵥ', word: 'ⵀⴰ', image: 'images/65b06b2cc59501fde624f2791ed29b7f.jpg', audio: 'audio/ha.mp3' },
|
| 722 |
];
|
| 723 |
|
| 724 |
const animalsData = [
|
| 725 |
-
{ word: 'قطة', image: 'images/cat.
|
| 726 |
-
{ word: 'كلب', image: 'images/
|
| 727 |
-
{ word: 'أسد', image: 'images/
|
| 728 |
-
{ word: 'فيل', image: 'images/
|
| 729 |
-
{ word: 'قرد', image: 'images/
|
| 730 |
-
{ word: '
|
| 731 |
-
{ word: 'نمر', image: 'images/
|
| 732 |
-
{ word: 'دب', image: 'images/
|
| 733 |
-
{ word: 'سمكة', image: 'images/
|
| 734 |
-
{ word: '
|
| 735 |
-
{ word: 'أرنب', image: 'images/
|
| 736 |
-
{ word: 'خروف', image: 'images/
|
| 737 |
-
{ word: 'حصان', image: 'images/
|
| 738 |
-
{ word: '
|
| 739 |
-
{ word: 'بومة', image: 'images/
|
| 740 |
-
{ word: 'ذئب', image: 'images/
|
| 741 |
-
{ word: 'بطة', image: 'images/
|
| 742 |
-
{ word: 'ز
|
| 743 |
-
{ word: 'جمل', image: 'images/
|
| 744 |
-
{ word: 'فراشة', image: 'images/
|
| 745 |
];
|
| 746 |
|
| 747 |
const numbersData = [
|
| 748 |
-
{ number: '1', word: 'واحد', image: '
|
| 749 |
-
{ number: '2', word: 'اثنان', image: '
|
| 750 |
-
{ number: '3', word: 'ثلاثة', image: '
|
| 751 |
-
{ number: '4', word: 'أربعة', image: '
|
| 752 |
-
{ number: '5', word: 'خمسة', image: '
|
| 753 |
-
{ number: '6', word: 'ستة', image: '
|
| 754 |
-
{ number: '7', word: 'سبعة', image: '
|
| 755 |
-
{ number: '8', word: 'ثمانية', image: '
|
| 756 |
-
{ number: '9', word: 'تسعة', image: '
|
| 757 |
-
{ number: '10', word: 'عشرة', image: '
|
| 758 |
-
{ number: '11', word: 'أحد عشر', image: '
|
| 759 |
-
{ number: '12', word: 'اثنا عشر', image: '
|
| 760 |
-
{ number: '13', word: 'ثلاثة عشر', image: '
|
| 761 |
-
{ number: '14', word: 'أربعة عشر', image: '
|
| 762 |
-
{ number: '15', word: 'خمسة عشر', image: '
|
| 763 |
-
{ number: '16', word: 'ستة عشر', image: '
|
| 764 |
-
{ number: '17', word: 'سبعة عشر', image: '
|
| 765 |
-
{ number: '18', word: 'ثمانية عشر', image: '
|
| 766 |
-
{ number: '19', word: 'تسعة عشر', image: '
|
| 767 |
-
{ number: '20', word: 'عشرون', image: '
|
| 768 |
-
{ number: '30', word: 'ثلاثون', image: '
|
| 769 |
-
{ number: '40', word: 'أربعون', image: '
|
| 770 |
-
{ number: '50', word: 'خمسون', image: '
|
| 771 |
-
{ number: '60', word: 'ستون', image: '
|
| 772 |
-
{ number: '70', word: 'سبعون', image: '
|
| 773 |
-
{ number: '80', word: 'ثمانون', image: '
|
| 774 |
-
{ number: '90', word: 'تسعون', image: '
|
| 775 |
-
{ number: '100', word: 'مئة', image: '
|
| 776 |
];
|
| 777 |
const schoolSuppliesData = [
|
| 778 |
{ word: 'قلم رصاص', image: '', audio: 'audio/pencil.mp3' },
|
|
@@ -895,10 +895,16 @@
|
|
| 895 |
];
|
| 896 |
|
| 897 |
// Data for memory game images
|
| 898 |
-
|
| 899 |
-
|
| 900 |
-
|
| 901 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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: '
|
| 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 |
-
|
| 1308 |
-
const
|
| 1309 |
-
|
| 1310 |
-
shuffleArray(
|
| 1311 |
|
| 1312 |
board.innerHTML = '';
|
| 1313 |
-
board.style.gridTemplateColumns =
|
| 1314 |
|
| 1315 |
-
|
| 1316 |
const card = document.createElement('div');
|
| 1317 |
card.className = 'game-card';
|
| 1318 |
-
card.dataset.image =
|
|
|
|
| 1319 |
card.innerHTML = `
|
| 1320 |
-
<div class="game-card-front" style="background-image: url('${
|
| 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.
|
| 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()">×</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++;
|