Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算java中皇后可以从棋盘上特定位置攻击的对角线数时出现运行时错误_Java_Arrays_2d_Chess - Fatal编程技术网

计算java中皇后可以从棋盘上特定位置攻击的对角线数时出现运行时错误

计算java中皇后可以从棋盘上特定位置攻击的对角线数时出现运行时错误,java,arrays,2d,chess,Java,Arrays,2d,Chess,我有一个n*n棋盘,其中0没有必要一个接一个地数出方块。女王的位置和n是您需要知道的全部信息 将第0行设为“向上”,第n-1行设为“向下”,第0列设为“左”,第n-1列设为“右”,第rowQ行设为女王, colQ的最大行程为: rowQ行向上 n-rowQ-1向下排 colQ左侧列 n-colQ-1右侧列 对于对角线移动,移动方向上最近的边决定可以到达多少对角线正方形: 在“左上”方向上,使用rowQ或colQ 在“左下”方向,取n-rowQ-1或colQ 在“右上”方向,使用rowQ或n

我有一个n*n棋盘,其中0没有必要一个接一个地数出方块。女王的位置和
n
是您需要知道的全部信息

将第0行设为“向上”,第
n-1行设为“向下”,第0列设为“左”,第
n-1列设为“右”,第
rowQ
行设为女王,
colQ
的最大行程为:

  • rowQ
    行向上
  • n-rowQ-1
    向下排
  • colQ
    左侧列
  • n-colQ-1
    右侧列
对于对角线移动,移动方向上最近的边决定可以到达多少对角线正方形:

  • 在“左上”方向上,使用
    rowQ
    colQ
  • 在“左下”方向,取
    n-rowQ-1
    colQ
  • 在“右上”方向,使用
    rowQ
    n-colQ-1
  • 在“右下”方向,较小的
    n-rowQ-1
    an
    n-colQ-1

将所有四个加起来,您就得到了结果。

请共享您的代码,并描述您遇到的错误。该代码不会给出运行时错误。
         if(rowQ<n-1 && colQ<n-1) {         //n:size of array
            int row=rowQ;                   //rowQ and colQ: row and column 
            int col=colQ;                   //of the queen.
            while(row<n-1 && col<n-1) {     //Capture: number of squares
                row++;                      //queen can visit.
                col++;
                capture++;                   
                
            }
            
        }
        if(rowQ>0 && colQ>0) {
            int row=rowQ;
            int col=colQ;
            while(row>0 && col>0) {
                row--;
                col--;
                capture++;
                
            }
                
        }
        if(rowQ>0 && colQ<n-1){
            int row = rowQ;
            int col = colQ;
            while(row>0 && col < n-1){
                row--;
                col++;
                capture++;
            }
            
        }
        if(rowQ<n-1 && colQ>0){
            int row = rowQ;
            int col = colQ;
            while(row<n-1 && col >0){
                row++;
                col--;
                capture++;
            
            }
        }