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

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

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

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

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

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

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

📝 ملخص الصفحة

📚 استخدام مكتبة Pygame لرسم الأشكال

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

نظام ألوان (RGB): تعريف ألوان البرنامج باستخدام قيم الأحمر والأخضر والأزرق.

الشاشة (screen): النافذة التي يتم إنشاؤها والرسم عليها.

pygame.draw.rect(): دالة تستخدم لرسم مستطيل.

pygame.draw.lines(): دالة تستخدم لرسم خطوط.

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

```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()`.

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

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

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

دوره

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

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

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

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

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

الحزمة

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

نقاط مهمة

  • يتم تعريف الألوان في Pygame باستخدام نظام (RGB) مثل `darkBlue = (0,0,128)`.
  • دالة `pygame.draw.rect()` ترسم مستطيلاً، وتحتاج إلى تحديد الشاشة واللون ومستطيل الإحداثيات.
  • دالة `pygame.draw.lines()` ترسم خطوطاً، وتحدد فيها نقاط البداية والنهاية وسمك الخط.
  • يتم استخدام `time.sleep(5)` لإبقاء النافذة المرسومة مفتوحة لمدة 5 ثوانٍ قبل إغلاق البرنامج.

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

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

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

import pygame import time pygame.init() darkBlue = (0,0,128) red = (255,0,0) # أنشئ نافذة بعرض 400 وارتفاع 300 screen = pygame.display.set_mode((400,300)) screen.fill(darkBlue) # تستخدم هذه الدالة لرسم مستطيل pygame.draw.rect(screen, red, pygame.Rect(30, 30, 60, 60)) pygame.display.update() time.sleep(5) pygame.quit()

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

تعريف ألوان البرنامج وفق نظام ألوان (RGB).

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

الشاشة التي أنشأتها وترسم عليها.

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

لون الخط.

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

تبقى النافذة مفتوحة لمدة 5 ثوان ثم يغلق النموذج البرمجي (باي جايم).

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

import pygame import time pygame.init() darkBlue = (0,0,128) pink = (255,200,200) # أنشئ نافذة بعرض 500 وارتفاع 400 screen = pygame.display.set_mode((500,400)) screen.fill(darkBlue) for i in range(0,500,10): pygame.draw.lines(screen, pink, False, [(i,10), (250,350)], 1) pygame.display.update() time.sleep(5) pygame.quit()

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

نقطة البداية في رسم الخط.

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

نقطة النهاية في رسم الخط.

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

سمك الخط.

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

في المثال الآتي ستنشئ شكلاً بناءً على خطوط.

🔍 عناصر مرئية

pygame window

A blue window titled 'pygame window' with a red square drawn in the center.

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

import pygame import time pygame.init() darkBlue = (0,0,128) red = (255,0,0) # أنشئ نافذة بعرض 400 وارتفاع 300 screen = pygame.display.set_mode((400,300)) screen.fill(darkBlue) # تستخدم هذه الدالة لرسم مستطيل pygame.draw.rect(screen, red, pygame.Rect(30, 30, 60, 60)) pygame.display.update() time.sleep(5) pygame.quit() تعريف ألوان البرنامج وفق نظام ألوان (RGB). الشاشة التي أنشأتها وترسم عليها. لون الخط. تبقى النافذة مفتوحة لمدة 5 ثوان ثم يغلق النموذج البرمجي (باي جايم). import pygame import time pygame.init() darkBlue = (0,0,128) pink = (255,200,200) # أنشئ نافذة بعرض 500 وارتفاع 400 screen = pygame.display.set_mode((500,400)) screen.fill(darkBlue) for i in range(0,500,10): pygame.draw.lines(screen, pink, False, [(i,10), (250,350)], 1) pygame.display.update() time.sleep(5) pygame.quit() نقطة البداية في رسم الخط. نقطة النهاية في رسم الخط. سمك الخط. في المثال الآتي ستنشئ شكلاً بناءً على خطوط. --- VISUAL CONTEXT --- **FIGURE**: pygame window Description: A blue window titled 'pygame window' with a red square drawn in the center. Context: Demonstrates the output of the Pygame code, showing a filled rectangle on a colored background.

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

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

في مكتبة Pygame، ما هي الدالة المستخدمة لإنشاء نافذة العرض وتعيين أبعادها؟

  • أ) pygame.window.create()
  • ب) pygame.display.set_mode()
  • ج) pygame.init_screen()
  • د) pygame.new_window()

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

الإجابة: pygame.display.set_mode()

الشرح: 1. لإنشاء نافذة في Pygame، نستخدم دالة من وحدة display. 2. الدالة هي set_mode(). 3. نمرر لها tuple يحتوي على عرض وارتفاع النافذة، مثل (400, 300). 4. تُرجع هذه الدالة كائن الشاشة الذي نرسم عليه.

تلميح: هذه الدالة تأخذ tuple يحتوي على عرض وارتفاع النافذة.

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

في Pygame، ما هي الدالة المسؤولة عن تحديث محتويات النافذة وعرض الرسومات التي تم رسمها؟

  • أ) pygame.screen.refresh()
  • ب) pygame.window.show()
  • ج) pygame.display.update()
  • د) pygame.draw.display()

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

الإجابة: pygame.display.update()

الشرح: 1. في Pygame، لا تظهر الرسومات تلقائياً بعد رسمها. 2. يجب استدعاء دالة لتحديث الشاشة. 3. الدالة المستخدمة هي pygame.display.update(). 4. تُظهر هذه الدالة كل الرسومات التي تم إجراؤها منذ آخر تحديث.

تلميح: تُستدعى هذه الدالة بعد إجراء عمليات الرسم لتظهر التغييرات على الشاشة.

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

ما هي الوظيفة الأساسية للدالة pygame.draw.rect()؟

  • أ) تحديث لون خلفية النافذة.
  • ب) رسم دائرة على الشاشة.
  • ج) رسم مستطيل على الشاشة.
  • د) تغيير حجم النافذة.

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

الإجابة: رسم مستطيل على الشاشة.

الشرح: 1. pygame.draw.rect() هي دالة لرسم الأشكال. 2. وظيفتها الأساسية هي رسم مستطيل. 3. تحتاج إلى تحديد: السطح (الشاشة)، اللون، وكائن Rect يحدد الموضع (x, y) والأبعاد (العرض، الارتفاع).

تلميح: تأخذ هذه الدالة معلمات مثل السطح المستهدف، اللون، وموضع وأبعاد المستطيل.

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

في نظام ألوان RGB المستخدم في Pygame، ماذا يمثل التعبير (0,0,128)؟

  • أ) لون أحمر نقي.
  • ب) لون أسود.
  • ج) لون أزرق غامق.
  • د) لون أبيض.

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

الإجابة: لون أزرق غامق.

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

تلميح: في RGB، تمثل القيم (Red, Green, Blue). القيمة 128 في المكون الأزرق مع صفر في الأحمر والأخضر.

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

ما الغرض من استدعاء الدالة pygame.quit() في نهاية البرنامج النموذجي؟

  • أ) إخفاء نافذة العرض.
  • ب) حفظ محتويات الشاشة في ملف.
  • ج) إغلاق جميع وحدات Pygame وإنهاء البرنامج بشكل صحيح.
  • د) إعادة تشغيل وحدة الرسومات.

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

الإجابة: إغلاق جميع وحدات Pygame وإنهاء البرنامج بشكل صحيح.

الشرح: 1. في بداية برنامج Pygame، نستدعي pygame.init() لتهيئة جميع الوحدات. 2. في النهاية، يجب تنظيف هذه الموارد. 3. pygame.quit() تقوم بإغلاق وإلغاء تهيئة جميع وحدات Pygame. 4. هذا يضمن إنهاء البرنامج دون أخطاء أو تسرب للموارد.

تلميح: هذه هي الخطوة النظيفة المعاكسة لـ pygame.init() في بداية البرنامج.

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