Làm thế nào để bạn di chuyển một con rùa ngẫu nhiên trong python?
Rùa là một mô-đun sẵn có trong python. Nó cung cấp bản vẽ bằng màn hình (bìa cứng) và con rùa (bút). Để vẽ một cái gì đó trên màn hình, chúng ta cần di chuyển con rùa. Để di chuyển rùa, có một số chức năng tôi. tiến (), lùi (), v.v. Trong dự án này, bạn sẽ mô phỏng bước đi ngẫu nhiên. Tạo năm con rùa trở lên và đưa chúng vào Danh sách Python. Trong mỗi lần lặp lại, mỗi con rùa trong danh sách chọn một hướng ngẫu nhiên và di chuyển về phía trước một số bước không đổi Mã nguồn
20 người đi bộ ngẫu nhiên với danh sách
Thẻ. hoạt hình, danh sách, ngẫu nhiên Giả sử chúng ta muốn giải trí bằng cách xem một con rùa lang thang ngẫu nhiên bên trong màn hình. Khi chúng tôi chạy chương trình, chúng tôi muốn con rùa và chương trình hoạt động theo cách sau
Lưu ý rằng chúng ta không thể dự đoán con rùa sẽ cần tung đồng xu bao nhiêu lần trước khi nó đi ra khỏi màn hình, vì vậy chúng ta không thể sử dụng vòng lặp for trong trường hợp này. Trên thực tế, mặc dù rất khó xảy ra, nhưng chương trình này có thể không bao giờ kết thúc, đó là lý do tại sao chúng tôi gọi đây là phép lặp vô thời hạn Vì vậy, dựa trên mô tả vấn đề ở trên, chúng ta có thể phác thảo một chương trình như sau create a window and a turtle while the turtle is still in the window: generate a random number between 0 and 1 if the number == 0 (heads): turn left else: turn right move the turtle forward 50 Bây giờ, có lẽ điều duy nhất có vẻ hơi khó hiểu với bạn là phần về việc liệu con rùa có còn trên màn hình hay không. Nhưng đây là cái hay của lập trình, chúng ta có thể trì hoãn những thứ khó khăn và làm cho một cái gì đó trong chương trình của chúng ta hoạt động ngay lập tức. Cách chúng ta sẽ làm điều này là ủy thác công việc quyết định xem con rùa có còn ở trong màn hình hay không cho một hàm boolean. Hãy gọi hàm boolean này là Bây giờ chúng tôi có một chương trình đang hoạt động để vẽ bước đi ngẫu nhiên của chú rùa có 90% cơ hội ở lại trên màn hình. Chúng tôi đang ở một vị trí thuận lợi, vì phần lớn chương trình của chúng tôi đang hoạt động và chúng tôi có thể tập trung vào phần công việc tiếp theo – quyết định xem con rùa có nằm trong ranh giới màn hình hay không Chúng ta có thể tìm ra chiều rộng và chiều cao của màn hình bằng cách sử dụng các phương thức 0 nếu con rùa ở bên ngoài hoặc True nếu con rùa ở bên trongKhi chúng tôi đã tính toán ranh giới của mình, chúng tôi có thể nhận được vị trí hiện tại của con rùa và sau đó sử dụng các điều kiện để quyết định. Đây là một thực hiện def isInScreen(wn,t): leftBound = -(wn.window_width() / 2) rightBound = wn.window_width() / 2 topBound = wn.window_height() / 2 bottomBound = -(wn.window_height() / 2) turtleX = t.xcor() turtleY = t.ycor() stillIn = True if turtleX > rightBound or turtleX < leftBound: stillIn = False if turtleY > topBound or turtleY < bottomBound: stillIn = False return stillIn Có rất nhiều cách mà điều kiện có thể được viết. Trong trường hợp này, chúng tôi đã cung cấp cho 2 giá trị mặc định của True và sử dụng hai câu lệnh def isInScreen(wn,t): leftBound = -(wn.window_width() / 2) rightBound = wn.window_width() / 2 topBound = wn.window_height() / 2 bottomBound = -(wn.window_height() / 2) turtleX = t.xcor() turtleY = t.ycor() stillIn = True if turtleX > rightBound or turtleX < leftBound: stillIn = False if turtleY > topBound or turtleY < bottomBound: stillIn = False return stillIn0 để có thể đặt giá trị thành 0. Bạn có thể viết lại phần này để sử dụng các điều kiện lồng nhau hoặc câu lệnh def isInScreen(wn,t): leftBound = -(wn.window_width() / 2) rightBound = wn.window_width() / 2 topBound = wn.window_height() / 2 bottomBound = -(wn.window_height() / 2) turtleX = t.xcor() turtleY = t.ycor() stillIn = True if turtleX > rightBound or turtleX < leftBound: stillIn = False if turtleY > topBound or turtleY < bottomBound: stillIn = False return stillIn2 và đặt 2 thành True trong một mệnh đề khácĐây là phiên bản đầy đủ của chương trình đi bộ ngẫu nhiên của chúng tôi Chúng ta có thể viết chương trình này mà không cần sử dụng hàm boolean. Bạn có thể muốn thử viết lại nó bằng cách sử dụng một điều kiện phức tạp trong câu lệnh while. Tuy nhiên, sử dụng hàm boolean giúp chương trình dễ đọc và dễ hiểu hơn nhiều. Nó cũng cung cấp cho chúng tôi một công cụ khác để sử dụng nếu đây là một chương trình lớn hơn và chúng tôi cần kiểm tra xem liệu con rùa có còn ở trên màn hình trong một phần khác của chương trình hay không. Một ưu điểm khác là nếu bạn cần viết một chương trình tương tự, bạn có thể tự tin sử dụng lại chức năng này vào lần tiếp theo khi bạn cần. Chia chương trình này thành một vài phần là một ví dụ khác về phân rã chức năng Kiểm tra việc hiểu của bạn Loại vòng lặp nào có thể được sử dụng để thực hiện phép lặp sau. Bạn chọn ngẫu nhiên một số nguyên dương rồi in các số từ 1 đến và bao gồm cả số nguyên đã chọn |