배경
플래시 웹 디자인이 너무 시원해서 90 년대 후반 00 년대 말에 플래시 웹 사이트 전체 나 애니메이션 위젯 없이는 아무도 살 수 없었습니다. 저는 플래시 / 액션 스크립트에서 "경마 뷰어"를 개발하기 위해 80 년대 비디오 게임 스타일 애니메이션의 형태로 사이트 방문자는 레이스 결과를 읽을 수있을뿐만 아니라 움직이는 애니메이션에서도 볼 수있었습니다! 와! 감동적인!
시작 및 도착 순서, 말 이름, 드라이버 이름, 상품 등 모든 레이스 세부 정보가 포함 된 CSV 파일을 제공했습니다. 내 Flash 앱은 각 레이스마다 해당 파일을 읽고 위의 애니메이션을 표시했습니다.
오늘날 플래시 지원은 크게 거부되었으므로 우리는 ascii-art로 되돌려 야합니다 !
직무
당신의 임무는 표준 입력에서 CSV 형식의 레이스 데이터를 읽고 아래 예제와 같이 레이스의 아스키 아트 표현을 출력하는 전체 프로그램 또는 함수를 만드는 것입니다.
입력
2 개의 필드가있는 CSV 데이터 : 1) 시작 순서; 2) 마감에 도착 시간 형식 1.13.4
(1 분, 13 초, 4 분의 1 초). 시간보고에 따르면 R
사고, 추락 또는 기타 이유로 말이 퇴각했음을 의미합니다 (경주를 마치지 않은 경우). 참고 : 도착 시간은 두 명 이상의 말에 대해 동일 할 수 있으며이 경우 도착 위치를 공유합니다.
1,1.13.4
2,1.13.0
3,R
4,1.12.7
5,1.11.5
6,1.13.4
7,1.12.1
8,1.17.9
산출
각 CSV 행에 대해 다음과 같이 경마장을 출력하십시오.
1_|______________4(1.13.0)___________________________
경마장은 다음과 같이 구성됩니다.
1
말 시작 순서입니다._|
_
스페이서는 어디에|
있고 결승선입니다._
50/10 초를 나타내는 50 x5(1.13.4)
그것은 도착 위치와 도착 시간입니다. 말 사이의 시차를 고려하여 배치해야합니다. 예를 들어, 첫 번째는 시간에 결승선에1.11.5
도착하고 두 번째는 시간에 도착하며1.12.1
차이는1.12.1 - 1.11.5 = 6
10 분의 1 초이므로 두 번째 말은 6 번째 문자에 배치해야합니다. 시차가 50/10 초 (또는 5 초)를 초과하는 경우 말을 끝에 배치해야합니다. 말이R
(후퇴) 인 경우에도 동일합니다 .
따라서 위의 CSV 데이터에 대한 전체 경마장은 다음과 같아야합니다.
F=Finish line
1_|____________________________5(1.13.4)_____________
2_|______________4(1.13.0)___________________________
3_|__________________________________________________R
4_|___________3(1.12.7)______________________________
5_1(1.11.5)__________________________________________
6_|____________________________5(1.13.4)_____________
7_|_____2(1.12.1)____________________________________
8_|__________________________________________________6(1.17.9)
012345678901234567890123456789012345678901234567890
추가 할 필요가 없으며 F=Finish line
마지막 행 0123456789...
은 설명 목적으로 만 사용됩니다.
테스트 사례
RACE:
1,1.14.9
2,R
3,R
4,1.14.2
5,1.15.2
6,1.15.3
7,1.15.3
RACE:
1,1.13.6
2,1.13.8
3,R,
4,1.15.9
5,1.13.8
6,R,
7,1.14.4
8,1.15.6
9,1.14.1
10,1.13.9
11,1.13.2
12,1.14.3
13,1.15.0
RACE:
1,1.13.4
2,1.13.0
3,R
4,1.12.7
5,1.11.5
6,1.13.4
7,1.12.1
8,1.17.9
RACE:
1,1.17.3
2,1.20.4
3,1.17.0
4,1.18.8
5,1.18.5
6,1.18.4
7,1.18.4
8,1.17.8
9,1.18.3
10,1.18.7
11,R
RACE:
1,1.17.5
2,R
3,1.17.7
4,1.16.9
5,1.16.1
6,1.18.9
RACE:
1,1.12.8
2,1.13.0
3,1.13.2
4,1.12.7
5,1.11.5
6,1.13.0
7,1.12.1
8,1.12.8
규칙
- 가장 짧은 코드가 승리합니다.
1
있습니까?
R
말이 아닌 것으로 가정 할 수 있습니까? (나는이 현실에서 합리적인 질문 아니라는 것을 알고,하지만이 코드입니다.)