¡Dibuja un tablero de ajedrez ASCII!

42

Aquí hay un desafío simple para usted: debe producir esta representación ASCII de un tablero de ajedrez. El blanco está representado por mayúsculas y el negro está representado por minúsculas. Los mosaicos vacíos están representados por a .. Aquí está la pensión completa:

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

Dado que esta es una , no puede tomar ninguna entrada y debe sacar esta placa por cualquier método predeterminado, por ejemplo, guardar un archivo, imprimir en STDOUT o regresar de una función. Usted puede producir opcionalmente uno salto de línea final. Se aplican las lagunas estándar, ¡y el programa más corto en bytes!

Sin embargo, recuerde que esto es igualmente una competencia entre presentaciones en el mismo idioma. Si bien es poco probable que un lenguaje como Java pueda vencer a un lenguaje como Perl, o un lenguaje de golf como Pyth o Cjam, ¡tener la respuesta más corta de Java sigue siendo realmente impresionante! Para ayudarlo a rastrear la respuesta más corta en cada idioma, puede usar esta tabla de clasificación, que mostrará la presentación más corta por idioma y en general.

Tablas de clasificación

Para asegurarse de que su respuesta se muestre, comience con un título, utilizando la siguiente plantilla de Markdown:

# Language Name, N bytes

¿Dónde Nestá el tamaño de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:

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

Si desea incluir varios números en su encabezado (por ejemplo, porque su puntaje es la suma de dos archivos o desea enumerar las penalizaciones de la bandera del intérprete por separado), asegúrese de que el puntaje real sea el último número en el encabezado:

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

También puede hacer que el nombre del idioma sea un enlace que luego aparecerá en el fragmento de la tabla de clasificación:

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

DJMcMayhem
fuente
1
¿Seguramente un ASCII arttablero de ajedrez tendría el punto final en cada casilla?
Shaun Bebbers

Respuestas:

16

Jalea , 25 24 bytes

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

Pruébalo en línea!

¡Gracias a @Lynn por jugar golf en 1 byte!

Cómo funciona

“.“.“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.
Dennis
fuente
15

Vim, 26 bytes

irnbqkbnr<Esc>Y6p5Vr.VrpYGPgUj

Se basa en un Vim nuevo, o de lo contrario 5Vpuede seleccionar el área incorrecta.

  • irnbqkbnr<Esc>: Escribe la fila superior. Suficientemente fácil.
  • Y6p: Haga el resto de las filas, excepto una . Por supuesto, todas menos las filas superior e inferior contienen los caracteres incorrectos.
  • 5Vr.: Cuando todavía no ha usado el modo visual en la sesión, puede hacer cosas como esta para seleccionar 5 líneas. Si volvía a escribir lo mismo de inmediato, intentaría seleccionar 25 líneas. Vim es raro así.
  • Vrp: Ya estamos en la línea 2, así que hagamos una línea de peón.
  • YGP: Copia esa línea de peón en su lugar en la parte inferior. Es por eso que usé en 6plugar de 7pantes.
  • gUj: Capitaliza las piezas blancas.
udioica
fuente
1
¡El mejor lenguaje de golf que existe!
dejó de girar en sentido contrario a las agujas del reloj el
10

Brainfuck , 224 bytes

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

Tomó casi una hora para conseguir esto.

Hunter VL
fuente
8

Python 2, 63 bytes

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

Desafortunadamente, el enfoque bastante simple fue mucho más corto que las cosas "inteligentes" que probé al principio ...

Respuesta adicional, también 63 bytes:

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

05AB1E , 24 bytes

Utiliza la codificación CP-1252 .

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

Pruébalo en línea!

Explicación

"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
Emigna
fuente
1
Creo que esta es la PRIMERA vez que he respondido una respuesta sin mirar y te he encontrado en el 100% de los caracteres utilizados. Tengo que estar de acuerdo en que esto es tan bueno como parece jaja.
Urna mágica del pulpo
7

En realidad , 26 bytes

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

Pruébalo en línea!

Explicació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
Mego
fuente
6

Cheddar, 56 bytes

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

Utiliza la nueva =>función.

Explicación

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
Downgoat
fuente
55
¿Entonces respondiste una pregunta sobre 'ajedrez' en 'ches'?
DJMcMayhem
44
@DJMcMayhem .................. acabas de .....
Downgoat
1
mm este es un hermoso queso. buen abuso de los parámetros predeterminados
Conor O'Brien
6

Pyke, 28 27 26 bytes

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

Pruébalo aquí!

Hoy aprendí algo nuevo sobre mi idioma: 1cpuede usarse como una forma de 2 caracteres de dividir una cadena en una lista de caracteres.

"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
Azul
fuente
5

MATL , 26 bytes

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

Pruébalo en línea!

Explicación

'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
Luis Mendo
fuente
5

Ruby, 45 44

1 byte guardado gracias a la esmoquin.

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

Esto es 45

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

Intentar algo más inteligente parece hacerlo más largo.

Level River St
fuente
Retire el espacio antes de la cadena después de laputs
TuxCrafting
5

JavaScript (ES6), 69 65 bytes

Guardado 4 bytes gracias a edc65

let f =

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

console.log(f());

Arnauld
fuente
1
¡Muy inteligente! Quizás demasiado inteligente, podría guardar 4 bytes con 'rnbqkbnrnp....PRNBQKBNR'.replace(/p|\./ig,c=>c.repeat(8)+'\n')(cambiar \na una nueva línea literal)
edc65
5

C #, 94 92 bytes

Editar: Gracias a milk por guardar 1 byte cambiando el orden de las cadenas para eliminar el espacio en blanco de retorno.

Editar: se guardó 1 byte más al agregar un parámetro ficticio ( x en lugar de () ) para la función anónima y llamarlo con cualquier objeto.

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

Programa completo con la función anterior:

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 # es un lenguaje muy detallado ...


C # programa completo, 131 bytes

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());}}

Sin golf:

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());
    }
}
adrianmp
fuente
2
"C # es un lenguaje muy detallado ...". No has probado VB.NET entonces ...;)
TyCobb
2
Puede guardar un byte definiendo ay ben mayúsculas, luego puede deshacerse del espacio después de return:return(a+b).ToLower()+...
leche
@TyCobb Probé VB.NET hace bastante tiempo. No sabía sobre golf de código en ese entonces: P
adrianmp
puedes usar en varlugar de string?
NibblyPig
@SLC No he programado en C # por un tiempo, así que corrígeme si me equivoco, pero no creo que puedas usarlo varcon varias declaraciones en una sola línea. Entonces string a="rnbqkbnr\n",b="pppppppp\n",c="........\n";se convertiría var a="rnbqkbnr\n";var b="pppppppp\n";var c="........\n";, lo que aumenta el conteo de bytes. EDITAR: Daría un error " Una declaración de variable local tipada implícitamente no puede incluir múltiples declaradores " .
Kevin Cruijssen
4

Python 2, 68 bytes

Publicación de todos modos, aunque la versión anterior de Python 2 es más corta. No tendría que ser un trazador de líneas para la cantidad de bytes, solo jugar con él.

x,y,z="rnbqkbnr\n","p"*8+"\n","."*8+"\n";print x,y,4*z,(y+x).upper()
DomPar
fuente
Dado zque solo se usa una vez, puede deshacerse de él y producir los puntos en la declaración de impresión.
Karl Napf
3

Haskell, 53 bytes

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

ase utiliza como la primera línea y para determinar la longitud de las cuerdas hechas de p, .y P(-> <$a). .

nimi
fuente
3

JavaScript (ES6), 73

.toUpperCase es simplemente demasiado largo

_=>`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>

edc65
fuente
Creo que (r=c=>c[0].repeat(8)+\ n ,b=r. )=>te ahorra un byte.
Neil
@Neil, no veo el ahorro. Traté de reescribir el código aumentando la lectura (un poco), pero el recuento de bytes permanece igual
edc65
Ah, veo lo que hice mal allí, de alguna manera perdí una nueva línea en el camino. Lo siento por eso.
Neil
3

PowerShell v2 +, 44 bytes

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

Las cadenas que quedan en la tubería se imprimen implícitamente con la Write-Outputejecución del programa. Combinamos eso con el comportamiento predeterminado de la nueva línea para que una matriz produzca las cuatro líneas de puntos con el operador de coma.

PS C:\Tools\Scripts\golfing> .\draw-ascii-chess-board.ps1
rnbqknbr
pppppppp
........
........
........
........
PPPPPPPP
RNBQKNBR
AdmBorkBork
fuente
¿Dónde están las nuevas líneas en las líneas de puntos? ", ('.' * 8) * 4" es el ',' supongo ...
RosLuP
@RosLuP El operador de coma ,crea una matriz (en este caso, una matriz de cadenas). El valor predeterminado Write-Outputal finalizar el programa inserta una nueva línea entre los elementos que quedan en la tubería, incluidos los elementos de matriz individuales. Entonces, estamos abusando del comportamiento de salida predeterminado para no necesitar escribir nuevas líneas explícitas en el código.
AdmBorkBork
3

V , 27 , 26 bytes

i¸P
RNBQKBNRäkgujddppÒ.4Ä

Pruébalo en línea!

Contiene algunos caracteres no imprimibles, así que aquí está la versión legible:

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

donde <esc>representa 0x1B. Explicación:

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
DJMcMayhem
fuente
3

Emotinomicon, 89 bytes

Lamentablemente, Emotinomicon no tiene nada como una función de pila duplicada. Sería útil Pero al menos más corto que Java. :)

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

Explicación:

😭(...)😲⏪⏬⏩
😭(...)😲            String literal
         ⏪  ⏩      Loop
           ⏬        Pop one char and output
Roman Gräf
fuente
Hmm ... esa sería una función útil, ahora no lo sería ...
Conor O'Brien
Incluso el programa es triste. 😭 = Tristemente
A _
3

Brain-Flak , 366 350 + 3 = 353 bytes

Pruébalo en línea!

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

Esto obtiene un plus 3 porque requiere el -A bandera se ejecute correctamente.

Explicación

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.

(((()()()()()){})<((((((((([][]()()()()))))))))<>)<>>)(((()()()){})(({}()()())(([{}(()()())](([{}()](<>({}()())<>)<>)<>)<>)<>))){<>({}<>)}{}
Asistente de trigo
fuente
Puede empujar las dos primeras líneas con las ((((((((((((((((((((()()()()()){}){}){}()){})[()()()()])[([][][]){}])[][][])[]()())[[][][]])[][])()()()())<([]()())>[()()]))))))))que creo que le ahorraría 16 bytes. Esto no utiliza la pila alternativa en absoluto, por lo que probablemente podría ser aún más corto.
DJMcMayhem
3

Python 3.5, 56 bytes

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

Esto usa una idea de zawata para codificar cada línea como (r*8)[:8], con una cadena repetida 8 veces y recortada a la longitud 8. Los peones y filas vacías son sólo 'p'*8, '.'*8y 'P'*8, sin recorte. La primera fila usa 'rnbqkbn', con('rnbqkbn'*8)[:8] inclusión de otra torre a la derecha cuando se multiplica y se recorta. La última fila es la misma pero en mayúscula.

Expresamos la lista de partes de fila de manera compacta ['rnbqkbn','p','.','.','.','.','P','RNBQKBN']usando el desempaquetado generalizado de Python 3.5 . Escribimos la primera y la última entrada, y las restantes de un solo carácter se desempaquetan de una cadena.

En Python 2, podríamos conformarnos splitcon 60 bytes:

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

Python 3, 82 80 75 Bytes

No es la respuesta más corta en Python, pero es mi primera y creo que es bastante buena por primera vez.

print('\n'.join((i*8)[:8]for i in'rnbqkbn p . . . . P RNBQKBN'.split()))
zawata
fuente
1
Bienvenido al sitio! Podría quitar dos bytes si elimina algunos espacios adicionales. Ej .[:8]for i in['rnbqkbn'....
DJMcMayhem
1
Buena idea con unificar todas las líneas y reutilizar las torres. Puede escribir la lista más corta como 'rnbqkbn p . . . . P RNBQKBN'.split().
xnor
@DJMcMayhem no sabía que no eran necesarios. ¡Gracias!
zawata
@xnor que es una gran idea! Voy a tener que agregar ese truco a mi "arsenal" jaja
zawata
2

Lote, 105 bytes

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

Batch es muy detallado ...

Neil
fuente
2

R, 75 bytes

Editar: se corrigió un error tonto y simplemente escribe la parte mayúscula del tablero ahora.

cat("rnbqkbnr\npppppppp\n",rep("........\n",4),"PPPPPPPP\nRNBQKBNR",sep="")
Billywob
fuente
1
Las piezas negras salen mal como está: los peones deben estar delante de las otras piezas.
JDL
@JDL Por supuesto que tienes razón, gracias. Error tonto al hacer cambios de último segundo.
Billywob
2

Powershell, 82 73 bytes

$x=("rnbqkbnr",$("p"*8),$("."*8),$("."*8));$x+$x[3..0].ToUpper()-join"`n"
Chris J
fuente
59 bytes
Veskah
@Veskah: ¿cómo funciona eso? No he visto la *percosa antes, y un google no me da consejos. ¿Tienes una explicación?
Chris J
Verifique aquí la escritura completa, pero |% puede llamar a propiedades / métodos (con comodines en el nombre) sobre lo que se le da
Veskah
2

J, 55 52 bytes

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

Prueba y pasos intermedios

   '.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
Conor O'Brien
fuente
2

Python 3, 64 bytes

Según la respuesta de DLosc a Python 2, como en la mía, no pude mejorar.

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

1 byte menos en comparación con el uso de "\ n" .join

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

q, 51 bytes

"\n"sv flip{x,"p...P","c"$("i"$x)-32}each"rnbqkbnr"
Boston Walker
fuente
Puede recortar algunos bytes con superior y cada uno a la derecha. También los siguientes impresiones a la salida estándar en lugar de devolver una cadena con saltos de línea: -1 flip"p...P"{y,x,upper y}/:"rnbqkbnr";. 40 bytes. Buena solución sin embargo!
StreetSter
2

GNU sed, 54 bytes

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

Pruébalo en línea!

Explicación:

Las piezas negras se imprimen primero, guardando los dos rangos de tablero asociados en orden inverso en el espacio de espera. Las piezas blancas se imprimen al convertir el espacio de espera en letras mayúsculas.

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)
seshoumara
fuente
2

Java 7, 103 99 89 bytes

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

10 bytes guardados en comparación con la salida codificada gracias al enfoque de @SLC en su respuesta C # .

Pruébalo aquí

Salida:

rnbqkbnr
pppppppp
........
........
........
........
PPPPPPPP
RNBQKBNR
Kevin Cruijssen
fuente
¿Qué pasa con esto? String f(){return"rnbqkbnr\npppppppp\n........\n........\n........\n........\nPPPPPPPP\nRNBQKBNR";}Esto es de 100 bytes .
Numberknot
@Numberknot Qué aburrido ... pero tienes razón, es más corto. Por cierto, son 99 bytes, no 100.
Kevin Cruijssen
2

C #, 85 84 83 74 bytes

Editar: ¡Accidentalmente tenía demasiadas filas de espacios en blanco!

Editar: liberó un personaje adicional y arregló el pedido (accidentalmente lo invirtió todo) muchas gracias a @KevinCruijssen

Editar: volví a 83 porque tenía las gambas en la línea incorrecta

Editar: Gracias a @adrianmp que me ayudó a reducirlo aún más omitiendo return

Usando el mismo formato que @adrianmp responde arriba:

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

Programa completo con la función anterior:

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));
        }
    }
}
NibblyPig
fuente
Hola, bienvenido a PPCG! Hmm, el orden de tus piezas parece incorrecto con el de OP. Por cierto, puede guardar 1 byte eliminando el espacio entre return ", por lo que se convierte en: x=>{return"rnbqkbnr\npppppppp\nxxxxPPPPPPPP\nRNBQKBNR".Replace("x","........\n");};. Buena respuesta, entonces +1 de mi parte. Y disfruta tu estadía aquí. :)
Kevin Cruijssen
Y gracias por tu respuesta. He portado el mismo enfoque para mi respuesta Java 7 (por supuesto, acreditándote) , reduciendo el recuento de bytes en 10. :)
Kevin Cruijssen
Lo he mejorado aún más
NibblyPig
Gah, me acabo de dar cuenta de que eso no está bien
NibblyPig
1
Buen enfoque! En realidad, puede reducirlo a 74 bytes:x=>"rnbqkbnr\npppppppp\nxxxxRNBQKBNR\nPPPPPPPP".Replace("x","........\n");
adrianmp