اذهب إلى المحتوى

لوحة المتصدرين

  1. بلال زيادة

    بلال زيادة

    الأعضاء


    • نقاط

      3

    • المساهمات

      4376


  2. عبدالله عبدالرحمن11

    • نقاط

      3

    • المساهمات

      526


  3. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      3

    • المساهمات

      6975


  4. ابراهيم الخليل سماني

    • نقاط

      2

    • المساهمات

      505


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 05/05/21 في كل الموقع

  1. بشكل عام يمكن الاتصال من هاتف أندرويد على سيرفر محلي عن طريق الواي فاي، سوف يتصل الهاتف على IP الحاسوب في شبكة الانترنت المحلية التي يقوم ببثها Router المنزلي مثلا. (يمكنك معرفة IP حاسوبك من خلال خصائص شبكة WIFI التي أنت متصل عليها) سيكون الرابط على الشكل: رقم 8 مختلف حسب شبكتك. http://192.168.1.8/api/v1/products بالنسبة للاتصال عن طريق USB: تشغيل USB debugging في هاتفك. ادخل في متصفح كروم على : chrome://inspect اضغط على Port forwarding وقم بتفعيله. يمكنك الآن الدخول للمتصفح في هاتفك للرابط : localhost:3000 وسيعمل التطبيق. نعم localhost. في حال ظهور أخطاء يجب إرفاقها مع السؤال لنعرف حل المشكلة لأن هذا السؤال غير واضح. للبحث في الانترنت عن طرق مختلفة ابحث عن: test / run node application on real device
    2 نقاط
  2. لو مثلا انا برمجت موقع تجاري ابيع فيه منتجاتي، قمت بتصميمه من الصفر ب html, css الخ، و قمت برفعه علي الانترنت، كيف اتحكم فالموقع ؟ لو مثلا باضيف منتج او بغير وصف احد المنتجات ؟ هل لازم ادخل للكود و اعدله و اعيد رفعه ؟
    1 نقطة
  3. كيف أستطيع التحكم في مكان النص بحيث يظهر بشكل أفضل من هيك؟
    1 نقطة
  4. يجب أن تقوم برفع الكود الخاص بالـ backend (الجزء المختص بالـ API) على أي إستضافة (ليس شرط أن تكون إستضافة heroku ، لكنها الأسهل في التعامل وأيضُا مجانية)، وذلك لأن localhost لن يعمل على الهواتف الحقيقية أو الموجودة خارج شبكتك الخاصة وعندما تقوم برفع الكود على إستضافة heroku تحصل على رابط مثل my-app.herku.com وتقوم بإستعمال هذا الرابط بدلًا من localhost:3000 كالتالي: http://localhost:3000/api/v1/products # يصبح الرابط السابق كالتالي http://my-app.heroku.com/api/v1/products بعد رفع الكود على الإستضافة والحصول على رابط مشابهة يجب أن تقوم بتعديل الكود في التطبيق ليقوم بإستعمال الرابط الجديد بدلًا من localhost
    1 نقطة
  5. الشيفرة النهائية للأخ وائل تشتغل من دون أخطاء وهذا هو عمل الكود الخاص بك لهذا يختفي يمكنك تخزين الشيفرة النهائية في ملف وقم بإعطائه أي اسم ومن ثم قم بتشغيل هذا الأمر python snake.py يمكنك استخدام هذا الكود الكامل وأن تقارن الاختلاف الموجود في هذا الكود وفي الكود الخاص بك import curses from curses import KEY_RIGHT, KEY_LEFT, KEY_UP, KEY_DOWN from random import randint curses.initscr() win = curses.newwin(20, 60, 0, 0) win.keypad(1) curses.noecho() curses.curs_set(0) sh,sw = win.getmaxyx() win.border(0) win.nodelay(1) key = KEY_RIGHT # Initializing values score = 0 snk_x =sw//4 snk_y =sh//2 snake = [ [snk_y,snk_x], [snk_y,snk_x-1], [snk_y,snk_x-2] ] # Initial snake co-ordinates food = [10,20] # First food co-ordinates win.addch(food[0], food[1], '*') # Prints the food while key != 27: # While Esc key is not pressed win.border(0) win.addstr(0, 2, 'Score : ' + str(score) + ' ') # Printing 'Score' and win.addstr(0, 27, ' SNAKE ') # 'SNAKE' strings win.timeout(150 - (len(snake)//5 + len(snake)//10)%120) # Increases the speed of Snake as its length increases prevKey = key # Previous key pressed event = win.getch() key = key if event == -1 else event if key == ord(' '): # If SPACE BAR is pressed, wait for another key = -1 # one (Pause/Resume) while key != ord(' '): key = win.getch() key = prevKey continue if key not in [KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, 27]: # If an invalid key is pressed key = prevKey # Calculates the new coordinates of the head of the snake. NOTE: len(snake) increases. # This is taken care of later at [1]. snake.insert(0, [snake[0][0] + (key == KEY_DOWN and 1) + (key == KEY_UP and -1), snake[0][1] + (key == KEY_LEFT and -1) + (key == KEY_RIGHT and 1)]) # If snake crosses the boundaries, make it enter from the other side if snake[0][0] == 0: snake[0][0] = 18 if snake[0][1] == 0: snake[0][1] = 58 if snake[0][0] == 19: snake[0][0] = 1 if snake[0][1] == 59: snake[0][1] = 1 # Exit if snake crosses the boundaries (Uncomment to enable) #if snake[0][0] == 0 or snake[0][0] == 19 or snake[0][1] == 0 or snake[0][1] == 59: break # If snake runs over itself if snake[0] in snake[1:]: break if snake[0] == food: # When snake eats the food food = [] score += 1 while food == []: food = [randint(1, 18), randint(1, 58)] # Calculating next food's coordinates if food in snake: food = [] win.addch(food[0], food[1], '*') else: last = snake.pop() # [1] If it does not eat the food, length decreases win.addch(last[0], last[1], ' ') win.addch(snake[0][0], snake[0][1], '#') curses.endwin()
    1 نقطة
  6. اعتقد أن المشكلة تكمن في تفعيل حسابك باي بال لأنه بعد ربط الحساب ببطاقة إئتمانية سيقوم باي بال بالتأكد من ملكيتك للبطاقة من خلال استقطاع مبلغ 1.95 $ من بطاقتك الائتمانية، يجب توفير 2 $ كحد أدنى في بطاقتك، ولا تقلق سيعاد لك المبلغ لاحقا بعد انتهاء عملية التأكيد. بعد إتمام عملية استقطاع المبلغ عليك الذهاب لموقع البنك الخاص بك والتأكد من كشف الحساب لبطاقتك الائتمانية والحصول على رمز التأكيد المكون من أربع أرقام والذي سيكون مكتوب في بيانات عملية الشراء. بعد الحصول على رمز التفعيل تعود لحسابك في باي بال وتضغط على المحفظة في القائمة، ثم تختار بطاقتك الائتمانية المراد تأكيدها، وادخل الرمز المكون من 4 أرقام وانقر على تأكيد. بعد تأكيد البطاقة سيفعل حسابك بشكل كامل. تذكر انه يُمكنك دائما التواصل مع الدعم الفني في كل من باي بال و مستقل لحل المشكلة.
    1 نقطة
  7. كيف أقوم بتدوير عناصر مصفوفة نحوي اليسار مثال: Original Array: [20, 30, 40] Rotated Array: [30, 40, 20]
    1 نقطة
  8. بعد التعديلات التي أخبرك بها عبد المجيد، ظهر خطأ: "snake.py", line 57, in <module> w.addch(tial[0],tial[1]," ") TypeError: integer argument expected, got float أي أن القيمة التي قرأها من snake هي float ويجب أن تكون integer لإصلاح المشكلة نعدل السطر التالي لنجعل ناتج القسمة integer: // بدل / snk_x =sw//4 snk_y =sh//2 عندها سيعمل البرنامج و يرسم الأفعى الشيفرة النهائية: import random import curses s = curses.initscr() curses.curs_set(0) sh,sw = s.getmaxyx() w = curses.newwin(sh,sw,0,0) w.keypad(1) w.timeout(100) snk_x =sw//4 snk_y =sh//2 snake = [ [snk_y,snk_x], [snk_y,snk_x-1], [snk_y,snk_x-2] ] food =[sh//2,sw//2] w.addch(food[0],food[1],curses.ACS_PI) key = curses.KEY_RIGHT while True: next_key = w.getch() key = key if next_key == -1 else next_key if snake[0][0] in [0,sh] or snake [0][1] in [0,sw] or snake[0] in snake [1:]: curses.endwin() quit() new_head =[snake[0][0], snake[0][1]] if key == curses.KEY_DOWN: new_head[0] += 1 if key == curses.KEY_UP: new_head[1] -= 1 if key == curses.KEY_RIGHT: new_head[0] -= 1 if key == curses.KEY_LEFT: new_head[1] += 1 snake.insert(0,new_head) if snake[0] == food : food = None while food is None: nf = [ random.randint(1,sh-1), random.randint(1,sw-1) ] food =nf if nf not in snake else None w.addch(food[0],food[1].curses.ACS_PI) else: tial = snake.pop() w.addch(tial[0],tial[1]," ") w.addch(snake[0][0],snake[0][1],curses.ACS_CKBOARD)
    1 نقطة
  9. ايضا يجب عليك تغيير KEY_up و KEY_left الى KEY_UP و KEY_LEFT يجب عليك جعلها كلها حروف كبيرة وإذا ظهرت مشكلة فيمكن أن تكون المشكلة أخرى لهذا قم بإرسال أخر مشكلة ظهرت لك
    1 نقطة
  10. يرجى إرفاق الكود الخاص بك ليتم النظر فيه, يرجى إرفاق الملف الخاص بالواجهة. أو يمكنك إحاطة Widget Text ب Widget أخر و هو Widget Algin بحيث تزود هذه Widget خاصية alignment التي بدورها تحدد مكان النص. Align( alignment: Alignment.topRight, child: Text("name"), )
    1 نقطة
  11. يبدو أنك غير مثبت curses لذلك عليك التثبيت بإستخدام هذا الأمر pip install windows-curses
    1 نقطة
  12. السلام عليكم , في هذا المثال مثلا لدينا الرمز (sympolic system) :[Symbol.toPrimitive] كإسم خاصية في الكائن (property name) والدالة function(hint) كقيمة لهذه الخاصية : let user = { name: "John", money: 1000, //[Symbol.toPrimitive]هنا // كإسم خاصية للدالة لماذا يجب إستخدامه حصرا ؟؟ و ماهو الكائن المنشيء له او الذي يرتبط معه ؟ [Symbol.toPrimitive](hint) { alert(`hint: ${hint}`); return hint == "string" ? `{name: "${this.name}"}` : this.money; } }; ماتعلمته لحد الان هو ان اسم الخاصية يستخدم للوصول إلى القيمة بطريقة مباشرة مثلا user.name أو غير مباشرة ك for...in مثلا , ولكن هنا لدينا دالة كقيمة لرمز ([Symbol.toPrimitive]) بمعامل واحد (hint) ,بغض النظر عن وضيفتها فهي مجرد مثال ,أظن أن تساؤلاتي واضحة الان ؟لماذا يجب استخدامه حصرا لتتم العملية ؟ ماهو built-in method الذي يقف ورائه وكيف يتم إستدعائه ... أرجو أن تكون أسئلتي منطقية ,شكرا.
    1 نقطة
  13. بخصوص أين يتم ذلك يتم ذلك داخلياً في اللغة , سأعطيك مثال توضيحي الأن في مثلاً لغة PHP قمنا بالاستعلام داخل جدول في قاعدة بيانات وقمنا بجلب محتوياته , هل نشاهد ذلك أم يحدث الأمر داخلياً في اللغة عن طريق الدوال التي استخدمناها في عملية الاستعلام وهكذا الأمر في Symbol.toPrimitive التي تستخدم لتحويل الكائن إلى قيمة أولية . بمساعدة الخاصية Symbol.toPrimitive (التي تشير إلى دالة) , يمكننا تحويل الكائنات إلى القيم الأولية الموافقة لها , وهذه الدالة تستدعى مع الوسيط النصي hint , والذي يحدد ما هو النوع المفضل للقيمة الأولية المعادة , ويمكن أن تكون قيمة هذا الوسيط number أو string أو default. ربما زيارة توثيق حسوب من هنا أو من هنا يفيدك كثيرا.
    1 نقطة
  14. لم تفهم سؤالي جيدا , هنا عندنا [Symbol.toPrimitive] هو اسم خاصية , القيمة هي دالة بمعامل واحد (hint) الدالة تقوم بعمليات في الخفاء كأن تستدعي typeof() , tostring() ,السؤال نحن لانرى ذالك ؟ اين يتم ذالك ؟ ماعلاقة [Symbol.toPrimitive] وهو اسم خاصية فقط ! اعذرني إن كانت الأسئلة غير واضحة وذالك لأن الامور مشوشة امامي ,شكرا.
    1 نقطة
  15. يوجد في جافاسكريبت دالة Symbol و هي دالة تعيد قيمة من النوع symbol , وتمتلك هذه الدالة خاصيات ساكنة و دوال ساكنة. كل رمز معاد من الدالة Symbol هو رمز فريد, ويمكن أن يستخدم كمعرف لخاصيات الكائنات. يتم استخدامه حصراً حتى لو أنتا حابب تضع بيانات private بداخل Object تستخدمها على مستوى Application الخاص بك بس لا يتم عرضها في أي عملية تكرار ( أي لا يتم عرض Symbol ) ففي المثال التالي لاحظ أنه لدينا عملية تكرار const myNewSymbol = Symbol(); let myObject = { username: "test", title: "hello", [myNewSymbol]: "Hello, How are You" } for(let val of Object.entries(myObject)){ console.log(val); } فأن عملية التكرار لا تعرض symbol كما في الصورة المرفقة. أتمنى أن أكون قد فهمت سؤالك جيداً وأجبت عنه بصورة جيدة.
    1 نقطة
×
×
  • أضف...