EDIT: Gần đây, câu hỏi của tôi đã được đề xuất như là một bản sao của 2048 Bot Challenge . Tôi muốn nhấn mạnh rằng câu hỏi này khác với câu hỏi đó và sẽ yêu cầu các câu trả lời phải được suy nghĩ khác với câu hỏi đó. 2048 Bot Challenge đã yêu cầu người dùng tạo một bot và nó sẽ được chạy trong một giờ, với điểm số cao nhất là điểm số của người dùng. Ngoài ra, nó có giới hạn là 555 byte. Thử thách của tôi chạy mã ít thường xuyên hơn, chỉ 3 lần. Điểm của bạn được tính bằng cách sử dụng điểm trung bình của ba lần đó và chia cho chiều dài ký tự của mã golf của bạn. Câu hỏi của tôi khuyến khích các mục trở nên "thông minh hơn", và không cố gắng và đạt điểm cao nhất bằng vũ lực.
-
EDIT: Phương thức get đã được thay đổi thành getTile, để tránh xung đột với từ khóa JS get. Ngoài ra, một phần điểm cao đã được thêm vào.
Gần đây, tôi đã tạo một trang web cho phép trò chơi phổ biến 2048 được kiểm soát bằng JavaScript. Trang web của tôi được liên kết ở đây:
http://thatcoolidea.com / 2048
Làm sao:
Một biên tập viên Ace được đặt ở trên bảng. Bạn đặt mã trong đó, mã này được chạy một lần cứ sau 250 ms, hoặc 4 lần mỗi giây. Đây được gọi là một chu kỳ.
Sử dụng các phương pháp sau để kiểm soát bảng. Bạn không thể sử dụng các phím mũi tên.
up(); //move up
down(); //move down
left(); //move left
right(); //move right
move(integer); //integer is a direction. 0:up,1:right,2:down,3:left
getTile(y,x); //gets the value of the tile in position y,x on the board. See diagram
Các biến sau đây được xác định để thuận tiện cho bạn:
eother //boolean, alternates every cycle
frozen //integer, counts how many cycles the board has remained stationary
lastDir //integer, indicates the last direction that was tried to move in
//uses same format as the move method above.
startup //boolean, will always be true when the game first starts
//you can change it as you wish
a
b //a b and c are all persistant variables, they do not change each cycle
c //any other variables defined in the cycle will be reset every time
Quy tắc:
- Không ngẫu nhiên, bạn phải sử dụng logic. (Vâng, tôi biết mã ví dụ sử dụng ngẫu nhiên.)
- Không móc vào các chức năng trò chơi hoặc gian lận theo những cách khác
- Nói chung, cố gắng chỉ gọi một phương thức di chuyển trong mỗi chu kỳ. Không sao nếu bạn sử dụng nhiều hơn, nhưng nó vặn với hình ảnh động
- Hội đồng quản trị phải bắt đầu trong trạng thái ngẫu nhiên, không sửa đổi trạng thái trước trò chơi
- Bạn phải cung cấp cả phiên bản mã không nén và đánh gôn trong bài viết của mình.
- Bạn phải cung cấp một liên kết đến trang web đã tải phiên bản mã không nén của mã của bạn, được phân phối qua PasteBin (Ví dụ: ... thatcoolidea.com/2048?i=pH18GWtu tải mã ví dụ.)
Ghi điểm:
- Mã của bạn sẽ được ghi điểm bởi tôi.
- Phần A trong số điểm của bạn là trung bình 3 lần chạy mã, làm tròn xuống.
- Phần B của điểm số của bạn là độ dài ký tự của mã golf của bạn.
- Điểm cuối cùng của bạn là Phần A chia cho Phần B
Người chiến thắng sẽ có mã của họ bất tử làm mã ví dụ trên trang web, nếu họ chọn và thừa nhận trong một nhận xét trong mã.
Chúc may mắn! Hy vọng bạn thích thử thách.
Điểm cao hiện tại 225,22 - Tủ đông - người dùng3217109