"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية بناء لعبة الجلاد في بايثون: دليل خطوة بخطوة

كيفية بناء لعبة الجلاد في بايثون: دليل خطوة بخطوة

تم النشر بتاريخ 2024-11-09
تصفح:859

How to Build a Hangman Game in Python: A Step-by-Step Guide

Hangman هي لعبة كلاسيكية لتخمين الكلمات وهي ممتعة ومشروع رائع للمبرمجين المبتدئين.

في هذه المقالة، سنتعلم كيفية بناء نسخة بسيطة من لعبة Hangman في بايثون.

بحلول النهاية، ستفهم كيفية استخدام هياكل التحكم الأساسية والوظائف والقوائم في Python لإنشاء هذه اللعبة.


ما هو الجلاد؟

هدف الجلاد هو تخمين كلمة سرية من خلال اقتراح الحروف واحدة تلو الأخرى.

يمكن للاعب إجراء عدد محدود فقط من التخمينات غير الصحيحة قبل انتهاء اللعبة.

لكل تخمين غير صحيح، يتم رسم جزء من شخصية "الجلاد"، وإذا تم رسم الشكل الكامل قبل تخمين الكلمة، يخسر اللاعب.

دعونا نقسم هذا الأمر ونبني اللعبة خطوة بخطوة.


الخطوة 1: التخطيط للعبة

دعونا نخطط للعبة وميزاتها الرئيسية:

  • اللعبة تختار الكلمة بشكل عشوائي.
  • يخمن اللاعب حرفًا واحدًا في كل مرة.
  • اللاعب لديه عدد محدود من التخمينات غير الصحيحة.
  • تعرض اللعبة الكلمة بالأحرف التي تم تخمينها بشكل صحيح والفراغات للأحرف المتبقية.

ستحتوي اللعبة على المكونات التالية:

  • اختيار الكلمات
  • إدخال اللاعب (تخمين)
  • تحديث عرض الكلمة
  • تتبع عدد التخمينات غير الصحيحة

الخطوة 2: استيراد المكتبات المطلوبة

سنستخدم الوحدة العشوائية لاختيار كلمة عشوائيًا من القائمة.


import random



الخطوة 3: تحديد قائمة الكلمات

بعد ذلك، حدد قائمة بالكلمات التي ستختار منها اللعبة بشكل عشوائي.

يمكنك إضافة المزيد من الكلمات لجعل اللعبة أكثر إثارة.


word_list = ['python', 'java', 'hangman', 'programming', 'computer']



الخطوة 4: تحديد وظائف اللعبة

الوظيفة 1: اختيار كلمة بشكل عشوائي

نحتاج إلى وظيفة لاختيار كلمة بشكل عشوائي من قائمة الكلمات لدينا.


def get_random_word(word_list):
    return random.choice(word_list)


الوظيفة 2: عرض الحالة الحالية للكلمة

عندما يخمن اللاعب الحروف، نحتاج إلى إظهار الحروف التي تم تخمينها بشكل صحيح والعناصر النائبة (_) للأحرف التي لم يتم تخمينها.


def display_word(word, guessed_letters):
    display = ''
    for letter in word:
        if letter in guessed_letters:
            display  = letter   ' '
        else:
            display  = '_ '
    return display.strip()


الوظيفة 3: التحقق من فوز اللاعب

تتحقق هذه الوظيفة مما إذا كان قد تم تخمين جميع أحرف الكلمة.


def is_word_guessed(word, guessed_letters):
    for letter in word:
        if letter not in guessed_letters:
            return False
    return True


الوظيفة 4: عرض الجلاد

لعرض شخصية الجلاد في لعبة نصية، يمكنك استخدام فن ASCII لتمثيل المراحل المختلفة للجلاد.


def display_hangman(wrong_guesses):
    stages = [
        """
           -----
           |   |
           O   |
          /|\\  |
          / \\  |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
          /    |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
           |   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
               |
               |
               |
        --------
        """,
        """
           -----
           |   |
               |
               |
               |
               |
        --------
        """
    ]
    # Reverse the list to display the stages in the correct order
    stages.reverse()
    return stages[wrong_guesses]



الخطوة 5: حلقة اللعبة الرئيسية

الآن يمكننا تجميع الحلقة الرئيسية للعبة. هذه الحلقة سوف:

  • تتبع الحروف التي تم تخمينها والتخمينات غير الصحيحة.
  • السماح للاعب بإدخال التخمينات.
  • قم بتحديث حالة اللعبة بناءً على التخمين.
  • قم بإنهاء اللعبة عندما يفوز اللاعب أو يخسر.

مثال الكود الكامل:


import random


# Function to get a random word from the list
def get_random_word(word_list):
    return random.choice(word_list)


# Function to display the current state of the word
def display_word(word, guessed_letters):
    display = ''
    for letter in word:
        if letter in guessed_letters:
            display  = letter   ' '
        else:
            display  = '_ '
    return display.strip()


# Function to check if the word has been guessed
def is_word_guessed(word, guessed_letters):
    for letter in word:
        if letter not in guessed_letters:
            return False
    return True


# Function to display the hangman figure
def display_hangman(wrong_guesses):
    stages = [
        """
           -----
           |   |
           O   |
          /|\\  |
          / \\  |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
          /    |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|\\  |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
          /|   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
           |   |
               |
               |
        --------
        """,
        """
           -----
           |   |
           O   |
               |
               |
               |
        --------
        """,
        """
           -----
           |   |
               |
               |
               |
               |
        --------
        """
    ]
    # Reverse the list to display the stages in the correct order
    stages.reverse()
    return stages[wrong_guesses]


# Main function to play the game
def play_hangman():
    word_list = ['python', 'java', 'hangman', 'programming', 'computer']
    word = get_random_word(word_list)
    guessed_letters = []
    attempts = 6
    wrong_guesses = 0

    print("Welcome to Hangman!")
    print("Guess the word!")

    # Main game loop
    while wrong_guesses 

توضيح

  • get_random_word(): تحديد كلمة عشوائيًا من قائمة الكلمات.
  • display_word(): إنشاء سلسلة تمثل الحالة الحالية للكلمة، وإظهار الأحرف التي تم تخمينها بشكل صحيح والعناصر النائبة للأحرف التي لم يتم تخمينها.
  • is_word_guessed(): للتحقق مما إذا كان اللاعب قد خمن جميع الحروف في الكلمة.
  • display_hangman(wrong_guesses): تأخذ هذه الوظيفة عدد التخمينات غير الصحيحة كوسيطة وترجع صورة ASCII المقابلة لتلك المرحلة.
  • play_hangman(): الوظيفة الرئيسية التي تتحكم في اللعبة. فهو يتعامل مع مدخلات المستخدم، ويتتبع تخمينات اللاعب، ويحدد ما إذا كان اللاعب قد فاز أم خسر.

المتغيرات الرئيسية:

  • guessed_letters: قائمة لتخزين الحروف التي خمنها اللاعب.
  • تخمينات خاطئة: يتتبع عدد التخمينات غير الصحيحة التي قام بها اللاعب. المحاولات: الحد الأقصى لعدد التخمينات غير الصحيحة المسموح بها.
  • المراحل: تحتوي هذه القائمة على تمثيلات فنية بتنسيق ASCII لشخصية الجلاد في مراحل مختلفة من الاكتمال. كل مرحلة تتوافق مع عدد مختلف من التخمينات غير الصحيحة.

الخطوة 6: تشغيل اللعبة

لتشغيل اللعبة، ما عليك سوى تنفيذ برنامج Python النصي، على افتراض أنك قمت بإنشاء ملف main.py:


python main.py


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

إذا نفدت المحاولات، تنتهي اللعبة وتخسر، هكذا:


           -----
           |   |
           O   |
          /|\  |
          / \  |
               |
        --------

Game over! The word was: programming


إذا خمنت الكلمة بشكل صحيح، فستفوز، هكذا:


           -----
           |   |
               |
               |
               |
               |
        --------

j a _ a
Enter a letter: v
Good guess! v is in the word.
Congratulations! You've guessed the word: java




خاتمة

توضح لعبة Hangman البسيطة هذه استخدام هياكل التحكم والوظائف والقوائم والإدخال/الإخراج الأساسي في Python.

أثناء إنشاء هذا المشروع، يمكنك إضافة المزيد من الميزات مثل:

  • إضافة فئات الكلمات.
  • إعطاء تلميحات.
  • إضافة نظام التسجيل.

هذا مشروع رائع يمكنك التوسع فيه عندما تتعلم المزيد من مفاهيم بايثون المتقدمة.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/devasservice/how-to-build-a-hangman-game-in-python-a-step-by-step-guide-136k?1 إذا كان هناك أي انتهاك يرجى الاتصال بـ Study_golang @163.comdelete
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3