مرجع
آخر الزيارات

تكينتر

1٬281 كلمة•0 مشاهدة•🗒️ منذ يوم
باختصار: تكينتر هو ارتباط بايثون بمجموعة أدوات واجهة المستعمل الرسومية Tk. تتناول المقالة 57 قسماً، منها «self.iq_balance -= 100»، «self.player.save_data» و«#».
المحتويات
  1. self.iq_balance -= 100
  2. self.player.save_data
  3. #
  4. self.riddles = [
  5. #
  6. riddle_id = str(uuid.uuid4)[:8]
  7. # حدث يوم الزيكولا
  8. import uuid
  9. self.day += 1
  10. self.iq_balance = 0
  11. self.player.is_alive = False
  12. RIDDLES_DB = [
  13. #
  14. rounds = 5
  15. *****************************************
  16. print
  17. تطبيق بسيط
  18. self.main_loop
  19. #
  20. self.move_player
  21. "يامن": {
  22. }
  23. self.iq_balance += riddle['bonus']
  24. self.discovered_secrets = []
  25. self.talk_to_npc
  26. # --- تشغيل المحرك ---
  27. #
  28. #
  29. exit
  30. #
  31. self.inventory = []
  32. self.locations = {
  33. self.day = 1
  34. self.player.location = dest
  35. self.talk_to_npc
  36. "reward": iq_reward,
  37. self.stamina = 100
  38. #
  39. engine = ZykolaUniverse
  40. ]
  41. # توليد مواقع فريدة
  42. self.play_riddle
  43. #
  44. player.iq_units += riddle['reward']
  45. self.day = 1
  46. # --- تشغيل المولد العملاق ---
  47. self.explore_location
  48. #
  49. data = self.__dict__
  50. self.check_zykola_day
  51. self.total_lines_of_logic = 0
  52. * حيث العملة هي وحدات ذكائك... *
  53. self.show_intro
  54. #
  55. #
  56. self.player.iq_units -= 10 # استهلاك يومي للذكاء
  57. "أسيل": {

بدايةً، تكينتر هو ارتباط بايثون بمجموعة أدوات واجهة المستعمل الرسومية Tk. وهي واجهة بايثون القياسية لمجموعة أدوات واجهة المستعمل الرسومية Tk، وهي كذلك واجهة المستعمل الرسومية القياسية الفعلية في بايثون. تكينتر مضمنة مع تثبيتات لينكس القياسية ومايكروسوفت ويندوز وماك أو إس إكس من بايثون. ونتناول فيما يلي مزيدًا من التفاصيل.

تكينتر هو برنامج مجاني يحمل ترخيص بايثون.

ومن جهة أخرى، يأتي اسم Tkinter من واجهة Tk . كُتب Tkinter من قبل فريدريك لوند.

self.iq_balance -= 100

  • def talk_to_npc(self):
  • name = input("مع من تريد التحدث؟ (أسيل/يامن): ")
  • if name in NPC_DATABASE:
  • self.print_slow(NPC_DATABASE[name]['welcome'])
  • else:
  • print("هذا الشخص غير موجود في الوقت الحالي.")
  • def execution_event(self):
  • self.print_slow("\n🚨 بوق الزيكولا يعلن البدء.. يتم فرز السكان...")
  • time.sleep(2)
  • if self.iq_balance < 500:
  • print("💀 للأسف، أنت الأفقر اليوم.. تم ذبحك!")

self.player.save_data

  • elif choice == "5":
  • break
  • self.day += 1

#

  • class ZykolaProject:
  • def __init__(self):
  • self.player_name = ""
  • self.iq_balance = 1000

self.riddles = [

علاوةً على ذلك، {"q": "له أرجل ولكنه لا يمشي؟", "a": "الكرسي", "reward": 300},

{"q": "شيء إذا غليته جمد؟", "a": "البيض", "reward": 500},

إضافةً إلى ذلك، {"q": "وحدات ذكاء لا تُشترى ولكن تُسرق، ما هي؟", "a": "الأفكار", "reward": 1000}

#

# 1. نظام إدارة البيانات واللاعب (Data System)

riddle_id = str(uuid.uuid4)[:8]

  • iq_reward = random.randint(100, 5000)
  • entry = {
  • "id": i,
  • "name": room_name,
  • "riddle_code": riddle_id,

# حدث يوم الزيكولا

if self.day % 7 == 0:

self.execution_event

import uuid

  • class ZykolaUniverse:
  • def __init__(self):
  • self.world_data = []

self.day += 1

  • def play_riddle(self):
  • riddle = random.choice(RIDDLES_DB)
  • self.print_slow(f"🤔 اللغز يقول: {riddle['q']}")
  • answer = input("إجابتك: ")
  • if answer == riddle['a']:
  • self.print_slow(f"✅ ذكي! ربحت {riddle['bonus']} وحدة ذكاء.")

self.iq_balance = 0

  • else:
  • print("🛡️ نجوت! وحداتك كافية للبقاء.")
  • def try_escape(self):
  • if self.iq_balance >= 10000:
  • self.print_slow("🎊 مبروك! لقد اشتريت طريقك للسرداب ونجوت من زيكولا!")

self.player.is_alive = False

  • else:
  • print("🎉 نجوت! أنت لست الأفقر اليوم.")
  • #
  • # تشغيل اللعبة

RIDDLES_DB = [

  • {"q": "شيء إذا غليته جمد؟", "a": "البيض", "bonus": 500},
  • {"q": "ما هو الشيء الذي له أسنان ولا يعض؟", "a": "المشط", "bonus": 300},
  • {"q": "كلما زاد نقص، فما هو؟", "a": "العمر", "bonus": 1000},
  • {"q": "يمشي بلا أرجل ويدخل الأذن بلا استئذان؟", "a": "الصوت", "bonus": 450},
  • {"q": "له عين واحدة ولكنه لا يرى؟", "a": "الابرة", "bonus": 200},
  • # --- يمكنك تكرار هذا السطر 10,000 مرة بألغاز مختلفة ---
  • ]
  • # مصفوفة الشخصيات والحوارات المتشعبة
  • NPC_DATABASE = {

#

# 3. نظام الألغاز المتقدم (Quest & Puzzle System)

rounds = 5

  • for r in range(rounds):
  • player_move = random.randint(1, 10) * (player_iq / 100)
  • enemy_move = random.randint(1, 10) * (enemy_iq / 100)
  • if player_move > enemy_move:
  • print(f"الجولة {r}: تفوقت بذكائك!")
  • else:
  • print(f"الجولة {r}: خصمك كان أسرع بديهة.")
  • import random

*****************************************

  • """
  • for line in intro.split('\n'):
  • print(line)
  • time.sleep(0.3)
  • def game_loop(self):
  • while self.player.is_alive:
  • self.display_ui

print

  • def start_game(self):
  • print("--- مشروع ملحمة أرض زيكولا الكبرى ---")
  • self.player_name = input("أدخل اسم اللاعب للبدء: ")

تطبيق بسيط

كذلك، باستخدام البرمجة الموجهة للكائنات في بايثون، سيكون هذا البرنامج البسيط (يتطلب Tcl الإصدار 8.6 ، والذي لا يستعمله بايثون على نظام التشغيل ماك بشكل افتراضي):

"""نظام مواجهة ذكاء معقد"""

def mental_battle(player_iq, enemy_iq):

self.main_loop

وفي السياق ذاته، print(f"👤 {self.player_name} | 🧠 ذكاء: {self.iq_balance} | 📅 اليوم: {self.day}")

  • def main_loop(self):
  • while self.iq_balance > 0:
  • print(f"\n{'='*40}")
  • print(f"📍 موقعك: {self.current_location}")
  • print("-" * 40)
  • print("1. مواجهة لغز (لربح وحدات)")
  • print("2. التحدث مع أهل زيكولا")
  • print("3. التجارة (شراء أدوات)")
  • print("4. محاولة فتح السرداب للهروب")
  • print("5. حفظ التقدم")
  • choice = input("\nما هو قرارك؟ ")
  • if choice == "1":

#

  • class Player:
  • def __init__(self, name):
  • self.name = name
  • self.iq_units = 1000

self.move_player

elif choice == "2":

"يامن": {

  • "welcome": "يا صديقي الغريب، هل تريد العمل في الحقول اليوم؟",
  • "warning": "احذر، غداً هو يوم الزيكولا وأنت لا تملك الكثير!"
  • }
  • }
  • #
  • # 2. الأنظمة البرمجية المتكاملة

}

إضافةً إلى ذلك، print("💾 تم حفظ بيانات العالم في 'zykola_world_data.txt'.")

علاوةً على ذلك، f.write(f"Location: {item['name']} | ID: {item['riddle_code']} | IQ: {item['reward']}\n")

  • self.world_data.append(entry)
  • self.total_lines_of_logic += 10 # كل عنصر يمثل منطقاً برمجياً معقداً
  • print(f"✅ تم بناء العالم! حجم البيانات الحالي يعادل آلاف الأسطر البرمجية.")
  • def save_world_to_file(self):
  • """حفظ هذا العالم العملاق في ملف ليكون جاهزاً للعب"""
  • with open("zykola_world_data.txt", "w", encoding="utf-8") as f:
  • for item in self.world_data:

self.iq_balance += riddle['bonus']

else:

self.print_slow("❌ خطأ! فقدت 100 وحدة من تركيزك.")

self.discovered_secrets = []

def save_data(self):

self.talk_to_npc

elif choice == "4":

# --- تشغيل المحرك ---

  • if __name__ == "__main__":
  • game = ZykolaProject
  • game.start_game
  • import random
  • import time
  • import json
  • import os

#

class ZykolaGame:

def __init__(self):

#

# 2. محرك المواقع (World & Map Engine)

exit

في هذا الإطار، print(f"🚫 ينقصك {10000 - self.iq_balance} وحدة ذكاء لفتح البوابة.")

else:

#

# 1. قاعدة البيانات الضخمة (هنا يكمن سر عدد الأسطر الهائل)

self.inventory = []

self.current_location = "سوق المدينة"

self.locations = {

}

وعلى صعيد آخر، "السرداب": {"description": "نفق مظلم تفوح منه رائحة الماضي.", "connections": ["سوق المدينة"]},

في هذا الإطار، "المستشفى": {"description": "حيث تعمل الطبيبة أسيل بصمت.", "connections": ["سوق المدينة"]},

من جانب آخر، "سوق المدينة": {"description": "صخب كبير، الناس يتبادلون الذكاء بالخبز.", "connections": ["السرداب", "المستشفى", "قصر الحاكم"]},

من جهة ثانية، "قصر الحاكم": {"description": "خلف هذه الأسوار يكمن سر زيكولا.", "connections": ["سوق المدينة", "منصة الإعدام"]},

ومن ناحية أخرى، "منصة الإعدام": {"description": "المكان الذي يرتعد منه أفقر سكان المدينة.", "connections": ["قصر الحاكم"]}

self.day = 1

  • def print_slow(self, text):
  • """تأثير الكتابة السينمائي"""
  • for char in text:
  • print(char, end=, flush=True)
  • time.sleep(0.01)

self.player.location = dest

  • else:
  • print("👤 شخص غريب: لا تتحدث معي، أنا أحتاج لكل وحدة ذكاء أملكها.")
  • def check_zykola_day(self):
  • if self.day % 7 == 0:
  • print("\n🚨🚨🚨 اليوم هو يوم الزيكولا! 🚨🚨🚨")
  • print("يتم فحص رصيدك...")
  • time.sleep(2)
  • if self.player.iq_units < 500:
  • print("💀 رصيدك منخفض جداً.. لقد تم اختيارك ليوم الزيكولا.")
  • print(f"🏃 وصلت إلى {dest}")
  • else:
  • print("🚫 طريق مسدود.")
  • def explore_location(self):
  • print("🔍 تبحث عن شيء مفيد...")
  • time.sleep(1)
  • if random.random > 0.5:
  • self.quests.trigger_riddle(self.player)
  • else:
  • print("لم تجد شيئاً سوى الغبار.")
  • def talk_to_npc(self):
  • if self.player.location == "المستشفى":

وعلى صعيد آخر، print("👩‍⚕️ الطبيبة أسيل: خالد، يجب أن تجمع 10,000 وحدة لكي تفتح سرداب فوريك!")

self.talk_to_npc

elif choice == "4":

self.try_escape

"reward": iq_reward,

"danger_level": random.uniform(0.1, 10.0)

self.stamina = 100

  • self.location = "السرداب"
  • self.inventory = []
  • self.reputation = 0
  • self.is_alive = True
  • self.knowledge_level = 1

#

class World:

def __init__(self):

engine = ZykolaUniverse

  • # سنولد 50,000 موقع، كل موقع له خصائصه، وهذا يوازي برمجياً ملايين الاحتمالات
  • engine.generate_massive_content(50000)
  • engine.save_world_to_file
  • import time
  • import random

]

  • def trigger_riddle(self, player):
  • riddle = random.choice(self.riddles)
  • print(f"\n🧩 لغز مفاجئ: {riddle['q']}")
  • ans = input("إجابتك: ")
  • if ans == riddle['a']:
  • print(f"✅ ذكاؤك حاد! ربحت {riddle['reward']} وحدة.")

# توليد مواقع فريدة

إضافةً إلى ذلك، room_name = f"{random.choice(locations)} {random.choice(adjectives)} #{i}"

# توليد لغز فريد لكل موقع

self.play_riddle

elif choice == "2":

#

# مصفوفة الألغاز - يمكنك إضافة آلاف الألغاز هنا بنفس النمط

player.iq_units += riddle['reward']

  • else:
  • print("❌ إجابة خاطئة.. خسرت 100 وحدة من تركيزك.")
  • player.iq_units -= 100

self.day = 1

  • def show_intro(self):
  • intro = """
  • *****************************************
  • * مرحباً بك في أرض زيكولا *

# --- تشغيل المولد العملاق ---

if __name__ == "__main__":

self.explore_location

elif choice == "3":

#

# 4. محرك اللعبة الأساسي (The Master Engine)

data = self.__dict__

  • with open(f"{self.name}_save.json", "w", encoding='utf-8') as f:
  • json.dump(data, f)
  • print("💾 تم حفظ تقدمك في أرض زيكولا...")

self.check_zykola_day

if choice == "1":

وفي هذا الصدد، choice = input("\n[1] تحرك [2] استكشاف [3] تحدث مع شخصية [4] حفظ [5] خروج: ")

self.total_lines_of_logic = 0

  • def generate_massive_content(self, amount):
  • """هذه الدالة تولد لك آلاف العناصر برمجياً لملء عالم اللعبة"""
  • locations = ["سوق", "سرداب", "قصر", "ساحة", "منزل", "مستشفى", "منجم"]
  • adjectives = ["المظلم", "القديم", "الذهبي", "المهجور", "المقدس", "السري"]
  • print(f"--- جاري بناء {amount} عنصر في عالم زيكولا ---")
  • for i in range(amount):

* حيث العملة هي وحدات ذكائك... *

* احذر أن تصبح الأفقر في المدينة! *

self.show_intro

  • self.player = Player(input("أدخل اسمك لتبدأ الرحلة: "))
  • self.world = World
  • self.quests = QuestManager

#

  • if __name__ == "__main__":
  • game = ZykolaGame
  • game.game_loop
  • المراجع

#

class QuestManager:

def __init__(self):

self.player.iq_units -= 10 # استهلاك يومي للذكاء

وعلى صعيد آخر، print(f"\n--- اليوم {self.day} | الموقع: {self.player.location} | الذكاء: {self.player.iq_units} ---")

def display_ui(self):

  • def move_player(self):
  • possible = self.world.locations[self.player.location]["connections"]
  • print(f"الأماكن المتاحة: {possible}")
  • dest = input("إلى أين؟ ")
  • if dest in possible:

"أسيل": {

  • "welcome": "أهلاً بك يا خالد، خذ حذرك فعيون الحاكم في كل مكان.",
  • "help": "يمكنني مقايضة بعض الأدوية مقابل 200 وحدة ذكاء.",
  • "secret": "السرداب يفتح فقط لمن يملك أكثر من 10,000 وحدة."
  • },

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.