משחק תלתליית הולך

אין הרבה מה להגיד על זה, אבל תכנתי משחק תלתליית הולך בסיסי כדי להדגיש את השוואת המשתנים. ואף על פי שאני לעולם לא אעשה דבר עם הקוד הזה, חשבתי שזה יכול להיות כיף להעלות אותו ל-GitHub במקרה שיכול לעזור למישהו אחר, וסופסוף יש לי משהו לשים בחלק המדעיה של האתר הזה!

import tkinter as tk
import random

# יצר מחלקה עבור משחק התלתליית הולך
class HangmanGame:
    def __init__(self, master):
        # אתחיל את המשחק ואגדיר את החלון הראשי (master)
        self.master = master
        self.master.title("משחק תלתליית הולך")

        # אגדיר רשימת מילים עבור המשחק
        self.wordlist = ["פייתון", "תלתליית הולך", "תכנות", "מפתח", "ממשק", "דוגמה"]

        # אבחר מילה אקראית מהרשימה
        self.word = random.choice(self.wordlist)

        # אתחיל משתנים למעקב אחר מצב המשחק
        self.guesses = 0
        self.max_guesses = 5

        # איצור רשימה לאחסון מצב המילה הנוכחי עם קווים תחתונים במקום אותיות מוסתרות
        self.hidden_word = ["_" if char.isalpha() else char for char in self.word]

        # איצור תווית להצגת מצב המילה הנוכחי
        self.word_label = tk.Label(master, text=" ".join(self.hidden_word), font=("Helvetica", 20))
        self.word_label.pack()

        # איצור תוויות ורכיבי קלט לאינטראקציה של המשתמש
        self.input_label = tk.Label(master, text="נחש אות: ", font=("Helvetica", 12))
        self.input_label.pack()

        self.entry = tk.Entry(master, font=("Helvetica", 12))
        self.entry.pack()

        # איצור כפתור לביצוע הניחוש
        self.guess_button = tk.Button(master, text="נחש", command=self.make_guess, font=("Helvetica", 12))
        self.guess_button.pack()

        # איצור תווית להצגת הודעות למשתמש
        self.message_label = tk.Label(master, text="", font=("Helvetica", 12))
        self.message_label.pack()

    # פונקציה לטיפול בניחוש של המשתמש
    def make_guess(self):
        guess = self.entry.get()

        # בדוק אם הניחוש הוא אות חוקית בודדת
        if len(guess) != 1 or not guess.isalpha():
            self.message_label.config(text="אנא הזן אות חוקית.")
            return

        # אם הניחוש נכון, עדכן את מצב המילה והצג אותו
        if guess in self.word:
            for i in range(len(self.word)):
                if self.word[i] == guess:
                    self.hidden_word[i] = guess
            self.word_label.config(text=" ".join(self.hidden_word))

            # בדוק אם השחקן ניחש את כל המילה
            if "".join(self.hidden_word) == self.word:
                self.message_label.config(text="ניצחת! המילה הייתה: " + self.word)
                self.entry.config(state="disabled")
            self.entry.delete(0, "end")
        else:
            # טפל בניחוש שגוי
            self.guesses += 1

            # בדוק אם השחקן חרם את כל הניחושים
            if self.guesses >= self.max_guesses:
                self.message_label.config(text="הפסדת! המילה הייתה: " + self.word)
                self.entry.config(state="disabled")
            else:
                self.message_label.config(text=f"ניחוש שגוי! {self.max_guesses - self.guesses} ניחושים נשארו.")
            self.entry.delete(0, "end")

# נקודת הכניסה לתוכנית
def main():
    # יצר את החלון הראשי
    root = tk.Tk()
    hangman = HangmanGame(root)
    root.mainloop()

# הרץ את הפונקציה הראשית אם הסקריפט מופעל
if __name__ == "__main__":
    main()

כתיבת תגובה