صفحة 168 - كتاب المهارات الرقمية - الصف 9 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب المهارات الرقمية - الصف 9 - الفصل 1 | المادة: المهارات الرقمية | المرحلة: الصف 9 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

📚 معلومات الصفحة

الكتاب: كتاب المهارات الرقمية - الصف 9 - الفصل 1 | المادة: المهارات الرقمية | المرحلة: الصف 9 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

📝 ملخص الصفحة

📚 إضافة صورة وكائن الخلفية في Pygame

المفاهيم الأساسية

convert_alpha(): إجراء (دالة) في Pygame يغير تنسيق البكسل الخاص بالصورة ليشمل قيم "alpha" الخاصة بالشفافية.

خريطة المفاهيم

```markmap

المكتبات والنماذج البرمجية في بايثون

مفهوم النموذج البرمجي

تعريف

  • حزمة ملفات تحتوي مقاطع برمجية
  • امتدادها .py
  • يتم استيرادها لتنفيذ وظائف

مصادر النماذج

المكتبة القياسية (Standard library)

#### تعريف

  • تُثبَّت تلقائياً مع بايثون
  • جزء أساسي من اللغة
  • تحتوي على أكثر من 200 نموذج برمجي
#### طرق الاستيراد

##### 1. استيراد الكل

  • الأمر: `from module_name import *`
##### 2. استيراد دوال من نموذج برمجي

  • الأمر: `from module_name import function_a, function_b, function_c`
##### 3. استيراد النماذج البرمجية

  • الأمر: `import module_name`
##### أمثلة على نماذجها

###### math

  • الهدف: الوصول إلى دوال وثوابت رياضية شائعة
  • طريقة الاستيراد: `import math`
  • أمثلة على استخدامه:
- الدوال الأكبتان (التقريب)

- `math.ceil(x)`: تقريب الرقم `x` إلى أقرب عدد صحيح أكبر (السقف).

- مثال: `math.ceil(10.1657)` ← 11

- `math.floor(x)`: تقريب الرقم `x` إلى أقرب عدد صحيح أصغر (الأرضية).

- مثال: `math.floor(10.1657)` ← 10

- مثال مع الأرقام السالبة: `math.floor(-10.1657)` ← -11

###### tkinter

  • الهدف: إنشاء واجهات رسومية (GUI).
  • طريقة الاستيراد: `from tkinter import *` (حالة نموذجية لاستيراد الكل بسبب كثرة الدوال المستخدمة).
  • خطوات إنشاء نافذة أساسية:
1. `window = Tk()`: إنشاء كائن النافذة.

2. `window.title("عنوان")`: تحديد عنوان النافذة.

3. `window.geometry("عرضxارتفاع")`: تحديد حجم النافذة.

4. `window.mainloop()`: إبقاء النافذة مفتوحة.

###### time

  • الهدف: توفير دوال للعمل مع الأوقات.
  • طريقة الاستيراد: `import time`
  • أمثلة على استخدامه:
- معرفة الوقت بالساعة والدقيقة (تنسيق 24 ساعة) واليوم من الأسبوع وما إذا كان صباحًا أم مساءً.

- الأمر: `print(time.strftime("%H:%M"), time.strftime("%A %p"))`

- مثال على المخرجات: `10:49 Wednesday AM`

###### datetime

  • الهدف: التعامل مع التواريخ والوقت بكثرة في البرامج المختلفة.
  • طريقة الاستيراد: `import datetime`
  • أمثلة على استخدامه:
- معرفة تاريخ اليوم.

- الأمر: `print(datetime.date.today())`

- مثال على المخرجات: `2023-11-15`

- يمكن استخراج السنة والشهر واليوم من التاريخ.

- استخدام سمة (Attribute) الدالة:

- الصيغة العامة: `module_name.function_name().attribute_name`

- مثال لاستخراج اليوم: `datetime.date.today().day`

- مثال لاستخراج الشهر: `datetime.date.today().month`

- مثال لاستخراج السنة: `datetime.date.today().year`

- حساب الأيام المتبقية لحدث (مثال: يوم التأسيس):

1. استيراد `date` من `datetime`.

2. الحصول على تاريخ اليوم: `today = date.today()`.

3. تحديد تاريخ الحدث: `foundationDay = date(today.year, 2, 22)`.

4. التحقق إذا مضى الحدث هذا العام باستخدام `date.replace()`:

- `if foundationDay < today: foundationDay = foundationDay.replace(year=today.year + 1)`

5. حساب الفرق بالأيام: `time_to_foundationDay = foundationDay - today`.

6. طباعة النتيجة: `print("Days left:", time_to_foundationDay.days)`.

###### pygame

  • الهدف: استخدام النموذج لإنشاء أشكال هندسية على الشاشة.
  • خطوات التثبيت في PyCharm:
1. الضغط على Packages (الحزم).

2. كتابة باي جايم (pygame) في شريط البحث.

3. اختيار pygame والضغط على Install (تثبيت).

4. ظهور رسالة تؤكد اكتمال التثبيت.

  • خطوات إنشاء شاشة:
- `import pygame`: استيراد جميع الدوال المنتمية لهذا النموذج البرمجي.

- `pygame.init()`: تهيئة جميع دوال pygame التي يتم استدعاؤها.

- `screen = pygame.display.set_mode((x,y))`: فتح نافذة بالحجم (x,y) وحفظها في متغير اسمه (screen).

- `colorName = (r,g,b)`: تعريف متغير اللون في نظام (RGB).

- `screen.fill(colorName)`: تعبئة الشاشة باللون المحدد.

- `pygame.display.update()`: عرض جميع الرسومات الخاصة بك منذ آخر استدعاء.

  • دوال الرسم:
- رسم مستطيل:

- الدالة: `pygame.draw.rect()`

- مثال: `pygame.draw.rect(screen, red, pygame.Rect(30, 30, 60, 60))`

- رسم خطوط:

- الدالة: `pygame.draw.lines()`

- مثال: `pygame.draw.lines(screen, pink, False, [(i,10), (250,350)], 1)`

- معاملات الدالة:

- `screen`: الشاشة المرسوم عليها.

- `pink`: لون الخط.

- `False`: عدم إغلاق الشكل (عدم توصيل نقطة النهاية بالبداية).

- `[(i,10), (250,350)]`: قائمة بنقاط البداية والنهاية للخط.

- `1`: سمك الخط.

- إبقاء النافذة مفتوحة:

- استخدام دالة `time.sleep(5)` من نموذج `time` لإبقاء النافذة مفتوحة لمدة 5 ثوانٍ قبل إغلاقها بـ `pygame.quit()`.

  • عرض الصور والتحديث
- إنشاء نافذة جديدة:

- الأمر: `window=pygame.display.set_mode((1200,800))`

- الأرقام (1200,800) تمثل العرض والارتفاع.

- تحميل وعرض الصور:

- `background=pygame.image.load("file name").convert()`: تحميل صورة جديدة من ملف.

- `window.blit(background, (x,y))`: وضع صورة داخل صورة أخرى.

- تحديث الشاشة:

- `pygame.display.update()`: تحديث الشاشة لعرض الرسومات.

- تستخدم ميزة التخزين المؤقت المزدوج لمنع وميض الشاشة.

- إضافة صورة وكائن الخلفية

- تعيين صورة كخلفية

- الشرط: تحديد موقعها عند النقطة `(0,0)` لملء النافذة بالكامل.

- مثال: `window.blit(background, (0,0))`

- استخدام `convert_alpha()`

- الهدف: جعل الخلفية البيضاء للصورة شفافة.

- الاستخدام: `pygame.image.load("Earth.png").convert_alpha()`

- الفرق: يغير تنسيق البكسل ليشمل قيم "alpha" الخاصة بالشفافية.

- عرض الصورة في مكان محدد

- مثال: `window.blit(image, (300,200))`

- شرط مهم: حفظ ملف الصورة في نفس مجلد الملف البرمجي.

مميزات إنشاء المقطع البرمجي الخاص

  • يلائم احتياجاتك الحقيقية
  • التحكم الكامل والقدرة على التصحيح والتغيير الفوري
  • أكثر موثوقية (معلومات التوثيق في النماذج الخارجية قد تكون غير كافية أو غير صحيحة)
  • تجنب مشكلة توقف التحديثات إذا توقف المطور الأصلي
  • تجنب التكلفة العالية أو القيود على ترخيص النماذج الخارجية

مدير حزم بايثون (PIP)

دوره

  • تثبيت حزم غير متوفرة في المكتبة القياسية

فهرس حزمة بايثون (PyPI)

  • مستودع برامج خاص ببايثون
  • موقع افتراضي للبحث عن الحزم
  • يستضيف الحزم التي يساهم بها المجتمع

طريقة التثبيت

  • الأمر: `install`
  • مثال: تثبيت حزمة `pygame` (مكتبة مفتوحة المصدر لإنشاء تطبيقات الوسائط المتعددة والألعاب)

الحزمة

  • تحتوي على جميع الملفات المطلوبة في النموذج البرمجي
```

نقاط مهمة

  • لتعيين صورة كخلفية، يجب تحديد موقعها عند النقطة `(0,0)` لملء النافذة بالكامل.
  • تُستخدم الدالة `convert_alpha()` لجعل الخلفية البيضاء للصورة شفافة عن طريق تغيير تنسيق البكسل ليشمل قيم الشفافية (alpha).
  • يجب حفظ ملف الصورة في نفس المجلد الذي يحفظ فيه الملف البرمجي بلغة بايثون.

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

نوع: محتوى تعليمي

إضافة صورة وكائن الخلفية

نوع: محتوى تعليمي

ضع في اعتبارك أنه من أجل تعيين صورة كخلفية، عليك تحديد موضعها عند النقطة (0,0) لملء النافذة بالكامل.

نوع: محتوى تعليمي

< كذلك عند تحميل صورة "Earth" كخلفية بيضاء، ولجعل هذه الخلفية شفافة استخدم الإجراء ( convert_alpha() ) الذي سيغير تنسيق البكسل الخاص بالصورة بما فيها قيم "alpha" الخاصة بالبكسل.

نوع: محتوى تعليمي

# عين صورة "star" ككائن خلفية background=pygame.image.load("stars.png").convert()

نوع: محتوى تعليمي

# عين صورة "Earth" ككائن صورة image=pygame.image.load("Earth.png").convert_alpha()

نوع: محتوى تعليمي

# حدد موقع صورة "star" window.blit(background, (0,0))

نوع: محتوى تعليمي

# حدد موقع صورة "Earth" window.blit(image, (300,200))

نوع: محتوى تعليمي

pygame.display.update() time.sleep(10)

نوع: محتوى تعليمي

ناتج تنفيذ المقطع البرمجي دون استخدام الإجراء convert_alpha()

نوع: محتوى تعليمي

ناتج تنفيذ المقطع البرمجي عند استخدام الإجراء convert_alpha()

نوع: محتوى تعليمي

من المهم أن تحفظ ملف الصورة في نفس المجلد الذي حفظت فيه الملف البرمجي بلغة البايثون.

🔍 عناصر مرئية

ناتج تنفيذ المقطع البرمجي عند استخدام الإجراء convert_alpha()

A photograph of planet Earth from space, showing continents and clouds, set against a black background with stars. The image is displayed within a window.

ناتج تنفيذ المقطع البرمجي دون استخدام الإجراء convert_alpha()

A smaller image of planet Earth, displayed on a black background with stars. This image appears to be a portion of the background, possibly with transparency issues, as indicated by the surrounding text.

📄 النص الكامل للصفحة

إضافة صورة وكائن الخلفية ضع في اعتبارك أنه من أجل تعيين صورة كخلفية، عليك تحديد موضعها عند النقطة (0,0) لملء النافذة بالكامل. < كذلك عند تحميل صورة "Earth" كخلفية بيضاء، ولجعل هذه الخلفية شفافة استخدم الإجراء ( convert_alpha() ) الذي سيغير تنسيق البكسل الخاص بالصورة بما فيها قيم "alpha" الخاصة بالبكسل. # عين صورة "star" ككائن خلفية background=pygame.image.load("stars.png").convert() # عين صورة "Earth" ككائن صورة image=pygame.image.load("Earth.png").convert_alpha() # حدد موقع صورة "star" window.blit(background, (0,0)) # حدد موقع صورة "Earth" window.blit(image, (300,200)) pygame.display.update() time.sleep(10) ناتج تنفيذ المقطع البرمجي دون استخدام الإجراء convert_alpha() ناتج تنفيذ المقطع البرمجي عند استخدام الإجراء convert_alpha() من المهم أن تحفظ ملف الصورة في نفس المجلد الذي حفظت فيه الملف البرمجي بلغة البايثون. --- VISUAL CONTEXT --- **IMAGE**: ناتج تنفيذ المقطع البرمجي عند استخدام الإجراء convert_alpha() Description: A photograph of planet Earth from space, showing continents and clouds, set against a black background with stars. The image is displayed within a window. Context: Demonstrates the result of loading and displaying an image using Pygame, likely as a background. **IMAGE**: ناتج تنفيذ المقطع البرمجي دون استخدام الإجراء convert_alpha() Description: A smaller image of planet Earth, displayed on a black background with stars. This image appears to be a portion of the background, possibly with transparency issues, as indicated by the surrounding text. Context: Illustrates the output without using the convert_alpha() function, suggesting potential differences in transparency or rendering compared to the image on the left.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 3 بطاقة لهذه الصفحة

ما الغرض الأساسي من استخدام الإجراء `convert_alpha()` في مكتبة Pygame عند تحميل الصور؟

  • أ) لضغط حجم ملف الصورة وتقليل استخدام الذاكرة.
  • ب) لتحويل الصورة إلى تنسيق PNG تلقائياً.
  • ج) لتمكين الشفافية (قناة ألفا) في الصورة.
  • د) لتسريع عملية رسم الصورة على الشاشة دون تأثيرات.

الإجابة الصحيحة: c

الإجابة: لتمكين الشفافية (قناة ألفا) في الصورة.

الشرح: 1. الإجراء `convert_alpha()` هو جزء من مكتبة Pygame. 2. وظيفته تغيير تنسيق البكسل للصورة. 3. يضيف أو يدعم قيم 'ألفا' لكل بكسل. 4. قناة ألفا هي المسؤولة عن التحكم في درجة الشفافية. 5. النتيجة: تصبح الصورة قادرة على عرض مستويات شفافية مختلفة.

تلميح: فكر في خاصية تسمح برؤية الخلفية من خلال أجزاء من الصورة.

التصنيف: مفهوم جوهري | المستوى: متوسط

في Pygame، ما الإجراء الصحيح لتعيين صورة كخلفية تملأ النافذة بالكامل؟

  • أ) تحديد موقعها في منتصف النافذة باستخدام `window.center()`.
  • ب) تحديد موقعها عند النقطة (0,0) باستخدام `window.blit()`.
  • ج) استخدام حلقة تكرارية لرسم الصورة في كل بكسل.
  • د) تحديد موقعها ديناميكياً بناءً على حجم النافذة.

الإجابة الصحيحة: b

الإجابة: تحديد موقعها عند النقطة (0,0) باستخدام `window.blit()`.

الشرح: 1. لملء النافذة بصورة خلفية، يجب أن تبدأ من الزاوية العلوية اليسرى. 2. في أنظمة الإحداثيات الرسومية، النقطة (0,0) تمثل الزاوية العلوية اليسرى للنافذة. 3. استخدام الدالة `blit()` مع إحداثيات (0,0) يضمن أن الصورة ترسم بدءاً من تلك الزاوية. 4. إذا كان حجم الصورة يساوي حجم النافذة، فإنها ستملأها بالكامل.

تلميح: أين تبدأ إحداثيات النافذة عادةً؟

التصنيف: خطوات | المستوى: سهل

أي من المقتطفات البرمجية التالية يوضح الطريقة الصحيحة لتحميل صورة مع دعم الشفافية في Pygame؟

  • أ) image = pygame.load_image('Earth.png', alpha=True)
  • ب) image = pygame.image.load('Earth.png').convert()
  • ج) image = pygame.image.load('Earth.png').convert_alpha()
  • د) image = pygame.image('Earth.png', format='alpha')

الإجابة الصحيحة: c

الإجابة: image = pygame.image.load('Earth.png').convert_alpha()

الشرح: 1. لتحميل صورة مع دعم الشفافية، نحتاج إلى طريقة تحافظ على قناة ألفا. 2. الدالة `pygame.image.load()` تقوم بتحميل الصورة. 3. السلسلة النصية `'Earth.png'` هي اسم ملف الصورة. 4. استدعاء `.convert_alpha()` على الصورة المحملة هو الإجراء المطلوب لتمكين الشفافية. 5. الخيار الصحيح يجمع بين التحميل وتحويل التنسيق لدعم ألفا في سطر واحد.

تلميح: ابحث عن الدالة التي تتعامل مع خاصية 'ألفا'.

التصنيف: سؤال اختبار | المستوى: متوسط