Viết mã lắp ráp nhỏ vào lưới CPU để chúng trao đổi giá trị với nhau, biến đổi luồng đầu vào thành mục tiêu mà không gây tắc nghẽn.
Cách chơi
Bạn lập trình một lưới máy tính siêu nhỏ. Mỗi nút chạy một danh sách lệnh ngắn và chỉ có thể giao tiếp với các nút liền kề, truyền giá trị qua các cổng — vì vậy, một con số cần di chuyển qua lưới phải được chuyển tiếp thủ công, từ nút này sang nút khác.
Mỗi nút có một bộ tích lũy và một vài lệnh: di chuyển giá trị, cộng, trừ, nhảy.
Một nút có thể đọc từ hoặc ghi vào nút phía trên, dưới, trái hoặc phải, hoặc vào các luồng đầu vào và đầu ra.
Các cổng bị chặn. Một nút ghi sang bên phải sẽ chỉ chờ cho đến khi nút bên phải của nó đọc từ bên trái.
Điều đó có nghĩa là hai nút phải đồng bộ về thời gian, chứ không chỉ về giá trị.
Nếu một chu kỳ trôi qua mà không ai tiến triển và vẫn có người đang chờ, lưới sẽ bị tắc nghẽn.
Bài toán được giải khi luồng đầu ra khớp với mục tiêu mà cấp độ yêu cầu.
Điều khiển
Máy tính để bàn: nhập mã vào ô văn bản của từng nút, chọn cấp độ từ menu thả xuống, sau đó nhấn Chạy
Điện thoại & máy tính bảng: hoạt động bình thường, nhưng rất khuyến khích sử dụng bàn phím ngoài để viết mã
Chế độ chơi
Hàng ngày: một bài đố chung được tạo từ ngày hôm nay
Luyện tập: chuyển qua các đầu vào ngẫu nhiên mới bằng nút Mới
Mẹo & chiến lược
Thiết kế tuyến đường trước khi tính toán. Phần lớn các lỗi là do giá trị không thể đến được nơi cần, chứ không phải do phép tính sai.
Hai nút chờ nhau là nguyên nhân kinh điển gây tắc nghẽn. Nếu cả hai đều ghi về phía nhau trước khi bất kỳ ai đọc, cả hai sẽ không bao giờ di chuyển.
Giữ cho lưu lượng di chuyển theo một chiều khi có thể. Một lưới có hướng nhất quán dễ suy luận hơn nhiều so với một lưới có các giá trị giao nhau.
Sử dụng một nút như một bộ chuyển tiếp thuần túy khi cần. Việc chỉ truyền giá trị đi là một công việc hợp lệ và thường rất cần thiết.
Đọc nút bị chặn, chứ không phải câu trả lời sai. Khi đầu ra bị dừng, điều hữu ích là xác định nút nào đang chờ và chờ ai.
Những gì bạn sẽ học
Node Network là một trò chơi đố lập trình song song về việc truyền tin và tránh tắc nghẽn trên một lưới bộ xử lý.
Kỹ năng: lập trình song song và đồng thời, truyền tin, tránh tắc nghẽn
Phù hợp nhất: khoảng lớp 9–12 (tuổi 14+)
Dành cho phụ huynh & giáo viên: lập trình đồng thời và tắc nghẽn, thực hành trực tiếp.
Nguồn gốc
Một lưới những chiếc máy tính rất nhỏ, mỗi chiếc chạy danh sách lệnh ngắn của riêng mình và chỉ có thể nói chuyện với những láng giềng ngay bên cạnh, là TIS-100 — Zachtronics, tháng 7 năm 2015 — trò chơi đặt các câu đố của nó trên một cỗ máy hư hỏng giả tưởng của thập niên 1970.
Ràng buộc được dạy là có thật và là trung tâm của tính toán song song: không có bộ nhớ chung, một giá trị cần băng qua lưới phải được chuyển tiếp bằng tay, từng nút một, thông qua truyền thông điệp.
Và chuyển tiếp bằng tay là cách bạn gặp khóa chết — hai nút cùng chờ nhau, cả hai dừng lại mãi mãi. Đó là một lỗi không thể thực sự giải thích trên bảng trắng, vì toàn bộ cái khó là mỗi nút riêng lẻ đều đang hoạt động đúng.
Về Node Network
Node Network là một trò chơi đố lập trình song song về việc truyền tin và tránh tắc nghẽn trên một lưới bộ xử lý. Đây là một trò chơi trình duyệt gốc, miễn phí, được phát triển nội bộ cho PlayPendium.