Hướng dẫn từng bước: Sửa lỗi trong dịch chuyển tức thời

24/10/2018 - 9:18

Nhiệm vụ #4: Sửa lỗi trong dịch chuyển tức thời

Ở nhiệm vụ này, bạn sẽ được hướng dẫn cách “gỡ rối” 2 chương trình. Chương trình đầu tiên cũng giống như teleport.py, nhưng phiên bản này có 5 lỗi. Mở tệp mới trong cửa sổ văn bản IDLE, sao chép chương trình mới và lưu nó thành teleportBug1.py.

 

Một phiên bản lỗi của chương trình dịch chuyển tức thời

 

Để sửa chương trình này, hãy làm theo những hướng dẫn sau:

  1. Khởi động py.
  2. Khi bạn nhận báo lỗi, đọc dòng cuối cùng để biết lỗi là gì.
  3. Sửa lỗi và khởi động lại chương trình.
  4. Sửa lỗi cho đến khi chương trình dịch chuyển nhân vật tới một vị trí mới.

 

Gợi ý:

Đừng quên kiểm tra lại hàm setTilePos()!

Hãy thử “gỡ rối” một chương trình khác. Chương trình teleport.py chạy, nhưng vì một lý do nào đó mà nhân vật không dịch chuyển đến một vị trí nhất định. Sao chép chương trình này vào tệp IDLE và lưu thành teleportBug2.py.

 

Các lỗi trong chương trình dịch chuyển tức thời

 

Không như teleportBug1, bạn sẽ không nhận được thông tin báo lỗi nào khi chạy chương trình. Để chữa lỗi này, bạn phải đọc lại lập trình cho đến khi tìm ra lỗi. Chương trình sẽ dịch chuyển nhân vật đến vị trí (10, 110, -12). Khởi động chương trình và kiểm tra tọa độ mà nhân vật dịch chuyển đến. Điều này có thể giúp bạn “gỡ rối” được chương trình và xác định được vấn đề.

Khi bạn đã xử lý xong tất cả những lỗi có trong 2 chương trình này, thêm chú ý để giải thích về vấn đề. Viết về lỗi thường gặp sẽ giúp bạn với những lỗi khác trong tương lai.

 

Bạn đã học được những gì?

Chức mừng! Bạn đã viết được những chương trình Python đầu tiên để điều khiển nhân vật Minecraft thông qua các biến số và hàm số. Bạn đã được học về 2 loại dữ liệu (số nguyên và số thập phân), kiểm soát thời gian, và chữa lỗi chương trình. Bạn cũng đã dùng 2 hàm đặc biệt cho Minecraft Python API: setPos()setTilePos().

Trong những bài hướng dẫn tiếp theo, bạn sẽ được học được cách xây Minecraft nhanh, sử dụng hàm số và thuật toán để xếp “gạch”!