[تعليم] لغة البرمجة لوا |
Levi_ackerman « Citoyen » 1687779840000
| 9 | ||
مرحبا اصدقائي، فى هذا الموضوع سنتعلم بعض الأساسيات عن لغة لوا (lua) و كيف يمكنك استخدامها لكتابة اول سكربت او نمط تركيبي خاص بك. كبداية لنعرفك عن بعض المعلومات البسيطة عن البرمجيات التركيبية كيف يمكنك ان تشغل السكربت الخاص بك ؟ يمكنك تشغيل سكربت خاص بك داخل بيت قبيلتك ! لكن يوجد بعض الشروط و هي :
و بعدها يمكنك استخدام الامر /lua لكي تظهر لك واجهة البرمجيات التركيبية و بعدها ستتمكن من تشغيل سكربتك ! يمكنك استخدام واجهة لوا لكتابة السكربت الخاص بك؛ لكنها تعتبر غير عملية و ننصح بأستخدام محرر اكواد للكتابة بعض البرامج المتاحة : إن لم يكن لديك اي فكرة عن ايهم تختار فننصحك بأستخدام Sublime Text او NotePad ++ حسنا... بعد ان قمت بأختيار محرر الاكواد الخاص بك يمكنك البدأ بأنشاء ملف لوا، لنسميه على سبيل المثال (test.lua) بعدها يمكنك فتح الملف الخاص بك داخل محرر الاكواد. و الان لنبدأ ببعض الاساسيات عن لغة لوا ! كبداية نريدك ان تجرب الامر التالي داخل نافذة لوا Code Lua 1 print("Hello World") #Lua و ستظهر لديك نتيجة الامر كالآتي • # Hello World كما رأيت بنفسك يمكنك استخدام هذا الامر لطباعي الكلمات، او الحروف و ايضا الارقام ان اردت ولكن ما هي المتغيرات ؟ (variables/var) حسنا بعد الانتهاء من هذا لنبدأ فى احد اهم المفاهيم البرمجية و هي المتغيرات او ان كان لديك بعض العلم بالرياضيات ستعرف ان المتغير هو مثل الصندوق الذي يمكنك تخزين قيمة داخله مثل الارقام او الكلمات يمكنك صنع متغير هكذا : Code Lua 1 hello = "Hello World" هكذا قمت بأنشاء اول متغير لك و يمكنك استخدامه للطباعة Code Lua 1 2 3 hello = "Hello World" و كما ذكرنا سابقا يمكنك تخزين الارقام داخل المتغير و ايضا يمكنك القيام بالعمليات الحسابية بأستخدام قيم المتغيرات ! Code Lua 1 2 3 hello = 10 اعتقد ان بعضكم لاحظ اننا نقوم بأستخدام علامات التنصيص للتفرقة بين الكلمات، و الارقام ولكن لماذا ؟؟ فى عالم البرمجة يوجد العديد من انواع البيانات و منهم : النوع الاول و هو (string) و هو النوع الذي يمثل الكلمات او الحروف النوع الثاني و هو (number) وكما هو واضح من اسمه هذا النوع يمثل الارقام ولا يوضع داخل علامات التنصيص النوع الثالث و هو (boolean) هذا النوع يمثل كلمتين وهم true/false صح او خطأ للمبتدئين قد يكون النوع الثالث غريباً قليلاً ولكنه بسيط و يمكننا تفسيره بأستخدام الشروط (if statement) Code Lua 1 2 3 4 5 6 7 hello = 10 و ستظهر لك النتيجة • # true ولكن ماذا ان كان لديك قيمة آخري محددة تريد ان تتأكد منها ؟ يمكنك فعل الآتي : Code Lua 1 2 3 4 5 6 7 hello = 5 ربما لاحظت اننا قمنا بأستخدام == بدل عن = ولكن لماذا ؟ ال == تعتبر عامل او (operator) يتم استخدامها للمقارنة ما بين قيمتين هل 5 == 5 ؟ يوجد العديد من العوامل و العوامل الحسابية مثل الجمع و الطرح ايضاً تعتبر من العوامل يمكنك قراءة المزيد عن العوامل هنا حسنا... يوجد نوع من المتغيرات لم نقم بذكره بعد وهو tables او المصفوفات يمكنك انشاء واحد بهذه الطريقة : Code Lua 1 ourTable = {5, 10, 15} كما تلاحظ المصفوفات تقوم بتخزين اكثر من قيمة بداخلها و ايضا يمكنك طباعة المصفوفة بأكلمها كالآتي : Code Lua 1 2 3 ourTable = {5, 10, 15} ولكن ماذا ان اردت ان تطبع عنصر واحد من داخل المصفوفة ؟ يمكنك فعل هذا طبعا كالآتي : Code Lua 1 2 3 ourTable = {5, 10, 15} كما تلاحظ قمنا بكتابة اسم المتغير ملحوق برقم داخل الاقواص المعقوفة او الاقواص المربعة و هذه الارقام تدعي index ايضا لابد انك لاحظت ان العناصر داخل المصفوفة تبدأ من الرقم واحد الى نهاية المصفوفة. يوجد العديد من الطرق لأنشاء المصفوفات او وضع العناصر بداخلها كالآتي : Code Lua 1 2 3 4 5 6 7 ourTable = {} هاه ؟ يمكن استخدام الكلمات بدلا عن الارقام ؟ نعم صحيح لغة لوا تسمح لك بفعل ذلك بدون اي مشاكل. ايضاً يمكنك وضع مصفوفة داخل مصفوفة ان اردت كالآتي : Code Lua 1 2 3 4 ourTable = {1, {5}} لكن ماذا ان كان لدي اكثر من عنصر داخل المصفوفة ؟ هل سأكرر امر الطباعة لأطبعهم جميعاً ؟؟ بالطبع لا سنقوم بأستخدام شيء داخل جميع لغات البرمجة و هو الحلقات التكرارية او loops. هذا مثال لأستخدام الحلقات التكرارية : Code Lua 1 2 3 4 5 ourTable = {1, 2, 3, 4, 5} لكن لماذا نقوم بعمل متغير داخل الحلقة التكرارية ؟ لأن المتغير سيتم اضافة عليه رقم واحد عند كل تكرار بمعني اخر سيعمل المتغير على حفظ القيمة لأنه بالطبع لا يمكنك تغيير قيمة الرقم واحد الى الرقم اثنين و هكذا يمكنك طباعة قيمة المتغير ان اردت ايضاً. لكن ماذا ان اردت عكس العملية ؟ يمكنك فعل هذا ايضاً ! Code Lua 1 2 3 4 5 ourTable = {1, 2, 3, 4, 5} كما تلاحظ قمنا بوضع فاصلة آخرى و اضفنا الرقم سالب واحد لأنه فى الوضع الطبيعي تقوم الحلقة التكرارية بأضافة الرقم واحد لكننا نريد عكس ذلك يمكنك ايضا ان تجعل الشرط الثالث أي رقم تريده و يمكنك فعل هذا مع المثال الاول ان اردت. يوجد العديد من الانواع للحلقات التكرارية و يمكنك القراءة عنهم بالتفصيل هنا حسنا الان لديك العديد من المعلومات المهمة و الاساسية داخل لغة لوا و ايضاً بعض المفاهيم البرمجية الاساسية لكن يوجد شيء مهم جداً لم نقم بشرحه حتي الان و هو الدوال او functions. ولكن ماهي الدوال ؟؟ الدوال يمكن شرحها ببساطة على انها صندوق يوجد به كود معين ينفذه فائدة الدوال هي ان تمعنك ان تكرر نفسك مثلا لديك جزئية معينة داخل السكربت الخاص بك تتكرر كثيرا يمكنك وضعها داخل دالة و استخدام تلك الدالة بدل من كتابة نفس الشيء العديد من المرات. لننشيء دالة بسيطة تقوم بطباعة كلمة Code Lua 1 2 3 function test() حسنا... لقد قمت بتشغيل الكود لكن لم تظهر الكلمة ؟؟؟ هذا لأن الدوال تحتاج ان تقوم بتشغيلها قبل ان تستطيع ان تنفذ اي شيء هكذا تقوم بتشغيل الدالة الخاصة بك : Code Lua 1 2 3 4 5 function test() الان ان قمت بتشغيل هذا الكود سيتم طباعة الكلمة بدون اي مشاكل. لكن ماذا ان اردت ان اجعل الدالة الخاصة بي تطبع اكثر من كلمة ؟ يوجد ايضا ميزة آخرى للدوال و هي المدخلات او parameters. يمكنك استخدامها لأعطاء الدالة الخاصة بك قيمة لتفعل بها ما تشاء مثل الارقام او الكلمات Code Lua 1 2 3 4 5 function test(text) -- اسم المدخل لا يهم يمكنك ان تسميه ما تشاء الان ان قمت بتشغيل هذا الكود سيتم طباعة هذه القيمة لك • # nil وهذا بسبب انك لم تقم بأعطاء الدالة مدخل او argument. اعتذر ان كان الامر معقد قليلا بسبب تشابه الاسامي لكن الاثننين يعبران عن شيئان مختلفان وانصح بالأهتمام بالمصطلحات الانجليزية اكثر من العربية لأن العربية يمكن ان تكون غير مفهومة الحل بسيط وهو اعطاء الدالة الخاصة بك مدخل عند استدعائها Code Lua 1 2 3 4 5 function test(text) حسنا... اعتذر لكن يوجد شيء بسيط لم اقم بشرحه يتعلق بالمتغيرات وهو انه يوجد نوعين من المتغيرات المتغير العام global variable. و المتغير الخاص local variable. ماهو الفرق بينهم ؟؟ المتغير العام يمكنك استخدامه فى اي مكان داخل الكود الخاص بك اما المتغير الخاص لا يمكن استخدامه الى بالمكان الذي تم انشائه به و ايضا المتغير الخاص لديه طريقة انشاء مختلفة كالآتي : Code Lua 1 2 3 4 5 6 7 function calc(num) ان اردت يمكنك ان تنشيء متغير خاص بنفس اسم متغير عام داخل دالة على سبيل المثال بقيمة مختلفة ان اردت ولكنه لا يؤثر على قيمة المتغير العام بتاتا. احد الميزات التي توجد باللغة و هي المكتبات libraries. او الدوال المبنية داخل اللغة built-in functions. يوجد العديد منهم و يمكنك الاطلاع على بعضهم هنا : سأقوم بشرح احد الدوال فقط لأظهار مدي قوة الدوال التي توجد بداخل اللغة مسبقاً. سأقوم بأضافة عنصر الى اخر مكان داخل المصفوفة بأستخدام table.insert Code Lua 1 2 3 4 5 6 7 8 local myTable = {10, 20, 30, 40, 50} الان يمكننا ان نقول انك اصحبت تعلم الاساسيات الخاصة بلغة لوا ! يمكنك البدأ فى عمل السكربت او اللعبة الصغيرة الخاصة بك اليوم بدون اي مشاكل ! مرحبا... هذا الموضوع يعتبر ترجمة لأحد كورسات اللوا على اليوتيوب مع اضافة العديد من المعلومات التي لم تكن داخل الكورس تم اضافة بعض المعلومات بالأعتماد على العديد من المصادر الاخرى و منها :
مصغرات اكواد لوا حاليا يوجد حد لعدد الاحرف الذي يمكنك كتابته داخل سكربت خاص بك و هو 64 الف حرف هذا يشمل المسافات الارقام و الاحرف المميزة. لذلك يوجد بعض الادوات التي تساعد على تصغير حجم الكود الخاص بك عن طريق حذف المسافات, اعادة تسمية المتغيرات و الدوال لأسماء اصغر و الكثير لجعل الكود الخاص بك اصغر بعض الادوات المتاحة : مرحبا... نعتذر ان كان يوجد اي نوع من الاخطاء الاملائية او بعض الاخطاء فالشرح او الترجمة ان وجدت اي خطأ او ان كان لديك اي تساؤلات او اقتراحات يمكنك التواصل معنا على الخاص و ان كنت شخص جديد على البرمجة يمكنك التواصل معنا للسؤال عن بعض النصائح او الامور البسيطة ان اردت تم كتابة الموضوع و ترجمة الكورس من قبل : Dernière modification le 1687785720000 |
Chiroo « Citoyen » 1687780800000
| 4 | ||
الواضح انه متعوب على الموضوع بشكل كبير شكرا لك |
Visndmoka « Citoyen » 1687781460000
| 2 | ||
كأنه مات من التعب |
Bartpo « Citoyen » 1687782120000
| 1 | ||
بالتوفيق يا صديقي ♥ |
M7mdz_yt « Citoyen » 1687787340000
| 1 | ||
أتمنى لو كان هذا كُل ماتحتاجه لصنع نمط كامل كما ذُكر من طرف Bartpo#9958 لكن لا اظنه كذلك للأسف ، بعيداً عن هذا شُكرا جزيلاً على هذا الدرس اللطِيف <3 Dernière modification le 1687788840000 |
Night_wolf « Citoyen » 1687787580000
| 1 | ||
جزاكم الله خيرًا Dernière modification le 1708173540000 |
Shockwave « Consul » 1687814160000
| 1 | ||
شكرا جزيلا. |
Bartpo « Citoyen » 1687829760000
| 2 | ||
M7mdz_yt a dit : هيبقي فيه مواضيع جاية ان شاء الله تكمل المجهود |
M7mdz_yt « Citoyen » 1687837800000
| 1 | ||
Bartpo a dit : مُتشوق جداً لذلك!! حظاً موفقاً |
1 | ||
واو شكرا علي تعبك في الموضوع |
Sonic12341 « Citoyen » 1688334420000
| 1 | ||
شكرًا لمجهودك وأتمني أن تشرح المزيد |
1 | ||
جامد يليفاي اتمني تشرح اشياء أكثر لكي نستفاد جميعا |
Levi_ackerman « Citoyen » 1688958420000
| 0 | ||
Ghost a dit : قريبا ان شاء الله |
Yatsuki « Censeur » 1695334560000
| 1 | ||
جميل للغاية، مجهود رائع |
1 | ||
شُكرا جزيلا |
Sa_ndy « Citoyen » 1697090940000
| 1 | ||
good future |
Hatem18 « Citoyen » 1698314400000
| 1 | ||
موضوع جميل جدا يعطيك العافية ^^ |