لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 12/25/15 في كل الموقع
-
بعد أن تعرّفنا في الدّرس السّابق على طريقة تنصيب بايثون وكيفيّة العمل معها، سنكمل في هذا الدّرس مشوار تعلّم هذه اللغة بتعلّم كيفيّة التّعامل مع البيانات مثل المُتغيّرات وأنواعها كالأرقام وإسناد القيم. ولكن قبل ذلك عليك أن تتعرّف على طريقة دعم اللغة العربيّة، ويجب عليك أن تفهم بعض المُصطلحات المتداولة في مجال البرمجة (والتّي اعتَمدتُ عليها في هذا الدّرس). تذكير: نقوم بتنفيذ الأسطر البرمجيّة مُباشرة من مُفسّر بايثون، لمزيد من المعلومات عن المُفسّر راجع الدّرس السّابق. وللتوسع في لغة بايثون وتعلمها أكاديميًا، ننصحك بالانضمام إلى دورة تطوير تطبيقات باستخدام لغة بايثون التي تقدمها أكاديمية حسوب. دعم اللغة العربية في بايثون قد تواجه خطأ إذا حاولت تنفيذ أمر طباعة جملة "مرحبا بالعالم" مُستخدما حروفا عربية، لذلك يجب عليك أن تكتب السّطر التّالي، قبل كتابة أي أمر يحتوي على كلمات عربية: # -*- coding: utf-8 -*- المصطلحات مخرج Output: تعني الجواب أو النّتيجة الذي يُقدّمها مُفسّر بايثون، فمثلا إذا طلبت من مُفسّر بايثون طباعة كلمة Hello، فستستخدم السّطر التّالي: >>> print "Hello" Hello هنا نُسمّي Hello المُخرج الذي يُرجعه البرنامج (أي نتيجة الأمر). مُتغيّر: وهو الاسم الذي نُطلقه على حرف أو “كلمة” تحمل قيمة مُعيّنة، مثلا: >>> name = "abdelhadi" هنا قُمنا بإنشاء مُتغيّر name وأسندنا له القيمة abdelhadi. وإذا أردنا إظهار القيمة abdelhadi فيكفي أن نكتب اسم المُتغيّر في مُفسّر بايثون: >>> print name كما يُمكن أن نضيف تحّية على الشّكل التّالي: >>> print "Hello " + name تُفسّر الشيفرة أعلاه وتكون مُخرجاتها: Hello Abdelhadi يُمكن أن يحمل المُتغيّر عدّة أنواع من القيم، كالأرقام والنّصوص والأحرف… تعيين القيم يُعتبر تعيين قيمة لاسم معيّن من أهمّ أساسيّات البرمجة، وهذا الاسم معروف في البرمجة بالمُتغيّر، وإليك مثالا على ذلك: >>> x = 4 >>> x * x 16 قمنا في المثال أعلاه بوضع القيمة 4 للمتغيّر x، بعبارة أخرى المُتغيّر x يحمل القيمة 4. بحيث يُمكننا استعمال x عوضا عن 4 في باقي الأسطر في برنامجنا. وبعدها قمنا بالعمليّة الحسابيّة x * x أي 4 * 4 وحصلنا على 16 كنتيجة. إذا حاولت أن تستخدم مُتغيّرًا لم يُعرّف من قبل في برنامجك، فستحصل على خطأ كالتّالي: >>> foo Traceback (most recent call last): File "<stdin>", line 1, in ? NameError: name 'foo' is not defined >>> foo = 4 >>> foo 4 حاولنا أعلاه أن نقوم باستخدام المُتغيّر foo الذي لم نعرّفه أساساً، فحصلنا على رسالة من مُفسّر بايثون مفادها بأنّ المُتغيّر foo ليس موجودا. وبعد تعريفه وتعيين القيمة "4" له أصبح بإمكاننا استدعاؤه بدون أي مشكلة. إذا وضعت قيمة مُغايرة لمتغيّر يحمل مُسبقاً قيمة ما، فالقيمة القديمة تُستَبدَل بالقيمة الجديدة، بحيث يحمل المتغيّر القيمة الجديدة. >>> x = 4 >>> x 4 >>> x = 'hello' >>> x 'hello' في المثال أعلاه، قمنا بتحديد القيمة "4" للمتغيّر x ثمّ بعد ذلك قمنا بتحديد "hello" لنفس المُتغيّر فأصبح x يحمل القيمة hello في نهاية المطاف. ويُمكنك تعيين أكثر من قيمة لأكثر من مُتغيّر في آن واحد. >>> a, b = 1, 2 >>> a 1 >>> b 2 >>> a + b 3 ومُبادلة قيمتي مُتغيّرين (بحيث يحمل المُتغيّر قيمة الآخر) سهل جدّا في لغة بايثون: >>> a, b = 1, 2 >>> a, b = b, a >>> a 2 >>> b 1 عند تعيينِ قيمة في بايثون، تكون الأهميّة للجانب الأيمن قبل الأيسر، بحيث يقوم بايثون بالتّعرّف على القيّم في الجانب الأيمن ثمّ يقوم بتعيينها للمتغيّرات في الجانب الأيسر لعلامة = . إذ ما يقع على يسار علامة = هو المُتغير وما يقع على يمينها هو القيمة. التعليقات تُستعمل التّعليقات في البرمجة لشرح وظيفة سطر معين أو لإعطاء فكرة عن برنامجك لمن يقرأ شيفرته، وتكون التّعليقات مسبوقة بعلامة # إما في سطر مستقل أو في نفس سطر الشّيفرة، وتتميّز بأنّها لا تؤثّر على عمل البرنامج إذ يتجاهلها المُفسّر ولا تُنفّذ، وهي عموما اختيارية، لذا فأنت لست مُجبرا على كتابتها، وإليك مثالاً على التّعليقات: >>> # السّطر التّالي عبارة عن تعيين قيمة لمتغيّر >>> x = 'hello' # هذا السّطر عبارة عن تعيين قيمة لمتغيّر الأرقام لقد تعرّفنا من قبل حول كيفيّة التّعامل مع الأرقام بشكل بسيط. >>> 42 42 >>> 4 + 2 6 تدعم بايثون الأعداد العشريّة كذلك. >>> 4.2 4.2 >>> 4.2 + 2.3 6.5 وتدعم العمليّات المُختلفة مثل الإضافة والفرق وغيرهما من العمليّات الحسابيّة: + إضافة - الفرق * الضّرب / القسمة ** الأس (القوة) % باقي القسمة لنجرّب هذه العمليّات على الأعداد الصّحيحة: # عمليّة إضافة >>> 7 + 2 9 # عمليّة فرق >>> 7 - 2 5 # عمليّة ضرب >>> 7 * 2 14 # عمليّة قسمة >>> 7 / 2 3 # الأس >>> 7 ** 2 49 # باقي القسمة >>> 7 % 2 1 إذا تمعّنت في النّظر ستجد أنّ ناتج قسمة 7 على 2 يُساوي 3 وليس 3.5 وهذا لأنّ الرّمز / يُرجع الأرقام الصحيحة فقط عندما يعمل معها، لننظر مالذي سيحدث إذا جرّبنا نفس الأمر لكن بأعداد عشريّة هذه المرّة: >>> 7.0 / 2.0 3.5 >>> 7.0 / 2 3.5 >>> 7 / 2.0 3.5 يُمكن القيّام بالعمليّات الحسابيّة بالاعتماد على أكثر من عامل: >>> 7 + 2 + 5 - 3 11 >>> 2 * 3 + 4 10 هذا مهمّ جدّا وذلك لفهم كيفيّة تعامل لغة بايثون مع العمليّات الحسابيّة، حيث هناك أولويّات للعمليّات وذلك كالقائمة التّالية، من الأقل أولويّة إلى الأه: + - * / % ** ولفهم ذلك أكثر، إليك هذا المثال: عند تنفيذ العمليّة 2 + 3 * 4 في بايثون فالعمليّة الأولى التّي تُنفّذ هي 3 * 4 ، لأن العامل * أكثر أولويّة من عامل +، وبعد ذلك تضاف القيمة إلى 2. >>> 2 + 3 * 4 14 يُمكننا أن نعتمد على الأقواس () لتحديد أولويّات العمليّات، انظر المثال التّالي: >>> (2 + 3) * 4 20 في المثال أعلاه، قمنا بوضع العمليّة 2+3 بين قوسين لإخبار مُفسّر بايثون بأنّ لهذه العملية الأولويّة ويجب حسابها أوّلا، فإن لم نقم بوضع القوسين لقام المُفسّر بحساب العمليّة 4*3 ثم إضافة العدد 2. جميع العمليّات باستثناء ** يبدأ تطبيقها من اليسار ثمّ اليمين. 1 + 2 + 3 * 4 + 5 ↓ 3 + 3 * 4 + 5 ↓ 3 + 12 + 5 ↓ 15 + 5 ↓ 20 تمارين تمرين 1 ما هي مُخرجات (القيّم التّي سيطبعها) البرنامج التّالي: x = 4 y = x + 1 x = 2 print x, y تمرين 2 ما هي مُخرجات (نتيجة) البرنامج التّالي: x, y = 2, 6 x, y = y, x + 2 print x, y تمرين 3 ما هي مُخرجات البرنامج التّالي: a, b = 2, 3 c, b = a, c + 1 print a, b, c ترجمة -وبتصرف- للكتاب Python Practice Book لصاحبه Anand Chitipothu.1 نقطة
-
هل تذكرّ الإثارة التي شعرت بها عند أطلقت بتهور مشروعك الأخير؟ تلك السعادة الغامرة لمعرفة أن جميع الأبواب كانت مفتوحة أمامك وكانت الفرص لا نهائية. ومع ذلك، إذا كنت مثل معظم الناس، يحدث شيء ما عندما تقترب من إنهاء المشروع. ربما تتعثر وتقع، أو وربما يصيبك مغص وتشنّج وتضطر إلى أخذ استراحة. وفي لحظة ما يبدو كل ذلك الزخم وكل ما أوصلك إلى تلك النقطة قد تلاشى فجأة. لذا يتعثر الكثير منا عند 90%. نحن نضع الكثير من الضغوط على فكرة إنهاء شيء ما والقول "لقد أنهينا هذا الأمر" الأمر الذي يجهدنا ونبحث عن ذرائع لتأجيل تلك اللحظة. ونحاصر أنفسنا بأسئلة مثل: ماذا سيكون رأي الناس بنا؟ ماذا سيحدث إذا أنهينا المشروع تمامًا وفشلنا؟ ماذا لو أنهينا المشروع ولم نسبح مباشرة في بحر من الأموال مثل العم دهب (العم دهب أو أنكل سكروتش شخصية كرتونية، وهو بطة ثري يمتلك خزنة كبيرة ممتلئة بالنقود ويتميز ببخله الشديد وحرصه على جمع المال ويعيش في مدينة البط ويوصف بأغنى بطة فيها). هذه هي أنواع الأفكار التي تتفشى في عقولنا بينما نحاول إنهاء آخر 10%. نحن نعيش في مجتمع مشتت بالكامل، فكيف يمكننا بأي حال توقع إنهاء عملنا. هناك مقولة شهيرة لـ Jim Rohn : كشخص لديه تجربة في إنهاء سلسلة من المشاريع a serial project finisher، لقد كان هذا التفكير عمليًا بالنسبة لي على مر السنين. كثيرًا ما نريد التركيز على قائمة مهام ذات بنود كبيرة، هدف مشروع كبير، أو النتيجة النهائية للعمل. هذه البنود الكبيرة يمكن أن تكون كتابة كتاب، إطلاق موقع جديد، بناء تطبيق...الخ. ربما سبق لك أن قرأت أو سمعت حول الأمر، لكن لا يُمكن أن تكتب أهدافا كبيرة مثل هذه في قائمة مهامك اليومية. يجب أن تكتب هذه البنود في قائمة منفصلة تمامًا تدُعى شيء من قبيل "أشياء مدهشة وضخمة أريد القيام بها"، انطلق واكتب تلك القائمة. لكن ضعها حاليًا في مكان ما حيث لا يمكنك مشاهدتها يوميًا، فقد حان الوقت للقيام ببضعة أشياء ستساعدك فعلًا على إنهاء مشروعك الذي تعمل عليه. ابدأ مع قوائم كثيرة ... من المهام الصغيرةما تعمل عليه أنا وأنت ليس بالأمر المُعقّد جدًا (أو كما يوصف عادة بأنه ليس مُعقّدًا كتعقيد علم الصواريخ)، لكن من الأفضل أن تعتقد أنه يمكننا تعلم عدة أشياء من علماء الصواريخ. لا يمكن لعلماء الصواريخ أن يبنوا صاروخًا دفعة واحدة، عليهم أن يبدؤوا ببناء كل مكون بشكل منفرد. هناك الأحواض tanks، المحاقن injector، المضخات pumps، الأغلفة housings، الحجرات chambers، المنافث nozzles، وعدد ضخم من الأجزاء الأخرى التي تحتاج إلى إكمال وتركيز خاص. ويؤدي جمع كل هذه الأجزاء المكتملة معًا إلى بناء الصاروخ. عليك تطبيق آلية التفكير هذه مهما كان الشيء الذي تعمل عليه. لا تركز على أي بند كبير. ركّز على البنود الأصغر التي يمكنك إكمالها واحدًا تلو الآخر. من المفيد كتابة قائمة مهام خاصة لكل جزء مخصص من المشروع. من الأسهل إنهاء البنود الأصغر والأكثر بساطة. لقد اعتدت أن أعاني مع قوائم المهام، لكن ما إن جربت عدة أشياء مختلفة حتى وجدت الأسلوب الذي يناسبني. فبدلًا من استخدام تطبيق باهظ السعر أنا استخدم ورقة وقلمًا. أكتب يوميًا بنود قائمة مهام اليوم وأجزئ هذه البنود إلى أصغر مهام ممكنة. أراجع قائمتي طوال اليوم وأحدد المهام المنتهية (من المذهل كم سيُشجّعك شطب بنود قائمة مهامك على مواصلة العمل). وفي اليوم التالي، عندما أجلس لكتابة قائمة مهامي، إذا كان لدي أية مهام متبقية من اليوم السابق أعيد كتابتها. أصبحت مهمة إعادة كتابة المهام المتبقية من الأجزاء الأقل تفضيلًا في اليوم. لقد ساعدني ازدراء إعادة كتابة قائمة مهامي اليومية على التركيز على إنهاء كل المهام يوميًا لتجنب عملية إعادة الكتابة. وفي النهاية تخلصت من عادتي في السماح بتأجيل المهام يوميًا ولم يستغرق الأمر سوى 30 يومًا فقط. عندما تكون جميع قوائم مهامك الصغيرة منتهية، يجب أن يكون لديك صاروخ كامل يعمل. أو مدونة، أو تطبيق ويب. سرعة تنفيذك لمشروعك مهمة جدادعنا نواجه الأمر، من الصعب علينا نحن كبشر التوقف عندما نبدأ في العمل على شيء ما. إنها طبيعتنا. لكنه يجب عليك أن تقاوم استعجالك الغريزي وتدرّب نفسك على السير بخطوات مدروسة عند العمل على (وإنهاء) مشروع ما. لقد مررنا جميعنا بتجارب مثل هذه: يقترب موعد التسليم النهائي. وهناك الكثير من العمل الذي يتوجب القيام به. وبعد ليال من السهر وتناول كميات كبيرة من الكافيين لتساعدنا على إنهاء العمل بجودة دون المطلوب. ينتهي بنا المطاف بتقديم عمل غير فخورين به لأننا لم نمنح أنفسنا الوقت الكافي لإنهاء العمل/المشروع بالشكل المناسب. لا ينبغي القيام بالعمل بهذه الطريقة إذا كنت تخطط لضبط سرعة تنفيذك للمشروع. في عام 2014 كان لدي موعد نهائي صارم لإطلاق كتابي (في يوم عيد ميلادي, 15 أيار). لكن فجأة ومن دون سابق إنذار حصلت بعض التعقيدات في طباعة الكتاب وبعض العقبات المثيرة للسخرية حقًا مع Amazon.com كمؤلف ينشر كتبه بنفسه. وكلما اقترب يوم 15 أيار أكثر وأكثر أدركت أنني لن أتمكن من إنهاء العمل في اليوم المحدد. غضبت ليوم واحد ومن ثم أدركت أن الموعد النهائي لإطلاق الكتاب في يوم عيد ميلادي كان موعدًا أنا وضعته، وهذا الموعد يمكن تغييره مقارنة بأشياء أخرى أكثر أهمية في الحياة. أتذكر أنني أرسلت رسالة إلى قائمتي البريدية لإخبارهم أن موعد الإطلاق قد تغير وقوبلت بتأييد كبير. في كثير من الأحيان، إذا كنت صادقًا مع نفسك ومع جمهورك، فإن تغيير الموعد النهائي لن يكون بالأمر الكبير. ليس من الضروري أن تنهي كل شيء في يوم واحد وأنت بالتأكيد لا يجب أن تحاول إنهاء كل شيء في اليوم الأخير من مشروعك. ضع خطة لمشروعك وكن منضبطًا في تنفيذ أعمالك اليومية (الصغيرة). الاستراحات ضروريةعليك تذكر أخذ استراحات، إذا كنت تشعر أن عقلك منهك ولا يمكنك القيام بالمزيد من العمل ببساطة، فهذا لأنك ترهق نفسك. لقد وجدت شخصيًا أن إجبار نفسي على أخذ استراحات على مدار اليوم أمر بالغ الأهمية للعمل بكفاءة ومن غير أن أشعر أن دماغي لم يعد قادرًا على العمل. ما أتحدث عنه ليس استراحات الفطور والغداء والعشاء، لكن عندما تجبر نفسك على التوقف من 10-30 دقيقة في الأوقات التي تكون تعمل بها عادةً. لقد وجدت أن الطبيعة توفر أفضل طريقة لإعادة شحن للدماغ بلا مُنازع. أترك كل التقنية خلفي وأذهب للتنزه سيرًا على الأقدام، أغتنم الوقت للاستمتاع بضواحي المدينة والتنفس بعمق. قد يكون هذا فرصة للتأمل بالنسبة للبعض، لكنه بالنسبة لي فرصة للتخلص من التوتر وهموم الحياة. هناك ملاحظة بسيطة بخصوص فقكرة "أترك كل التقنية خلفي"، اشتريت طوق Garmin Vivosmart (أداة لياقية بدنية تقوم بتتبع خطواتك، حرق السعرات الحرارية، المسافة المقطوعة. الخ) لغرض واحد هو ميزة تنبيه الخمول. يقيس هذا الجهاز الذي أرتديه مدى نشاطي وينبهني إذا جلست لأكثر من 40 دقيقة. لقد دربني ارتداء هذا الجهاز لمدة سنة تقريبًا على النهوض والتحرك قبل تنبيه خمول الـ 40 دقيقة. وعندما أحتاج التركيز لفترة طويلة من الزمن؟ أخلعه وأتركه على مكتبي. مثلما ترغب في خلق عادات لإنشاء وتنفيذ قائمة مهامك اليومية، فإن تخصيص وقت للاستراحات سينشطك. تذكر أن آخر 10% تحتاج للمساعدة عادةسواء كنت مؤسسًا يعمل لوحده، امرأة تعمل على محلّها التّجاري لوحدها، أو رجل أعمال متباهٍ (مثلي)، فإن القليل من المساعدة يمكن أن تمنحك عادةً الدفعة الصغيرة التي تحتاجها للوصول إلى خط النهاية. ويمكن أن يتم ذلك بعدة طرق مختلفة: أنشئ دائرة ثقة trust circle التي يمكن أن تبقيك مسؤولًا.أعلن عن موعدك النهائي على مواقع التواصل الاجتماعي وأطلب من أصدقائك، متابعيك، وأسرتك دعمك وتشجيعك.استخدم أدوات مثل followup.cc أو boomerang لكتابة رسائل مستقبلية مشجعة لنفسك.أول خيارين في القائمة السابقة يجب أن يكونا واضحين ويشرحان نفسيهما بنفسيهما، أما الخيار الأخير فهو "خدعة" صغيرة تفعل العجائب. خذ الوقت الكافي لكتابة رسالة إلكترونية لنفسك تشجعك على "مواصلة عملك" وجَدوِل هذه الرسالة لتصل قبل أسبوع أو أسبوعين من الموعد النهائي. وإذا كنت ترغب في المزيد من الجدية، يمكنك كتابة عدة رسائل وجدولتها لتصل قبل شهر, 3 أسابيع، أسبوعين، أسبوع, 3 أيام، ويوم واحد من الموعد النهائي لمشروعك. يمكن لكلماتك التشجيعية إعطائك دفعة إضافية. بالإضافة إلى أنه من المحتمل أن تنسى موضوع هذه الرسائل إذا كتبتها قبل مدة كافية، مما يجعلها مفاجأة ممتعة. عندما تقترب من خط النهايةعندما يلوح خط النهاية في الأفق تميل كل الشكوك التي نحيتها جانبًا للتسلسل إلى عقلك مجددًا. يتطلب إنهاء العمل قليلًا من الإصرار، وقليلًا من الشجاعة، اجتهاد كبير، والتخلص من لحظات الرغبة في التخلي عن المشروع. إذا كنت تذكرّ نفسك لماذا تقوم بهذا العمل، يمكن أن يدفعك ذلك إلى خط النهاية. هناك نقطة في غاية الأهميّة وهي أنك لن تنهي أبدًا الـ 10% الأخيرة إذا كنت تعمل على مشروع لا ترغب في العمل عليه من البداية، وأحدّثك عن الأمر عن تجربة شخصية، ففي جعبتي 30 مشروعًا، والمشاريع التي عانيت كثيرًا لإنهائها كانت تلك المشاريع التي كان يُفترض بي أن لا أواصل العمل عليها. اسأل نفسك: لماذا لم أنهِ المشروع؟ هل لأنني أحتاج إلى المزيد من الانضباط أم لأنني لم أكن أرغب حقًا في العمل عليه؟ إذا كان جوابك هو الانضباط، اقرأ هذه المقالة مجددًا. إذا كان جوابك عدم الرغبة في العمل على المشروع، فقد حان الوقت لأخذ قسط من الراحة والتفكير فيما تريد القيام به بعد ذلك. ترجمة وبتصرف لمقال The last 10%: How to push through when the finish line is near لصاحبه Jason Zook.1 نقطة
-
حسب ما فهمته أنك تبحث عن دالة chr. يبدو أنك تخلط بين التمثيل العشري للأعداد الصحيحة وبين التمثيل السداسي العشري (hex) للأعداد الصحية، لذلك لم أفهم بالضبط ما الذي تريده بالضبط، فحسب السؤال الذي وضعته أعتقد أنك ستحتاج إلى واحدة من هذه الدوال الموجودة هنا: >>> chr(0x65) == '\x65' True >>> hex(65) '0x41' >>> chr(65) == '\x41' Trueلاحظ أن هذا مختلف قليلا عن السلسلة النصية التي تحتوي على عدد صحيح كعدد سداسي عشري، فإذا أردت ذلك، استخدم دالة hex المدمجة كما في المثال.1 نقطة
-
بالتأكيد أخي يوجد العديد من الطرق لتحويل الشخصيات العادية إلى شخصيات مصاصي دماء تتضمن رسم الأنياب وبعض نقاط الدماء وبعض التأثيرات الخاصة بتشوهات الجلد والشعر أحيانًا وأمور أخرى وهي تحتاج إلى الكثير من العمل، إلا أن أسهل طريقة هي نسخ هذه التأثيرات والمواد المختلفة من صورة مصاص دماء ودمجها في صورة شخصية عادية، مثال للتوضيح: هذه الصورة مثلًا... سنقوم أولًا بإضافة طبقة جديدة فارغة ثم سنستخدم فرشاة صغيرة ناعمة باللون الأحمر الداكن للرسم فوق بياض العين حول البؤبؤ لتصبح بهذا الشكل: يبدو أن هذه الفناة بدأت تتحول إلى مصاصة دماء والآن يتوجب عليك البحث في صور جوجل عن صور مصاصي دماء من بعض الأفلام وسننسخ من هذه الصورة الأنياب لذلك قم بتحديدها بدقة لنسخها. وبعدها ألصقها في طبقة جديدة فوق صورة الفتاة العادية ثم اضبط حجم الناب وزاوية انحرافه ثم ضعه فوق الناب العادي تمامًا. كرّر العملية للناب الثاني أيضًا: قد تحتاج إلى تطبيق بعض تأثيرات الظلال على الأنياب . والآن ابحث عن صورة أخرى لمصاص دماء آخر وانسخ المنطقة المشوّهة تحت العين. ألصق هاتين المنطقتين تحت العينين للشخصية الجديدة مع التلاعب بالحجم والاتجاه والانحراف بشكل جيد. استخدم أداة الممحاة مع فرشاة ناعمة الحواف وبدرجة تعبئة منخفضة قليلًا لمسح حواف الأشكال المنسوخة المشوهة ودمجها بشكل انسيابي مع وجه الشخصية. اضبط التباين Brightness/Contrast وكذلك درجة الألوان Hue/Saturation وتوازن الألوان Color Balance وخفف من Opacity لطبقة الأشكال المشوهة تحت العينين. مع بعض التعديلات الإضافية كشحوب اللون وأمور أخرى ستخرج بصورة مشابهة لهذه المرأة التي تحولت إلى مصاصة دماء رسميًّا .1 نقطة
-
أريد معرفة الفرق بين الإضافات (plugins) وبين gems في لغة روبي، فما الفرق بين هذين المصطلحين؟ أليست gems هي الإضافات؟1 نقطة