-
المساهمات
260 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Hessen Nasser
-
عموما يجب ان تعلم ان JSON هو اختصار لـ "JavaScript Object Notation" وهو تنسيق نصي يُستخدم لتبادل البيانات بين التطبيقات. وبالنسبه للكود الذي قدمته: const url = await respon.json(); هذا السطر يتم فيه استخدام دالة json() على كائن respon و json() هي دالة تستخدم لتحويل نص إلى كائن JavaScript يمكنك استخدامه لاستخراج البيانات منه بحيث انك لن تستطيع التعامل مع الرد الذي تستمله بالصوره الطبيعيه لانه بيكون نص وليس object. يمكنك الاستزاده من خلال الاطلاع علي هذه المقاله.
-
المسار النسبي للصورة هو عندما تكون الصورة في ملف منفصل عن ملف الـ CSS يجب أن يكون المسار الذي تستخدمه في ملف الـ CSS معتمدًا على مكان ملف الصورة بالنسبة لملف الـ CSS نفسه على سبيل المثال إذا كان ملف الصورة في نفس المجلد مع ملف الـ CSS يمكنك استخدام اسم الملف فقط كما هو ولكن في حال وجود الصوهرفي مكان اخر غير مكان ملف ال CSS هيتوجب عليك وصف المسار للصوره من بداية من وقوفك عند ملف ال CSS. عندما قمت بنقل الصور من ملف "photo" إلى ملف CSS مباشرة، ربما قد تمكنت من عرض الخلفية بنجاح لأن المسار النسبي للصورة أصبح مباشرًا بالنسبة لملف الـ CSS. هذا هو المقصود بأن الصور يجب أن تكون منتسبة إلى ملف الـ CSS. عندما يكون لديك ملف CSS وملف الصور في نفس المجلد أو في مجلد فرعي من نفس المجلد الذي يحتوي على ملف CSS، يمكنك استخدام مسارات نسبية دون الحاجة إلى تضمين مسارات مطلقة للصور. هذا يسهل الأمور عند نقل المشروع من مكان إلى آخر أو عند مشاركته مع الآخرين. إذا كانت الصور محتفظة في ملف CSS بجوارها أو في مجلد فرعي، فإن المسار النسبي سيظل صحيحًا حتى إذا قمت بنقل المجلد الرئيسي للمشروع إلى مكان آخر. لهذا السبب، يُفضل عادةً استخدام مسارات نسبية للصور والملفات الأخرى لتسهيل إدارة المشروع وتوزيعه.
- 5 اجابة
-
- 1
-
لمشكلة التي تواجهها تحدث بسبب استخدام متغير localStorage لتخزين معلومات تسجيل الدخول، وعدم تحديث الصفحة بشكل تلقائي بعد تسجيل الدخول أو تسجيل الخروج. لحل هذه المشكلة، يمكنك استخدام React Router لإعادة توجيه المستخدم تلقائيًا بعد تسجيل الدخول أو تسجيل الخروج. اولا في مكان استجابة نجاح تسجيل الدخول في ملف Login قم بتحديث الصفحة باستخدام navigate من React Router بعد تعيين البيانات في localStorage. قد يكون لديك شيء مشابه للتالي: const onSubmit = async e => { e.preventDefault(); axios.post('/api/auth/login', formData) .then(res => { localStorage.setItem("user", JSON.stringify(res.data)); navigate("/", { replace: true }); // قم بتحديث الصفحة بشكل تلقائي بدون إضافة سجل إلى سجل التصفح }) .catch(error => setError(error.response.data.message)); } ثاميا في مكان تنفيذ عملية تسجيل الخروج (مثل ملف Logout الذي قدمته)، قم بحذف البيانات من localStorage ومن ثم قم بتوجيه المستخدم إلى صفحة تسجيل الدخول باستخدام navigate: const logout = () => { localStorage.removeItem("user"); // قم بحذف البيانات من localStorage navigate('/login', { replace: true }); // قم بتحديث الصفحة بشكل تلقائي بدون إضافة سجل إلى سجل التصفح } بهذه الطريقة سيتم تحديث الصفحة بشكل تلقائي بعد تسجيل الدخول أو تسجيل الخروج دون الحاجة إلى إعادة تحميل الصفحة يدويًا.
-
إذا كنت تقوم بإعداد الـ Overlay (التراكب) والـ Background (الخلفية) للـ Lightbox بالشكل الصحيح ولا ترى الصورة عند فتح الـ Lightbox، فإن هناك بعض الأسباب التي يمكن أن تكون وراء هذه المشكلة. إليك بعض الأمور التي يجب التحقق منها: التحقق من مسار الصورة: تأكد من أن مسار الصورة الموجود في ملف الـ CSS (img1.jpg) صحيح ويشير إلى الموقع الصحيح للصورة. يجب أن يكون المسار نسبيًا إلى ملف الـ CSS. إذا كان ملف الصورة في نفس المجلد مع ملف الـ CSS، فيمكنك استخدام اسم الملف فقط دون أي مسار. التحقق من تنسيق الصورة: تأكد من أن الصورة img1.jpg تحتوي على تنسيق صورة صالح مثل JPEG أو PNG. إذا كانت تصيغة الصورة غير صالحة، فإنها قد لا تعرض بشكل صحيح. التحقق من الأبعاد: قد يكون هناك تداخل في الأبعاد والأحجام المحيطة بالصورة والعناصر المحيطة بها في الـ Lightbox. تأكد من أن ارتفاع (height) وعرض (width) الـ Lightbox نفسهما معقولين وقد تم تعيينهما بشكل صحيح. يمكنك استخدام الـ inspect لمتابعة العناصر وفحص اذا كان المشكله فقط موجوده في الخلفيه ام ان من الاساس العنصر لا يظهر.
- 5 اجابة
-
- 1
-
هذا الكود يقوم بتحويل التواريخ من التقويم الميلادي إلى التقويم الهجري وعرضها على الصفحة. سأشرح الكود بالتفصيل من خلال تقسيمه الي وظائف (دوال) : isGregLeapYear(year): هذه الوظيفة تستخدم للتحقق مما إذا كان العام الميلادي هو سنة كبيسة أم لا. إذا كانت السنة كبيسة، ستعيد true وإلا ستعيد false. gregToFixed(year, month, day): هذه الوظيفة تقوم بتحويل تاريخ ميلادي إلى عدد ثابت يُمثل اليوم في التقويم الميلادي. تستند الوظيفة إلى مجموعة من الحسابات والتحويلات المعينة. Hijri(year, month, day): هذه الوظيفة تعرف كائن هجري جديد وتعبئه بالسنة والشهر واليوم المحدد. hijriToFixed(): هذه الوظيفة تقوم بتحويل تاريخ هجري إلى عدد ثابت يُمثل اليوم في التقويم الهجري. hijriToString(): هذه الوظيفة تقوم بإعادة تاريخ هجري بصيغة نصية، حيث يتم استخدام مصفوفة months لتمثيل أسماء الشهور. fixedToHijri(f): هذه الوظيفة تقوم بتحويل العدد الثابت إلى تاريخ هجري. يتم إنشاء كائن tod من نوع Date للحصول على التاريخ الحالي. تُعرف مصفوفتين weekday و monthname لتمثيل أسماء أيام الأسبوع وأشهر السنة. يتم الحصول على العام والشهر واليوم الحالي من كائن tod. يتم استدعاء الوظيفة gregToFixed لتحويل التاريخ الميلادي إلى عدد ثابت وتخزين النتيجة في متغير fixd. يتم إنشاء كائن h من نوع Hijri بتاريخ هجري ثابت (1421, 11, 28)، ثم يتم استدعاء الوظيفة fixedToHijri لتحويل العدد الثابت fixd إلى تاريخ هجري وتخزين النتيجة في المتغير h. يتم عرض التاريخ الميلادي المحدد مع أسماء اليوم والشهر والعام على الصفحة. يتم عرض التاريخ الهجري المحدد على الصفحة مع "م" (ميلادي) و"هـ" (هجري).
- 1 جواب
-
- 1
-
إليك شرح لكل خصائص العنصر الذي ارسلته : autocomplete="on": عندما يتحقق المتصفح من أن هذا الخيار مفعل (on)، فإنه سيقترح تلقائيًا قيم مماثلة لهذا الحقل استنادًا إلى البيانات التي قد تكون قد أدخلتها في وقت سابق على سبيل المثال، عند إدخال اسم مستخدم في هذا الحقل قد تظهر قائمة من الأسماء المقترحة تلقائيًا. username-field: هذه الخاصية يبدو أنها مخصصة وربما تستخدم في مكان آخر في الكود أو في الجافا سكريبت يبدو أنها تمثل معلومة إضافية حول نوع الحقل وقد تكون مفيدة للأغراض البرمجية الخاصه بالمشروع نفسه. improve-input: هذه الخاصية تظهر أنها تمثل إجراءات إضافية لتحسين إدخال البيانات في الحقل يمكن أن تشمل هذه الإجراءات تصحيح الأخطاء الإملائية أو تنسيق البيانات ولكنها ايضامخصصة داخل المشروع. rm-white-spaces: هذه الخاصية تشير إلى أن الحقل سيقوم بإزالة الفراغات البيضاء (المسافات) من النص المدخل تلقائيًا يعني ذلك أن أي مسافات بيضاء في البداية أو النهاية أو بين الكلمات سيتم حذفها مع العلم هذه ليست خاصيه في html بل هي مخصصه ويتم التعامل معها من خلال جافاسكريبت. to-arabic-numbers: من الواضح ان هذه الخاصية تقوم بتحويل الأرقام في النص المدخل إلى أرقام عربية إذا كانت الأرقام بالأصل بالأحرف اللاتينية مع العلم هذه ليست خاصيه في html بل هي مخصصه ويتم التعامل معها من خلال جافاسكريبت. to-lower: هذه الخاصية تقوم بتحويل الأحرف في النص المدخل إلى أحرف صغيرة (حالة صغيرة) مع العلم هذه ليست خاصيه في html بل هي مخصصه ويتم التعامل معها من خلال جافاسكريبت. في المواقعالكبيره او المتوسطهه يقوم المطورين بانشاء او اضافة attributes مخصصه لكي يتمكنوا من التعامل مع حالات معينه اثناء تجرة المستخدم المختلفه. لمعرفة المزيد عن خصائص عناصر HTML يمكنك زيارة التوثيق الخاص ب HTML .
- 4 اجابة
-
- 1
-
يمكنك عمل استعلام واحد لاسترجاع بيانات المنشورات مع تعليقاتها المرتبطة من خلال استخدام عبارة JOIN للانضمام بين جدولي المنشورات والتعليقات باستخدام العمود المشترك بينهما وهو post_id. واليك مثال على كيفية عمل ذلك: SELECT posts.*, comments.* FROM posts LEFT JOIN comments ON posts.post_id = comments.post_id; في هذا الاستعلام سيتم استرجاع جميع السجلات من جدول المنشورات (باستخدام posts.*)وسيتم أيضًا انضمام التعليقات المرتبطة من جدول التعليقات (باستخدام comments.*) باستخدام LEFT JOIN بناءً على post_id وإذا لم يكن هناك تعليقات متطابقة فستكون القيم في جدول التعليقات فارغة.
-
لكي تستطيع أن تحتفظ بالتوالي بقيم الـX والـO بالشكل الصحيح في لوحة اللعبة لديك بعض الأخطاء في الكود التي قد تؤدي إلى عدم العمل الصحيح للعبة سأساعدك على تصحيحها وشرح ما تم تعديله. المشكلة 1: هناك مشكلة في توالي تبديل اللاعبين X و O الكود كان يحاول تغيير اللاعب بناءً على حالة الخلية الحالية ولكن هذا لا يعمل بشكل صحيح ولكي يتم حل المشكله قم باستخدام متغير cont لتتبع اللاعب الحالي عندما يتم الضغط على خلية صالحة سيتم تغيير اللاعب الحالي من "X" إلى "O" والعكس باستخدام هذا الشرط: cont = "o" if cont == "x" else "x" المشكلة 2: يوجد مشكلة في التحقق من حالة الخلية قبل تغييرها يجب عليك التحقق مما إذا كانت الخلية فارغة قبل تغييرها لتقوم بحل هذه المشكله قم بإضافة هذا الشرط: if fullgame[inp] == " ": fullgame[inp] = cont للتحقق مما إذا كانت الخلية الحالية فارغة قبل تغييرها إذا كانت الخلية محجوزة سيتم طباعة رسالة تعلم اللاعب بأنه يجب اختيار رقم آخر. هذا الكود كامل بعد التعديل : fullgame = {1: " ", 2: " ", 3: " ", 4: " ", 5: " ", 6: " ", 7: " ", 8: " ", 9: " "} def if_is_equal(a, b, c): if a == b == c and b != " ": print(f'Game over! Player {b} wins!') return True return False cont = "x" while True: # عرض لوحة اللعبة for i in range(1, 10): print(fullgame[i], " |", end=" ") if i % 3 == 0: print("\n-------------") inp = int(input("Enter number: ")) # التحقق من صحة الرقم if inp > 9: print("The number is greater than the limit (1 to 9). Please try again.") continue # التحقق من احتلال الخلية if fullgame[inp] == " ": fullgame[inp] = cont # التحقق من انتهاء اللعبة if if_is_equal(fullgame[1], fullgame[2], fullgame[3]) or \ if_is_equal(fullgame[4], fullgame[5], fullgame[6]) or \ if_is_equal(fullgame[7], fullgame[8], fullgame[9]) or \ if_is_equal(fullgame[1], fullgame[4], fullgame[7]) or \ if_is_equal(fullgame[2], fullgame[5], fullgame[8]) or \ if_is_equal(fullgame[3], fullgame[6], fullgame[9]) or \ if_is_equal(fullgame[1], fullgame[5], fullgame[9]) or \ if_is_equal(fullgame[3], fullgame[5], fullgame[7]): break # تغيير اللاعب الحالي cont = "o" if cont == "x" else "x" else: print("This cell is already occupied. Please choose another number.") ستعمل معك اللعبه بشكل صحيح كما هو موضح بالصوره:
-
بالفعل لغة PHP طلبها بشكل واسع في مجال تطوير مواقع الويب والتطبيقات، ولكن في مجال تطبيقات الجوال ليست مطلوبة بنفس الشكل الكبير كما هو الحال في تطوير المواقع ولكن يظل الطلب موجود مع توجهه نسبه من الشركات الي حلول اخري مثل Firebase لكن هذا لا يقلل من الطلب الموجود علي PHP.
- 5 اجابة
-
- 1
-
نعم يمكنك استخدام PHP كـ back-end لتطبيقات Flutter يمكنك استخدام PHP لإنشاء API لتقديم البيانات والخدمات لتطبيقات Flutter ومن خلال استخدام البيانات المرسله بواسطة ال API يمكنك عرضها بالشكل المناسب للتطبيق الخاص بك. بالنسبة لجودة PHP مقارنةً بالإطار Firebase فإن الجودة تعتمد على كيفية تنفيذ وتصميم النظام Firebase هو خدمة تُقدمها Google تتضمن الكثير من الأدوات والخدمات المتكاملة لتطوير التطبيقات، بينما PHP يمكن أن يُستخدم في تطوير الجزء الخلفي بطرق مختلفة، بما في ذلك إنشاء خوادم مخصصة بمعني ان الموضوع متوقف علي متطلبات التطبيق وعدة جوانب تحددها علي حسب امكانيات التطبيق نفسه Firebase قد تكون مفيدة إذا كنت بحاجة إلى سرعة التطوير واستخدام خدمات جاهزة مثل قاعدة البيانات والمصادقة والتحليلات أما PHP فتُمكنك من بناء حلول مخصصة ومرنة وفقًا لاحتياجاتك الخاصة. بالنسبة للسوق العمل فإن مهارات تطوير الـ back-end مطلوبة بشكل عام سوق العمل يحتاج إلى مطورين متخصصين في الـ back-end باستخدام مختلف التقنيات بما في ذلك PHP وبالطبع هذا بيختلف من بلد الي اخري لكن في الوطن العربي بالنسبه ل PHP فهو مطلوب بشكل كبير.
-
يمكنك مشاهدة هذا المقطع للفهم بشكل اوضح الطريقه الصحيحه لرفع موقعك باستخدام github pages.
-
يمكنك استخدام خدمة إستضافة الويب المجانية لرفع ملفات HTML الخاصة بك والوصول إليها عبر رابط يوفر هذا حل بسيط لمشاركة الكود وعرضه على الإنترنت. تستطيع القيام بذلك من خلال بعض الخطوات البسيطه: قم بالتسجيل في خدمة استضافة ويب مجانية. هناك العديد من الخيارات المتاحة مثل GitHub Pages و Netlify و Firebase Hosting. انصحك باستخدام GitHub Pages لانها من اسهل الخدمات لاستضافة المواقع البسيطه يمكنك معرفة الطريقه من خلال الاجوبه هنا بعد التسجيل وإنشاء حسابك، قم بتحميل ملف HTML الخاص بك إلى الخدمة المستضافة ستحصل على رابط يمكنك مشاركته مع الآخرين للوصول إلى الملف الخاص بك. وبالنسبه لحماية الموقع ومن الدخول الا من خلال اشخاص معينه فهذا امر متقدم نسبيا ويحتاج الي المزيد من التفاصيل ولكن يمكنك اللجو الي حل بسيط وهو عمل صفحه لتسجيل الدخول ومن اي شخص لا يمتلك معلومات التسجيل من الدخول الي الموقع وروية المحتوي الخاص فيه.
-
مرحبا يا صديقي، في الغالب الاختبارات التي تتعرض لها في الشركه تكون بشروط مثل انك تنفذ مهمه معينه باستخدام تقنيات محدده او بدون اللجوء الي استخدام مكتبه جاهزه ولكن هذه المرحله تكون متقدمه في البدايه بيتم النظر الي معرض اعمالك والي ملفك الشخصي علي منصه مثل github حتي يتم النظر في طريقة كتابتك للكود. مع العلم انه في اكثر الشركات يكون مطلوب العمل باستخدام مكتبات جاهزه حتي يتم تسريع عملية اتمام المشاريع بدون الحاجه الي اعادة بناء كل شيء مره اخري في كل مشروع. شكرا لك.
-
صحيح يمكنك استخدام مكتبة pyttsx3 في Google Colab. لكن هناك بعض الخطوات التي يجب اتباعها للتأكد من أن المكتبة تعمل بشكل صحيح. أولاً قم بتثبيت المكتبة في كود Google Colab قبل استخدامها. يمكنك فعل ذلك عن طريق تنفيذ الامر التالي: !pip install pyttsx3 تحقق من أن الصوت قابل للتشغيل على Google Colab. ليست جميع المتصفحات والأجهزة قادرة على تشغيل الصوت في Google Colab. قد تحتاج إلى التحقق من ذلك على جهاز آخر أو استخدام متصفح آخر. الكود الذي قم بارساله صحيحًا ويعمل بشكل جيد عند استخدامه على جهاز محلي. إذا لم تعمل هذه الخطوات يمكن أن يكون المشكلة في قدرة Colab على تشغيل الصوت. في هذه الحالة يمكنك محاولة تشغيل الكود على جهاز محلي للتحقق مما إذا كانت المشكلة في الكود نفسه أم في قدرة المتصفح على تشغيل الصوت.
- 5 اجابة
-
- 1
-
اظن ان الكود يهدف إلى طباعة نجمات (*) في الصفوف بناءً علي العدد المخزنت داخل متغير rows ، ولكن هناك خطأ واحد في طريقة عمل الحلقات. لتظهر معكي النتيجه المطلوبه من الكود يجب عليكي اضافةسطرًا جديدًا بعد كل صف مكتمل من النجمات. بالاضافة الي انه يجب عليكي يجب تحويل قيمة المتغير rows إلى عدد صحيح (integer) قبل استخدامها في الحلقات. لانه عند استخدام prompt في JavaScript القيمة المدخلة من قِبل المستخدم تكون دائمًا من نوع سلسلة (string). إذا لم نقم بتحويلها إلى عدد صحيح، فإن الحلقات قد لا تعمل بالشكل المطلوب. لذلك، يمكنك استخدام دالة parseInt() لتحويل القيمة إلى عدد صحيح. إليك الكود مع إضافة تحويل القيمة: let rows = parseInt(prompt('enter row count')); // تحويل قيمة rows إلى عدد صحيح let stars = ''; // تعيين السلسلة الفارغة هنا لتجميع النجمات فيها for (let row = 1; row <= rows; row++) { for (let k = 0; k < row; k++) { stars += '*'; //العملية += لإضافة نجمة واحدة في كل دورة } stars += '\n'; // هذا السطر مسوؤل عن إضافة سطر جديد بعد كل صف مكتمل من النجمات } console.log(stars);
- 4 اجابة
-
- 1
-
هناك عدة فروع وأدوات تستخدم في مجال تحليل البيانات، ومن أهمها: الإحصاء: يستخدم التحليل الإحصائي لاستنتاج الخصائص والمعلومات من مجموعة من البيانات. يشمل ذلك تطبيق الاختبارات الإحصائية، التوزيعات الاحتمالية، التكامل الإحصائي، والاستدلال الإحصائي. الجبر الخطي: يستخدم في تحليل النماذج الرياضية وتطبيقات تحليل البيانات المختلفة، مثل تقنيات الانحدار وتحليل الانتشار. الهندسة الرياضية: تستخدم في عمليات التصوير والتنقيب عن البيانات وتحديد البنى والأنماط الهندسية. الاحتمالات: يستخدم لتحديد الاحتمالات والتوقعات في الظواهر المرتبطة بالبيانات، وهو أساسي في تحليل البيانات الاحصائي. التحليل العددي: يستخدم في تنفيذ حسابات رياضية معقدة وحل المعادلات التفاضلية وغيرها من المشكلات الرياضية. الهندسة المثلى (الأمثل): تستخدم في إيجاد القيم الأمثل للمتغيرات في بيئة البيانات المختلفة. تحليل البيانات الكبيرة (Big Data Analysis): يتطلب استخدام أدوات رياضية متطورة للتعامل مع حجم البيانات الكبيرة وتحليلها بكفاءة. هذه فقط نظرة عامة على الرياضيات المستخدمة في مجال تحليل البيانات. يجب أن تكون على دراية بالعديد من الأساليب والتقنيات الرياضية لفهم البيانات واستخلاص المعلومات المفيدة منها.
- 3 اجابة
-
- 1
-
مرحباً، هذه بعض المشاكل التي لاحظتها وتتسبب في عدم طبعاة العناصر بشكل صحيح: 1- let vb3 = document.querySelector("a1"); هناك خطأ في هذا السطر. يبدو أنك تحاول استهداف عنصرٍ يحمل اسم الوسم "a1" وليس class أو ID. إذا كنت تريد استهداف عنصر معين بالـ class أو ID، يجب أن تستخدم العلامة "." قبل اسم الـ class أو "#" قبل اسم الـ ID. مثلاً: document.querySelector(".a1") إذا كانت الـ class هي "a1" تاكد من هذا الامر لانه من الممكن عدم ملاحظته بشكل جيد. 2- let vb5 = document.getElementById(".a2"); هناك خطأ في هذا السطر. getElementById تستخدم للبحث عن عنصر بالـ ID، ولا يجب أن تمرر نقطة "." قبل اسم الـ ID. الشكل الصحيح للاستخدام هو getElementById("a2") إذا كان لديك عنصرٌ بهذا الـ ID.
-
هناك عدة أسباب ممكنة لعدم ظهور الصورة. دعني أذكر لك بعض الأسباب الشائعة: مسار الصورة غير صحيح: التأكد من أن مسار الصورة المحدد في كود HTML أو CSS صحيح ويؤدي إلى الملف الصحيح على الخادم أو في نفس المجلد الذي يحتوي على ملف الصفحة. يجب أن تكون الروابط نسبية إلى موقع الصفحة. امتداد الصورة غير صحيح: التأكد من أن امتداد الصورة الذي تقوم باستخدامه (مثل .jpg، .png، .gif إلخ) صحيح ومدعوم من المتصفح. أخطاء في كود HTML/CSS: قد تكون هناك أخطاء في الكود الخاص بك قد تؤثر على ظهور الصورة، مثل وضع علامات مغلقة بشكل غير صحيح، أو عدم وجود نقطة منقطة زائدة للفصل بين الملفات، أو أنك نسيت كتابة اسم الصورة بشكل صحيح في العنصر الخاص بها. مشكلة في الخادم أو التحميل: قد يكون هناك مشكلة في الخادم الذي تستضيف عليه الموقع أو في عملية التحميل نفسها. مشكلة في حقوق الوصول: تأكد من أن الصورة ليست محمية بحقوق الوصول ولا تتطلب تسجيل الدخول للوصول إليها. وليك مثال علي الاستخدام الصحيح لعنصر (img) حتي تتمكني من اضافة الصوؤ بشكل صحيح: <img src="example.jpg" alt="نص بديل في حالة عدم وجود الصوره" width="300" height="200"> استخدمنا عنصر <img> لإضافة الصورة. وضعنا اسم الملف في الخاصية src، وهو "example.jpg". كما استخدمنا الخاصية alt لتوفير نص بديل يظهر في حال فشل تحميل الصورة أو لمستخدمي التقنيات المساعدة. واستخدمنا الخاصيتين width و height لتحديد أبعاد الصورة بالبكسل.
-
مرحبا ايمن، بالنسبة لتوقف تعلمك للبرمجة لمدة سنة بسبب الثانوية العامة، فلا داعي للقلق. على الرغم من أنه قد تكون هناك بعض النسيان للمفاهيم الأساسية، إلا أن القاعدة التي بنيتها ستكون لا تزال موجودة، وبمجرد العودة إلى التعلم ستستعيدي الكثير من ما تعلمته بسرعة بمعني انك لن تكون مثل شخص اول مره يتعلم برمجه فهذا قد يستغرق وقت كبير نسبيا بالنسبه لك إذن الان انت لك افضلية. أنت تفكر في الدراسة في كلية علوم الحاسب أثناء العمل، وهذا أمر ممكن تمامًا. هناك الكثير من الناس الذين يعملون بدوام جزئي أو كامل ويتعلمون في الكلية في نفس الوقت. يحتاج الأمر إلى تنظيم واجتهاد، ولكنه يمكن تحقيقه. بالنسبة للحصول على منحة لدراسة علوم الحاسب، من المهم أن تكون لديك مشاريع وأعمال توضح اهتمامك ومهاراتك في هذا المجال. الصورة التي قمت بإنشائها تشرح البرمجة والمشاركة في شرح مواضيع علوم الحاسب في المدرسة هي مبادرات جيدة. قد تساعد هذه المشاريع في إظهار رغبتك الحقيقية في التعلم والمساهمة في المجال. إذا كنت قادرًا على تضمين بعض هذه المشاريع في سيرتك الذاتية أو طلب القبول، فقد يساهم ذلك في تعزيز فرصك. ولكن اذا استطعت تطوير نفسك اكثر من خلال القيام بتنفيذ اعمال جديده فهذا سيكون افضل وسيزيد من فرصة قبولك في تلك المنحه. حاليا يتوجب عليك ان تهتم بدراستك للمرحله الثانويه بشكل اكبر حتي تتمكن من تحقيق الدرجات المرغوبه. اتمني لك التفوق وتحقيق اهدافك.
- 5 اجابة
-
- 1
-
سوف اقوم اولا بذكر الخطوات ( الخوارزمية الأساسية للعبة ) التي تستطيع من خلالها تنفيذ لعبة X O بنظام RealTime باستخدام React، Node.js و Socket.IO الخطوات الاساسية: إعداد البنية: بالتاكيد عليك اولا القيام بتنفيذ المشروع كتصميم من خلال استخدام Reactjs ومن ثم قم بإعداد مشروع Node.js باستخدام Socket.IO للجزء الخادمي. الاتصال بين العميل والخادم: سوف يتم الاتصال عن طريق استخدام مكتبة Socket.IO ومن خلالها ايضا سيقوم العميل بارسال بيانات اللعبة (مثل حركة اللاعب الحالية) تحديث حالة اللعبة في العميل: اثناء استقبال العميل بيانات من الخادم، قم بتحديث حالة اللعبة بناءً على هذه البيانات ليتم عرضها على اللاعبين. التحقق من الفوز: بعد كل تغير في موضع اللاعب يجب عليك التاكد من حالة الفوز من ويفضل ذلك ان يكون من خلال الخادم إعادة بدء اللعبة: وفي النهايه في حالة الفوز او التعادل او الهزيمه عليك بتحديث حالة اللعبة وإعادة بدء اللعبة لجولة جديدة او الرجوع الي صفحة البداية البيانات التي يجب تمريرها بين العميل والخادم تتضمن: حالة اللعبة: لابد من تبادل حالة اللعبة الحالية بين اللاعبين ليظهر لهما نفس اللوحة والعلامات الموجودة عليها في نفس الوقت. حركة اللاعب: عندما يقوم أحد اللاعبين بوضع علامة (X أو O) على المربع، يجب أن ترسل هذه الحركة إلى الخادم ليتم إعادة بثها لللاعب الآخر وتحديث حالة اللعبة عنده. الفوز أو التعادل: في حالة الفوز أو التعادل، يجب إخطار اللاعبين وتحديث حالة اللعبة وبدء جولة جديدة.
- 3 اجابة
-
- 1
-
يتم استخدام (#) في بايثون لوضع تعليق أو توضيح للكود ولا يتم تنفيذ السطر المسبوق به أثناء تشغيل البرنامج. عندما تقوم بكتابة # في سطر برمجي في بايثون، يعتبر المترجم هذا الجزء من السطر وما يليه كتعليق ولا يتم تنفيذه عند تشغيل البرنامج. إليك بعض الأمثلة لكيفية استخدام (#) : أضافة تعليق على سطر واحد: # هذا تعليق على سطر واحد print("Hello, World!") أضافة تعليق على عدة اسطر: # هذا تعليق # على عدة أسطر print("Hello, World!") لكن من المستحسن عندما تريد اضافة تعليق متعدد الاسطر ان تضيفه بداخل هذه العلامه ''' تعليقك ''' ''' هذا تعليق على عدة أسطر ''' print("Hello, World!") أضافة تعليق على جزء من سطر: print("Hello, World!") # هذا تعليق بجانب الكود بعد معرفة كيفية استخدام # اليك الان كيفية الاستفاده منه واستخدامه في تحسين الكود. يمكنك استخدامه في المواضع التاليه: شرح الكود: يمكنك استخدام التعليقات لشرح الجزء العامل في الكود، وهذا يجعل الكود أكثر قراءةً وفهمًا لك وللآخرين. تجاهل سطر برمجي: يمكن استخدام التعليق لجعل سطر برمجي لا يتم تنفيذه مؤقتًا عند اختبار الكود أو عند تحديد الأخطاء. إلغاء تنفيذ سطر برمجي: يمكن استخدام التعليق لتعطيل سطر برمجي بشكل مؤقت دون الحاجة إلى حذفه.
-
== تستخدم للقيام بعملية مقارنة، وتُستخدم للتحقق مما إذا كانت قيمتان متساويتين أم لا والتساوي هنا يكون من ناحية القيم فقط وغير مشترط النوع. على سبيل المثال let x = 5; let y = "5"; console.log(x == y); //true سيعطي النتيجة true، لأن قيمة x وقيمة y هما متساويتان بالرغم من أن أنواعهما مختلفة. += يستخدم لاجراء عملية جمع واضافة وتُستخدم لإضافة قيمة إلى متغير موجود وتخزين النتيجة في نفس المتغير. على سبيل المثال: let num = 10; num += 5; console.log(num); // 15 سيعطي النتيجة 15، لأننا أضفنا 5 إلى قيمة المتغير num وقمنا بتخزين النتيجة في نفس المتغير.
-
لا، الذكاء الاصطناعي (AI) ليس مجرد كود فقط. بل هو مجموعة من التقنيات والنماذج التي تسمح بمحاكاة القدرة على التفكير والتعلم واتخاذ القرارات بشكل مشابه للبشر . البرمجة والكود هي جزء من تطوير الذكاء الاصطناعي، حيث يتم كتابة الخوارزميات والنماذج والبرامج التي تسمح للأنظمة الاصطناعية بتحليل البيانات والتعلم منها. ولكن تشمل التتطبيقات الحديثة للذكاء الاصطناعي أيضًا العديد من العناصر الأخرى مثل: تجميع البيانات: تحتاج أنظمة الذكاء الاصطناعي إلى البيانات للتعلم منها، وتكون جودة وكمية البيانات مهمة للحصول على نتائج دقيقة. تدريب النماذج: بعد جمع البيانات، يتم تدريب النماذج الاصطناعية باستخدام البيانات المتاحة، ويكون هذا الجزء من عملية الذكاء الاصطناعي غالبًا وقتًا مكثفًا. تطوير الخوارزميات: يعمل المطورون على إنشاء خوارزميات متقدمة تمكن الأنظمة الاصطناعية من أداء المهام المعقدة. باختصار، الذكاء الاصطناعي يتضمن الكود ولكنه يشمل أيضًا البيانات والتدريب والخوارزميات والتطبيقات، وكلها تعمل معًا لتحقيق القدرة على التفكير والتعلم الذاتي. وليك هذا الرابط اذا كنت تريد بدء رحلتك في عالم الذكاء الاصطناعي