رحلة
تعلّم Lua
دورة Lua تفاعلية ومجانية أونلاين. تكتب كود Lua في كل درس — الصياغة، الجداول، الدوال، metatables، والأساسيات التي تحتاجها لكتابة سكربتات Roblox والعمل على محركات الألعاب — مع تلميحات بالذكاء الاصطناعي حين يخرج لك nil في غير محله، وشهادة مجانية عند الإنهاء.
52,312+ من الـ codders مسجلون
- مناسب للمبتدئين
مساعدة برمجية بالذكاء الاصطناعي
دروس تفاعلية عملية
تعليق صوتي في كل درس
اختبارات لقياس معرفتك
شهادة إتمام مجانية
المنهج
قسم 1
Fundamentals
ابدأ القسمابدأتوسيعطيThe first section in Lua for absolute beginners.مقدمة
3 درسًا216- 01اللغةتحدي
- 02مرحباً بالعالم!تحدياختبارصوت
- 03التعليقاتاختبارصوت
المتغيرات وأنواع البيانات
8 درسًا754- 01ما هو المتغير؟تحدياختبارصوت
- 02الأرقامتحدياختبارصوت
- 03السلاسل النصيةتحدياختبارصوت
- 04القيم المنطقيةتحدياختبارصوت
- 05القيمة 'nil'تحدياختبارصوت
- 06الدالة type()تحدياختبارصوت
- 07قواعد التسميةاختبارصوت
- 08مراجعة - ملف الشخصيةتحدي
المعاملات 1: العمليات الحسابية والدمج
6 درسًا636- 01المعاملات الحسابيةتحدياختبارصوت
- 02معامل باقي القسمةتحدياختبارصوت
- 03معامل الأستحدياختبارصوت
- 04دمج النصوصتحدياختبارصوت
- 05أولوية المعاملاتتحدياختبارصوت
- 06ملخص - حسابات بسيطةتحدي
المعاملات 2: العمليات العلائقية والمنطقية
8 درسًا651- 01معاملات التساويتحدياختبارصوت
- 02المعاملات العلائقيةتحدياختبارصوت
- 03المعامل 'and'تحدياختبارصوت
- 04المعامل 'or'تحدياختبارصوت
- 05المعامل 'not'تحدياختبارصوت
- 06التقييم قصير الدائرةاختبارصوت
- 07قيم Truthy و Falsyاختبارصوت
- 08مراجعة - المنطق البسيطتحدي
الإخراج الأساسي
9 درسًا954- 01طباعة القيم الحرفيةتحدياختبارصوت
- 02طباعة المتغيراتتحدياختبارصوت
- 03طباعة قيم متعددةتحدياختبارصوت
- 04دمج النصوص والمتغيراتتحدياختبارصوت
- 05دالة tostring()تحدياختبارصوت
- 06الإدخال (Input)تحدياختبارصوت
- 07التحويل (Cast)تحدياختبارصوت
- 08مراجعة - تقرير الحالةتحدي
- 09مراجعة - حتى 120تحدي
مشروع: عرض إحصائيات الشخصية
مشروع5 درسًا1- 01رسالة ترحيبتحدي
- 02تعريف إحصائيات الشخصيةمشروع
- 03عرض الإحصائيات الأساسيةمشروع
- 04إضافة Boolean flagمشروع
- 05ملخص نهائيمشروع
المنطق الشرطي الأساسي
4 درسًا423- 01جملة if-thenتحدياختبارصوت
- 02جملة if-then-elseتحدياختبارصوت
- 03جملة elseifتحدياختبارصوت
- 04مراجعة - صندوق الكنزتحدي
أساسيات معالجة النصوص
6 درسًا638- 01string.len()تحدياختبارصوت
- 02string.upper و string.lowerتحدياختبارصوت
- 03string.sub()تحدياختبارصوت
- 04string.rep()تحدياختبارصوت
- 05string.find()تحدياختبارصوت
- 06مراجعة - تنسيق اسم المستخدمتحدي
أساسيات الدوال
6 درسًا636- 01تعريف دالةتحدياختبارصوت
- 02استدعاء دالةتحدياختبارصوت
- 03دوال مع معاملاتتحدياختبارصوت
- 04دوال بمعاملات متعددةتحدياختبارصوت
- 05جملة 'return'تحدياختبارصوت
- 06مراجعة - حاسبة المساحةتحدي
الجداول الجزء 1: نمط القائمة
8 درسًا752- 01ما هو الجدول؟اختبارصوت
- 02إنشاء جدولتحدياختبارصوت
- 03الوصول إلى العناصر عبر الفهرستحدياختبارصوت
- 04تعديل العناصر عبر الفهرستحدياختبارصوت
- 05معامل الطول '#'تحدياختبارصوت
- 06table.insert()تحدياختبارصوت
- 07table.remove()تحدياختبارصوت
- 08ملخص - إدارة أعضاء الفريقتحدي
الجداول 2: بأسلوب القاموس
7 درسًا648- 01أزواج (مفتاح-قيمة)اختبارصوت
- 02إنشاء جداول بأسلوب القاموستحدياختبارصوت
- 03الوصول - تدوين الأقواستحدياختبارصوت
- 04الوصول بتدوين النقطةتحدياختبارصوت
- 05إضافة وتعديل الأزواجتحدياختبارصوت
- 06إزالة الأزواج باستخدام nilتحدياختبارصوت
- 07مراجعة - خصائص العناصرتحدي
أساسيات الحلقات التكرارية
6 درسًا636- 01حلقة whileتحدياختبارصوت
- 02حلقة repeat-untilتحدياختبارصوت
- 03حلقة for الرقميةتحدياختبارصوت
- 04حلقة for مع خطوةتحدياختبارصوت
- 05جملة 'break'تحدياختبارصوت
- 06مراجعة - العد التنازليتحدي
مشروع: متجر جرعات بسيط
مشروع6 درسًا1- 01إعداد المشروعتحدي
- 02إضافة جرعةمشروع
- 03عرض المخزونمشروع
- 04حساب إجمالي قيمة المخزونمشروع
- 05البحث عن جرعة محددةمشروع
- 06بيع جرعةمشروع
نطاق المتغيرات
5 درسًا330- 01المتغيرات العامةاختبارصوت
- 02المتغيرات المحليةتحدياختبارصوت
- 03لماذا نستخدم المتغيرات المحلية؟اختبارصوت
- 04النطاق والكتل البرمجيةتحدياختبارصوت
- 05مراجعة - لغز النطاقتحدي
التحديات النهائية
3 درسًا3- 01مراجعة - دور اللاعبتحدي
- 02مراجعة - قاعدة بيانات بسيطةتحدي
- 03مراجعة - مجموع الأعداد الزوجيةتحدي
قسم 2
Logic & Flow
ابدأ القسمابدأتوسيعطيDevelop problem-solving skills and create dynamic, interactive programsالتكرار المتقدم عبر الجداول
4 درسًا423- 01التكرار باستخدام pairs()تحدياختبار
- 02التكرار باستخدام ipairs()تحدياختبار
- 03pairs() مقابل ipairs()تحدياختبار
- 04مراجعة - ورقة الشخصيةتحدي
المزيد من دوال مكتبة Table
5 درسًا430- 01table.concat()تحدياختبار
- 02إنشاء الجداول و unpack()تحدياختبار
- 03table.sort()تحدياختبار
- 04فرز مخصص باستخدام الدوالاختبار
- 05مراجعة - لوحة أعلى النتائجتحدي
مفاهيم الدوال المتقدمة
6 درسًا539- 01إرجاع قيم متعددةاختبار
- 02الدوال متغيرة الوسائط (...)تحدياختبار
- 03الدوال كقيم من الدرجة الأولىتحدياختبار
- 04الدوال المجهولةتحدياختبار
- 05ما هو الـ Closure؟تحدياختبار
- 06ملخص - معالج أحداث بسيطتحدي
مقدمة إلى Metatables
8 درسًا757- 01ما هو الـ Metatable؟اختبار
- 02setmetatable و getmetatableتحدياختبار
- 03الـ Metamethod المسماة __indexتحدياختبار
- 04الـ Metamethod المسماة __newindexتحدياختبار
- 05الـ Metamethod المسماة __tostringتحدياختبار
- 06الـ Metamethods الحسابية - الجزء الأولتحدياختبار
- 07الـ Metamethods الحسابية - الجزء الثانيتحدياختبار
- 08ملخص - جدول للقراءة فقطتحدي
مشروع: محرك مغامرة نصية
مشروع8 درسًا1- 01إعداد المشروع: الغرفةتحدي
- 02ربط الغرفمشروع
- 03حالة اللاعبمشروع
- 04حلقة اللعبةمشروع
- 05معالجة مدخلات المستخدممشروع
- 06تحريك اللاعبمشروع
- 07معالجة الحركات غير الصالحةمشروع
- 08عرض المخارجمشروع
معالجة الأخطاء
3 درسًا216- 01دالة error()اختبار
- 02الاستدعاءات المحمية باستخدام pcall()تحدياختبار
- 03مراجعة - القسمة الآمنةتحدي
معالجة النصوص المتقدمة
6 درسًا641- 01استخدام string.gsub() للاستبدالتحدياختبار
- 02مقدمة في أنماط النصوصتحدياختبار
- 03string.find()تحدياختبار
- 04string.match()تحدياختبار
- 05التكرار باستخدام string.gmatch()تحدياختبار
- 06مراجعة - محلل ملفات السجلتحدي
مشروع: قائمة جهات الاتصال
مشروع7 درسًا1- 01إعداد المشروعتحدي
- 02الحلقة التكرارية الرئيسيةمشروع
- 03إضافة جهة اتصالمشروع
- 04عرض كافة جهات الاتصالمشروع
- 05البحث عن جهة اتصالمشروع
- 06حذف جهة اتصالمشروع
- 07التعامل مع المدخلات غير الصالحةمشروع
Coroutines للمبتدئين
7 درسًا638- 01ما هو الـ Coroutine؟اختبار
- 02إنشاء واستئناف الـ coroutineتحدياختبار
- 03الإيقاف المؤقت باستخدام coroutine.yield()تحدياختبار
- 04resume و yieldتحدياختبار
- 05التحقق من حالة الـ Coroutineتحدياختبار
- 06مراجعة - مولد الأرقامتحدي
- 07مراجعة - رياضيات المتجهاتتحدي
قسم 3
Object Oriented Programming
ابدأ القسمابدأتوسيعطيDiscover how to organize code with classes, objects, and reusable structuresمفهوم 'Self'
5 درسًا532- 01الجداول مع الدوالتحدياختبار
- 02'self' الصريحتحدياختبار
- 03صيغة النقطتينتحدياختبار
- 04النقطة مقابل النقطتينتحدياختبار
- 05مراجعة - تحريك نقطةتحدي
نمط النموذج الأولي للفئات
6 درسًا641- 01مفهوم النموذج الأوليتحدياختبار
- 02الربط باستخدام __indexتحدياختبار
- 03المنشئ :new()تحدياختبار
- 04تهيئة الخصائصتحدياختبار
- 05نسخ مستقلةتحدياختبار
- 06ملخص - مصنع السياراتتحدي
حالة الكائن وسلوكه
7 درسًا748- 01متغيرات النسخةتحدياختبار
- 02دالات الجلب (Getter Methods)تحدياختبار
- 03دالات التعيين (Setter Methods)تحدياختبار
- 04الخصائص المحسوبةتحدياختبار
- 05تنسيق النصوصتحدياختبار
- 06التحقق من المساواةتحدياختبار
- 07مراجعة - درجة الطالبتحدي
مشروع: بنك رقمي
مشروع7 درسًا1- 01إعداد المشروعتحدي
- 02طريقة الإيداعمشروع
- 03طريقة السحبمشروع
- 04الحصول على الرصيدمشروع
- 05معلومات الحسابمشروع
- 06تحويل الأموالمشروع
- 07اختبار البنك النهائيمشروع
تحميل المعاملات في OOP
5 درسًا531- 01جمع الكائناتتحدياختبار
- 02طرح الكائناتتحدياختبار
- 03دمج الكائناتتحدياختبار
- 04مقارنة الكائنات (<, >)تحدياختبار
- 05مراجعة - رياضيات المحفظةتحدي
أساسيات الوراثة
6 درسًا643- 01إعداد الوراثةتحدياختبار
- 02وراثة الـ Methodsتحدياختبار
- 03توسيع الـ Constructorتحدياختبار
- 04إضافة Methods للابنتحدياختبار
- 05المشترك مقابل الفريدتحدياختبار
- 06ملخص - التسلسل الهرمي للأشكالتحدي
تعدد الأشكال وإعادة التعريف
6 درسًا640- 01إعادة تعريف الدوالتحدياختبار
- 02استدعاء دوال الفئة الأبتحدياختبار
- 03Duck Typingتحدياختبار
- 04واجهة مشتركةتحدياختبار
- 05التحقق من النوعتحدياختبار
- 06مراجعة - أدوار الموظفينتحدي
التغليف
6 درسًا644- 01اصطلاحات التسميةتحدياختبار
- 02استخدام Closures للخصوصيةتحدياختبار
- 03الوصول عبر Closuresتحدياختبار
- 04جداول للقراءة فقطتحدياختبار
- 05منطق التحقق من الصحةتحدياختبار
- 06مراجعة - الخزنة الآمنةتحدي
التركيب و Mixins
6 درسًا642- 01علاقة "يحتوي على" (Has-A)تحدياختبار
- 02التفويض (Delegation)تحدياختبار
- 03Mixins بسيطةتحدياختبار
- 04تطبيق Mixins متعددةتحدياختبار
- 05Mixins مقابل الوراثةتحدياختبار
- 06ملخص - تجميع الروبوتتحدي
مشروع: مدير الأشكال
مشروع7 درسًا1- 01إعداد المشروعتحدي
- 02فئة المستطيلمشروع
- 03فئة الدائرةمشروع
- 04دالة المحيطمشروع
- 05مجموعة الأشكالمشروع
- 06المساحة الإجماليةمشروع
- 07تصفية الأشكالمشروع
أنماط التصميم (مبسط)
5 درسًا532- 01دوال المصنعتحدياختبار
- 02جدول Singletonتحدياختبار
- 03نمط الـ Iteratorتحدياختبار
- 04المراقب (المستمع)تحدياختبار
- 05مراجعة - مصنع الـ Loggerتحدي
التحديات النهائية
4 درسًا4- 01مراجعة - نظام المخزونتحدي
- 02مراجعة - مدير المستخدمينتحدي
- 03مراجعة - متتبع النقاطتحدي
- 04اختبار OOP النهائيتحدي
لماذا تتعلم Lua مع Coddy
- شغّل أكواد Lua حقيقية داخل متصفحك. لا حاجة لتثبيت Lua interpreter ولا لإعداد أي أدوات. كل درس يُشغّل ملف Lua الخاص بك على الخادم ويعرض لك الناتج فورًا.
- Lua كما تُستخدم فعليًا: المتغيرات، التحكم في التدفق، الدوال، tables (بنية البيانات الوحيدة في Lua)، التعامل مع النصوص، metatables وأنماط OOP، ومعالجة الأخطاء. أساسيات Lua التي تحتاجها لـ Roblox أو Love2D أو الـ embedded scripting.
- تلميحات الذكاء الاصطناعي تساعدك على تصحيح سكربتات Lua وقراءة الأخطاء دون أن تكشف لك الحل، فتتحوّل الزلّات الشائعة مثل nil indexing والمصفوفات التي تبدأ من 1 إلى فرص للتعلّم.
- شهادة Lua مجانية عند إكمال الدورة. دليل موثوق إلى جانب ما أنجزته من ألعاب Roblox أو mods أو مشاريع scripting مدمجة.
أسئلة شائعة حول تعلّم Lua
فيمَ تُستخدم لغة Lua؟
تُستخدم Lua بشكل رئيسي كلغة برمجة نصية مدمجة داخل تطبيقات أكبر، وخاصة محركات الألعاب. فبرمجة Roblox (حيث Luau هي لهجة من Lua خاصة بـ Roblox)، وLove2D، وإضافات World of Warcraft، وDefold، وGarry's Mod، جميعها تستخدم Lua. وخارج نطاق الألعاب، تُستخدم Lua أيضًا في الإعدادات والأتمتة والأنظمة المدمجة.
هل تعلّم Lua سهل؟
تُعدّ Lua من أبسط لغات البرمجة وأصغرها حجمًا — فدليلها المرجعي بأكمله يتسع في ملف PDF قصير، ولها فعليًا بنية بيانات رئيسية واحدة (الجدول). يصل معظم المبتدئين إلى أول برنامج Lua يعمل لديهم خلال الساعة الأولى. أما الأجزاء الأصعب (metatables وclosures وcoroutines) فتأتي لاحقًا ويتم تقديمها تدريجيًا.
هل ينبغي أن أتعلم Lua من أجل Roblox؟
نعم. لغة Lua (وتحديداً لهجة Luau التي يستخدمها Roblox) هي لغة البرمجة النصية الوحيدة لألعاب Roblox. تغطي دورة Lua اللغةَ الأساسية ذاتها التي تقوم عليها Luau (المتغيرات، الجداول، الدوال، metatables، أنماط OOP)، لذا فإن إكمالها يمنحك انطلاقة حقيقية في كتابة سكربتات Roblox.
كم من الوقت يستغرق تعلم Lua؟
أساسيات Lua — المتغيرات، الجمل الشرطية، الحلقات، الدوال، الـ tables — تحتاج من أسبوع إلى أسبوعين من الممارسة اليومية. أما التمكّن من metatables وclosures وأنماط OOP في Lua فيستغرق عادةً من أسبوعين إلى أربعة أسابيع إضافية. وبعد ذلك، يبقى توظيف Lua داخل Roblox أو أي محرك ألعاب آخر منحنى تعلّم مستقلاً يُضاف فوق اللغة نفسها.
هل يمكنني تعلّم Lua عبر الإنترنت مجاناً؟
نعم. دورة Lua التفاعلية مجانية — دروس وتمارين برمجية واختبارات وشهادة. تعمل Lua على جانب الخادم، لذا لست بحاجة إلى تثبيت Lua أو أي محرك ألعاب على جهازك لتبدأ كتابة الكود.
هل أحصل على شهادة بعد إنهاء دورة Lua؟
نعم. بإنهائك دورة Lua تحصل على شهادة إتمام مجانية يمكنك إضافتها إلى سيرتك الذاتية أو مشاركتها على LinkedIn إلى جانب ما أنجزته من ألعاب Roblox أو mods أو مشاريع scripting.