Page 188 - Em Học Python
P. 188

VẼ NGÔI SAO CÓ MÀU



                       Ở ví dụ cuối cùng này, ta sẽ tô màu cho ngôi sao đã vẽ lúc trước. Code ban đầu trông

               như thế này:


                         ​
                       ​
                   ​
                                ​
               for x in range(1, 19):
                          ​
                   t.forward(100)
                       ​
                    ​
                   if x % 2 == 0:
                       t.left(175)
                    ​
                   else:
                         ​
                       t.left(225)
                       Giờ ta sẽ viết hàm  mystar. Ta cũng sẽ dùng lệnh  if từ hàm  mysquare và thêm tham
                                                 ​
                                                                                             ​
                                                                           ​
               số  size vào.
                       ​
                   ​
                    ​
               >>> def mystar(size, filled):
                                ​
                         ​
                        ​
                                         ​
                                             ​
                         ​
                           ​
                       if filled == True:
                           t.begin_fill()
                       for x in range(1, 19):
                             ​
                         ​
                                    ​
                                          ​
                                ​
                                   ​
                           t.forward(size)
                              ​
                                ​
                           if x % 2 == 0:
                               t.left(175)
                              ​
                                   ​
                           else:
                               t.left(225)
                       if filled == True:
                                         ​
                         ​
                           ​
                                             ​
                           t.end_fill()
                       Ở hai dòng đầu tiên của hàm, ta kiểm tra xem  filled có phải là  True không, nếu
                                                                                             ​
                                                                             ​
               đúng ta sẽ bắt đầu đổ màu. Ta kiểm tra thêm một lần nữa ở hai dòng cuối, và nếu  filled là
                                                                                                          ​
               True ta sẽ dừng đổ màu. Đồng thời, cũng như với hàm  mysquare, ta thêm kích thước vào
                                                                                ​
                    ​
               cho ngôi sao với tham số  size và dùng giá trị đó khi gọi  t.forward.
                                              ​
                                                                                    ​
                       Giờ tô màu vàng (90 phần trăm đỏ, 75 phần trăm xanh lá và 0 phần trăm xanh
               dương) rồi gọi hàm lại.
               >>> t.color(0.9, 0.75, 0)
                   ​
                   ​
               >>> mystar(120, True)
                                       ​
                                   ​
               162          Chương 11
                  ​
   183   184   185   186   187   188   189   190   191   192   193