Theo lời khuyên của cô Pac-Man, người lo lắng về việc anh ta bị béo phì, Pac-Man đã quyết định theo dõi lượng Pac-Dot hàng ngày của anh ta. Giúp anh ta đếm số lượng Pac-Dots trên một con đường nhất định trong mê cung!
Mê cung
Để giúp bạn xây dựng mã hóa mê cung của riêng mình, bạn có thể lấy một số dữ liệu thô tại đây .
Hành trình của Pac-Man
Trong bối cảnh của thách thức này, các quy tắc sau được áp dụng:
- Đầu tiên, tin tốt: những con ma không có ở đó.
- Pac-Man luôn bắt đầu cuộc đua của mình ở vị trí được chỉ ra trong bức ảnh trên, hướng về phía Đông. Không có Pac-Dot ở vị trí bắt đầu.
- Chừng nào anh ta còn đi theo một con đường thẳng, anh ta tiếp tục tiến đến những ô vuông tiếp theo.
- Khi anh ta gặp một ngã rẽ 90 ° mà không có bất kỳ con đường có sẵn nào khác (hình vuông màu cam trên bản đồ), anh ta tự động và quay đầu một cách có hệ thống.
- Khi anh ta gặp một ngã ba có sẵn một vài con đường (hình vuông màu xanh lá cây trên bản đồ), anh ta có thể tiếp tục đi về cùng một hướng - nếu có thể - hoặc chọn một hướng khác (bao gồm thực hiện quay đầu xe).
- Khi Pac-Man đi qua một trong những lối thoát ở phía giữa bên trái hoặc giữa bên phải của mê cung, anh ta ngay lập tức xuất hiện ở phía đối diện.
- Pac-Man ăn tất cả Pac-Dots trên con đường anh ấy đi theo. Khi một Pac-Dot đã được ăn, nó sẽ bị xóa khỏi mê cung.
Các thách thức
Đầu vào
Bạn sẽ nhận được một chuỗi mô tả hành vi của Pac-Man trên các điểm nối mà anh ấy sẽ đạt được. Chuỗi này sẽ được tạo thành từ các ký tự sau:
L
: rẽ 90 ° sang tráiR
: rẽ 90 ° sang phảiF
: đi tiếp (không thay đổi hướng)B
: đi ngược lại (quay đầu xe)
Khi tất cả các nhân vật đã được xử lý, Pac-Man dừng lại ở ngã ba tiếp theo mà anh gặp.
Đầu ra
Bạn phải in hoặc xuất số lượng Pac-Dots đã ăn dọc theo đường dẫn đầu vào.
Quy tắc
- Bạn có thể viết một chương trình đầy đủ hoặc một chức năng.
- Bạn có thể lấy đầu vào bằng chữ hoa hoặc chữ thường, dưới dạng một chuỗi hoặc một mảng các ký tự. Bạn cũng có thể sử dụng các ký tự khác (nhưng chỉ một ký tự cho mỗi hướng) hoặc số nguyên trong
[0 .. 9]
. Nếu bạn làm như vậy, xin vui lòng xác định rõ ràng trong câu trả lời của bạn. - Bạn có thể cho rằng đầu vào luôn hợp lệ. (JsFiddle bên dưới sẽ phát hiện lỗi, nhưng bạn không được phép.)
- Đây là mã golf, vì vậy mã ngắn nhất tính bằng byte sẽ thắng.
- Sơ hở tiêu chuẩn bị cấm.
Dấu
Nó có thể không được yêu cầu cũng không tối ưu để lưu trữ hình dạng chính xác của mê cung.
Các trường hợp thử nghiệm và bản demo
Các trường hợp kiểm tra sau - hoặc bất kỳ đầu vào nào khác - có thể được kiểm tra trong jsFiddle này .
1. Input : ""
Output : 1
Comment: Pac-Man just advances to the first junction, eats the Pac-Dot on it and stops.
2. Input : "L"
Output : 7
3. Input : "FFR"
Output : 13
4. Input : "LFLR"
Output : 17
Comment: Pac-Man will exit on the middle right side and re-appear on the left side.
5. Input : "BBBB"
Output : 2
6. Input : "BRRFFFL"
Output : 15
7. Input : "LFFRLFFFFRF"
Output : 50
8. Input : "BRFRLRFRLFR"
Output : 54
Comment: Pac-Man will exit on the middle left side and re-appear on the right side.
9. Input : "FFLRLFFLLLLFFBFLFLRRRLRRFRFLRLFFFLFLLLLFRRFBRLLLFBLFFLBFRLLR"
Output : 244
Comment: All cleared!