كيفية بناء لعبة نرد بسيطة بلغة البرمجة بايثون "PyCharm"
Python هي لغة جيدة للصغار والكبار ، مع أو بدون أي خبرة في البرمجة.
Python هي لغة برمجة متعددة الأغراض يمكن استخدامها لإنشاء تطبيقات
سطح المكتب ورسومات ثلاثية الأبعاد وألعاب فيديو وحتى مواقع الويب.
إنها لغة برمجة أولى رائعة لأنها يمكن أن تكون سهلة التعلم وهي أبسط من
اللغات المعقدة مثل C أو C ++ أو Java. ومع ذلك ، فإن Python قوية وقوية
بما يكفي لإنشاء تطبيقات متقدمة ، ويتم استخدامها في كل صناعة تستخدم أجهزة الكمبيوتر.
هذا يجعل Python لغة جيدة للصغار والكبار ، مع أو بدون أي خبرة في البرمجة.
تثبيت بايثون
قبل تعلم لغة Python ، قد تحتاج إلى تثبيتها:
1**Linux:
إذا كنت تستخدم Linux ، فقد تم تضمين Python بالفعل ، ولكن تأكد من أن
لديك Python 3 على وجه التحديد. للتحقق من الإصدار المثبت ، افتح نافذة طرفية واكتب:
python --version
إذا أظهر ذلك أن لديك الإصدار 2 مثبتًا ، أو لا يوجد إصدار على الإطلاق ،
فحاول تحديد Python 3 بدلاً من ذلك:
python3 --version
إذا لم يتم العثور على هذا الأمر ، فيجب عليك تثبيت Python 3 من مدير الحزم أو مركز البرامج.
يعتمد مدير الحزم الذي يستخدمه توزيع Linux على التوزيع. الأكثر شيوعًا هي dnf على
Fedora و apt على Ubuntu. على سبيل المثال ، في Fedora ، تكتب هذا:
sudo dnf install python3
2**نظام التشغيل MacOS:
إذا كنت تستخدم جهاز Mac ، فاتبع إرشادات Linux لمعرفة ما إذا كان Python 3 مثبتًا لديك.
لا يحتوي نظام MacOS على مدير حزم مضمن ، لذلك إذا لم يتم العثور
على Python 3 ، فقم بتثبيته من python.org/downloads/mac-osx .
على الرغم من أن إصدار macOS الخاص بك قد يكون مثبتًا عليه
Python 2 بالفعل ، يجب أن تتعلم Python 3.
3**نظام التشغيل Windows:
لا يتم شحن Microsoft Windows حاليًا مع Python. قم بتثبيته من
python.org/downloads/windows .
تأكد من تحديد Add Python to PATH في معالج التثبيت.
اقرأ مقالتي كيفية تثبيت Python على Windows للحصول
على إرشادات خاصة بـ Microsoft Windows.
تشغيل IDE
لكتابة برامج بلغة Python ، كل ما تحتاجه حقًا هو محرر نصوص ،
ولكن من الملائم أن يكون لديك بيئة تطوير متكاملة (IDE).
يدمج IDE محرر نصوص مع بعض ميزات Python الودية والمفيدة.
IDLE 3 و PyCharm (إصدار المجتمع) هما خياران من بين العديد من الخيارات التي يجب مراعاتها.
IDLE 3
تأتي Python مع IDE أساسي يسمى IDLE.
يحتوي على تمييز الكلمات الرئيسية للمساعدة في اكتشاف أخطاء الكتابة ،
وتلميحات لإكمال الكود ، وزر تشغيل لاختبار الكود بسرعة وسهولة. لتستخدمها:
1- في Linux أو macOS ، قم بتشغيل نافذة طرفية واكتب idle3 .
2- في نظام التشغيل Windows ، قم بتشغيل Python 3 من قائمة ابدأ:
- إذا كنت لا ترى Python في قائمة Start ، فقم بتشغيل موجه أوامر
Windows بكتابة cmd في قائمة Start ، واكتب C: \ Windows \ py.exe .
- إذا لم يفلح ذلك ، فحاول إعادة تثبيت Python.
تأكد من تحديد Add Python to PATH في معالج التثبيت.
ارجع إلى docs.python.org/3/using/windows.html للحصول على إرشادات مفصلة.
- إذا لم يفلح ذلك ، فما عليك سوى استخدام Linux.
إنه مجاني وطالما قمت بحفظ ملفات Python على محرك أقراص USB محمول ،
فلن تضطر حتى إلى تثبيته لاستخدامه.
إصدار المجتمع PyCharm
PyCharm (Community Edition) IDE هو برنامج
ممتاز مفتوح المصدر من Python IDE. يحتوي على تمييز الكلمات
الرئيسية للمساعدة في اكتشاف الأخطاء الإملائية والاقتباس وإكمال الأقواس
لتجنب أخطاء بناء الجملة وأرقام الأسطر (مفيدة عند تصحيح الأخطاء)
وعلامات المسافة البادئة وزر التشغيل لاختبار الكود بسرعة وسهولة.
لتستخدمها:
1- قم بتثبيت PyCharm (إصدار المجتمع) IDE. على نظام Linux ،
من الأسهل تثبيته باستخدام Flatpak . بدلاً من ذلك ، قم بتنزيل إصدار المثبت
الصحيح من موقع PyCharm وتثبيته يدويًا .
على نظام MacOS أو Windows ، قم بتنزيل برنامج التثبيت وتشغيله من موقع PyCharm على الويب .
2- قم بتشغيل PyCharm.
3- أنشئ مشروعًا جديدًا.
إخبار Python بما يجب فعله
الكلمات الرئيسية تخبر Python بما تريدها أن تفعله. في ملف مشروعك الجديد ، اكتب هذا في IDE الخاص بك:
print("Hello world.")
- إذا كنت تستخدم IDLE ، فانتقل إلى قائمة التشغيل وحدد خيار تشغيل الوحدة النمطية.
- إذا كنت تستخدم PyCharm ، فانقر فوق الزر Run File في شريط الزر الأيسر.
تخبر طباعة الكلمة الأساسية Python أن تطبع أي نص تضعه بين قوسين وعلامات اقتباس.
هذا ليس مثيرًا للغاية ، رغم ذلك. في جوهرها ، تتمتع Python بإمكانية
الوصول إلى الكلمات الرئيسية الأساسية فقط ، مثل الطباعة والمساعدة والوظائف الحسابية الأساسية وما إلى ذلك .
يمكنك استخدام كلمة استيراد لتحميل المزيد من الكلمات الرئيسية.
باستخدام وحدة turtle في بايثون
السلحفاة هي وحدة ممتعة للاستخدام. اكتب هذا الرمز في ملفك (استبدال الرمز القديم) ، ثم قم بتشغيله:
import turtle
turtle.begin_fill()
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.end_fill()
تعرف على الأشكال التي يمكنك رسمها باستخدام وحدة السلحفاة.
لمسح منطقة رسم السلحفاة ، استخدم الكلمة الأساسية turtle.clear () .
ماذا تعتقد أن الكلمة الأساسية turtle.color ("أزرق") تفعل؟
مقالات ذات صلة :
turtle متقدمة
يمكنك تجربة بعض التعليمات البرمجية الأكثر تعقيدًا للحصول على نتائج مماثلة.
بدلاً من الترميز اليدوي لكل سطر وكل منعطف ، يمكنك استخدام حلقة while ،
لإخبار Python بالقيام بذلك أربع مرات: ارسم خطًا ثم استدر. بيثون قادرة
على تتبع عدد المرات التي نفذت فيها هذه الإجراءات بمتغير يسمى عداد .
ستتعلم المزيد عن المتغيرات قريبًا ، ولكن الآن يمكنك معرفة ما إذا كان
بإمكانك معرفة كيفية تفاعل العداد والحلقة أثناء :
import turtle as t
import time
t.color("blue")
t.begin_fill()
counter=0
while counter < 4:
t.forward(100)
t.left(90)
counter = counter+1
t.end_fill()
time.sleep(2)
بمجرد تشغيل البرنامج النصي الخاص بك ، حان الوقت لاستكشاف وحدة أفضل.
تعلم بايثون عن طريق صنع لعبة
لمعرفة المزيد حول كيفية عمل Python والاستعداد لبرمجة أكثر تقدمًا
مع الرسومات ، دعنا نركز على منطق اللعبة. في هذا البرنامج التعليمي ،
سوف نتعلم أيضًا قليلاً عن كيفية تنظيم برامج الكمبيوتر من خلال صنع لعبة
تستند إلى النص حيث يقوم الكمبيوتر واللاعب بإلقاء نرد افتراضي ،
ويفوز اللاعب صاحب أعلى لفة.
*التخطيط للعبتك
قبل كتابة التعليمات البرمجية ، من المهم التفكير فيما تنوي كتابته.
يكتب العديد من المبرمجين وثائق بسيطة قبل أن يبدؤوا في كتابة التعليمات البرمجية ،
لذلك لديهم هدف للبرمجة لتحقيقه. إليك الشكل الذي قد يبدو عليه
برنامج النرد إذا قمت بشحن الوثائق مع اللعبة:
1- ابدأ لعبة النرد واضغط على "رجوع" أو "Enter" للفة.
2- النتائج مطبوعة على شاشتك.
3- ستتم مطالبتك بالتدحرج مرة أخرى أو الإقلاع عن التدخين.
إنها لعبة بسيطة ، لكن الوثائق تخبرك كثيرًا بما عليك القيام به.
على سبيل المثال ، يخبرك أنك بحاجة إلى المكونات التالية لكتابة هذه اللعبة:
- اللاعب: أنت بحاجة إلى إنسان لتلعب اللعبة.
- الذكاء الاصطناعي: يجب على الكمبيوتر رمي نرد أيضًا ، وإلا فلن يكون لدى اللاعب من يفوز به أو يخسره.
- رقم عشوائي: قالب شائع سداسي الأضلاع يعرض رقمًا عشوائيًا بين 1 و 6.
- عامل التشغيل: يمكن للرياضيات البسيطة مقارنة رقم بآخر لمعرفة أيهما أعلى.
- رسالة فوز أو خسارة.
- موجه للعب مرة أخرى أو الإقلاع عن التدخين.
صنع لعبة النرد ألفا
قليل من البرامج تبدأ بكل ميزاتها ، لذا فإن الإصدار الأول سيطبق الأساسيات فقط. أولاً زوجان من التعريفات:
المتغير هو قيمة قابلة للتغيير ، ويتم استخدامها كثيرًا في بايثون.
كلما احتجت إلى أن "يتذكر" برنامجك شيئًا ما ، فإنك تستخدم متغيرًا.
في الواقع ، يتم تخزين جميع المعلومات التي تعمل بها الشفرة تقريبًا في متغيرات.
على سبيل المثال ، في المعادلة الرياضية x + 5 = 20 ، المتغير هو x ، لأن الحرف x عنصر نائب لقيمة.
العدد الصحيح هو رقم ؛ يمكن أن تكون إيجابية أو سلبية. على سبيل المثال ، 1 و
-1 كلاهما عدد صحيح. وكذلك 14 و 21 وحتى 10947.
من السهل إنشاء المتغيرات في Python والعمل معها.
تستخدم هذه النسخة الأولية من لعبة النرد متغيرين: اللاعب و ai .
اكتب الكود التالي في مشروع جديد يسمى dice_alpha :
import random
player = random.randint(1,6)
ai = random.randint(1,6)
if player > ai :
print("You win") # notice indentation
else:
print("You lose")
قم بتشغيل لعبتك للتأكد من أنها تعمل.
هذه النسخة الأساسية من لعبة النرد تعمل بشكل جيد. إنها تحقق الأهداف
الأساسية للعبة ، لكنها لا تشبه كثيرًا لعبة. لا يعرف اللاعب أبدًا ما الذي قام
بتدويره أو ما دحرجه الكمبيوتر ، وتنتهي اللعبة حتى لو كان اللاعب يرغب في اللعب مرة أخرى.
هذا شائع في الإصدار الأول من البرنامج (يسمى إصدار ألفا). الآن بعد أن
أصبحت واثقًا من قدرتك على إنجاز الجزء الرئيسي (رمي النرد) ، حان الوقت للإضافة إلى البرنامج.
خطوات تحسين اللعبة
في هذا الإصدار الثاني (المسمى بيتا) من لعبتك ، ستجعلك بعض التحسينات تبدو وكأنها لعبة.
1. وصف النتائج
بدلاً من مجرد إخبار اللاعبين بما إذا كانوا قد فازوا أو لم يفزوا ،
سيكون الأمر أكثر إثارة للاهتمام إذا كانوا يعرفون ما حققوه.
حاول إجراء هذه التغييرات على شفرتك:
player = random.randint(1,6)
print("You rolled " + player)
ai = random.randint(1,6)
print("The computer rolled " + ai)
إذا قمت بتشغيل اللعبة الآن ، فسوف تتعطل لأن بايثون تعتقد أنك تحاول القيام بعمليات حسابية.
تعتقد أنك تحاول إضافة الأحرف "لقد دحرجت" وأي رقم يتم تخزينه حاليًا في متغير المشغل.
يجب أن تخبر Python أن تعامل الأرقام في المشغل ومتغيرات ai كما لو
كانت كلمة في جملة (سلسلة) بدلاً من رقم في معادلة رياضية (عدد صحيح).
قم بإجراء هذه التغييرات على شفرتك:
player = random.randint(1,6)
print("You rolled " + str(player) )
ai = random.randint(1,6)
print("The computer rolled " + str(ai) )
شغّل لعبتك الآن لترى النتيجة.
2. أبطئها
أجهزة الكمبيوتر سريعة. يمكن للإنسان أحيانًا أن يكون سريعًا ، لكن في الألعاب ،
غالبًا ما يكون من الأفضل بناء التشويق.
يمكنك استخدام وظيفة وقت بايثون لإبطاء لعبتك أثناء الأجزاء المشوقة:
import random
import time
player = random.randint(1,6)
print("You rolled " + str(player) )
ai = random.randint(1,6)
print("The computer rolls...." )
time.sleep(2)
print("The computer has rolled a " + str(player) )
if player > ai :
print("You win") # notice indentation
else:
print("You lose")
ابدأ لعبتك لاختبار تغييراتك.
3. كشف العلاقات
إذا لعبت لعبتك بشكل كافٍ ، فستكتشف أنه على الرغم من أن لعبتك تعمل بشكل صحيح ،
إلا أنها تحتوي على خطأ في الواقع: إنها لا تعرف ما يجب فعله عندما
يقوم اللاعب والكمبيوتر بتدوير نفس الرقم.
للتحقق مما إذا كانت القيمة تساوي قيمة أخرى ، تستخدم Python == .
هذان علامتان متساويتان ، وليست واحدة فقط. إذا كنت تستخدم واحدًا فقط ،
فإن بايثون تعتقد أنك تحاول إنشاء متغير جديد ، لكنك في الواقع تحاول القيام بعمليات حسابية.
عندما تريد الحصول على أكثر من خيارين فقط (على سبيل المثال ، الفوز أو الخسارة) ،
يمكنك استخدام كلمة Python الأساسية elif ، مما يعني أن يسمح هذا للكود الخاص بك
بالتحقق لمعرفة ما إذا كانت أي نتيجة من بعض النتائج صحيحة ،
بدلاً من مجرد التحقق مما إذا كان هناك شيء واحد صحيح.
قم بتعديل الكود الخاص بك مثل هذا:
if player > ai :
print("You win") # notice indentation
elif player == ai:
print("Tie game.")
else:
print("You lose")
قم بتشغيل لعبتك عدة مرات لمحاولة ربط لفة الكمبيوتر.
برمجة الإصدار النهائي
الإصدار التجريبي من لعبة النرد الخاص بك عملي ويشعر وكأنه لعبة أكثر من ألفا.
للإصدار النهائي ، قم بإنشاء أول دالة بايثون .
الوظيفة عبارة عن مجموعة من التعليمات البرمجية التي يمكنك الاتصال بها كوحدة متميزة.
تعتبر الوظائف مهمة لأن معظم التطبيقات بها الكثير من التعليمات البرمجية ،
ولكن لا يجب تشغيل كل هذه التعليمات البرمجية مرة واحدة.
تتيح الوظائف إمكانية بدء تطبيق والتحكم في ما يحدث ومتى.
قم بتغيير الكود الخاص بك إلى هذا:
import random
import time
def dice():
player = random.randint(1,6)
print("You rolled " + str(player) )
ai = random.randint(1,6)
print("The computer rolls...." )
time.sleep(2)
print("The computer has rolled a " + str(ai) )
if player > ai :
print("You win") # notice indentation
else:
print("You lose")
print("Quit? Y/N")
continue = input()
if continue == "Y" or continue == "y":
exit()
elif continue == "N" or continue == "n":
pass
else:
print("I did not understand that. Playing again.")
يسأل هذا الإصدار من اللعبة اللاعب عما إذا كان يريد إنهاء اللعبة بعد اللعب.
إذا استجابوا بـ Y أو y ، يتم استدعاء وظيفة خروج Python وتنتهي اللعبة.
الأهم من ذلك ، لقد قمت بإنشاء الوظيفة الخاصة بك والتي تسمى النرد .
لا تعمل وظيفة النرد على الفور. في الواقع ، إذا جربت لعبتك في هذه المرحلة ،
فلن تتعطل ، لكنها لا تعمل تمامًا أيضًا. لجعل وظيفة النرد تفعل شيئًا ما بالفعل ،
عليك أن تسميها في الكود الخاص بك.
أضف هذه الحلقة إلى الجزء السفلي من التعليمات البرمجية الموجودة لديك.
أول سطرين مخصصان فقط للسياق وللتأكيد على ما يتم وضع مسافة بادئة وما لا يتم ذلك.
انتبه جيدًا إلى المسافة البادئة:
else:
print("I did not understand that. Playing again.")
# main loop
while True:
print("Press return to roll your die.")
roll = input()
dice()
بينما يتم تشغيل كتلة التعليمات البرمجية الحقيقية أولاً.
نظرًا لأن True دائمًا صحيح بحكم التعريف ، فإن كتلة التعليمات البرمجية
هذه تعمل دائمًا حتى تطلبها Python إنهاءها.
بينما كتلة التعليمات البرمجية الحقيقية عبارة عن حلقة.
يطالب المستخدم أولاً ببدء اللعبة ، ثم يستدعي وظيفة النرد الخاصة بك. هكذا تبدأ اللعبة.
عندما تنتهي وظيفة النرد ، تعمل الحلقة مرة أخرى أو تخرج ، اعتمادًا على كيفية استجابة اللاعب للموجه.
يعد استخدام حلقة لتشغيل برنامج هو الطريقة الأكثر شيوعًا لترميز أحد التطبيقات.
تضمن الحلقة بقاء التطبيق مفتوحًا لفترة كافية حتى يتمكن مستخدم الكمبيوتر من استخدام الوظائف داخل التطبيق.
الخطوات التالية
الآن أنت تعرف أساسيات برمجة بايثون. تصف المقالة التالية في هذه السلسلة
كيفية كتابة لعبة فيديو باستخدام PyGame ، وهي وحدة تحتوي على
ميزات أكثر من السلحفاة ، ولكنها أيضًا أكثر تعقيدًا.