سؤال خاص بكود ال score في لعبة الثعبان

from turtle import Turtle
class Scoreboard(Turtle):
    def __init__(self):
        super().__init__()
        self.color("white")
        self.hideturtle()
        self.penup()
        self.goto(0,350)
        self.score=0
        self.declare()

    def declare(self):
        self.write(f"Score:{self.score}",align="center",font={"arial",20,"bold"})

    def increase_score(self):
        self.clear()
        self.score+=1
        self.declare()

    def game_over(self):
        self.screen.bgcolor("cyan2")
        self.goto(0,0)
        self.write(f"Game Over\nFinal score:{self.score}",align="center",font={"arial",20,"bold"})
    

لوسمحتم ممكن حد يفهمني ازاي الامر self.screen.bgcolor(“cyan2”) اشتغل رغم اني مش عامله import اصلا لكلاس screen هل ممكن class يورث من module

3 إعجابات

حياك @menna89
الامر screen هو جزء من الكلاس Turtle
فانت عندما تستدعي Turtle يوجد من بين وظائف ال Turtle وظيفة screen يعني هي جزء من Turtle

إعجابَين (2)

شكرا لك ع هذا السؤال @menna89 …انا فعلا واجهتني نفس المشكلة في فهم ازاي استخدمنا الكلاس Screen من غير منستدعيه ؟؟ قعدت ادور لحد ما فهمت …

في الكلاس Turtle يوجد ارتباط بين ال objects بتاعته و object الكلاس Screen
التي يتم انشاؤه تلقائيا عند استدعاء الموديل turtle .
بمعني إن الموديول turtle دا لما بننشأ كائن من الكلاس Turtle بينشئ هو كائن من الكلاس screen , يعني بيعمل شاشة للرسم عليها … دا في حين ان احنا معملناش object ولا استدعينا الكلاس Screen …

يبقي الموديول turtle بيربط ال objects بتاعت كلاس Turtle بشاشه من عنده ,دا لو معملناش احنا شاشه بنفسنا وضبطنا الاعدادات بتاعتها زي ما نحب.

ف دا يخلي كائن اللكلاس Turtle يقدر يوصل لكلاس ال Screen . زي ما المستر عامل
بالشكل دا
self.screen.bgcolor(‘red’)
هنا بيقول يا اي اوبجكت من الكلاس scoreboard (الكلاس دا عباره عن سلحفاء) انت مرتبط بالاوبجكت screen ادخلي منه علي ميثود اسمها .bgcolor() ونادهالي :ok_hand::face_holding_back_tears:

ممكن برضو بطريقه تاني نقدر نوصل لكلاس الشاشة من غير منستدعيه
عن طريق ميثود اسمها
.getscreen() عشان اتحكم بالشاشة الافتراضيه المرتبطة بالسلحفاء من غير ما انشأ اوبجكت بقي واديله الخصائص وكل دا

استحدامها بالشكل دا

from turtle import Turtle
sam=Turtle('turtle')
sam.getscreen().bgcolor('red')
sam.circle(100)

بكدا انا عملت اوجكت من السلحفاء وخليت الشاشه الافتراضية لونها احمر ثم رسمت دائرة

4 إعجابات

شكرا جزيلا لحضرتك علي التوضيح

إعجاب واحد (1)

شكرا جزيلا لحضرتك على المعلومة

إعجابَين (2)

العفو يا اختي اذا فيه سؤال ثاني ارسلي واحنا نرد عليك باذن الله

إعجابَين (2)