現在の月、日、曜日、時間、分、およびそれが夜であるか日であるか(ただし、年または秒ではない)を示すASCIIアートクロックとカレンダーを作成してみましょう。
特定の時点で、カレンダーは次のようになります:(行間隔を小さくすると見栄えがよくなります)
________________________________________________________________
|\ ____________________________________________________________ /|
| | ___ | |
| | _( ) | |
| | (___)__) -.- | |
| | | |
| | | |
| | -.- | |
| | -.- | |
| | ___ | |
| | _( ) | |
| | (___)__) | |
| | | |
| | ___ | |
| | _( ) | |
| | _ (___)__) | |
| | /|\ | |
| | / | \ | |
| | /__|__\ | |
| |____|____ | |
| |\_______/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~| |
| |____________________________________________________________| |
|/______________________________________________________________\|
境界が変更されないのは、常に66 x 23文字の「画像フレーム」です。
フレーム内の画像は、時間と日付を示しています。
- 日中(午前6時〜午後5時59分)、月は鳥の数(
-.-
空にいる)ます。1月= 1羽の鳥、2月= 2羽の鳥など - 夜(午後6:00-午前5:59)の間、鳥は3倍の星に置き換えられます(
*
ます)。1月= 3つ星、2月= 6つ星など。鳥と星が同時に空になることはありません。 - 月の日は
-
、水面上の2つのダッシュ()の間の文字数によって決まります。例えば~~-~~~~-~~
、月の4日目であることを意味します。分によっては、ボートはダッシュの間にあることが必要な場合があります(ダッシュはループしません)。 - 曜日は空の雲の数によって決まります(すべての雲は同じように見えます)。日曜日= 0雲、月曜日= 1雲、...、土曜日= 6雲。
- 時間は、水位(およびボート)によって決まります。最下部(上記)では1時であり、2時の間は1文字高く、最大12時、その後1時に戻ります。(24時間ではなく12時間です。)
- 分は、ボートの水平位置によって決まります。時間の一番上で、ボートはフレームの左端に触れます(上記のように)。その後1分ごとに、ボートは1文字ずつ右に移動します。51〜59分で、フレームの右側から左にループします。
したがって、上記の例には3羽の鳥、3雲、ダッシュ間の2字、最低レベルの水、そして左端のボートがあるため、日付は水曜日3月2日であり、時間は1です。 00pm。
4月25日日曜日の午前3時58分からの別の例を次に示します。
________________________________________________________________
|\ ____________________________________________________________ /|
| | | |
| | * * | |
| | * * * | |
| | * | |
| | | |
| | * | |
| | * * | |
| | | |
| | * | |
| | | |
| | * | |
| | _ | |
| | /|\ * | |
| |/ | \ | |
| |__|__\ /| |
| |__|____ __| |
| |______/~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~\_| |
| | | |
| | | |
| |____________________________________________________________| |
|/______________________________________________________________\|
ゴール
あなたの目標は、プログラムを実行する時間を使用して、これらのASCIIアート「カレンダー」を標準出力に出力する可能な限り短いプログラムを作成することです。
プログラムを実行するたびに、1つのタイムシーンが出力されます。更新は自動(またはアニメーション)にしないでください。
雲、星、鳥は、空にランダムに配置する必要があります(したがって、実行するたびに、同じものであっても異なる可能性があります)。それらがボートまたは互いにオーバーラップすることはありません。(また、水ダッシュは船体と重ならないようにしてください。)
私が説明したものは何も水中に現れないことに注意してください。これはあなたがすることです。毎週の事前に決められた1時間(お好み)に、水中で面白いものを描いてください。それは海の怪物や沈没船など何でもかまいません。あなた次第です。その時間の間に、シーンの残りの部分のデザインを変更することもできます(フレーム境界内にとどまります)。
得点
これは、コードとゴルフの人気コンテストのコンボです。
あなたのスコアは(bytes in program) - 4 * (upvotes - downvotes)
です。最も低いスコアが勝ちます。
http://mothereff.in/byte-counterを使用します非ASCII文字を使用する場合は、をバイトカウンターとしてます。
メモと更新
ダッシュの代わりにブイを使用することができます。それは、ブイに直面することができ、より適切だからです:
| | ~~(_)~~~(_)~~ (3rd of the month)
ダッシュ(またはブイ)はランダムである必要はありませんが、ランダムであるとよいでしょう。
- 「特別な時間」は、時間の先頭から次の時間の1分前まで60分続く必要があります。
- 特別な時間中に、水中で描いたものが動き、理にかなっていると表面と空を変えることがあります(たとえば、海の怪物がボートを食べたり、ブラックホールが海底に形成されるなど)