チェスの正方形の色を決定する


59

あなたの挑戦は、チェス盤から与えられた正方形の色を出力するプログラムを書くことです。これがチェス盤の見た目です:

ここに画像の説明を入力してください

正方形a1は暗く、h1は明るい正方形であることがわかります。あなたのプログラムは、正方形を与えられたときに、darkまたはを出力する必要がありますlight。いくつかの例:

STDIN:  b1
STDOUT: light

STDIN:  g6
STDOUT: light

STDIN:  d4
STDOUT: dark

ルール:

  • STDINを使用し、STDOUTを使用して出力darkまたはを出力する完全なプログラムを提供する必要がありますlight
  • 入力は常に有効であると仮定します([a-h][1-8]
  • これはなので、最短バイト数が勝ちです!

スコアボード

var QUESTION_ID=63772,OVERRIDE_USER=8478;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>


1
誰も<> ^ Fishを試していないのはなぜですか?
ghosts_in_the_code

回答:


46

GS217の 15バイト

de♦dark•light♠5

ソースコードはCP437エンコーディングを使用します。オンラインでお試しください!

検証

$ xxd -r -ps <<< 6465046461726b076c696768740635 > chess.gs2
$ wc -c chess.gs2 
15 chess.gs2
$ gs2 chess.gs2 <<< b1
light

使い方

d               Add the code points of the input characters.
 e              Compute the sum's parity.
  ♦             Begin a string literal.
   dark
       •        String separator.
        light
             ♠  End the string literal; push as an array of strings.
              5 Select the element that corresponds to the parity.

8
すごい!避けられない9バイトで、3バイトのアウトゴルフPythとCJamは素晴らしいです。
isaacg

29
聖なる牛、みんな、GS2は新しいPythです!誰かがそれをDenniの前によく使う方法を考え出す...
-ETHproductions

56

パイソン2、41の 38バイト

print'ldiagrhkt'[int(input(),35)%2::2]

Megoによる文字列インターレースのおかげで3バイト

のような入力を受け取ります"g6"。それは明暗が絡み合っています。


これは、文字列のインターレースで素晴らしいことです。
ウェインワーナー

5
実際、それint(input(),35)は素晴らしい部分だと思います。文字列のインターレースを考えましたが、入力メソッドはほとんどのバイトを節約します。
mbomb007

26

六角形34 32バイト

,},";h;g;;d/;k;-'2{=%<i;\@;trl;a

展開され、注釈付きの実行パスがあります:

ここに画像の説明を入力してください
Timwiの驚くべきHexagonyColorerで生成された図。

紫色のパスは、2つの文字を読み取り、それらの差を計算して2を法とする初期パスです。<次に、濃い灰色のパス(result 1)が印刷されdark、明るい灰色のパス(result 0)が印刷されるブランチとして機能しますlight

差とモジュロの計算方法については、メモリグリッドの図を以下に示します(入力に値が使用されますa1)。

ここに画像の説明を入力してください
Timwiのさらに素晴らしいEsoteric IDE(Hexagonyのビジュアルデバッガーを備えています)で生成された図。

メモリポインターは、rowというラベルの付いたエッジから始まり、そこで文字を読み取ります。col}というラベルの付いた端に移動して、数字を読み取ります。エッジ標識へ移動差分両者の差を計算します。はラベルのないセルに移動し、を配置し、modのラベルが付いたセルに移動します。"-'2{=%

これは;、の一部を再利用することで数バイトでゴルフできるかもしれませんが、サイドレングス3までではなく、多くでゴルフできるとは思えません。


7
ああ、きれいな色!
セレオ

1
この言語は私に新しいですが、私は私が可能思ったよりも多くの不自然な何かを思い付くためにあなたの能力に驚いています
QWR

18
私はこれらすべてのゴルフ言語を本当に得られません。
juniorRubyist

4
@ codeSwift4Life Hexagonyは、ゴルフ言語ではありません。このような些細なタスクの場合、1文字のコマンドがあるため、かなり競争力があるかもしれませんが、Befunge、Piet、> <>など、他の多くの2D言語共有される必要性が高くなっています。Hexagonyの奇妙なメモリモデルにより、重要なタスクには非常に大量のコードと複雑なプログラムが必要になります。それは決して簡潔な言語であることを意味するのではなく、エキゾチックで奇妙な言語であり、六角形のグリッド上のプログラミングを探索しています。
マーティンエンダー

3
@qwr考案されたことがエソランのポイントだと思った。;)
マーティン・エンダー

21

CJam、18バイト

r:-)"lightdark"5/=

オンラインデモ

解剖

r               e# Read a token of input
:-              e# Fold -, giving the difference between the two codepoints
)               e# Increment, changing the parity so that a1 is odd
"lightdark"5/   e# Split the string to get an array ["light" "dark"]
=               e# Index with wrapping, so even => "light" and odd => "dark"

34
あなたのコードは笑っています:-)
Doorknob

8
私は等しく効果的だと考えました:^)
ピーターテイラー

2
これがどのように機能するか説明してください。
フォグマイスター

@Fogmeister、説明を追加。
ピーターテイラー

17

sed、37

s/[1357aceg]//g
/^.$/{clight
q}
cdark

説明

s/[1357aceg]//g奇数インデックスの座標をすべて削除します。結果のパターンバッファの長さは、「明るい」場合は1、「暗い」場合は0または2です。 /^.$/長さが1のパターンにc一致し、パターンを「light」およびquitsにハングさせます そうでない場合、パターンはc「暗い」状態になります。


q冗長であり、そしてあなたが代わりに暗い最初に確認することができ/../tio.run/##K05N@f@/WD/a0NjUPDE5NT1WXz@dS19PTz85JbEomys5JzM9o@T//...
KritixiのLithos

14

Pyth、18バイト

@c2"lightdark"iz35

入力をベース35の数値として解釈し、lightdark半分に切り刻んで印刷します。


13

ShadyAsFuck、91バイト/ BrainFuck、181バイト

私の最初の真のBrainFuckプログラムです。Megoに助けてくれて、アルゴリズムアーカイブを教えてくれました。(つまり、私は実際に自分でそれをやったのではなく、いくつかの既存のアルゴリズムをコピーしました。まだ経験=)

NKnmWs3mzhe5aAh=heLLp5uR3WPPPPagPPPPsuYnRsuYgGWRzPPPPlMlk_PPPPPP4LS5uBYR2MkPPPPPPPP_MMMkLG]

これはもちろん私の頭脳の答えからの翻訳です:

,>,[<+>-]++<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]>>[-]++++++++++[>++++++++++<-]<[<+>>+<-]<[>+<-]+>>[>++++++++.---.--.+.++++++++++++.<<<->>[-]]<<[>>>.---.+++++++++++++++++.-------.<<<-]

このインタープリター/デバッガーを使用し開発されました。

私はのための2つのコードスニペットを盗んだdivmodif/elseからここに。(@Megoに感謝!)

,>,               read input
[<+>-]            add
++<               set second cell to 2 

これで>sum 2、divmodアルゴリズムを実行するセル構成ができました。

[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>
[-]>

divmodの出力は次のよう0 d-n%d >n%d n/dd-n%dなりますが、次のセルもゼロ化してゼロ化しています。

>[-]

100出力を簡単にするために、1つのセルを値まで埋めます。

++++++++++[>++++++++++<-]< 

構成が>cond 0 100あり、if/elseアルゴリズムを適用するには2つの一時変数が必要なので、構成を選択しますtemp0 >c temp1 100

c[<temp0+>>temp1+<c-]<temp0[>c+<temp0-]+
>>temp1[
 #>++++++++.---.--.+.++++++++++++.<         outputs light
 <<temp0-
>>temp1[-]]
<<temp0[
 #>>>.---.+++++++++++++++++.-------.<<<     outputs dark
temp0-]

12

Python 2、45バイト

print'dlairgkh t'[sum(map(ord,input()))%2::2]

のような入力を受け取ります"a1"オンラインで試す


これは、印刷用の括弧が不足しているため、Python 3では機能しません。
isaacg

今はテストできませんが、"ldiagrhgt"[expression::2]
1〜2


10

チューリング機械コード、235バイト

ここで定義されたルールテーブル構文を使用します。

0 a _ r 1
0 c _ r 1
0 e _ r 1
0 g _ r 1
0 * _ r 2
1 2 _ r 3
1 4 _ r 3
1 6 _ r 3
1 8 _ r 3
2 1 _ r 3
2 3 _ r 3
2 5 _ r 3
2 7 _ r 3
* * _ r 4
3 _ l r A
A _ i r B
B _ g r C
C _ h r D
D _ t r halt
4 _ d r E
E _ a r F
F _ r r G
G _ k r halt

1
これはおそらく私がこれまでに見た中で最も驚くべきことです
ルーカス


9

TI-BASIC、66バイト

TI-84 +計算機でテスト済み。

Input Str1
"light
If inString("bdfh",sub(Str1,1,1)) xor fPart(.5expr(sub(Str1,2,1
"dark
Ans

3行目のより興味深いバリエーションがありますが、残念ながらまったく同じサイズです。

Input Str1
"dark
If variance(not(seq(inString("bdfh2468",sub(Str1,X,1)),X,1,2
"light
Ans

TI-BASICはモジュロ2を伴うため、この課題には適切だと思います。そうではありません。これらの解決策は可能な限り短いようです。

文字列内の両方の文字を取得するために多くのバイトを費やしていますが、実際にかかるのは13個の2バイト小文字です。


9

Befunge-9339の 37 33 31バイト

この31バイトのソリューションを提案したLinusに感謝します。

<>:#,_@  v%2-~~
"^"light"_"krad

このインタープリターを使用しテストします。

説明

<        v%2-~~

<冒頭には、それが右にラップアラウンド左に命令ポインタを送信します。次に、入力から2文字をASCIIとして読み取り、それらを減算し、2を法としたモジュロをa行い1ます。v下方への命令ポインタをリダイレクトします...

"^"light"_"krad

...に、_スタックの最上部が0の場合は左に、そうでない場合は右に命令ポインターを送信します。「明るい」または「暗い」の文字は、それぞれ逆の順序でスタックにプッシュされます。両方のパスが^左側でヒットし、命令ポインタが上向きに送信されます...

 >:#,_@

...出力セグメントへ。:スタックの最上部を複製#し、,とにジャンプして、_スタックの最上部が0の場合は右に、それ以外の場合は左に命令ポインターを送信します。スタックが空の場合、スタックの最上部(の後:)は0であるため、命令ポインターがヒットし、@実行が停止します。それ以外の場合は、ヒット,文字としてスタックの先頭を出力し、その後、インクルードがいる、#の上にジャンプ:して上に>、どの再びプロセスを開始します。


rad"v>"kスペースなしでバイトを保存しますか?
ライナス

@Linus:「スペースが必要です。さもないと、出力がになりますdar k。」リンクされたオンライン通訳で試してください。
エレンディアスターマン

1
あなたの右。とにかく、私はbefungeでこれを行うつもりでしたが<>:#,_@ v%2-~~\n"^"light"_"krad、あなたの下で2バイトしか取得できません... 、改行を修正します。
ライナス

@Linus:それは素晴らしい。ありがとう!
エレンディアスターマン

@JamesHolderness、難しい気持ちはありません。これは元のBefunge-93インタープリターで機能しないことを指摘するのは正しいことです。実際の仕様は80x25トーラス用です。独自の回答としてバージョンを投稿し、違いを説明することをお勧めします。少なくとも、それは私と1年前の趣味のコードを議論するよりも実用的だと思います。
ライナス

8

Japt23 22バイト

JaptJa vaScri ptの短縮バージョンです。通訳

Un19 %2?"dark":"light"

使い方

          // Implicit: U = input string
Un19      // Convert U from a base 19 number to decimal.
%2        // Take its modulo by 2.
?"dark"   // If this is 1, return "dark".
:"light"  // Else, return "light".
          // Implicit: output last expression

新しいバージョン0.1.3(11月22日リリース)を使用すると、これは17バイトになり、GS2を除くすべてより短くなります

Un19 %2?`»rk:¦ght

または、代わりに、魔法の式:(26バイト)

Un19 %2*22189769+437108 sH
Un19 %2                    // Convert input to base 19 and modulo by 2.
       *22189769+437108    // Where the magic happens (top secret)
                        sH // Convert to a base 32 string.

8

Java(登録商標)、157の 127 124バイト

interface L{static void main(String[]a){System.out.print(new java.util.Scanner(System.in).nextInt(35)%2>0?"dark":"light");}}

次のようなインターフェースを使用できます。インターフェースinterface i{static void mainのすべてがデフォルトで公開されているため
Yassin Hajaj


7

ルビー、ストライキアウト44 36バイト

puts %w[light dark][gets.to_i(19)%2]

(スペースなし)に置き換えることputs でバイトを節約できます$><<
リン

@Mauris私は知っていますが、終了する改行が好きです
-daniero

あなたは、変更することで、3つのバイトを保存することができますputsのためにp
Cyoce

7

C、55バイト

s;main(){puts(strtol(gets(&s),0,19)&1?"light":"dark");}

オンラインで試す

DigitalTraumaにたくさんのゴルフのヒントをありがとう


あなたは余分な(後があると思うputs
レベル川セント

55の場合:s;main(){puts(strtol(gets(&s),0,19)&1?"light":"dark");}。整数の幅が3文字の文字列を保持するのに十分大きいと仮定します。またmain(s){puts(strtol(gets(&s),0,19)&1?"light":"dark");}、何らかの理由でgets()がsグローバルでない場合はガベージを返すため、セグメンテーション違反が発生する可能性があります。
デジタル外傷

ああすごい、ベース19。賢い。
ふわふわ

7

BotEngine165 14x11 = 154

v acegbdfh
>ISSSSSSSS
 v<<<<>v<<P
vS1   vS2ke
vS3   vS4re
vS5   vS6ae
vS7   vS8de
>     >   ^
>     >  v
^S2   ^S1el
^S4   ^S3ei
^S6  P^S5eg
^S8 te^S7eh
     ^   <

ここでは、さまざまなパスセグメントが強調表示されています。

ここに画像の説明を入力してください

(強調表示されていないスペース以外の文字は、eand S命令の引数として機能します。これらの各命令は、引数として(ボットの移動方向に対して)左側のシンボルを使用します)


7

𝔼𝕊𝕄𝕚𝕟、26文字/ 34バイト

ô(שǀ(ï,ḣ)%2?`dark`:`light”

Try it here (Firefox only).


1
それがより多くのバイトを必要とする場合、私はそれを「圧縮」とは呼びません:P
lirtosiast

1
この時点では、バイトよりも文字の方が心配です。私は完全に𝔼𝕊𝕄𝕚𝕟にゴルフダウンのバイトカウントしようとあきらめました...
ママ楽しいロール

1
私たちは常にバイトでスコアリングします。そして、副次的な目的のために最適化することはしばしば興味深いですが、最も少ないバイトが常に勝つことを覚えておいてください。
リトシアスト

ええ、私はそれを理解しています。私は勝つことをそれほど目指していません。
ママファンロール

7

C、49バイト

main(c){gets(&c);puts(c+c/256&1?"light":"dark");}

いいえ、コンパイルされません。
xsot

ああ、私の悪い、私は何か他のものをいじっていた。ただし、出力は間違っています。私はあなたがするつもりだったと思うgets(&c)%256+c/256
リン

ああ、いいキャッチ。この時点では、同じ手法を使用しているため、私のソリューションはあなたのソリューションよりも厳密に劣っています。学ぶべきことがたくさんあるようです。
xsot

間違った出力は、の戻り値によって引き起こされたことがわかりますgets(&c)。それに応じて提出物を更新しました。
xsot

7

Clojure、63バイト

(pr (['light 'dark] (mod (Integer/parseInt (read-line) 35) 2)))
  • stdinから(read-line)で一行読み込みます
  • 次に、JVMメソッドの呼び出しを使用して、文字列を解析してベース35の整数値にします。
  • 結果2のmodを取得すると、偶数か奇数かがわかります
  • モジュロ関数から返された結果をシーケンスのインデックスとして使用し、出力します

「明るい」と「暗い」を単一引用符で引用することで価値のある2バイトを保存します。これにより、Clojureは、各単語を引用符で囲むのではなく、リテラルとして受け取ります。また、printlnではなくprを使用して数バイトを節約します。

Clojureでの引用に関する情報


プログラミングパズルとコードゴルフへようこそ!これはいい最初の答えです。:)私はClojureにあまり詳しくありません。説明を追加してもいいですか?
アレックスA.

絶対に!行くぞ ご質問があればお知らせください!
MONODA43


5

C、46バイト

main(c){gets(&c);puts(c%37%2?"light":"dark");}

intsがリトルエンディアンで保存され、少なくとも2バイトの環境を想定しています。

説明

cargcあるため、最初はが含まれています01 00 00 00gets、2つの文字を読んで言うだろうa (0x61)1 (0x31)、そしてそれらを保存しc、今あります、

61 31 00 00

番号0x3161または12641を表します。

本質的に、この問題では、与えられたc = x + 256*y(x + y) mod 2それに応じて文字列を計算し、出力したいと思います。これを行うには、私が書かれている可能性がありc % 255 % 2、その後として、

  (x + 256 * y) % 255 % 2
= (x % 255 + y % 255) % 2      since 256 ≡ 1 (mod 255)
= (x + y) % 2                  since 0 < x, y < 255

ただし、以下37も機能します。

  (x + 256 * y) % 37 % 2
= (x % 37 - 3 * (y % 37)) % 2  since 256 ≡ -3 (mod 37)

xの範囲は49〜57(1〜8桁)x % 37 == x - 37です。

yの範囲は97〜104(小文字のah)なので、y % 37 == y - 74です。

これは、次のように単純化できることを意味します

= (x - 3 * y + 185) % 2
= (x + y + 1) % 2              since -3 ≡ 185 ≡ 1 (mod 2)

単に文字列を反転させてパリティを修正します。


5

Beam、127バイト

rSr>`+v
   ^  )
n(`)nS<
    >L'''''>`+++++)S>`+++)@---@'''>`+++++)++@-------@H
>L'''''>`+++)S>`++++++)+++@---@--@+@'''>`++++)@H

説明 ここに画像の説明を入力してください 水色-入力からビームに文字を読み取り、ビーム値をストアに保存し、入力からビームに文字を読み取ります。

ダークブルー-ビームをインクリメントしながらストアを0にデクリメントすることにより、ストアをビームに追加します

薄緑-奇異なテスト構成。ループは、ビームが偶数の場合は左に、奇数の場合は右に出ます。

ダークグリーン-暗い出力

Tan-光を出力します


5

O22 17バイト

i#2% "light'dark"?

これは必要なことを行い、追加の利点はありません。


5

ラビリンス48 46 45 42バイト

2バイトを節約してくれたSp3000に感謝します。

-,"
#
%0:::8.5.3.4.116.@
1
00.97.114.107.@

オンラインでお試しください!

説明

コードの始まりは面白い行き止まりです。Labyrinthは、スタックの最下部にオペランドが必要な場合、無限の数のゼロを想定していることに注意してください。コードは-右から1つ開始し、2つの数値を減算しようとするため、スタックは次のようになります。

[ ... 0 ]

次に,、最初の文字を読みaます:

[ ... 0 97 ]

これ"は何もしませんが、これは行き止まりでもあるため、命令ポインターは向きを変えて左に移動し始めます。次に`、他の文字を読み取り2ます:

[ ... 0 97 50 ]

今回は、-これらの2つの数値を減算します。

[ ... 0 47 ]

IPは「廊下」の曲がりに追従します。#便利であることを起こる暗黙のゼロを、無視して、スタックの深さを取得します2

[ ... 0 47 2 ]

そして%モジュロを計算します:

[ ... 0 1 ]

この時点で、IPはジャンクションにあります。スタックの上部がゼロの場合、100.97.114.107.@printsの場所でまっすぐに移動しますdark。ただし、スタックの最上部がゼロ以外の場合(具体的には1)、右に移動し、0:::8.5.3.4.116.@印刷されますlight(先頭1にを省略できることに注意してください。既に1スタック上にあるため、10108105103104のいくつかのコピーを作成することによって、10我々は最初の)そこに着くとき。


4

Matlab、51バイト

これには説明は必要ないと思います=)

a={'light','dark'};disp(a(2-mod(sum(input('')),2)))

4

> <>、31バイト

ii+2%?\"krad"oooo;
l"oc0.\"thgi

ここで私は「もっと良い方法があるはずだ...」と考えています。


4

Perl、29 27バイト

$_=/./&($'+ord)?light:dark

このコードには-pスイッチが必要ですが、1バイトとしてカウントしています。

Ideoneでオンラインでお試しください。

使い方

  • -pスイッチのため、Perlは1行の入力を読み取り、それをに保存し$_ます。

  • /./1文字に一致する正規表現です。これには2つの意味があります。

    • 一致が成功したため、1を/./返します。

    • 一致後(2番目の入力文字)はに格納され$'ます。

  • $'+ord2番目の入力文字が表す整数ordを、暗黙変数の最初の文字のコードポイント()に追加します$_

  • &ビット単位を取得しての戻り値の/./$'+ord、帰国1は、奇数ならば合計で0それが偶数の場合。

  • ?light:dark前の式が1を返した場合はライトを返し、それ以外の場合はダークを返します。

  • 最後に$_=、結果をに割り当て$_ます。これは、-p 切り替えのためにPerlが自動的に印刷します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.