Javascript (sử dụng thư viện bên ngoài) (235 byte)
Jeez này thật khó! Chà ... thư viện của tôi không thực sự là nhiệm vụ đúng đắn cho haha này. Nhưng tôi thích thử thách
(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)}
Liên kết đến lib: https://github.com/mvegh1/Enumerable
Giải thích mã: Tạo chức năng của 2 biến. Lưu trữ x-1 và y-1 vào các biến. Lưu trữ tối đa và tối thiểu của những người đó vào các biến. Tạo một dãy số giảm dần theo chiều dọc từ (y-1) cho số lượng y. Đối với mỗi phần tử trên phạm vi dọc, hãy viết một dòng cho phần tử hiện tại, theo vị từ phức. Vị từ đó tạo ra một phạm vi số nguyên tăng dần từ 0, với số lượng x. Đối với mỗi phần tử trong phạm vi đó, nối thành 1 chuỗi theo một vị từ phức. Vị từ đó kiểm tra nếu ở dưới cùng bên trái, người khác kiểm tra nếu trên đường chéo, người khác kiểm tra chúng tôi ở biên X hoặc Y. Cuối cùng, tất cả những thứ đó đã được lưu trữ trong một biến. Sau đó, để có được số lần di chuyển, về cơ bản chúng ta chỉ cần đếm số của. Sau đó nối nó với biến được lưu trữ và trả về kết quả
Đó là một câu nói vui miệng haha. Ảnh chụp màn hình có mã byte sai vì tôi đã tìm được cách lưu 4 byte trong khi đăng bài này
EDIT: Tôi thấy các câu trả lời khác không đưa "Move Count:" vào đầu ra của chúng, nhưng là của tôi. Nếu đó không phải là một yêu cầu, thì nó sẽ che đi một loạt byte ...