另一个c# 编程题,进链接查看文本,会的留下代码,最好带注释,感谢

链接: https://pan.baidu.com/s/1uW8n5Q06k4ete994VGHj1Q

提取码: 9994 
 

using System;
using System.Collections;
 
public class Test
{
	public static int Main()
	{
	    char[][] chessboard = new char[8][];
        for(int i=0;i<8;i++){
            String str = Console.ReadLine();
            chessboard[i]=str.ToCharArray();
        }
        int step = chess(chessboard);
        Console.WriteLine(step);
        return step;
	}
	
	public static int chess(char[][] chessboard) {
        int vx = 0, vy = 0, cx = 0, cy = 0;
        for (int x = 0; x <8; x++) {
            for (int y = 0; y < 8; y++) {
                if (chessboard[x][y] == 'v') {
                    vx = x;
                    vy = y;
                }
                if (chessboard[x][y] == 'c') {
                    cx = x;
                    cy = y;
                }
            }
        }
        return bfs(vx,vy,cx,cy,chessboard);
    }
    
    public static int bfs(int vx, int vy, int cx, int cy, char[][] chessboard) {
        Queue queue = new Queue();
        int step = -1;
        queue.Enqueue(vx);
        queue.Enqueue(vy);
		while (queue.Count > 0) {
            step = step + 1;
            int size = queue.Count/2;
            for (int s = 0; s < size; s++) {
                int qx = (int)queue.Dequeue();
                int qy = (int)queue.Dequeue();
                if (chessboard[qx][qy] == 'c') {
                    return step;
                }
                chessboard[qx][qy] = 'x';
                // 向左搜索,x变化,y不变化
				for (int x = qx - 1; x >= 0; x--) {
                    if (chessboard[x][qy] == 'x') {
                        break;
                    }
                    queue.Enqueue(x);
                    queue.Enqueue(qy);
                }
				// 向右搜索
                for (int x = qx + 1; x <= 7; x++) {
                    if (chessboard[x][qy] == 'x') {
                        break;
                    }
                    queue.Enqueue(x);
                    queue.Enqueue(qy);
                }
				// 向上搜索
                for (int y = qy - 1; y >= 0; y--) {
                    if (chessboard[qx][y] == 'x') {
                        break;
                    }
                    queue.Enqueue(qx);
                    queue.Enqueue(y);
                }
				// 向下搜索
                for (int y = qy + 1; y <= 7; y++) {
                    if (chessboard[qx][y] == 'x') {
                        break;
                    }
                    queue.Enqueue(qx);
                    queue.Enqueue(y);
                }
			}
        }
        return -1;
    }
}

 

c#不会 java代码可以吗?你也看得懂的