ارسم من الكيبورد بيدك
حلو ولا عايز تحسين تنصحوني اعمل اية فيه عشان يبقا احسن
ده الكود
main.py
from turtle import Screen
from Draw import Draw_2
screen = Screen()
screen.title(“drawing program”)
screen.bgcolor(‘white’)
screen.setup(700,700)
draw = Draw_2(‘circle’, ‘black’)
screen.listen()
screen.onkey(draw.pen_up,‘p’)
screen.onkey(draw.pen_down,‘d’)
screen.onkey(draw.fd,‘Up’)
screen.onkey(draw.right,‘Right’)
screen.onkey(draw.left,‘Left’)
screen.onkey(draw.down,‘Down’)
screen.onkey(screen.reset, ‘r’)
while True:
screen.exitonclick()
ده الملف الثاني!
from turtle import Turtle
class Draw_2(Turtle):
def __init__(self, shape, color):
super().__init__()
self.shape(shape)
self.color(color)
def fd(self):
self.goto(self.xcor(), self.ycor() + 20)
def right(self):
self.goto(self.xcor() + 20, self.ycor())
def left(self):
self.goto(self.xcor() - 20, self.ycor())
def down(self):
self.goto(self.xcor(), self.ycor() - 20)
def pen_up(self):
self.penup()
def pen_down(self):
self.pendown()
رائع اخي البرنامج باين انو بالفعل رائع بس في مشكلة في الكود عشان ما في شي داخل الوايل لووب اي كود
فلو امكن ان ترسل الكود كامل حتى نستطيع التجربة الرائعة
عظييم ي اخي بجددد .
فكرة رائعة
انا جربت اعمله بنفسي
وهذه هي النتيجة
Code
تم تعديلة
from turtle import Turtle , Screen
screen=Screen()
screen.bgcolor('black')
screen.setup(600,600)
turtle=Turtle("turtle")
turtle.color('white')
turtle.up()
def up():
if turtle.heading()==90:
turtle.fd(20)
else:
turtle.setheading(90)
def down():
if turtle.heading() == 270:
turtle.fd(20)
else:
turtle.setheading(270)
def left():
if turtle.heading()==180:
turtle.fd(20)
else:
turtle.setheading(180)
def right():
if turtle.heading()==0:
turtle.fd(20)
else:
turtle.setheading(0)
def clr():
turtle.reset()
turtle.color('white')
is_showed=False
def stop():
global is_showed
if is_showed: # Ture
is_showed=False
turtle.up()
clr()
if turtle.pencolor() == screen.bgcolor():
turtle.pencolor('white')
else:
if turtle.isdown():
turtle.up()
else:
turtle.down()
def help():
global is_showed
is_showed=True
screen.tracer(0)
turtle.write('''
d-->To put a dot sign.
r-->To reset a turtle.
space-->To start/stop a draw.
''',font=('arial',20,'bold'),align='center')
screen.tracer(1)
def delete():
turtle.down()
turtle.pencolor(screen.bgcolor())
screen.listen()
screen.onkey(clr,'r')
screen.onkey(up,"Up")
screen.onkey(down,"Down")
screen.onkey(left,"Left")
screen.onkey(right,"Right")
screen.onkey(turtle.dot,"d")
screen.onkey(stop,"space")
screen.onkey(help,"h")
screen.onkey(turtle.undo,"u")
screen.onkey(delete,"x")
screen.exitonclick()
ما شاء الله جميل جدا
فانكشن ال ستوب عجبتني
فكره جميلة برافو عليك
نستفيد منك🤍🩵
هذا من بعض ما عندكم دا مشروعك❤️
انا بس ضفت فيه بعض الاسطر
ممكن برضو نضيف فانكشن لعرض التعليمات للمستخدم وفانكشن للمسح وفانكشن لاعادة الضبط بالشكل دا
def clr():
turtle.reset()
turtle.color('white')
is_showed=False
def stop():
global is_showed
if is_showed: # Ture
is_showed=False
turtle.up()
clr()
if turtle.isdown():
turtle.up()
else:
turtle.down()
def help():
global is_showed
is_showed=True
screen.tracer(0)
turtle.write('''
d-->To put a dot sign.
r-->To reset a turtle.
space-->To start/stop a draw.
''',font=('arial',20,'bold'),align='center')
screen.tracer(1)
def delete():
turtle.down()
turtle.pencolor(screen.bgcolor())
هنا ف حالة لو المستخدم ضغط ع حرف h هتظهرله التعلميمات ف اي مكان السلحفاء موجوده فيه .
وعشان اتاكد ان المستخدم ضغط علي حرف h وظهرتله التعليمات انشأت متغير وخزنت جواه بيانات من نوع بولين. وفي حالة تشغيل الفانكشن دي هخلي قيمته ب True.
عشان بعد كدا اقدر امسح التعليمات واخلي المستخدم يرسم براحته.
ما شاء الله كويس جدا
انا مش فاهم فانكشن stop
is_showed=False
def stop():
global is_showed
if is_showed: # Ture
is_showed=False
turtle.up()
clr()
if turtle.pencolor() == screen.bgcolor():
turtle.pencolor('white')
else:
if turtle.isdown():
turtle.up()
else:
turtle.down()
الداله دي ببساطة وظيفتها الاساسية انها ترفع القلم وتنزله للرسم .
بس قبلها هي بتشيك ع كام حاجه كده
منها
بتتحقق لو المستخدم ضغط ع حرف ال h وشاف التعليمات والا لاء ؟
ثم التحقق التاني بيشوف لو المستخدم شغل الاستيكة (Eraser) والا لاء ؟؟
ايوا ما شاء الله
فهمت الحين
الحمد لله ي اخي