给我月饼!


31

中秋节开始了!

不幸的是,我所有的月饼都被偷了-对于像我这样的小伙子来说,它们变得太贵了,我担心今年我将不能吃任何东西!

因此,我向您寻求帮助。你能给我一些吗?

对于那些不知道的人,让我对月饼的外观进行教育。


月饼有多种尺寸!
所以我要去给你我的输入ñ,当我想要一个。

这是我想要的输出的一些示例:

n = 3的月饼:

    (@@@@@)  
    (@MAF@) 
    (@@@@@) 

n = 6的月饼:

    (@@@@@@@@@@@) 
    (@         @)
    (@    M    @) 
    (@    F    @)
    (@         @)
    (@@@@@@@@@@@) 

也就是说,大小为n的月饼为:

  • n行高
  • 2n-1 @s长
  • 2n + 1个字符长(@s和方括号)

而且你最好不要把你太小的练习月饼扔给我!
假设输入将始终为n> = 3

月饼还包含以下装饰之一

  • 中频
  • 货币基金组织
  • HMF
  • JCJ
  • TTT
  • ZJ
  • 如果
  • 射频
  • 碳纤维

哪一个都没有关系-只要它在垂直和水平方向上居中即可
它也可以垂直或水平书写!

我要多样化!
如果您真的要让我两个相同的月饼,则装饰最好有所不同!

也就是说,使用完全相同的输入多次执行程序时,不一定总是产生相同的修饰

我等不及要吃你的月饼,所以我越早收到它们(您的代码越短)越好!

祝好运!


对于那些对装饰感到好奇的人:
它们是中秋节所有其他名称的缩写。
可以在此文章顶部链接的Wikipedia页面中找到列表。


说明:

没有关于前导和尾随空格的规则
随心所欲!

装饰必须在月饼的正中央!
在水平装饰上,这意味着它必须在蛋糕的中线上,并且装饰字符串左右两侧的字符数必须相等。
在垂直装饰上,这意味着它必须位于蛋糕的中间栏中,并且装饰上方和下方的字符数必须相等。

并非必须使用所有装饰!
唯一的要求是,对于任何给定的输入 n,都必须有不止一种可能性。可能性也不必是偶数。

功能是可以接受的。


2
嗨,欢迎来到PPCG!这看起来像是很棒的第一篇文章。通常我们建议使用沙盒应对提出的挑战。在此发布之前,您可以从其他人那里获得反馈,并用您可能未曾想到的事情完善挑战。话虽如此,您的挑战似乎是深思熟虑的。向我+1。关于你的第一个例子但有一个问题,为什么它读MAF,而不是MF?我看不到A您的装饰选项。
凯文·克鲁伊森

1
谢谢!抱歉,我不知道沙盒。反正我能把这只剩下吗?关于装修-那是一个错误。我在允许的装饰中添加了MAF。反馈非常感谢!
Moon Rabbit

1
没有关于前导和尾随空格的规则。由你决定!
Moon Rabbit

3
嗨,我需要在我的月饼机中手动输入所有内容,以获取实际的月饼!
Moon Rabbit

4
...在这种情况下,最好不要使用非ASCII字符集的人工语言,因为键入它们很
麻烦

Answers:


9

Pyth,71 65 59 58字节

@StevenH节省了1个字节。

jjRc"(@@)"2++J*KtytQ\@m.[Kd;.[ttQ@,,O"MC"\F]Oc"MAFHMF"3QkJ

在线尝试。 测试套件。

这么多填充。


2
答案与下面的相同语言的答案有何不同,真是胡说……
魔术八爪鱼缸

您可以通过更换保存一个字节?%Q2@,(反向两种选择的顺序)... Q。我在高尔夫运动中经常使用我自己的Pyth答案。
史蒂文H.

@StevenH。谢谢,我总是忘记模块化索引。
PurkkaKoodari

7

的JavaScript ES6,206 196 192 188 187 180 176 169 165 156个字节

g=(n,r=new Date%2,a=(s,x,b=' @'[+!s].repeat(n-3+!x))=>`(@${b+(s||'@')+b}@)
`,l=a` `.repeat(n/2-2+n%2))=>a()+l+(n%2?a(r?'MAF':'HMF',1):a('RC'[r])+a`F`)+l+a()

分解

r=new Date%2                           // Sometimes 0, sometimes 1

// Function to create lines of the cake of the form `(@@@@@@@@@)` or `(@  ${s}  @)`
a=(s,x,b=' @'[+!s].repeat(n-3+!x))=>`(@${b+(s||'@')+b}@)
`

// Cake parts
a()                                    // Top of the cake.
l=a` `.repeat(n/2-2+n%2)               // Undecorated inner part.
a(r?'MAF':'HMF',1)                     // Decoration for uneven sized cakes.
a('RC'[r])+a`F`                        // Decoration for even sized cakes.
l                                      // Undecorated inner part.
a()                                    // Bottom part.

我第一次尝试代码高尔夫球。这可能打得更多。

@ETHProductions节省了4个字节

编辑 我自由使用满足:Date.now()%2 new Date%2

完全相同输入的程序的多次执行不一定总是产生相同的修饰

这使我可以再节省7个字节 +Math.random()>.5

由于@Arnauld节省了另外4个字节


欢迎使用PPCG,这是一个很好的第一答案!我相信['MA','HA'][r]+'F'可以打高尔夫'MH'[r]+'AF'
ETHproductions 2013年

1
您可以保存两个字节,方法是将替换[' R ',' C '][r]" ${'RC'[r]} ",然后将每个替换"为反引号。
ETHproductions 2013年

1
并且['MA','HM'][r]+'F'实际上比['MAF','HMF'][r]; 长了两个字节;)
ETHproductions

2
您可以使用' @'[+!s]代替(s?' ':'@')
Arnauld

2
另外,您可以使用new Date%2代替Date.now()%2
Arnauld

6

Pyth,99 79 71 68 64字节

Pyth 在制作琴弦方面非常不好。或者,也许我只是很难在打高尔夫球方面变得更好。

jmj.[-yQ3@,k@,@,O"MC"\FgydQOc"MAFHMF"3Q>2ahydQ@" @"sIcdtQc2"(@@)

可以创建装饰MAFHMF水平,以及装饰MFCF垂直。

在线尝试!


2
啊,很高兴看到这个故事中的一些角色发展。
Moon Rabbit

6

Vim,118个字节

将输入作为缓冲区(例如,内容为数字n的文件)。

"aDi()<Esc>@ai@<Esc>.xY@apddll<C-v>G$k3hr @=@a/2-1
j@=@a-2-@a%2
l:let r=abs(reltime()[1])%2
@=@a%2?r?"RJCJ":"3rT":"rFkr"."ML"[r]
<Esc>

这里是xxd格式的不可打印的控制字符:

0000000: 2261 4469 2829 1b40 6169 401b 2e78 5940  "aDi().@ai@..xY@
0000010: 6170 6464 6c6c 1647 246b 3368 7220 403d  apddll.G$k3hr @=
0000020: 4061 2f32 2d31 0a6a 403d 4061 2d32 2d40  @a/2-1.j@=@a-2-@
0000030: 6125 320a 6c3a 6c65 7420 723d 6162 7328  a%2.l:let r=abs(
0000040: 7265 6c74 696d 6528 295b 315d 2925 320a  reltime()[1])%2.
0000050: 403d 4061 2532 3f72 3f22 524a 434a 223a  @=@a%2?r?"RJCJ":
0000060: 2233 7254 223a 2272 466b 7222 2e22 4d4c  "3rT":"rFkr"."ML
0000070: 225b 725d 0a1b                           "[r]..

在线尝试!(事实证明,V解释器也可以正常使用Vim代码。)

说明

"aD                   " Delete the number and store it in @a
i()<Esc>              " Insert empty parentheses
@ai@<Esc>.x           " Insert @a '@' characters between the parentheses twice; delete 1
Y@apdd                " Copy the line and paste it @a times; delete 1
ll<C-v>G$k3hr<Space>  " Replace the inner area with spaces
@=@a/2-1<CR>j         " Go down @a/2-1 lines
@=@a-2-@a%2<CR>l      " Go right @a-2-@a%2 columns
:let r=reltime()[1]%2<CR>  " Get a random 1 or 0 based on the time (this may be OS-dependent)
@=@a%2?
   r?"RJCJ":"3rT"     " For odd @a, replace the next 3 characters with "JCJ" or "TTT"
  :"rFkr"."ML"[r]     " For even @a, replace this character with "F" and the above with "M" or "L"
<CR><Esc>

喔不错哟!我认为这是我见过的第一个不确定的vim答案!有两个想法:1)当您将输入置于“参数”而不是“输入”中时,它预定义@a为arg1,@barg2等,但这是V的特定功能。从"aD一开始,这在技术上就没有关系,但是我只是想指出一点。2)如果您dd@ap代替Y@apdd
DJMcMayhem,

@DJMcMayhem dd@ap 不太正常
约旦

dd@aP可以,但是需要额外j的附加功能k
约旦

5

PHP,342个 292 249 185 178 176字节

for(;$i<$n=$argv[1];)$o.=str_pad("(@",2*$n-1," @"[$i++%($n-1)<1])."@)
";$p=F.[M,AM,R,MH][rand()&2|$d=$n&1];$f=$n*($n+$d)-2;for($i=2+$d;$i--;$f+=$d?:2*$n+2)$o[$f]=$p[$i];echo$o;

致电 php -r '<code>' <size>

历史

修订版1:初始版本;所有尺寸(包括小蛋糕),所有装饰品,所有可能的方向

修订版2:删除了小蛋糕(-36字节),重组了装饰选项,删除了一个装饰项目(-21)和一个字节的高尔夫球(-1)。

启示录3:减少至四个装饰;(-17),仅适用于奇数尺寸(-18)加上小型打高尔夫球(-8)的水平方向。

启示录4:感谢约尔格(Jörg)打高尔夫球“油漆蛋糕”部分;他取得了惊人的成绩(-31)。
加上我额外打高尔夫球的-6,使用单个字符串而不是字符串数组的-27。

启示录5:-7个字节,主要归功于Christallkeks

分解

每小时变得越来越苗条。:)

// paint cake
for(;$i<$n=$argv[1];)$o.=str_pad("(@",2*$n-1," @"[$i++%($n-1)<1])."@)\n";

// add deco
$p=F.[M,AM,R,MH][rand()&2|$d=$n&1];
$f=$n*($n+$d)-2;
for($i=2+$d;$i--;$f+=$d?:2*$n+2)$o[$f]=$p[$i];

// output
echo$o;

1
for($i=0;$i<$n=$argv[1];$i++){$o[]=str_pad("(@",2*$n-1,!$i|$i==$n-1?"@":" ")."@)";}
约尔格Hülsermann

@JörgHülsermann:非常感谢。我不得不采取类似的表达方式!$i|$‌​i==$n-1?"@":" ";尽管正确,但三元数不会接受您的(在我的机器上)。
泰特斯


1
这可以为您节省蛋糕漆上的六个字节:for(;$i<$n=$argv[1];)$o.=str_pad("(@",2*$n-1," @"[$i++%($n-1)==0])."@)\n";另外,看起来您像在打高尔夫球的装饰派“ MAD” ;-)
Christallkeks

4

Java 7中,399个 349字节

在@Dodge和@Kevin Cruijssen的帮助下更新的版本:

void m(int n){int i=2,r=n%2,x=2*n,u=r+2,y=r*4+(int)(Math.random()*2)*u,z=y+u;String t="MFZJMAFHMF".substring(y,z);char[][]c=new char[n][x+1];while(i<x-1)c[0][i]=c[n-1][i++]=64;for(i=0;i<u;)c[(n-1)/2+(1-r)*i][r*(i-1)+n]=t.charAt(i++);for(i=0;i<n;){c[i][0]=40;c[i][1]=c[i][x-1]=64;c[i][x]=41;System.out.println(new String(c[i++]).replace('\0',' '));}}

void m(int n){String[]s={"MF","MAF","ZJ","HMF","LF","JCJ","RF","TTT","CF","MAF"};char[]d=s[((int)(Math.random()*5))*2+(n%2)].toCharArray(),c[]=new char[n][2*n+1];int i=2;while(i<2*n-1)c[0][i]=c[n-1][i++]='@';i=0;while(i<d.length)c[(n-1)/2+(1-(n%2))*i][(n%2)*(-1+i)+n]=d[i++];i=0;while(i<n){c[i][0]='(';c[i][1]=c[i][2*n-1]='@';c[i][2*n]=')';System.out.println(new String(c[i++]).replace('\0',' '));}}

在这里尝试!

新版本经过了优化,摆脱了String数组处理。另外,如建议的那样,现在只有4种修饰:2个用于偶数输入(MFZJ),2个用于奇数输入(MAFHMF),它们组合成一个String

取消高尔夫:

void m(int n){
    int i=2,
    r=n%2,
    x=2*n,
    u=r+2, // length of the decoration string
    y=r*4+(int)(Math.random()*2)*u, // random starting index of string (0, 2, 4, 7)
    z=y+u; // exclusive end index of string (2, 4, 7, 10)
    String t="MFZJMAFHMF".substring(y,z);
    char[][]c=new char[n][x+1];
    while(i < x-1) {
        c[0][i]=c[n-1][i++]=64; // '@'
    }
    for(i=0; i<u;) {
        c[(n-1)/2+(1-r)*i][r*(i-1)+n]=t.charAt(i++); // Depending on even/odd, fills the center column/row respectively with the decoration
    }
    for(i=0; i<n;) {
        c[i][0]=40; // '('
        c[i][1]=c[i][x-1]=64; // '@'
        c[i][x]=41; // ')'
        System.out.println(new String(c[i++]).replace('\0',' ')); // Print all
    }
}

感谢您的提交!让我澄清一下,因为一些用户错过了它-并非必须包含所有装饰。我已经在“说明”部分中对此进行了粗体显示。希望这将节省您几个字节!我相信您仍然可以使用相同的方法来选择装饰。
Moon Rabbit

4
哈哈,就Java高尔夫运动而言,他可能还包括所有装饰;)。总是+1,任何有球的人都可以挥动Java推杆。
魔术章鱼缸

为什么"MAF"重复?
Cyoce

@carusocomputing非常正确。为了以防万一,我想提一提。真好!
Moon Rabbit

谢谢您的反馈:)诚然,Java不是打高尔夫球的最佳选择,但:P确实很有趣。也许我可以char[]更有效地使用循环和装饰的初始化,并进一步打高尔夫。@Cyoce我复制了,MAF因为那时我在索引处拥有所有装饰,以使输入为偶数,0,2,4,6,8而在索引处拥有所有装饰,以使输入为奇数1,3,5,7,9。这样可以更轻松地计算给定输入的随机索引。Math.random()*5从给出一个随机数0-4*2传播到0,2,4,6,8+n%2添加1以获得奇数输入1,3,5,7,9
QBrute

3

批处理,386字节

@echo off
set/pn=
set f=HMAC
set/ao=n%%2,u=n/2,l=h=u+1,d=%random%%%2*2+1
if %o%==1 set/al=u=0,d/=2
set c=
for /l %%i in (4,1,%n%) do call set c= %%c%%
call:l %n%
for /l %%i in (2,1,%n%) do call:l %%i
exit/b
:l
set s=   
if %1==%h% call set s=%%f:~%d%,2%%F
if %1==%u% call set s= %%f:~%d%,1%% 
if %1==%l% set s= F 
set s=(@%c%%s%%c%@)
if %1==%n% set s=%s: =@%
echo %s%

将仅输出适当的HMF,MAF,MF或CF。注意:某些行以空格结尾。变量:

  • n 输入参数(从STDIN读取)
  • f装饰前缀(F暗含后缀)
  • o的奇数n(仅使用一次,但是if语句不接受表达式)
  • l行的上垂直字符,或0用于水平装饰
  • u下垂直字符行,或0用于水平装饰
  • h 水平装饰的行(被垂直装饰覆盖)
  • d 装饰前缀中的装饰索引(水平为0/1,垂直为1/3)
  • c一串n-3空格
  • s 每行输出字符串
  • %1行号,但也将其设置n为第一行,以便第一行和最后一行都使用@s而不是空格。

3

C,233字节

应该可以从这里开始打高尔夫球...

A="HMFMAFCF";i,j,k,t;f(n){t=time();char*S=n&1?t&1?A:A+3:t&1?A+1:A+6;for(;i<n;i++,puts(")"))for(j=0,k=2*n-1,putchar(40);j<k;putchar(0==i*j|i==n-1|j==k-1?64:n&1&i==n/2&j>n-3&j<n+1?*S++:n&1?32:(i==n/2-1|i==n/2)&j>n-2&j<n?*S++:32),j++);}

巨大的挑战,这很难编写代码。

使用此主要功能运行;

main(c,v)char**v;
{
    f(atoi(v[1]));
}

2

红宝石2.3.1,449 265 245 233 230个字符

似乎应该有一个红宝石答案,所以这是一个红宝石答案。真的不是那么聪明,希望这里的其他人会更聪明;)

高尔夫球版:

def m(n)
d,s=n.odd?? [[%w{MAF HMF}.sample],n/2]:[%w{RF LF}.sample.chars,(n-2)/2]
r=->f{l=f.size;q=($i-l)/2;($c=' '*$i)[q...l+q]=f;puts "(@#$c@)"}
$i=2*n-1;a='@'*$i
r[a]
(1..n-2).map{|x|(s...s+d.size)===x ?r[d[x-s]]:r['']}
r[a]
end

高尔夫技巧:

  • 用稳定的字符串插值替换方法声明
  • $ globals不需要#{global},只需要#$ global
  • ===对于范围小于.covers?

可读版本

def row(inner_width, fillchar='')
  padding = ( inner_width - fillchar.size) / 2
  (center =(' ' * inner_width))[padding...fillchar.size+padding]=fillchar
  puts "(@"+center+"@)"
end

def mooncake(n)
  decoration = n.odd?? [%w{ MAF HMF JCJ TTT }.sample] : %w{ ZJ LF RF CF }.sample.chars
  start_row = n.odd?? (n/2) : (n - 2) / 2
  inner_width = 2 * n - 1
  row(inner_width,'@'*inner_width)
  (1...(n-1)).each do |row|
    if (start_row ... start_row + decoration.size).include? row 
      row(inner_width,decoration[row - start_row])      
    else
      row(inner_width)      
    end
  end
  row(inner_width,'@'*inner_width)
end

测试中

mooncake(3)
mooncake(4)
mooncake(5)
mooncake(6)

我没有使用数组重新实现,似乎每个人都在这样做。
罗布(Rob)2016年

1

我很无聊...这是另外两个版本:

PHP,193字节

function p($s){global$n;return"(@".str_pad($s,2*$n-3,$s?" ":"@",2)."@)
";}$p=[M,MA,R,HM][rand()&2|1&$n=$argv[1]];echo p(""),$e=str_repeat(p(" "),($n+$n%2)/2-2),$n&1?p($p.F):p($p).p(F),$e,p("");

利米港的答案

PHP,191字节

for($p=[M,MA,R,HM][rand()&2|1&$n=$argv[1]].F;$i<$n*$w=2*$n+1;$i++)echo($x=$i%$w)?$w-1-$x?($y=$i/$w|0)%($n-1)&&1-$x&&$w-2-$x?$p[$n&1?$n>>1!=$y?9:$x-$n+1:($n-$x?9:$y-$n/2+1)]?:" ":"@":")
":"(";

在一个循环中逐个字符地打印蛋糕

分解

for(
    $p=[M,MA,R,HM][rand()&2|1&$n=$argv[1]].F;   // pick decoration
    $i<$n*$w=2*$n+1;$i++)       // loop $i from 0 to $n*width-1:
echo                                // print ...
    $w-1-($x=$i%$w)                 // 1. not last column
        ?$x                         // 2. not first column
            ?
                ($y=$i/$w|0)%($n-1) // 3. not first or last line
                && 1-$x%($w-3)      // and not second or (width-2)th column
                ?$p[$n&1
                    ?$n>>1!=$y?3:1+$x-$n
                    :($n-$x?3:1+$y-$n/2)
                ]   ?               // 4. decoration character
                    :" "            // 4. else: blank
                :"@"                // 3. else: "@"
            :"("                    // 2. else: "("
        :")\n"                      // 1. else: ")"+newline
    ;

0

Python 3中,318个 301 297 285 272字节

在DJMcMayhem的帮助下删除了17个字节

多亏了mbomb007,淘汰了4个字节

多亏了DJMcMayhem敲掉了另外12个字节

多亏了mbomb007,淘汰了另外13个字节

我有史以来第一次高尔夫,所以还不是很好。我曾经使用过:将math.ceil别名为y,将str.format别名为z,嵌套格式,单行导入,lambda和按位运算,再加上其他一些东西使它看起来像是这样。

def f(n):import random,math;y=math.ceil;z=str.format;i=y(2*n-5>>1);j=y(n-3>>1);return z("{a}{}{a}",z("{d}(@{}{b}F{c}@)\n{e}"," "*i,b=random.sample(["L","R"],1)[0],c=" "*(2*n-5-i),d=z("(@{}@)\n"," "*(2*n-3))*j,e=z("(@{}@)\n"," "*(2*n-3))*(n-3-j)),a=z("({})\n","@"*(2*n-1)))

非高尔夫版本(分隔的导入,没有别名和没有按位操作):

def f(n):
    import random;
    import math;
    return "{a}{}{a}".format(
        "{d}(@{}{b}F{c}@)\n{e}".format(
            " "*(math.ceil((2*n-5)/2)),
            b=random.sample(["L","R"],1)[0],
            c=" "*((2*n)-(5+math.ceil((2*n-5)/2))),
            d="(@{}@)\n".format(" "*(2*n-3))*math.ceil((n-3)/2),
            e="(@{}@)\n".format(" "*(2*n-3))*(n-(3+(math.ceil((n-3)/2))))),
        a="({})\n".format("@"*(2*n-1)))

有趣的是,使用此方法的非按位版本仍会产生正确的输出,但是输出是不同的:

非按位:

(@@@@@@@)
(@     @)
(@  LF @)
(@@@@@@@)

按位:

(@@@@@@@)
(@ LF  @)
(@     @)
(@@@@@@@)

您可以将导入从函数中移出并更改为from ... import*类型导入以节省一些字节
Blue

很好的答案,欢迎光临本站!一些提示:1. lambda函数更短,并且2.您可以import math;y=math.ceil减少两个字节。这将使您少import random;import math;y=math.ceil;lambda n:"{a}{}{a}".format("{d}(@{}{b}F{c}@)\n{e}".format(" "*(y((2*n-5)/2)),b=random.sample(["L","R"],1)[0],c=" "*((2*n)-(5+y((2*n-5)/2))),d="(@{}@)\n".format(" "*(2*n-3))*y((n-3)/2),e="(@{}@)\n".format(" "*(2*n-3))*(n-(3+(y((n-3)/2))))),a="({})\n".format("@"*(2*n-1)))13个字节。
DJMcMayhem

@DJMcMayhem非常感谢!我更新了答案。
L. Steer

很高兴我能帮上忙!您可以做的另一件事是别名,format因为您经常调用它。问题是,我不完全知道如何为成员函数(例如str.format)加上别名,因此您必须进行一些试验。我不是很肯定会缩短。
DJMcMayhem

4
干得好!我很高兴您从此练习中受益匪浅:)但是,我想澄清一下,装饰必须居中以适应挑战规范。您是否决定更改代码以反映这一点-我能否要求您也将当前代码保留在您的帖子中?即使忽略其中一项规则,也值得保持努力。
Moon Rabbit

0

C#448字节

打高尔夫球:

var v=n%2==0;int l=n+n-3,h=n-2,e=v?0:1,c=e+2;var c2=v?"MFZJLFRFCF":"MAFHMFJCJTTT";var r=new Random().Next(3+e);var f=new String(c2.Skip(c*r).Take(c).ToArray());var mc="";for (var i=0;i < h;i++) {var x="";if (!v && i==((h / 2))) { x=f;} else if (v && ((i==h / 2) || (i==(h/2)-1))) { x +=f[i%2==1?0:1];} var es=x.PadLeft((l/2)+1+e,' ').PadRight(l,' ');mc +="(@"+es+"@)\n";}var b="("+"".PadLeft(l+2, '@')+")";mc=b+"\n"+mc+ b; Console.WriteLine(mc);

在这里测试

取消高尔夫:

        var v = n % 2 == 0;
        int l = n + n - 3, h = n - 2, e = v ? 0 : 1, c = e + 2;
        var c2 = v ? "MFZJLFRFCF" : "MAFHMFJCJTTT";
        var r = new Random().Next(3 + e);
        var f = new String(c2.Skip(c * r).Take(c).ToArray());
        var mc = "";
        for (var i = 0; i < h; i++)
        {
            var x = "";
            if (!v && i == ((h / 2)))
            {
                x = f;
            }
            else if (v && ((i == h / 2) || (i == (h / 2) - 1)))
            {
                x += f[i % 2 == 1 ? 0 : 1];
            }
            var emptySpace = x.PadLeft((l / 2) + 1 + e, ' ').PadRight(l, ' ');
            mc += "(@" + emptySpace + "@)\n";
        }
        var b = "(" + "".PadLeft(l + 2, '@') + ")";
        mc = b + "\n" + mc + b;
        Console.WriteLine(mc);
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.