도전
아래와 같은 바가텔 보드가 있습니다.
| |
| /\ / |
| \ /|
| \ \ /\ \ |
| \ / \ |
|\ / / \ |
| \ / \ |
| \ |
| \ / \ /\ \ |
|\ / / \ /|
| / |
| /\ / / |
| / |
|\ / / / |
| |
----------------------
당신의 임무는 '투구'목록을 점수로 바꾸는 것입니다.
보드의 너비는 항상 20 자 (가장자리 2 개)이지만 높이는 다양합니다. 각 '투구'는 공이 보드에 떨어지는 위치를 나타내는 숫자이며, 맨 왼쪽은 0에서 시작하여 맨 오른쪽은 19입니다. 각 공이 a /또는 a를 만나지 않으면 똑바로 떨어 \집니다. 조우를 /하면 공이 한 칸 왼쪽으로 \이동하고, 공을 한 칸씩 오른쪽 으로 이동합니다. 변속 된 후, 공은 전처럼 똑바로 계속 내려갑니다. 던지는 점수는 공이 보드의 바닥에 닿는 위치에 따라 다릅니다.
각 마무리 위치에 대한 점수는 다음과 같습니다.
| |
----------------------
01234567899876543210
모든 보드에 동일합니다. 첫 번째와 마지막 행은 항상 비어 있습니다. 공은 어디에서 떨어졌는지에 관계없이 바닥에 도달하도록 보장되므로 \/, \|또는 |/조합에 의해 갇힐 수있는 보드는 없습니다 .
입력
입력은 STDIN에 있으며, 보드와 빈 줄, 공백으로 구분 된 숫자 목록으로 구성됩니다.
산출
Ouput은 주어진 게임의 총 점수입니다.
몇 가지 예
입력
| |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| \ |
| |
| |
----------------------
1 4 2 19 0 2 4 3 17 13 16
산출
9
입력
| |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| \ / |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
----------------------
15 10 3 8 18 19 0 6 7 10
산출
72
입력
| |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| ////////////////// |
| \\\\\\\\\\\\\\\\\\ |
| |
----------------------
1 4 18 17 14 2 0 19 15
산출
18
테스트 스크립트
나는 이 작업에 대한 테스트를 만들기 위해 Joey 와 Ventero가 작성한 테스트 스크립트 를 사용했습니다.
용법: ./test [your program and its arguments]
이것은 codegolf입니다-가장 짧은 솔루션이 승리합니다.