あなたの目標:「Hello、world!」の古典的な結果をもたらすコードを書くこと STDOUTまたは同等のものに出力されます。
ルール:コードは完全に印刷ASCIIでなければなりません。すべてのコードは機能する必要があります-単一のカウント文字を削除すると、結果が変更されるか、コードが機能しなくなる必要があります。すべての変数は、割り当て後に使用する必要があります。出力には文字および文字列リテラルが必要です-つまり、文字リテラルまたは文字列リテラル内の文字を別の文字に置き換えると、結果を変更できる必要があります(エスケープシーケンスの効果ではなく、文字をバックスラッシュに置き換える必要があります)または同等)
(注:最終ルールは編集されました)
得点:ここが面白いところです。典型的なコードボウリング規則に従って、文字数によって決定される最高スコアが勝ちます。ただし、文字を繰り返し使用すると、ポイントが減点されます。具体的には...
- 英数字(az、AZ、0-9)を繰り返し使用すると、繰り返しごとに3ポイント減点されます(最初の使用では減点されません)。
- 基本的な句読点([!?.-、 ": ';])を繰り返し使用すると、括弧を含めて、繰り返しごとに2ポイントが差し引かれます。
- 他のASCII文字{`〜@#$%^&* _ + = | \ /> <}を繰り返し使用すると、中括弧を含めて、繰り返しごとに4ポイントが差し引かれます。
- スペース、タブ、改行を繰り返し使用すると、繰り返しごとに1ポイント減点されます。つまり、スペース、タブ、または改行の最初の使用のみが合計にカウントされます。
注:コメントは、コメントの開始/終了を示す文字はカウントしますが、合計にはカウントされません。たとえば、C / C ++では、がある場合/* This is a comment */
、2つのスラッシュと2つのアスタリスクがカウントされますが、それらの間は何もカウントされません。
いくつかの例(注:サンプル言語としてJuliaを使用)...
print("Hello, world!");
表示可能な文字の合計:22
スペースが含まれています:+1
英数字の繰り返し:llorの場合-12
句読点の繰り返し:-2の場合 "
最終スコア:22 + 1-12-2 = 9
print("Hel",char(108),"o, wor",0x108,"d!"); # 0x108 makes a Uint8 that prints as ASCII
合計文字数:43(コメント文字である#の後の文字は数えません)
スペースを含む:+1
繰り返し英数字:-18 rr1008の
繰り返し句読点:-24の() "" "" ",,,,,
Finalスコア:43 + 1-24-18 = 2
xy=STDOUT
m="Hello, world!"
print(xy,m);
表示可能な文字の合計:37
改行を含む:+1
スペースを含む:+1
繰り返し英数字:-18キシラーの
繰り返し繰り返し句読点:-4の「」、
その他のASCIIの繰り返し:-4の=
最終スコア:37 + 1 + 1-18-4 -4 = 13
いくつかの無効なコード...
x=2;print("Hello,world!")
問題:x
は割り当てられていますが、使用されていません。
print("Hello,"*" world!")
問題:*
不要です。結果はそれなしでも同じです。
k=1
if k>0
print("Hello, world!")
else
print("abcghjmquvxyzABCDEFGIJKLMNOPQRSTUVWXYZ_+*-&|")
end
問題:2番目のprint
コマンドは実行されません。また、2番目のprint
コマンドで引用符内の文字を削除しても、出力は変更されません。
x="Hello, world!";
print(x)
問題:改行を削除しても結果が変更されたりエラーが発生したりすることはありません(Juliaでは、複数のコマンドが同じ行にある場合にのみセミコロンが必要です。
print("Hellos\b, world!")
問題:s
文字は結果に影響しません\b
。これは、コード("Hello",char(100),"\b, world!"
)を介して行われる場合は許容されますが、文字列リテラルまたは文字リテラルを介して行うことはできません。
便利なスコア計算 - http://jsfiddle.net/4t7qG/2/ -ドアノブに感謝