Your kids can do this with Python!
Điều kiện học:
- Phụ huynh phải biết sử dụng Windows 10 VÀ Internet nếu trẻ chưa biết.
- Dành cho các máy PC.
- Dùng Google Chrome
- Một ít tiếng Anh về điện toán
- Có bộ gõ tiếng Việt càng tốt [VNI, VPS…]
Turtle Graphics là một chương trình con có sẵn trong Python khi bạn đã cài [install] Python lên máy bạn. Turtle [con rùa] đây chỉ là hình ảnh tưởng tượng, nó cầm cây bút để vẽ, di chuyển đến đâu là nó vẽ đường thẳng đến đó. Nó vẽ bằng những cái chấm [dots-pixels] trên màn hình.
Bây giờ bạn click IDLE để gõ chương trình sau đây, gõ y chang như vậy, kẻo bị syntax error [sai văn phạm của Python] rồi chúng ta sẽ tìm hiểu từng dòng một.
# SquareSpiral1.py - để vẽ một hình vuông xoắn ốc [square spiral] import turtle
t = turtle.Pen[] for x in range[100] : t.forward[x] t.left[90]
Xong bạn cho save nó lên máy bạn [trong một ngăn hồ sơ folder nào đó trên diã] với tên XoanocVuong.py rồi cho Run thử [Save và Run bạn đã biết làm ở chương I rồi] , bạn sẽ thấy “con ruà” của bạn [chỉ là một mũi tên] nó vẽ một hình vuông xoắn ốc như sau:
GIẢI THÍCH TỪNG DÒNG MỘT CỦA CHƯƠNG TRÌNH
- Dòng 1: # SquareSpiral1,py – để vẽ một hình vuông xoắn ốc. Dòng này chỉ là dòng chú thích [comments], có dấu # , máy không thi hành những dòng này khi Run. Có thể thêm ghi chú của người viết về mục đích của chương trình.
- Dòng 2: import turtle: Muốn sử dụng chương trình nhỏ turtle graphics của Python thì phải “nhập cảng” [import] nó vào từ “thư viện” của Python trong đó còn rất nhiều những chương trình nhỏ do Python soạn sẵn. Cần cái nào là phải nhập khẩu [gọi, call] chúng vào chương trình của mình bằng lệnh import. Ở đây ta cần gọi chương trình nhỏ turtle để vẽ nên ta dùng lệnh import turtle.
- Dòng 3: t = turtle.Pen[] có nghiã là ta dùng t thay thế cho turtle.Pen[] vì mỗi khi gọi chương trình con này của turtle thì cái tên ấy dài quá không gọn.
- Dòng 4: for x in range[100]: đây là một vòng lặp [loop]. Với biến số [variable] x đi từ 0 đến 99 thì những lệnh bên trong vòng lặp này sẽ được lặp đi lằp lại 100 lần [range 100 – phạm vi 100].
KHẢO SÁT XEM MÁY THI HÀNH CHƯƠNG TRÌNH NÀY THẾ NÀO?
Không cần khảo sát các dòng 1, 2, 3 vì dễ hiểu rối . Chỉ cần khảo sát vòng lặp ở dòng 4: for x in range[100] và những lệnh nằm bên trong vòng lặp ấy. Những lệnh này cần gõ thụt vào bên trong phiá dưới và qua phải của lệnh for x in range[100]. Đầu tiên là lệnh t.forward[x]. Lệnh này khiến cái bút của con ruà [cái mũi tên] nhích tới x dots. Với x=0 [lần đầu tiên] thì cây bút của con ruà chẳng nhúc nhích chi cả. Lệnh kế tiếp t.left[90] bắt “con ruà” quẹo trái 1 góc 90 độ. Thế là xong 1 vòng. Vòng lặp lại với x=1, rồi 2, 3, …đến 99 [tức là đủ 100 vòng] thì bạn sẽ có hình như 2-1.
CHO “CON RÙA” CUỐN [ROLL]
Bây giờ bạn thử đổi chương trình XoanocVuong nói trên một chút như sau:
# SquareSpiral2.py - để vẽ một hình xoắn ốc cuốn import turtle
t = turtle.Pen[] for x in range[100] : t.forward[x] t.left[91]
Dòng comment không quan trọng. Bạn muốn chú thích thế nào tuỳ ý. Bạn chỉ đổi t.left[90] thành t.left[91] tức là mỗi khi con ruà tiến tới vẽ được x dots xong nó sẽ quẹo trái 91 độ. Vòng lặp cũng lặp đi lặp lại 100 lần với x đi từ 0 đến 99 bạn sẽ có một hình vẽ như sau:
CHO “CON RÙA” XOẮN TRÒN
Thay vì dùng lệnh t.forward[x] để vẽ đường thẳng ta sửa chương trình trên để vẽ vòng tròn bằng lệnh t.circle[x] trong đó biến số x là bán kính của vòng tròn.
# CircleSpiral1.py - để vẽ một hình xoắn ốc cuốn tròn import turtle
t = turtle.Pen[] for x in range[100] : t.circle[x] t.left[91]
Bài tập: Bạn thử đổi chương trình: thay lệnh t.left[91] bằng lệnh t.right[91] sẽ thấy con ruà quay qua phải mỗi khi vẽ xong một vòng tròn. right[] cũng là một lệnh viết sẵn nằm trong thư viện của Python. Hoặc bạn cho trẻ thử thay range[100] thành range[200] xem sao.
CHO MỘT ÍT MÀU MÈ [COLOR]
Bây giờ bạn lấy lại chương trình XoanocVuong,py , sửa đổi lại như sau:
# SquareSpiral3.py - để vẽ một hình vuông xoắn ốc [square spiral] tô màu import turtle t = turtle.Pen[] t.pencolor["red"] for x in range[100]: t.forward[x] t.left[91]
pencolor [“ “] là lệnh của Python để con ruà vẽ màu. Màu gì sẽ để trong ngoặc đôi. Khi cho Run Module bạn sẽ có hình xoắn ốc vuông màu đỏ.
Bài tập:
Bạn cho trẻ đổi color thành blue, hay yellow, hay brown xem sao.
HÌNH XOẮN ỐC 4 MÀU
Muốn vậy ta sẽ sửa chương trình trên lại như sau rồi lưu nó lên diã với tên XoanocVuongBonMauLthực ra bạn muốn đặt tên gì tuỳ thích]
# ColorSquareSpiral - Để vẽ hình xoắn ốc vuông có 4 màu import turtle t = turtle.Pen[] colors = ["red", "yellow", "blue", "green"] for x in range[100]: t.pencolor[colors[x%4]] t.forward[x] t.left[91]
- Lệnh colors = [“red”, “yellow”, “blue”, “green”] cho ta một danh sách [list] 4 màu: đỏ, vàng, xanh dương, và xanh lá cây.
- Lệnh t.pencolor[colors[x%4]]. Ký hiệu % là modulo [mô đun] . Biến [variable] x thì cũng như trước, biến thiên từ 0 đến 99 vì range là 100. Còn [x%4] là cho Python biết mình dùng 4 màu đầu tiên trong danh sách màu [color list] đánh số từ 0 đến 3 và rồi xoay vòng [rotate] trở lại suốt danh sách ấy mỗi khi x thay đổi.
Sau khi Save và Run Module chương trình này bạn sẽ có một hình xoắn ốc vuông với 4 màu red, yellow, blue, green như sau:
THAY ĐỔI MÀU NỀN [BACKGROUND COLOR]
Thí dụ 1– Giả sử bạn muốn có xoắn ốc vòng tròn có 4 màu đỏ, vàng, xanh dương, xanh lá cây. Bạn viết lại chương trình như sau;
# ColorCircleSpiral - vẽ xoắn ốc tròn 4 màu nền đen import turtle t = turtle.Pen[] turtle.bgcolor["black"] colors = ["red", "yellow", "blue", "green"] for x in range[100]: t.pencolor[colors[x%4]] t.circle[x] t.left[91]
Lệnh turtle.bgcolor[“black”] cho ta màu nền đen. Sở dĩ đôi khi ta cần đổi màu
đen ở đây là để cho hình vẽ nổi bật không tiệp màu với màu nền.
Thí dụ 2: Giả sử bạn muốn có hình xoắn ốc vuông, có 4 màu và nền đen với range[200]:
# ColorSquareSpiral - Để vẽ hình xoắn ốc vuông có 4 màu, nền đen import turtle t = turtle.Pen[] turtle.bgcolor["black"] colors = ["red", "yellow", "blue", "green"] for x in range[200]: t.pencolor[colors[x%4]] t.forward[x] t.left[91]
Kết quả sau khi Run->Run Module