Gần đây (một vài năm trở lại đây) một số tiếng vang trên các trang web lập trình về việc triển khai Tetris trong 140 Byte . ...
Nó chỉ ra rằng mặc dù nó nhỏ, nhưng nó là một phiên bản đơn giản của Tetris, và thậm chí không phải là một thực hiện hoàn chỉnh. Chỉ có chức năng logic lõi phù hợp với 140 byte Javascript. Để thực sự chạy nó, bạn cần thêm ~ 840 ký tự HTML.
Chúng ta có thể làm tốt hơn!
Thử thách này là triển khai một phiên bản hoàn chỉnh của "Binary Tetris" trong càng ít tweet càng tốt.
Quy tắc Tetris nhị phân:
- Chương trình phải hiển thị một sân chơi chứa ít nhất 5 cột và 6 hàng ô.
- Bất kỳ phương pháp hiển thị nào cũng có thể được sử dụng, miễn là các khối và các cạnh của trường được đánh dấu rõ ràng.
- Phải có ít nhất hai loại khối:
#
và##
. Hỗ trợ khối bổ sung như###
hoặc các khối góc có hình chữ L sẽ được tôi nâng cấp: P và trò chơi tetris nhị phân hoàn chỉnh nhất (hầu hết các khối như tính năng gốc và xoay) sẽ giành được hạnh phúc của tôi và có thể kiếm được 50 rep. - Các khối mới được thêm vào trường ở hàng trên cùng và một ô khối phải chiếm cột trung tâm.
- Các khối giảm dần về phía hàng dưới cùng với một tỷ lệ cố định. Các khối phải hạ xuống ngay cả khi không có đầu vào của người dùng.
- Khi các khối chạm vào đáy của trường hoặc một khối thấp hơn, chúng sẽ ngừng rơi và được cố định tại chỗ. Một khối mới được thêm vào.
- Khi tất cả các cột trong hàng được lấp đầy bằng các khối, hàng sẽ được làm trống và tất cả các khối cố định ở trên thả xuống một hàng.
- Chương trình phải đáp ứng với phím nhấn. Phải có 3 phím duy nhất thực hiện các chức năng sau
- thay đổi khối hiện tại trái 1 cột
- thay đổi khối hiện tại bên phải 1 cột
- thay đổi khối hiện tại xuống 1 hàng
- Mỗi tweet chỉ có thể có 140 ký tự. Sử dụng các ký tự nhiều byte có thể được đặt trong các tweet được cho phép.
Các quy tắc cho những gì có thể trong một tweet là đơn giản. Nếu bạn có thể tweet nó, bạn có thể sử dụng nó.
Các ngôn ngữ được giải thích tuân theo các quy tắc tương tự. Mỗi phần phải theo thông số kỹ thuật. Miễn là không có lỗi thời gian chạy xảy ra (và phần còn lại là hợp lệ theo thông số kỹ thuật) câu trả lời của bạn là Quy tắc chơi gôn hợp lệ :
Bởi vì việc triển khai ban đầu là "có thể tweet", thử thách này yêu cầu tương tự. Bài dự thi phải có thể được truyền dưới dạng một loạt các tweet (dòng từ 140 ký tự trở xuống).Dòng tweet đầu tiên phải chứa tên của trình biên dịch / trình thông dịch, tên của chương trình và bất kỳ đối số dòng lệnh nào
- nó sẽ được lưu dưới dạng tệp "P0"
- N tweet sau đây phải chứa chương trình dưới dạng một loạt các dòng.
- Mỗi tweet sẽ được lưu trữ trong một tệp có tên T <n>, trong đó n là 1..N
- Mỗi dòng sẽ được thêm vào các dòng trước đó và được biên dịch hoặc giải thích. Nó phải tạo ra một tệp đối tượng hoặc chương trình hợp lệ.
- Chương trình không cần phải hoạt động cho đến khi dòng cuối cùng được thêm vào.
Chương trình sẽ được chạy theo cách sau (pseudo-bash)
interp,prog,args = split P0 /\s/ touch $prog for file in ./T* do cat $prog file > $prog $interp $prog $args die("FAIL") if $? #detect error done
Trình thông dịch phải là một chương trình thực thi thường có sẵn mà chưa triển khai Tetris.
Ghi điểm :
Tweets ít nhất, bao gồm P0. Các mối quan hệ bị phá vỡ bởi số lượng ký tự dự phòng lớn nhất (tweets 140 * num - tổng số ký tự).
Bài dự thi
chrome a.htm
<html><div id="output"></div></html>
<script>cool java script here</script>
Điểm = 3 (334 dự phòng)
cc a.c ;a.out
main(){/*cool prog here*/}
Điểm = 2 (dự phòng là 241)
tetris
Điểm = 1 (134 phụ tùng) nếu đó là hợp pháp, nhưng không
Cảm tạ
Tôi được phép đăng bài này bởi sự đồng ý của Ashelly ở đây