17 มิถุนายน 2558

Published มิถุนายน 17, 2558 by with 3 comments

เริ่มต้นเรียนภาษา Python ด้วยเต่า turtle

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านที่สนใจเขียนภาษา Python เป็นภาษาแรกไปเริ่มต้นเรียนภาษา Python ด้วยเต่า turtle กันครับ


โมดูลเต่า turtle เป็นโมดูลสำหรับใช้เริ่มต้นแนะนำการเรียนการเขียนโปรแกรมให้เด็ก โดยมีต้นฉบับมาจากภาษา Logo โดยมีบน Python 2.6 และ Python 3 เป็นต้นมา

เรามาเริ่มต้นง่าย ๆ กันครับ

import turtle

t = turtle.Turtle()
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล
t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล

turtle.mainloop() # ลูปค้างหน้าจอไว้

ผลลัพธ์
กดปุ่ม Run เพื่อเล่นโค้ด

จะเห็นได้ว่า เราได้วาดรูปมาแล้ว
ต่อมาเรามาวาดรูปสี่เหลี่ยมจัตุรัสกันครับ

import turtle

t = turtle.Turtle()
# มุมที่ 1
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล
# มุมที่ 2
t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล
# มุมที่ 3
t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล
# มุมที่ 4
t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล

turtle.mainloop() # ลูปค้างหน้าจอไว้

ผลลัพธ์

ไปทางซ้าย กับ ทางขวา

import turtle

t = turtle.Turtle()
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล
t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล

t.right(90) # หันไปทางซ้าย ทำมุม 90 องศาจากมุมเดิม
t.forward(100)

turtle.mainloop() # ลูปค้างหน้าจอไว้

ผลลัพธ์


เรามาใส่สีให้กับสีทั้ง 4 มุมกันครับ

import turtle

t = turtle.Turtle()
# มุมที่ 1
t.color('red') # ใส่สีแดง ให้กับเส้น
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล
# มุมที่ 2
t.color('green') # ใส่สีเขียว ให้กับเส้น
t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล
# มุมที่ 3
t.color('yellow') # ใส่สีเหลือง ให้กับเส้น
t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล
# มุมที่ 4
t.color('blue') # ใส่สีน้ำเงิน ให้กับเส้น
t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม
t.forward(100) # ลากเส้นตรงไปข้างหน้า 100 พิกเซล

turtle.mainloop() # ลูปค้างหน้าจอไว้

ผลลัพธ์


นำการลูป for ของภาษา Python มาใช้วาดรูปสี่เหลี่ยมจัตุรัส

import turtle

t = turtle.Turtle() # สร้างพื้นที่สำหรับเล่น turtles

for c in ['red', 'green', 'yellow', 'blue']: # ลูปค่าตัวแปร c ตามสี
 t.color(c) # กำหนดสีตามค่าที่ลูปได้จากตัวแปร c
 t.forward(90) # ลากเส้นตรงไปข้างหน้า 90 พิกเซล
 t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม

turtle.mainloop() # ลูปค้างหน้าจอไว้

ผลลัพธ์


สรุปคำสั่ง
  • turtle.Turtle() เป็นคำสั่งสำหรับดึงคำสั่งต่าง ๆ ที่เกี่ยวกับการวาดรูปมาทำงาน มักใช้ตัวแปรแทนคำสั่งนี้
  • turtle.forward() ลากเส้นตรงไปข้างหน้ามีหน่วยเป็นพิกเซล
  • turtle.left() หันไปทางขวา ทำมุมตามองศาที่กำหนดจากมุมเดิม
  • turtle.right() หันไปทางซ้าย ทำมุมตามองศาที่กำหนดจากมุมเดิม
  • turtle.color() เป็นคำสั่งกำหนดสีให้กับเส้น (ชื่อสีในภาษาอังกฤษ)
  • turtle.mainloop() เป็นคำสั่งลูปค้างหน้าจอไว้สำหรับรอวาดรูปต่อ

ใส่ เต่า turtle


เราสามารถใช้ตัวละครแทนลูกศรอันน่าเบื่อได้ง่าย ๆ ตามนี้ครับ

  • คำสั่ง turtle.shape() สามารถใส่ตัวละคร เช่น “arrow”, “turtle”, “circle”, “square”, “triangle”, “classic” ลงไป

  • คำสั่ง turtle.pensize() เป็นคำสั่งสำหรับใช้กำหนดขนาดตัวละครของเราและขนาดของเส้นเป็น พิกเซล

เมื่อใส่ตัวละครเต่า turtle ลงไปในการวาดรูปสี่เหลี่ยมจัตุรัส

import turtle

t = turtle.Turtle() # สร้างพื้นที่สำหรับเล่น turtles
t.shape("turtle") # ใส่ตัวละครเต่า turtle ลงไป
t.pensize(3) # กำหนดขนาด 90 พิกเซล

for c in ['red', 'green', 'yellow', 'blue']: # ลูปค่าตัวแปร c ตามสี
 t.color(c) # กำหนดสีตามค่าที่ลูปได้จากตัวแปร c
 t.forward(90) # ลากเส้นตรงไปข้างหน้า 90 พิกเซล
 t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม

turtle.mainloop() # ลูปค้างหน้าจอไว้

ผลลัพธ์

คำสั่ง turtle.Screen()


หากเราต้องการกำหนดหัวข้อหน้าต่าง กำหนดสีให้กับหน้าต่าง ต้องใช้

  • คำสั่ง turtle.Screen() เป็นคำสั่งตั้งค่าหน้าต่างให้วัตถุ ต้องใช้คำสั่งนี้ก่อนคำสั่ง turtle.Turtle()

  • คำสั่ง Screen.title() เป็นคำสั่งกำหนดหัวข้อ

  • คำสั่ง Screen.bgcolor() เป็นคำสั่งกำหนดสีภาพพื้นหลัง (ชื่อเป็นภาษาอังกฤษ เช่น "yellow" เป็นต้น)

  • คำสั่ง Screen.screensize(ความกว้าง ความสูง) เป็นคำสั่งกำหนดขนาดให้กับหน้าต่าง มีหน่วยเป็นพิกเซล

ทำให้เต่า turtle อยู่กับที่ตามที่กำหนด


ใช้คำสั่ง turtle.stamp() เป็นคำสั่งสั่งให้ตัวละครของเราอยู่กับที่ตามที่เรากำหนด เช่น

import turtle

Screen = turtle.Screen()
Screen.title("Hi") # กำหนดหัวข้อว่า Hi
Screen.bgcolor("white") # กำหนดให้หน้าต่างชื่อขาว

t = turtle.Turtle() # สร้างพื้นที่สำหรับเล่น turtles
t.shape("turtle") # ใส่ตัวละครเต่า turtle ลงไป
t.pensize(3) # กำหนดขนาด 90 พิกเซล

for c in ['red', 'green', 'yellow', 'blue']: # ลูปค่าตัวแปร c ตามสี
 t.color(c) # กำหนดสีตามค่าที่ลูปได้จากตัวแปร c
 t.forward(90) # ลากเส้นตรงไปข้างหน้า 90 พิกเซล
 t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม
t.stamp()

turtle.mainloop() # ลูปค้างหน้าจอไว้

ผลลัพธ์

จะพบว่า มีเต่าอยู่กับที่ 4 ตัว

กำหนดความเร็วในการลากเส้น


ใช้คำสั่ง turtle.speed() ใส่ค่า 0 - 10 แทนความเร็ว

import turtle

Screen = turtle.Screen()
Screen.title("Hi") # กำหนดหัวข้อว่า Hi
Screen.bgcolor("white") # กำหนดให้หน้าต่างชื่อขาว

t = turtle.Turtle() # สร้างพื้นที่สำหรับเล่น turtles
t.shape("turtle") # ใส่ตัวละครเต่า turtle ลงไป
t.pensize(3) # กำหนดขนาด 3

s = 0
for c in ['red', 'green', 'yellow', 'blue']: # ลูปค่าตัวแปร c ตามสี
 t.color(c) # กำหนดสีตามค่าที่ลูปได้จากตัวแปร c
 t.speed(s+3)
 t.forward(90) # ลากเส้นตรงไปข้างหน้า 90 พิกเซล
 t.left(90) # หันไปทางขวา ทำมุม 90 องศาจากมุมเดิม
 t.stamp()

turtle.mainloop() # ลูปค้างหน้าจอไว้

ผลลัพธ์


จบแล้ว ? ยังไม่จบ รอภาค 2 ต่อครับ

อ่านเอกสารเพิ่มเติมได้ที่ https://docs.python.org/3/library/turtle.html
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

3 ความคิดเห็น:

แสดงความคิดเห็นได้ครับ :)