Javascript (menggunakan perpustakaan eksternal) (235 byte)
Astaga ini sulit! Yah ... perpustakaan saya sebenarnya bukan tugas yang tepat untuk haha ini. Tapi saya suka tantangannya
(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)}
Tautan ke lib: https://github.com/mvegh1/Enumerable
Penjelasan kode: Membuat fungsi 2 variabel. Simpan x-1 dan y-1 ke dalam variabel. Simpan maks dan min dari itu ke dalam variabel. Buat rentang angka yang turun secara vertikal dari (y-1) untuk hitungan y. Untuk setiap elemen pada rentang vertikal, tulis garis untuk elemen saat ini, sesuai dengan predikat kompleks. Predikat itu menciptakan rentang naik bilangan bulat dari 0, untuk hitungan x. Untuk setiap elemen dalam rentang itu, gabungkan menjadi 1 string sesuai dengan predikat kompleks. Predikat itu memeriksa jika di kiri bawah, yang lain memeriksa jika diagonal, atau memeriksa kita berada di perbatasan X atau Y. Akhirnya, semua itu disimpan dalam variabel. Kemudian untuk mendapatkan jumlah langkah, pada dasarnya kita hanya menghitung #. Kemudian gabungkan itu ke variabel yang disimpan, dan kembalikan hasilnya
Itu adalah haha seteguk. Tangkapan layar memiliki bytecount yang salah karena saya menemukan cara untuk menyimpan 4 byte saat memposting ini
EDIT: Saya melihat jawaban lain tidak memasukkan "Pindahkan hitungan:" di output mereka, tetapi milik saya. Jika itu bukan keharusan, itu mencukur banyak byte ...