ASCIIチェス盤を描きます!


42

簡単な課題は次のとおりです。チェス盤のこのASCII表現を作成する必要があります。白は大文字で表され、黒は小文字で表されます。空のタイルはで表されます.。完全なボードは次のとおりです。

rnbqkbnr
pppppppp
........
........
........
........
PPPPPPPP
RNBQKBNR

これは質問であるため、入力を受け付けない場合があり、ファイルの保存、STDOUTへの印刷、関数からの戻りなど、デフォルトの方法でこのボードを出力する必要があります。あなたはあり必要に応じて1つ末尾の改行を生成します。標準的な抜け穴が適用され、最短のプログラムがバイト単位で!

ただし、これは同じ言語での提出物と同等の競争であることを忘れないでください。Javaのような言語がperlのような言語、またはpythやcjamのようなゴルフ言語を打ち負かす可能性は低いですが、Javaの答えが最も短いというのは本当に印象的です!各言語の最短回答を追跡するために、このリーダーボードを使用できます。このリーダーボードは、言語別および全体的な最短提出を表示します。

リーダーボード

回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。

# Language Name, N bytes

N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば:

# Ruby, <s>104</s> <s>101</s> 96 bytes

ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。

# Perl, 43 + 2 (-p flag) = 45 bytes

言語名をリンクにして、リーダーボードスニペットに表示することもできます。

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


1
確かにASCII artチェスボードが完全に停止ごとに他の正方形を持っているでしょうか?
ショーンビーバーズ

回答:


16

ゼリー25 24 バイト

“.“.“p“rnbqkbn”ṁ€8µṚ;ŒuY

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

1バイトのゴルフをしてくれた@Lynnに感謝します!

使い方

“.“.“p“rnbqkbn”ṁ€8µṚ;ŒuY  Main link. No arguments.

“.“.“p“rnbqkbn”           Yield [".", ".", "p", "rnbqkbnr"].
               ṁ€8        Mold-each 8; reshape each string like the array
                          [1, 2, 3, 4, 5, 6, 7, 8], i.e., cyclically repeat its
                          contents to create strings of length 8.
                          This yields the upper half of the board in reversed
                          order, i.e., the string array
                          A := "........", "........", "pppppppp", "rnbqkbnr"].
                  µ       Begin a new, monadic chain. Argument: A
                   Ṛ      Reverse A.
                     Œu   Convert all characters in A to uppercase.
                    ;     Concatenate the results to both sides.
                       Y  Join the strings, separating by linefeeds.

15

Vim、26バイト

irnbqkbnr<Esc>Y6p5Vr.VrpYGPgUj

新しいVimに依存5Vするか、間違った領域を選択する可能性があります。

  • irnbqkbnr<Esc>:一番上の行に書き込みます。簡単です。
  • Y6p1つを除く残りの行を作成します。もちろん、一番上の行と一番下の行を除くすべての行に間違った文字が含まれています。
  • 5Vr.:セッションでビジュアルモードをまだ使用していない場合、このような操作を行って5行を選択できます。同じものをすぐに再度入力すると、25行を選択しようとします。Vimはそのように奇妙です。
  • Vrp:すでに2行目にいるので、ポーンラインを作成しましょう。
  • YGP:そのポーンラインを下部の場所にコピーします。これが以前の6p代わりに使用した理由7pです。
  • gUj:白い部分を大文字にします。

1
最高のゴルフ言語があります!
counterclockwis回すのをやめ

10

Brainfuck、224バイト

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

これを得るためにほぼ1時間かかりました。


8

Python 2、63バイト

print"\n".join(["rnbqkbnr","p"*8]+["."*8]*4+["P"*8,"RNBQKBNR"])

残念ながら、かなり単純なアプローチは、最初に試した「賢い」ものよりもはるかに短いものでした...

ボーナス回答、63バイト:

print"\n".join(["rnbqkbnr"]+[c*8for c in"p....P"]+["RNBQKBNR"])

8

05AB1E、24バイト

CP-1252エンコードを使用します。

"rnbqkbnr"'p8×'.8×D)Âu«»

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

説明

"rnbqkbnr"                # push the string "rnbqkbnr"
                          # STACK: "rnbqkbnr"
          'p8×            # push the char "p" repeated 8 times
                          # STACK: "rnbqkbnr", "pppppppp"
              '.8×        # push the char "." repeated 8 times
                          # STACK: "rnbqkbnr", "pppppppp", "........"
                  D       # duplicate
                          # STACK: "rnbqkbnr", "pppppppp", "........", "........"
                   )      # wrap in list
                          # STACK: ["rnbqkbnr", "pppppppp", "........", "........"]
                    Â     # push a reversed copy of the list
                          # STACK: ["rnbqkbnr", "pppppppp", "........", "........"], 
                                   ["........", "........", "pppppppp", "rnbqkbnr"]
                     u«   # convert to upper-case and concatenate
                          # STACK: ['rnbqkbnr', 'pppppppp', '........', '........', 
                                    '........', '........', 'PPPPPPPP', 'RNBQKBNR']
                       »  # join list by newline

1
これは私が今まで見たことなく答えをゴルフしたことがあり、使用したキャラクターの100%であなたにマッチしたのは初めてだと思います。お奨めは、これが笑と同じくらい良いことです。
魔法のタコUr

7

実際には、26バイト

'p8*"rnbqkbnr"│û@û4'.8*n((

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

説明:

'p8*"rnbqkbnr"│û@û4'.8*n((
'p8*                        "p"*8 ["pppppppp"]
    "rnbqkbnr"              that string ["rnbqkbnr", "pppppppp"]
              │             duplicate stack ["rnbqkbnr", "pppppppp", "rnbqkbnr", "pppppppp"]
                û@û         uppercase the dupes ["RNBQKBNR", "PPPPPPPP", "rnbqkbnr", "pppppppp"]
               4   '.8*n    "."*8, 4 times ["RNBQKBNR", "PPPPPPPP", "........", "........", "........", "........", "rnbqkbnr", "pppppppp"]
                        ((  move the uppercase strings to the bottom of the stack, implicitly print

6

チェダー、56バイト

a=['rnbqkbnr','p'*8]+['.'*8]*2->(a+a.rev=>@.upper).vfuse

新しい=>機能を使用します。

説明

a=                      // set a to the first half
  ['rnbqkbnr','p'*8] +  // First two rows
  ['.'*8]*2             // Next two dots
->(
   a +
   a.rev=>@.upper       // Reverse and map all items to uppercase
).vfuse                 // Join on newlines

5
「チェス」で「チェス」についての質問に答えましたか?
DJMcMayhem

4
@DJMcMayhem ..................あなただけ
でした.....-Downgoat

1
mmこれは美しいチーズです。デフォルトパラメータの不正使用
コナーオブライエン

6

Pyke、28 27 26バイト

"rnbqkbnr"i"P..p"1c8m*Xil3

ここで試してみてください!

今日、私の言語について新しいことを学び1cました。文字列を文字のリストに分割する2文字の方法として使用できます。

"rnbqkbnr"i                - i = "rnbqkbnr"
                             stack = ["rnbqkbnr"])
           "P..p"1c        -  chunk("P..p", 1)
                             stack = ["rnbqkbnr", ["P", ".", ".", "p"]]
                   8m*     - map(8*>, ^)
                             stack = ["rnbqkbnr", ["PPPPPPPP", "........", "........", "pppppppp"]]
                      X    - splat(^)
                             stack = ["rnbqkbnr", "pppppppp", "........", "........", "PPPPPPPP"]
                       il3 - i.changecase()
                             stack = ["rnbqkbnr", "pppppppp", "........", "........", "PPPPPPPP", "RNBQKBNR"]
                           - implicit join with newlines

rnbqkbnr
pppppppp
........
........
PPPPPPPP
RNBQKBNR

5

MATL、26バイト

'rnbqkbnr' 'p..'!l8X"vtPXk

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

説明

'rnbqkbnr'   % Push this string (1×8 char array)
'p..'!       % Push this string transposed (3×1 char array)
l8X"         % Repeat 1×8 times: gives 3×8 char array
v            % Concatenate the two arrays vertically into a 4×8 char array
tP           % Duplicate and flip vertically
Xk           % Convert to uppercase. Implicitly display the two 4×8 arrays

5

ルビー、45 44

tuxcraftingのおかげで1バイト節約されました。

puts"rnbqkbnr",?p*8,[?.*8]*4,?P*8,"RNBQKBNR"

これは45です

puts s="rnbqkbnr",?p*8,[?.*8]*4,?P*8,s.upcase

賢いものを試してみると、長くなりそうです。



5

JavaScript(ES6)、69 65バイト

edc65のおかげで4バイト節約

let f =

_=>`rnbqkbnr
p....PRNBQKBNR`.replace(/p|\./ig,c=>c.repeat(8)+`
`)

console.log(f());


1
非常に賢い!'rnbqkbnrnp....PRNBQKBNR'.replace(/p|\./ig,c=>c.repeat(8)+'\n')\n

5

C#、94 92バイト

編集:文字列の順序を変更して戻り空白を削除することで1バイトを節約してくれたmilkに感謝します。

編集:ダミーパラメーターを追加することにより、さらに1バイトを保存しました(()の代わりにx匿名関数に)を任意のオブジェクトで呼び出して、。

x=>{string a="RNBQKBNR\n",b="PPPPPPPP\n",c="........\n";return(a+b).ToLower()+c+c+c+c+b+a;};

上記の機能を使用した完全なプログラム:

using System;

namespace DrawAnASCIIChessBoard
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<object,string>f= x=>{string a="RNBQKBNR\n",b="PPPPPPPP\n",c="........\n";return(a+b).ToLower()+c+c+c+c+b+a;};
            Console.WriteLine(f(1));
        }
    }
}

C#は非常に冗長な言語です...


C#フルプログラム、131バイト

class P{static void Main(){string a="rnbqkbnr\n",b="pppppppp\n",c="........\n";System.Console.Write(a+b+c+c+c+c+(b+a).ToUpper());}}

ゴルフをしていない:

class P
{
    static void Main()
    {
        string a="rnbqkbnr\n",
            b="pppppppp\n",
            c="........\n";
        System.Console.Write(a+b+c+c+c+c+(b+a).ToUpper());
    }
}

2
「C#は非常に冗長な言語です...」。その後、VB.NETを試していない...;)
TyCobb

2
あなたは定義することによって、バイトを保存することができますaし、b大文字は、その後、あなたはスペースの後を取り除くことができますようreturnreturn(a+b).ToLower()+...
牛乳

@TyCobbかなり前にVB.NETを試しました。当時のコードゴルフについては知りませんでした:P
adrianmp

var代わりに使用できますstringか?
-NibblyPig

@SLC C#でしばらくプログラミングしていないので、間違っている場合は修正しますがvar、1行で複数の宣言を使用できるとは思いません。そうstring a="rnbqkbnr\n",b="pppppppp\n",c="........\n";なるvar a="rnbqkbnr\n";var b="pppppppp\n";var c="........\n";バイト数を増加させます。編集:暗黙的に型指定されたローカル変数宣言には複数の宣言子を含めることはできません」エラーが発生します
ケビンCruijssen

4

Python 2、68バイト

とにかく投稿しますが、上記のPython 2バージョンは短いです。それは、バイトの量に対して1つのライナーである必要はなく、それで遊んだだけです。

x,y,z="rnbqkbnr\n","p"*8+"\n","."*8+"\n";print x,y,4*z,(y+x).upper()

z使用するのは一度だけなので、それを取り除き、printステートメントでドットを生成できます。
カールナップ

3

Haskell、53バイト

a="rnbkqbnr" 
unlines$a:map(<$a)"p....P"++["RNBKQBNR"]

aは、最初の行として使用されp.およびP(-> <$a)で構成される文字列の長さを決定します。。


3

JavaScript(ES6)、73

.toUpperCase 単に長すぎる

_=>`rnbqkbnr
${r=c=>c[0].repeat(8)+`
`,r`p`+(b=r`.`)+b+b+b+r`P`}RNBQKBNR`

O.textContent=(
  
_=>`rnbqkbnr
${r=c=>c[0].repeat(8)+`
`,r`p`+(b=r`.`)+b+b+b+r`P`}RNBQKBNR`

)()
<pre id=O></pre>


(r=c=>c[0].repeat(8)+\ n と思います,b=r)=>バイトを節約します。
ニール

@ニール私は節約を見ません。私はコード増加readibility(少し)を書き換えしようとしましたが、バイト数が同じまま
edc65

ああ、私はそこで間違ったことを見て、どういうわけか途中で改行を失いました。ごめんなさい
ニール

3

PowerShell v2 +、44バイト

'rnbqknbr'
'p'*8
,('.'*8)*4
'P'*8
'RNBQKNBR'

パイプラインに残っている文字列はWrite-Output、プログラムの実行時に暗黙的に出力されます。それを配列のデフォルトの改行動作と組み合わせて、コンマ演算子で4行のピリオドを生成します。

PS C:\Tools\Scripts\golfing> .\draw-ascii-chess-board.ps1
rnbqknbr
pppppppp
........
........
........
........
PPPPPPPP
RNBQKNBR

点の行の新しい行はどこにありますか?「、( '。' * 8)* 4」は「、」だと思う
...-RosLuP

@RosLuPコンマ演算子,は、配列(この場合、文字列の配列)を作成します。Write-Outputプログラム完了時のデフォルトでは、個々の配列要素を含む、パイプラインに残っている要素間に改行が挿入されます。そのため、コード内に明示的な改行を記述する必要がないように、デフォルトの出力動作を乱用しています。
AdmBorkBork

3

V27、26のバイト

i¸P
RNBQKBNRäkgujddppÒ.4Ä

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

これには印刷できない文字が含まれているので、読みやすいバージョンを次に示します。

i¸P
RNBQKBNR<esc>äkgujddppÒ.4Ä

はを<esc>表し0x1Bます。説明:

i                               " Enter insert mode
 ¸P                             " Enter 8 'P' characters
                                " and a newline
RNBQKBNR<esc>                   " Enter the first row and escape to normal mode.
             äk                 " Duplicate this line and the line above
               guj              " Convert this line, and the line below to lowercase
                  dd            " Delete this line
                    pp          " And paste it twice below us
                      Ò.        " Replace this whole line with '.' chars
                        4Ä      " And create four copies of this line

3

Emotinomicon、89バイト

残念ながら、Emotinomiconには重複したスタック関数のようなものはありません。役に立つでしょう。しかし、少なくともJavaよりも短いです。:)

😭RNBKQBNR
PPPPPPPP
........
........
........
........
pppppppp
rnbkqbnr😲⏪⏬⏩

説明:

😭(...)😲⏪⏬⏩
😭(...)😲            String literal
         ⏪  ⏩      Loop
           ⏬        Pop one char and output

うーん...それは今では...ないだろう、便利な機能だろう
コナー・オブライエン

プログラムでさえ悲しいです。😭=悲しい
A _

3

Brain-Flak366 350 + 3 = 353バイト

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

(((((((((((()()())){}(((({}))){}{}(([((({})){}){}](([({}())](((((({}()){}){}){}()){})<>))<>)<>)<>)))<<>({}<>)<>({}<>)<>({}<>)([]()())>[()]))))))))(()()()()){({}[()]<((((((((((((()()()()()){})()){}()){}))))))))>)}{}(((()()()()()){})<((((((((([][]()()()()))))))))<>)<>>)(((((()()()))){})(({}{})(([{}({})](([{}()](<>({}()())<>)<>)<>)<>)<>))){<>({}<>)}{}

-Aフラグを適切に実行する必要があるため、これはプラス3になります。

説明

First we push the last 5 letters to the active stack.
We also push copies of last 3 numbers to the inactive stack.
This is done with fairly simple methods I won't go into for the sake of brevity.

 (((()()())){}(((({}))){}{}(([((({})){}){}](([({}())](((((({}()){}){}){}()){})<>)<><>)<>)<>)<>)))

We Move Everything from the offstack to the onstack.
The first 3 letters are the same as the last 3 letters in the first line

{<>({}<>)}{}

We push 10 for a new line

((()()()()()){})

Using the value of Q we create a P and push it 8 times

((((((((<...>[()]))))))))

We loop 4 times each time pushing 8 dots and a newline

(()()()())
{({}[()]<
    ((((((((((((()()()()()){})()){}()){}))))))))
>)}{}

We push the last two lines in a very similar way to the first two.

(((()()()()()){})<((((((((([][]()()()()))))))))<>)<>>)(((()()()){})(({}()()())(([{}(()()())](([{}()](<>({}()())<>)<>)<>)<>)<>))){<>({}<>)}{}

最初の2行をプッシュすると、((((((((((((((((((((()()()()()){}){}){}()){})[()()()()])[([][][]){}])[][][])[]()())[[][][]])[][])()()()())<([]()())>[()()]))))))))16バイト節約できます。これは代替スタックをまったく使用しないため、さらに短くなる可能性があります。
DJMcMayhem

3

Python 3.5、56バイト

for r in['rnbqkbn',*'p....P','RNBQKBN']:print((r*8)[:8])

これはzawataによるアイデアを使用して各行をコード化(r*8)[:8]し、文字列を8回繰り返して長さにトリミングし8ます。ポーンと空の行は'p'*8、トリミングなしで、、、'.'*8およびだけ'P'*8です。最初の行はを使用し'rnbqkbn'('rnbqkbn'*8)[:8]乗算およびトリミング時に右側に別のルークを含めます。最後の行は同じですが、大文字です。

Python 3.5の一般化されたunpacking['rnbqkbn','p','.','.','.','.','P','RNBQKBN']を使用して、行部分のリストをコンパクトに表現します。最初と最後のエントリを書き出し、残りの1文字のエントリは文字列から展開されます。

Python 2では、split代わりに60バイトで解決できました。

for i in'rnbqkbn p . . . . P RNBQKBN'.split():print(i*8)[:8]

3

Pythonの3、82 80の 75バイト

Pythonの最短回答ではありませんが、それは私の最初であり、初めてかなり良いと思います

print('\n'.join((i*8)[:8]for i in'rnbqkbn p . . . . P RNBQKBN'.split()))

1
サイトへようこそ!余分なスペースを削除すると、2バイトを節約できます。例えば[:8]for i in['rnbqkbn'....
DJMcMayhem

1
すべての行を統合し、ルークを再利用するという素晴らしいアイデア。リストはとして短く書くことができます'rnbqkbn p . . . . P RNBQKBN'.split()
-xnor

@DJMcMayhemは、それらが必要ないことを知りませんでした。ありがとう!
沢田

@xnorそれは素晴らしいアイデアです!私の「武器庫」にそのトリックを追加する必要があります笑
沢田

2

バッチ、105バイト

@set e=@echo ........
@echo rnbqkbnr
@echo pppppppp
%e%
%e%
%e%
%e%
@echo PPPPPPPP
@echo RNBQKBNR

バッチは非常に冗長です...


2

R、75バイト

編集:愚かなエラーを修正し、ボードの大文字部分を書き出すだけです。

cat("rnbqkbnr\npppppppp\n",rep("........\n",4),"PPPPPPPP\nRNBQKBNR",sep="")

1
黒い駒はこれが立っていると間違って出てきます。ポーンは他の駒の前にあるはずです。
JDL

@JDLあなたはもちろん正しいです、ありがとう。最後の2番目の変更を行うときの愚かな間違い。
ビリーウォブ


2

Powershell、82 73バイト

$x=("rnbqkbnr",$("p"*8),$("."*8),$("."*8));$x+$x[3..0].ToUpper()-join"`n"


@Veskah-それはどのように機能しますか?私は*per前にそのことを見たことがなく、グーグルは私にポインタを与えていません。説明がありますか?
クリスJ

詳細についてはこちらをご覧ください。ただし、%は、指定された内容でプロパティ/メソッド(名前にワイルドカードを使用)を呼び出すことができます
Veskah

2

J、55 52バイト

'.rnbkqpPQKBNR'{~(+-@|.)8 8$1 2 3 4 5 3 2 1,8 48#6 0

テストおよび中間ステップ

   '.rnbkqpPQKBNR'{~(+-@|.)8 8$1 2 3 4 5 3 2 1,8 48#6 0
rnbkqbnr
pppppppp
........
........
........
........
PPPPPPPP
RNBKQBNR
   8 48#6 0
6 6 6 6 6 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
   1 2 3 4 5 3 2 1,8 48#6 0
1 2 3 4 5 3 2 1 6 6 6 6 6 6 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
   8 8$1 2 3 4 5 3 2 1,8 48#6 0
1 2 3 4 5 3 2 1
6 6 6 6 6 6 6 6
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
   (+-@|.)8 8$1 2 3 4 5 3 2 1,8 48#6 0
 1  2  3  4  5  3  2  1
 6  6  6  6  6  6  6  6
 0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0
_6 _6 _6 _6 _6 _6 _6 _6
_1 _2 _3 _4 _5 _3 _2 _1
   '.rnbkqpPQKBNR'{~(+-@|.)8 8$1 2 3 4 5 3 2 1,8 48#6 0
rnbkqbnr
pppppppp
........
........
........
........
PPPPPPPP
RNBKQBNR

2

Python 3、64バイト

私のようにPython 2に対するDLoscの回答に基づいて、改善できませんでした。

print(*["rnbqkbnr","p"*8]+["."*8]*4+["P"*8,"RNBQKBNR"],sep="\n")

「\ n」.joinを使用する場合と比較して1バイト少ない

print("\n".join(["rnbqkbnr","p"*8]+["."*8]*4+["P"*8,"RNBQKBNR"]))

2

q、51バイト

"\n"sv flip{x,"p...P","c"$("i"$x)-32}each"rnbqkbnr"

上部および各右で数バイトを削ることができます。また、次の例は、改行を含む文字列を返すのではなく、stdoutに出力します-1 flip"p...P"{y,x,upper y}/:"rnbqkbnr";。40バイト。いい解決策!
ストリートスター

2

GNU sed、54バイト

s:^:rnbqkbnr:p;h
s:.:p:gp;G
h;s:[^\n]:.:gp;G
s:.:\U&:g

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

説明:

黒い部分が最初に印刷され、保留スペースに2つの関連するボードランクが逆の順序で保存されます。保留スペースを大文字に変換することにより、白い部分が印刷されます。

s:^:rnbqkbnr:p;h   # change pattern and hold spaces to 'rnbqkbnr' and print string
s:.:p:gp           # replace each pattern space letter with a 'p', then print
G;h                # append hold space, then copy pattern space to hold space
s:[^\n]:.:gp       # replace each pattern space letter with a '.', then print
G;s:.:\U&:g        # append hold space and convert pattern space to uppercase
                   # (automatic printing of pattern space at the end)

2

Java 7、103 99 89バイト

String f(){return"rnbqkbnr\npppppppp\nxxxxPPPPPPPP\nRNBQKBNR".replace("x","........\n");}

@SLCのC#回答でのアプローチのおかげで、ハードコーディングされた出力と比較して10バイト節約されました

ここで試してみてください。

出力:

rnbqkbnr
pppppppp
........
........
........
........
PPPPPPPP
RNBQKBNR

String f(){return"rnbqkbnr\npppppppp\n........\n........\n........\n........\nPPPPPPPP\nRNBQKBNR";}これはどうですか。これは100バイトです。
ナンバーノット

@Numberknotなんてつまらない..しかし、あなたは正しい、それは短いです。ところで、それは99のバイトではなく、100です
ケビンCruijssen

2

C#、85 84 83 74バイト

編集:誤って行の余白が多すぎます!

編集:余分な文字を解放し、順序を修正しました(偶然すべてが逆になりました)@KevinCruijssenに感謝します

編集:エビが間違った行にあった83 cosに戻しました

編集:リターンを省略してさらに縮小するのを手伝ってくれた@adrianmpに感謝

上記の@adrianmp回答と同じ形式を使用します。

x=>"rnbqkbnr\npppppppp\nxxxxRNBQKBNR\nPPPPPPPP".Replace("x","........\n");

上記の機能を使用した完全なプログラム:

using System;

namespace DrawAnASCIIChessBoard
{
    class Program
    {
        static void Main(string[] args)
        {
            Func<object, string> f = 
                x=>"rnbqkbnr\npppppppp\nxxxxRNBQKBNR\nPPPPPPPP".Replace("x","........\n");
                    Console.WriteLine(f(1));
        }
    }
}

こんにちは、PPCGへようこそ!うーん、あなたの作品の順序はOPの1つで間違っているようです。ところで、の間のスペースを削除することで1バイト節約できるreturn "ので、次のようになりますx=>{return"rnbqkbnr\npppppppp\nxxxxPPPPPPPP\nRNBQKBNR".Replace("x","........\n");};。いい答えだから、私から+1。ここでの滞在をお楽しみください。:)
ケビンクルーイッセン

そして答えてくれてありがとう。Java 7の回答に同じアプローチを移植しました(もちろんクレジットします)。バイト数を10
減らし

私はそれをさらに改善しました
NibblyPig

Gah私はちょうどそれが正しくないことに気付いた
-NibblyPig

1
素敵なアプローチ!実際に74バイトに減らすことができますx=>"rnbqkbnr\npppppppp\nxxxxRNBQKBNR\nPPPPPPPP".Replace("x","........\n");
。– adrianmp
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.