Tại sao Minecraft báo "Quá đắt!" — và thứ tự dùng cái đe để tránh nó
Phí phạt công việc trước đó tăng gấp đôi mỗi khi bạn dùng cái đe. Đây là quy tắc đằng sau nó, và cách sắp xếp các lần kết hợp để một bộ phù phép đầy đủ không bao giờ chạm tới giới hạn 40 cấp.
Mỗi lần kết hợp trên cái đe sẽ đóng một bộ đếm ẩn lên vật phẩm, gọi là phí phạt công việc trước đó (prior work penalty). Nó bắt đầu từ 0, trở thành 1 sau lần kết hợp đầu tiên, sau đó là 3, 7, 15, 31 — tăng gấp đôi và cộng thêm một mỗi lần. Phí phạt đó được cộng vào toàn bộ chi phí cấp độ, đó là lý do tại sao một thanh kiếm có giá 5 cấp vào thứ Hai lại có giá 35 cấp vào thứ Sáu.
Vanilla Java từ chối bất kỳ lần kết hợp nào có giá trên 39 cấp với Too Expensive!. Vì vậy, mục tiêu không phải là "làm cho mỗi bước rẻ" — mà là giữ cho cây kết hợp nông.
Quy tắc thực sự quan trọng
Kết hợp hai vật phẩm sẽ cộng phí phạt của chúng lại với nhau rồi tăng lên. Hai quyển sách mới (phí phạt 0) được hợp nhất thành một quyển sách sẽ cho ra một quyển sách có phí phạt 1. Hợp nhất quyển sách đó vào thanh kiếm của bạn và thanh kiếm sẽ mang tổng phí phạt.
Vì vậy, cách rẻ nhất là một cây nhị phân cân bằng (balanced binary tree), không phải một chuỗi:
bad sword + book1 + book2 + book3 + book4 (penalty 1, 3, 7, 15 …)
good (book1+book2) + (book3+book4) -> sword (penalty stays low on both sides)
Trình tự thực tế cho một công cụ được phù phép đầy đủ
- Ghép các quyển sách lại với nhau trước khi chúng chạm vào công cụ.
- Hợp nhất các cặp thành hai "siêu sách".
- Hợp nhất hai siêu sách đó thành một.
- Áp dụng quyển sách duy nhất đó vào công cụ mới, chưa bao giờ được dùng cái đe.
Đó là bốn lần kết hợp thay vì năm, và bản thân công cụ chỉ bị phạt một lần.
Những trường hợp thứ tự vẫn gây khó khăn
- Sửa chữa cũng tốn một lần kết hợp. Tu sửa (Mending) trên công cụ sớm có nghĩa là mỗi lần sửa chữa đều
miễn phí, nhưng sửa chữa trước khi có Tu sửa sẽ làm tăng phí phạt.
- Đổi tên cũng tính. Đặt tên vật phẩm vào bất kỳ thời điểm nào cũng cộng vào cùng một bộ đếm — hãy đặt tên
cuối cùng, hoặc chấp nhận chi phí.
- Bedrock khác biệt. Bedrock giới hạn hiển thị ở
Too Expensive!một cách khác và
cho phép một số lần kết hợp mà Java từ chối; phép tính dưới đây là của Java Edition.
Thay vì làm điều này trên giấy, hãy đặt vật phẩm và các phù phép vào Công cụ tính phù phép — nó sẽ tìm kiếm các thứ tự kết hợp và trả về thứ tự rẻ nhất, với chi phí cấp độ chính xác ở mỗi bước.