현재 월, 일, 요일,시, 분 및 밤 또는 낮인지 여부를 알려주는 ASCII 아트 시계 및 달력을 만들어 보겠습니다 (일 또는 초는 아님).
특정 시간에 캘린더는 다음과 같이 보입니다. (줄 간격이 적을수록 더 좋아 보입니다)
________________________________________________________________
|\ ____________________________________________________________ /|
| | ___ | |
| | _( ) | |
| | (___)__) -.- | |
| | | |
| | | |
| | -.- | |
| | -.- | |
| | ___ | |
| | _( ) | |
| | (___)__) | |
| | | |
| | ___ | |
| | _( ) | |
| | _ (___)__) | |
| | /|\ | |
| | / | \ | |
| | /__|__\ | |
| |____|____ | |
| |\_______/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~| |
| |____________________________________________________________| |
|/______________________________________________________________\|
항상 경계가 바뀌지 않는 66 x 23 문자 "그림 프레임"입니다.
프레임 내의 이미지는 시간과 날짜를 알려줍니다.
- 낮 (6:00 am-5:59 pm)에는 달이
-.-
하늘 의 새 수 ( )에 의해 결정됩니다 . 1 월 = 1 마리 새, 2 월 = 2 마리 새 등 - 밤 (6:00 pm-5:59 am) 동안 새들은 3 배 많은 별 (
*
) 로 대체됩니다 . 1 월 = 3 개의 별, 2 월 = 6 개의 별 등 새와 별이 동시에 하늘에 있지 않습니다. - 달의 날짜
-
는 물 에서 두 대시 ( ) 사이의 문자 수에 의해 결정됩니다 . 예를 들어~~-~~~~-~~
네 번째 요일임을 의미합니다. 분에 따라 보트가 대시 사이에 있어야 할 수도 있습니다 (대시가 반복되지 않음). - 요일은 하늘의 구름 수에 의해 결정됩니다 (모든 구름은 동일하게 보입니다). 일요일 = 0 구름 , 월요일 = 1 구름, ..., 토요일 = 6 구름.
- 시간은 수위 (및 보트)에 따라 결정됩니다. 가장 낮은 시간 (위와 같이)은 1시이며, 2시 동안에는 한 문자 더 높으며, 최대 12 시까 지, 다시 1 시로 돌아갑니다. (24시 시계가 아닌 12시입니다.)
- 분은 보트의 수평 위치에 의해 결정됩니다. 시간의 상단에서 보트는 프레임의 왼쪽 가장자리에 닿습니다 (위와 같이). 이후 1 분마다 보트는 한 문자 씩 오른쪽으로 움직입니다. 분 51에서 59까지는 프레임의 오른쪽에서 왼쪽으로 반복됩니다.
따라서 위의 예에는 3 개의 새, 3 개의 구름, 대시 사이에 2 개의 문자, 가장 낮은 수준의 물, 가장 왼쪽에있는 보트가 있으며 날짜가 3 월 2 일 수요일이며 시간은 1임을 알 수 있습니다 00pm.
다음은 4 월 25 일 일요일 오전 3:58의 또 다른 예입니다.
________________________________________________________________
|\ ____________________________________________________________ /|
| | | |
| | * * | |
| | * * * | |
| | * | |
| | | |
| | * | |
| | * * | |
| | | |
| | * | |
| | | |
| | * | |
| | _ | |
| | /|\ * | |
| |/ | \ | |
| |__|__\ /| |
| |__|____ __| |
| |______/~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~\_| |
| | | |
| | | |
| |____________________________________________________________| |
|/______________________________________________________________\|
골
당신의 목표는 프로그램이 실행되는 시간을 사용하여 이러한 ASCII 아트 "달력"을 표준 출력으로 출력하는 가장 짧은 프로그램을 작성하는 것입니다.
프로그램을 실행할 때마다 한 번의 장면이 출력되어야합니다. 업데이트는 자동 (또는 애니메이션)이 아니어야합니다.
구름, 별, 새는 하늘에 무작위로 배치해야합니다 (따라서 모든 달리기, 심지어는 달리기도 다를 수 있음). 보트 나 서로 겹치지 않아야합니다. (물 대시가 보트 선체와 겹치지 않아야합니다.)
내가 설명한 것은 아무것도 물 속에 나타나지 않습니다. 이것은 당신이하는 것입니다. 매주 1 시간의 미리 결정된 시간 동안 (당신의 선택), 흥미로운 무언가 가 물 속에서 그려 져야합니다. 바다 괴물이나 침몰 한 배 또는 무엇이든 될 수 있습니다. 해당 시간 동안 나머지 장면의 디자인을 변경할 수도 있습니다 (프레임 경계에 머무름).
채점
이것은 코드 골프 인기 경연 대회 콤보입니다.
당신의 점수는 (bytes in program) - 4 * (upvotes - downvotes)
입니다. 가장 낮은 점수가 이깁니다.
비 ASCII 문자를 사용하는 경우 http://mothereff.in/byte-counter 를 바이트 카운터로 사용 하십시오 .
메모 및 업데이트
대시 대신 부표를 사용할 수 있습니다. 대면하면 훨씬 더 적합합니다.
| | ~~(_)~~~(_)~~ (3rd of the month)
대시 (또는 부표)는 임의적 일 필요는 없지만, 그것이 좋으면 좋을 것입니다.
- "특별 시간"은 시간 상단에서 60 분, 다음 시간 전 1 분까지 지속되어야합니다.
- 특별한 시간 동안 수 중에서 그리는 물건이 움직일 수 있고 말이되면 표면과 하늘을 바꿀 수 있습니다 (예 : 배를 먹는 바다 괴물, 해저에 검은 구멍이 형성되는 등).