موقعیت و حالت در turtle
در این آموزش، یاد میگیریم چگونه موقعیت و حالت یک شیء را در فضای دو بعدی مدیریت کنیم.
import turtle
# ساخت لاکپشتscreen = turtle.Screen()t = turtle.Turtle()
# تنظیمات ظاهری لاکپشتt.shape("square") # شکل مربعt.color("blue") # رنگ آبیt.penup() # قلم بالا - خط نکشیدن
# توابع حرکتdef move_right(): t.forward(50) # 50 پیکسل به جلو
def move_left(): t.backward(50) # 50 پیکسل به عقب
# حرکت با کلیدهاscreen.onkey(move_right, "Right") # کلید راستscreen.onkey(move_left, "Left") # کلید چپscreen.listen() # گوش دادن به کلیدها
screen.mainloop()نمایش زنده 🎮
با دکمههای زیر حرکت مربع آبی را کنترل کنید:
با دکمههای زیر حرکت مربع آبی را کنترل کنید:
بخش دوم: ذخیره موقعیت 💾
import turtle
# ساخت لاکپشت و صفحهscreen = turtle.Screen()t = turtle.Turtle()t.shape("square")t.color("blue")t.penup()
# لیست برای ذخیره موقعیتهاsaved_x = [] # لیست برای ذخیره xsaved_y = [] # لیست برای ذخیره y
def save_spot(): # ذخیره موقعیت فعلی saved_x.append(t.xcor()) saved_y.append(t.ycor())
# نمایش نقطه سبز old_color = t.color()[0] # گرفتن رنگ فعلی t.color("green") t.dot(10) # کشیدن نقطه t.color(old_color) # برگرداندن رنگ قبلی
def go_back(): # اگر موقعیتی ذخیره شده باشد if len(saved_x) > 0: # برداشتن آخرین موقعیت last_x = saved_x.pop() last_y = saved_y.pop() # رفتن به آن موقعیت t.goto(last_x, last_y)
# کلیدهاdef move_right(): t.forward(50)
screen.onkey(move_right, "Right") # حرکتscreen.onkey(save_spot, "s") # ذخیره با sscreen.onkey(go_back, "b") # برگشت با bscreen.listen()
screen.mainloop()نمایش زنده نقاط بازگشت 🎯
- دکمه حرکت: مربع را حرکت میدهد
- دکمه s: موقعیت را ذخیره میکند
- دکمه b: به موقعیت قبلی برمیگردد
- دکمه حرکت: مربع را حرکت میدهد
- دکمه s: موقعیت را ذخیره میکند
- دکمه b: به موقعیت قبلی برمیگردد
بخش سوم: حرکت در چهار جهت 🎮
import turtle
# ساخت و تنظیم لاکپشتscreen = turtle.Screen()t = turtle.Turtle()t.shape("square")t.color("blue")t.penup()
# لیستهای ذخیره موقعیتsaved_x = []saved_y = []
# توابع حرکتdef move_up(): y = t.ycor() # گرفتن موقعیت y t.sety(y + 20)
def move_down(): y = t.ycor() t.sety(y - 20)
def move_right(): x = t.xcor() # گرفتن موقعیت x t.setx(x + 20)
def move_left(): x = t.xcor() t.setx(x - 20)
def save_spot(): saved_x.append(t.xcor()) saved_y.append(t.ycor()) # کشیدن نقطه سبز t.color("green") t.dot(10) t.color("blue")
def go_back(): if len(saved_x) > 0: last_x = saved_x.pop() last_y = saved_y.pop() t.goto(last_x, last_y)
# تنظیم کلیدهاscreen.onkey(move_up, "Up")screen.onkey(move_down, "Down")screen.onkey(move_right, "Right")screen.onkey(move_left, "Left")screen.onkey(save_spot, "space")screen.onkey(go_back, "b")screen.listen()
# نوشتن راهنماt.goto(-150, 150)t.write("کلیدهای جهتدار: حرکت\nspace: ذخیره\nb: برگشت")t.goto(0, 0)
screen.mainloop()بازی نمونه 🎲
- کلیدهای جهتدار: حرکت مربع
- space: ذخیره موقعیت
- b: برگشت به موقعیت قبلی
کلیدهای جهتدار: حرکت
فاصله: ذخیره موقعیت
Backspace: بازگشت به موقعیت قبلی
- کلیدهای جهتدار: حرکت مربع
- space: ذخیره موقعیت
- b: برگشت به موقعیت قبلی
تمرینهای پیشنهادی 🎯
- تغییر رنگ مربع با کلید ‘c’:
def change_color(): if t.color()[0] == "blue": t.color("red") else: t.color("blue")screen.onkey(change_color, "c")- کشیدن خط مسیر حرکت:
# در ابتدای برنامه:t.pendown() # قلم پایین - کشیدن خط💡 نکته: برای پاک کردن صفحه میتوانید از t.clear() استفاده کنید.
تیم تدریسیاران درس - © ۱۴۰۳