シーンの設定:
長い一日を過ごした後、お気に入りの娯楽、PPCGの魅力的な質問に答えることでくつろぐので、それは平均的な午後です。あなたにとって良い日ではありませんでした。それらのとてつもないPythプログラマーは最高の答えを得続け、それはあなたの雰囲気を殺している。突然、新しい質問が投稿されました!あなたは決心します。今回はCJammersではありません。猛烈に、あなたはタイプし始め、文字の流れを産みます。最終製品となる見事なBrainFuckループの胎児。入力して入力します。もっと早く!さらに速く!あなたはあまりにも集中しているので、画面上のライトが点滅し始めるのに気付くことすらありません。突然、モニターが緑色に点灯します。これは、デスクトップにブランド化された異星人のようなシンボルです。あなたの完璧なスキルを使用してcat ~/Desktop/aliensymbol
たくさんの数字、メッセージが表示されます!あなたが抜け目のないPPCGプログラマであることから、あなたはそれがASCIIのように見えることに気付くでしょう。あなたに関係なく、あなたprint(chr(i) for i in file)
とメッセージを解読します。あなたの最初の考え:「これをコミュニティと共有する必要があります!」。
...
誰がそれを考えたでしょうか?エイリアンと最初に接触するのはPPCGの謙虚なプログラマーだろうということ。なんで私達なの?それは、私たちが人間の知性の縮図だからかもしれません。あるいは、BrainFuckが外国語とほぼ同じくらい近いからかもしれません。それにもかかわらず、エイリアンは-彼らがいる超知的な生命体である-人類を知的なものとして分類すべきかどうかをテストしたい。私たちの精神力のテストとして、エイリアンは私たちに技術的な文化であることを示すためにいくつかのコンピュータープログラムを送るように頼みました。問題は、彼らが理解している唯一の人間の言語は数値ASCIIであるということです!
人類が本当の知的アルファである生き物を示すのを助けてください。テキストベースのソースコードを数値のASCIIバージョンに変換するスクリプトを送信する必要があります。残念ながら、当社の未開発の技術により(オバマ氏に感謝)、できるだけ小さな翻訳プログラムを送信する必要があります。彼らがPPCGに連絡することを選んだのは良いことです!
チャレンジ:
この課題の前提は簡単です。プログラムのソースコード(または、一般的なテキストファイル)を取得するプログラムを作成し、各行の下にASCII変換を含むスペース区切りバージョンを出力します。つまり、テキストファイルの入力が与えられた場合、そのファイルの各行を出力し、その後にその行の各文字のASCII表現を含む行を出力する必要があります(各数字が表す文字と並んでいます)。
例はこれを非常に明確にします。hello world
入力として悪名高いのソースコードを取得します。
#include <stdio.h>
int main() {
printf("hello, world\n");
return 0;
}
あなたのプログラムは出力するはずです:
# i n c l u d e < s t d i o . h >
35 105 110 99 108 117 100 101 32 60 115 116 100 105 111 46 104 62 10
10
i n t m a i n ( ) {
105 110 116 32 109 97 105 110 40 41 32 123 10
p r i n t f ( " h e l l o , w o r l d \ n " ) ;
32 32 32 32 112 114 105 110 116 102 40 34 104 101 108 108 111 44 32 119 111 114 108 100 92 110 34 41 59 10
r e t u r n 0 ;
32 32 32 32 114 101 116 117 114 110 32 48 59 10
}
125 10
実装の詳細:
任意の形式(ファイル、コマンドラインパイプ、関数パラメーターなどを開く)で入力を選択することができ、stdoutに出力するか、関数から出力を返す必要があります。
注意事項
- 出力の各文字は '\ t'で区切られ、下の行の3桁のスペースを揃えることができます(タブが4スペース以上に設定されていると仮定します)。
- 改行は、リターンキーが押された行に表示されます(例では10に注意してください)。
- '\ t'および '\ n'の印刷要件は緩やかです。あなたの出力は、一般的な意味で、目を楽しませなければなりません(私たちにも美的感覚を持っているエイリアンを表示する必要があります)。
- 最後の行の終わりに改行があるかどうかを仮定することを選択できます。
得点
これはコードゴルフなので、最短のプログラムが勝ちます。プログラムは最短ではありませんが、使用している言語に比べて本当にすてきなトリックを使用している場合でも、多くの+1があります。
がんばろう。人類の銀河間知能ランキングはあなたの肩にかかっています。
注:プロットホールはご容赦ください。私は作家ではありません:D