Javascript(使用外部库)(235字节)
哎呀,这很难!好吧...我的图书馆并不是真的适合这个哈哈。但我喜欢挑战
(x,y)=>{r=x-1;s=y-1;m=Math.max(r,s);n=Math.min(r,s);l=_.RangeDown(s,y).WriteLine(z=>_.Range(0,x).Write("",w=>z==0&&w==0?"X":(z==w||(z==s&&w>=n)||(w==r&&z>=n))?"#":"."));return l+"\r\nMove count: "+(l.length-l.split("#").join("").length)}
链接到lib:https : //github.com/mvegh1/Enumerable
代码说明:创建2个变量的函数。将x-1和y-1存储到变量中。将它们的最大值和最小值存储到变量中。创建一个从(y-1)到y的垂直下降的数字范围。对于垂直范围内的每个元素,根据复杂谓词为当前元素写一行。该谓词创建一个从0开始的整数递增范围,计数为x。对于该范围内的每个元素,根据一个复杂谓词将其连接为1个字符串。该谓词检查是否在左下角,否则检查对角线,否则检查我们在X或Y边界。最后,所有这些都存储在变量中。然后,要获得移动计数,我们基本上只计算#。然后将其连接到存储的变量,并返回结果
那是一口哈哈。屏幕截图的字节数错误,因为我发现了在发布时保存4个字节的方法
编辑:我看到其他答案不在他们的输出中放置“移动计数:”,但我的。如果这不是必需的,那可以节省很多字节...