PlayPendium
About this game ↓
PlayPendium · About · Contact · Privacy · Terms · Cookies · Accessibility · Copyright · Browse all games · Classic arcade games · © 2026

Claw Compiler

Điều khiển cần cẩu nhà kho bằng mã, xếp lại các thùng màu trong giới hạn lệnh chặt đến mức buộc phải dùng đệ quy.

Cách chơi

Xây dựng chương trình từ các lệnh cần cẩu (di chuyển sang trái và phải, gắp, thả và điều kiện màu) để sắp xếp lại các ngăn thùng thành chồng mục tiêu. Giới hạn lệnh được cố tình đặt chặt, vì vậy bạn sẽ dựa vào lệnh Call, lệnh này chạy lại toàn bộ chương trình từ đầu; một điều kiện không thỏa sẽ trở thành trường hợp cơ bản dừng đệ quy. Có mười màn chơi được thiết kế thủ công, từ một thùng đỏ duy nhất đến một tòa tháp sáu thùng, và tám màn trong số đó không thể giải nếu không có Call.

Ví dụ minh họa

Tower of Three (Tháp ba thùng): ba thùng đỏ nằm ở ngăn 1 và phải được chuyển sang ngăn 2, và bạn chỉ được dùng sáu lệnh. Viết ra đầy đủ từng bước, mỗi thùng cần Grab, Right, Drop và Left, tức mười một lệnh cho ba thùng ngay cả khi đã bỏ lệnh Left cuối cùng. Sáu lệnh là không đủ.

Vậy hãy viết một chuyến đi và để nó lặp lại: Grab, If-held đỏ, Right, Drop, Left, Call. Đó là sáu lệnh. Cần cẩu gắp một thùng, kiểm tra xem có đang giữ thùng đỏ không, mang nó sang, đặt xuống, quay lại và gọi lại toàn bộ chương trình. Ở lần gọi thứ tư, ngăn 1 đã trống, Grab không gắp được gì, phép kiểm tra If-held đỏ thất bại và chương trình dừng. Phép kiểm tra thất bại đó chính là trường hợp cơ bản.

Đổi If-held đỏ thành If-held xanh lam và cùng sáu lệnh đó cũng vượt qua màn bốn thùng và tòa tháp sáu thùng, vì quy trình không bao giờ đếm thùng; nó cứ tiếp tục cho đến khi không còn thùng nào. Đó chính là ý nghĩa của đệ quy: chương trình mô tả một bước và một quy tắc dừng, còn dữ liệu đầu vào quyết định nó chạy bao nhiêu lần.

Điều khiển
Mẹo & chiến lược
Bạn sẽ học được gì

Claw Compiler dạy đệ quy thông qua cần cẩu xếp thùng và ngân sách di chuyển nghiêm ngặt, biến ý tưởng khó thành cụ thể.

Nguồn gốc

Các lệnh cần cẩu — di chuyển trái phải, gắp, thả, và điều kiện theo màu — là một hợp ngữ tối giản gắn với một thân thể vật lý.

Dạy lập trình thông qua một robot nhỏ trong một thế giới nhỏ bắt nguồn từ Karel the Robot, ngôn ngữ cho người mới bắt đầu mà Richard Pattis giới thiệu trong một cuốn sách năm 1981 và dùng trong các khóa học của ông tại Stanford. Các trò chơi đã tiếp nhận ý tưởng này: Lightbot dạy vòng lặp và thủ tục bằng cách lập trình cho robot đi qua mê cung, còn tổ tiên gần nhất của Claw Compiler là Cargo-Bot, một trò giải đố năm 2012 trên iPad, trong đó bạn dạy robot di chuyển thùng hàng. Two Lives Left đã cùng Rui Viana xây dựng trò này từ bản mẫu của anh trong ứng dụng lập trình trên iPad của họ là Codea, và quảng bá nó là trò chơi đầu tiên được lập trình hoàn toàn trên iPad.

Nhiệm vụ, sắp xếp lại các ngăn thùng hàng thành một chồng mục tiêu, là sắp xếp được thực hiện bởi một cỗ máy chỉ có thể giữ đúng một thứ mỗi lúc. Giới hạn một kẹp gắp đó tự nó là một bài học. Đó là cùng ràng buộc mà một thanh ghi áp đặt, và đó là lý do sắp xếp thực sự cần một chỗ để đặt đồ xuống — phát hiện ra bạn cần một ngăn trống dự phòng là phát hiện ra ý tưởng lưu trữ tạm thời.

Vì Call luôn là lệnh cuối cùng, mọi chương trình ở đây đều là đệ quy đuôi: lời gọi chính nó là việc cuối cùng chương trình làm. Nhiều bản cài đặt ngôn ngữ biến một lời gọi đuôi thành một lệnh nhảy đơn giản về đầu, đó là lý do cùng một chương trình có thể được đọc như đệ quy hoặc như vòng lặp. Nhận ra hai điều đó là một ý tưởng là phần lớn của việc hiểu đệ quy.

Giới thiệu về Claw Compiler

Claw Compiler là một trò chơi trình duyệt nguyên bản, miễn phí được làm cho PlayPendium: một ngôn ngữ cần cẩu bảy lệnh, mười màn chơi có giới hạn khiến đệ quy trở thành điều bắt buộc chứ không phải tùy chọn, một màn hằng ngày chung và một chế độ luyện tập phát các màn còn lại.

Duyệt tất cả các trò chơi →