يُحوّل#

مقدمة#

تساعد كتل التبديل الطلاب على الانتقال من البرمجة المرئية إلى البرمجة النصية. فباستخدامها، يستطيع الطلاب كتابة كود بايثون مباشرةً داخل مشروع الكتل - كتابة الأوامر والشروط والقيم وتعريفات الدوال - مع الاستمرار في بناء بقية المشروع باستخدام الكتل. كما يمكن تحويل الكتل الفردية إلى أوامر بايثون المكافئة لها.

لتعلم كيفية كتابة أوامر بايثون والأساليب والمعاملات، راجع VEX AIM Python API.

لأن كتل Switch تحتوي على كود بايثون، يجب أن تكون التهجئة وعلامات الترقيم والمسافات البادئة صحيحة لكي يعمل المشروع كما هو متوقع.

فيما يلي قائمة بجميع وحدات التبديل:

تبديل الكتل — إضافة كود بايثون إلى مشروع Blocks.

  • Stack — يوفر مساحة لكتابة أوامر بايثون التي يتم تشغيلها بالتسلسل مع كتل المكدس الأخرى.

  • C Block — يوفر مساحة لكتابة كود التحكم في بايثون، مثل if، while، أو for statement.

  • C Expandable — يوفر مساحة لكتابة كود التحكم في بايثون مع فروع متعددة، مثل if، elif، أو else.

  • Boolean — يوفر مساحة لكتابة كود بايثون الذي يُرجع True أو False.

  • Reporter — يوفر مساحة لكتابة كود بايثون الذي يُرجع قيمة.

  • Hat — يوفر مساحة لتعريف دالة بايثون.

كومة#

توفر كتلة Stack مساحة لكتابة أوامر بايثون التي يتم تشغيلها بالتسلسل مع كتل المكدس الأخرى.

كتلة مكدسة#
[] :: custom-switch

يمكن أن تحتوي كتلة Stack على سطر واحد أو عدة أسطر من كود بايثون.

عند بدء التشغيل، يستخدم كتلة Stack لتحريك الروبوت للأمام.#
عند البدء
[Move forward 400 mm.]
[robot.move_for(400, 0)] :: custom-switch

المبنى ج#

توفر كتلة التعليمات البرمجية C مساحة لكتابة تعليمات التحكم في ، مثل if، while، وfor وتُنفَّذ الكتل البرمجية الموجودة داخل كتلة التعليمات البرمجية C كجزء من بنية التحكم في بايثون.

المبنى ج#
if [] :: custom-switch
fin

يتضمن كود التحكم بلغة بايثون الذي يمكن استخدامه في كتلة C ما يلي:

عند بدء التشغيل، يستخدم كتلة C للتحقق مما إذا تم الضغط على الشاشة.#
عند البدء
[Continuously turn right until the screen is pressed.]
استدر [يمين v]
للأبد
if [if robot.screen.pressing():] :: custom-switch
اطبع [Screen was pressed!] على الشاشة ▶
أوقف جميع الحركات
fin
fin

ج قابل للتوسيع#

توفر كتلة C Expandable مساحة لكتابة كود تحكم بايثون متعدد الفروع، مثل if، elif، أو elseويمكن إضافة فروع إضافية عن طريق تحديد سهم الزائد.

كتلة قابلة للتوسيع من النوع ج#
if [] :: custom-switch-expand
fin

يتضمن كود التحكم بلغة بايثون الذي يمكن استخدامه في كتلة C Expandable ما يلي:

عند بدء التشغيل، يستخدم كتلة قابلة للتوسيع من نوع C للتحرك حتى يحصل الروبوت على كرة رياضية.#
عند البدء
[Continuously move forward until the robot has a sports ball.]
للأبد
if [if robot.has_sports_ball():] :: custom-switch-expand
اطبع [Sports ball found!] على الشاشة ▶
أوقف جميع الحركات
else [else:]
تحرك [للأمام v]
fin
fin

منطقي#

توفر كتلة Boolean مساحة لكتابة كود بايثون الذي يُرجع True أو Falseويمكن وضعها داخل كتل ذات مدخلات سداسية.

كتلة منطقية#
<[] :: custom-switch>

يمكن أن تحتوي كتلة Boolean على شرط بايثون.

كتلة منطقية مع شرط بايثون#
<[robot.screen.pressing()] :: custom-switch>

يمكن أيضًا استخدام عوامل التشغيل المنطقية في كتلة Boolean:

كتلة منطقية مع عامل منطقي في بايثون#
<[robot.screen.pressing() and robot.has_sports_ball()] :: custom-switch>

يمكن لكتلة Boolean استخدام عوامل المقارنة لمقارنة القيم:

  • أكبر من: >

  • أقل من: <

  • يساوي: ==

  • تتضمن عوامل المقارنة الأخرى <=، !=، و >=

كتلة منطقية مع عامل مقارنة بايثون#
<[robot.inertial.get_heading()> 100] :: custom-switch>
عند بدء التشغيل، يستخدم كتلة منطقية للتحقق مما إذا تم الضغط على الشاشة.#
عند البدء
[Continuously turn right until the screen is pressed.]
استدر [يمين v]
للأبد
إذا <[robot.screen.pressing()] :: custom-switch> إذن
اطبع [Screen was pressed!] على الشاشة ▶
أوقف جميع الحركات
fin
fin

مراسل#

توفر كتلة Reporter مساحة لكتابة كود بايثون الذي يُرجع قيمة. ويمكن وضعها داخل كتل ذات مدخلات دائرية.

حجب المراسل#
([] :: custom-switch)

يمكن أن تحتوي كتلة Reporter على كود بايثون يقوم بإرجاع قيمة.

كتلة تقرير تحتوي على كود بايثون يُرجع قيمة#
([robot.inertial.get_heading()] :: custom-switch)

يمكن استخدام عوامل التشغيل الرياضية في كتلة Reporter:

  • الجمع: +

  • الطرح: -

  • القسمة: /

  • الضرب: *

كتلة مراسلة مع إضافة بايثون#
([robot.inertial.get_heading() + 45] :: custom-switch)
عند بدء التشغيل، يقوم بطباعة اتجاه الروبوت بالإضافة إلى 45 درجة.#
عند البدء
[Print the robot's heading plus 45 degrees.]
اطبع ([robot.inertial.get_heading() + 45] :: custom-switch) على الشاشة ▶

قبعة#

توفر كتلة Hat مساحة لتعريف دالة بايثون. وتصبح الكتل المرفقة أسفل Hat هي جسم تلك الدالة.

قالب قبعة#
[] :: hat custom-switch

اكتب تعريف دالة بايثون في كتلة Hat. تُوضع المعاملات داخل الأقواس. إذا لم تستخدم الدالة معاملات، فاستخدم أقواسًا فارغة.

كتلة قبعة مع تعريف دالة بايثون#
[def function_name(parameter):] :: hat custom-switch
عند بدء التشغيل، يستخدم كتلة Hat لتعريف واستدعاء دالة.#
[def move_400():] :: hat custom-switch
[Define a custom function using a Hat block.]
تحرك [للأمام v] لمسافة (400) [مم v] ▶

عند البدء
[move_400()] :: custom-switch