Các thách thức
Đưa ra một bảng bagatelle như bảng dưới đây:
| |
| /\ / |
| \ /|
| \ \ /\ \ |
| \ / \ |
|\ / / \ |
| \ / \ |
| \ |
| \ / \ /\ \ |
|\ / / \ /|
| / |
| /\ / / |
| / |
|\ / / / |
| |
----------------------
nhiệm vụ của bạn là biến một danh sách 'ném' thành điểm số.
Bảng sẽ luôn rộng 20 ký tự (cộng 2 cạnh), nhưng có chiều cao thay đổi. Mỗi 'cú ném' là một con số đại diện cho quả bóng rơi vào bảng, bắt đầu từ 0 cho đến hết bên trái lên đến 19 cho bên phải. Mỗi quả bóng sẽ rơi thẳng xuống trừ khi nó gặp a /hoặc a \. Gặp một /quả bóng dịch chuyển một cột sang trái, và một \quả bóng dịch chuyển một cột sang phải. Sau khi được chuyển, bóng tiếp tục đi thẳng xuống như trước. Điểm cho một cú ném phụ thuộc vào nơi bóng chạm vào đáy bảng.
Điểm cho mỗi vị trí hoàn thiện như sau:
| |
----------------------
01234567899876543210
và giống nhau cho tất cả các bảng. Các hàng đầu tiên và cuối cùng sẽ luôn trống. Quả bóng được đảm bảo chạm tới đáy bất kể nó rơi từ đâu, vì vậy sẽ không có bảng nơi nó có thể bị mắc kẹt bởi \/, \|hoặc |/kết hợp.
Đầu vào
Đầu vào sẽ nằm trên STDIN và sẽ bao gồm bảng theo sau là một dòng trống, theo sau là một danh sách các số được phân tách bằng dấu cách biểu thị các lần ném.
Đầu ra
Ouput nên là tổng số điểm cho trò chơi đã cho.
Một vài ví dụ
Đầu vào
| |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| |
| |
----------------------
1 4 2 19 0 2 4 3 17 13 16
Đầu ra
9
Đầu vào
| |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
----------------------
15 10 3 8 18 19 0 6 7 10
Đầu ra
72
Đầu vào
| |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| |
----------------------
1 4 18 17 14 2 0 19 15
Đầu ra
18
Kiểm tra kịch bản
Tôi đã sử dụng một số tập lệnh thử nghiệm được viết bởi Joey và Ventero (tôi hy vọng họ không phiền ...) để tạo một số thử nghiệm cho nhiệm vụ này: -
Sử dụng: ./test [your program and its arguments]
Đây là codegolf - chiến thắng giải pháp ngắn nhất.