Lập trình với Minecraft: Dịch chuyển nhân vật tức thời

17/10/2018 - 11:58

Ở nhiệm vụ này, bạn sẽ học được cách các biến số hoạt động như thế nào bằng cách dịch chuyển tức thời nhân vật đến một nơi khác sử dụng các số nguyên.

Dịch chuyển nhân vật tức thời

Như hình dưới đây, nhân vật của bạn có một “vị trí” trong thế giới Minecraft, “vị trí” này được biểu diễn bằng 3 tọa độ: x, y và z. Trong đó, chiều cao là y; x và z chiều ngang trong mặt phẳng.

 

Tọa độ 3D

 

Nếu bạn đang sử dụng phiên bản Minecraft Raspberry Pi, vị trí của nhân vật được thể hiện ở 3 số nằm ở góc trái trên cùng của cửa sổ chơi. Nếu bạn sử dụng phiên bản máy tính, bạn có thể nhìn thấy vị trí tọa độ của nhân vật bằng cách ấn F3 và tọa độ sẽ hiện ra ở dòng đầu tiên đoạn 2 bên trái với tiêu đề là XYZ.

Di chuyển nhân vật và bạn sẽ thấy số tọa độ thay đổi. Tọa độ được cập nhật theo thời gian nhân vật di chuyển. Khá tuyệt, phải không? Nhưng đi xa thì sẽ tốn nhiều thời gian. Tại sao phải tốn thời gian đi bộ khi bạn có thể thay đổi vị trí trong nháy mắt bằng cách sử dụng Python? Hãy theo dõi cách chúng tôi làm nhé!

 

Vị trí nhân vật trong Minecraft: phiên bản Raspberry Pi

 

Vị trí của nhân vật trong Minecraft phiên bản máy tính

 

Sử dụng Minecraft phiên bản máy tính hoặc Raspberry Pi và làm theo các bước sau:

  1. Mở IDLE và ấn vào FILENew File (hoặc New Window). Lúc này bạn sẽ thấy một cửa sổ văn bản trống hiện ra. Nếu bạn dùng Raspberry Pi hoặc có nhiều hơn một phiên bản của Python được cài trong máy tính, thì hãy chắc rằng bạn có Python 3, chứ không phải 2.7.
  2. Khi cửa sổ mới xuất hiện, ấn FileSave As.
  3. Tạo thư mục mới “variables” (biến số) bên trong thư mục Minecraft Python.
  4. Mở thưu mục “variables” (biến số), đặt tên tệp là teleport.py, và ấn Save.

 

Cửa sổ văn bản IDLE

 

Khi bạn đã sử dụng văn bản IDLE, thêm 2 dòng lập trình sau vào đầu chương trình:

 

 

Những dòng lập trình này sẽ kết nối chương trình với Minecraft; bạn sẽ sử dụng chúng trong mỗi chương trình tương tác với Minecraft. Tiếp theo, tạo ra 3 biến số nguyên x, y, z.

Ví dụ: x = 10; y = 110; z = 12

Những biến số này thể hiện vị trí mà bạn muốn nhân vật di chuyển tức thời đến. Giờ hãy đặt biến số là 10, 110, và 12 như trên, rồi thêm dòng lập trình sau, và nhân vật sẽ được di chuyển tới đó:

 

 

Phần setTilePos() của chương trình là hàm số được lập trình trước và có thể sử dụng lại được. Hàm số setTilePos (x, y, z) khiến Minecraft thay đổi vị trí nhân vật. Phần giá trị trong dấu ngoặc đơn được gọi là tham số Bạn thêm những biến số vừa tạo ra vào hàm số dưới dạng tham số để hàm số có thể sử dụng giá trị của x, y, z khi chương trình chạy.

Cảnh báo:

Nếu bạn sử dụng phiên bản Raspberry Pi, đừng nhập giá trị lớn hơn 127 hoặc nhỏ hơn -127 cho biến số x và z. Thế giới Minecraft Pi rất nhỏ, và những số nào vượt quá giới hạn này sẽ đánh sập trò chơi.

Kết thúc thuật dịch chuyển tức thời:

Để dễ hiểu hơn, người chơi nên thêm những dòng chú thích. Chú thích rất có ích trong việc mô tả lập trình nhưng thường không được Python để ý. Nói cách khác, khi bạn chạy chương trình, Python đọc những dòng chú thích này mà không làm gì cả. Một chú thích nên được bắt đầu với dấu thăng (#). Chú thích mô tả từng bước của teleport.py. Viết chú thích vào lập trình của bạn là một thói quen tốt để bạn có thể nhớ chức năng của từng phần trong chương trình khi bạn xem lại.

 

Chương trình hoàn chỉnh trong cửa sổ văn bản IDLE

 

Giờ hãy làm theo những bước sau và bắt đầu chạy chương trình nhé!

  1. Mở Minecraft.
  2. Nếu bạn sử dụng Raspberry Pi, ấn Start GameCreate a New World. Nếu bạn sử dụng phiên bản máy tính của Minecraft, mở trò chơi bằng làm theo hướng dẫn cho Windows hoặc Mac.
  3. Sau khi trò chơi được mở ra, ấn ESC (hoặc TAB nếu bạn dùng Raspberry Pi) để nhả chuột. Bạn có thể di chuyển bên ngoài cửa sổ Minecraft hoặc kích đúp cửa sổ Minecraft để chọn lại trò chơi.
  4. Ấn vào cửa sổ văn bản IDLE có chứa chương trình teleport.py của bạn.
  5. Ấn RunRun Module hoặc ấn F5. Nếu bạn vẫn chưa lưu chương trình, IDLE sẽ luôn hỏi liệu bạn có muốn lưu trước khi chạy chương trình không. Ấn OK để lưu. Nếu bạn ấn Cancel, chương trình sẽ không chạy.

 

Cách để Minecraft và cửa sổ văn bản IDLE thông minh

 

Chú ý:

Nếu bạn chạy chương trình từ IDLE với phiên bản Raspberry Pi, cửa sổ hội thoại hỏi liệu bạn có muốn lưu chương trình sẽ hiện ra nhưng bị ẩn sau cửa sổ của Minecraft. Nếu bạn nghĩ IDLE bị đơ, có lẽ chỉ là vì cửa sổ hội thoại đó bị ẩn mất. Chỉ cần thu nhỏ cửa sổ Minecraft và ấn OK ở hội thoại IDLE. Sau khi ấn OK, phóng to cửa sổ Minecraft lên.

Rất tốt! Chương trình giờ sẽ chạy được ngon lành và nhân vật của bạn sẽ được dịch chuyển tức thời theo đúng tọa độ (10, 110, 12). Không phải thế giới Minecraft của ai cũng giống nhau, vì vậy bạn sẽ nhìn thấy nhiều điểm khác biệt khi chạy chương trình.

 

MỤC TIÊU THƯỞNG: NHẢY XUNG QUANH

Bạn nghĩ mình đã quen với việc dịch chuyển tức thời chưa? Thay x, y, z bằng những số nguyên khác để di chuyển nhận của mình đến những nơi khác! Và hãy thử cả những số nguyên âm nữa nhé!

Số float

Không phải số nào cũng là số nguyên. Số thập phân cũng được sử dụng để thể hiện những giá trị mà những số nguyên không làm được. Ví dụ, bạn có nửa quả táo (0.5). Những số thập phân này được gọi là float. Đây là một lạo dữu liệu khác mà Python dùng. Số float được dùng thay cho số nguyên khi bạn muốn chính xác hơn. Số float cũng có thể hiện số nguyên (như là 3.0), nhưng số nguyên không thể thể hiện số thập phân.

Bạn có thể tinh ý nhìn ra rằng vị trí tọa độ của bạn có bao gồm số thập phân, điều đó có nghĩa rằng chúng là số float!

Trong Python bạn thông báo số thập phân như cách bạn thông báo số nguyên. Ví dụ, nếu x là 1.34, thì bạn sẽ viết như sau:

>>> x = 1.34

Để tạo ra số float âm, đặt dấu (-) trước giá trị:

>>> x = -1.34

 

Trong bài tiếp theo, bạn sẽ được học cách kiểm soát thuật dịch chuyển tức thời nhiều hơn bằng cách sử dụng số float để đưa nhân vật đến địa điểm chính xác.