资讯专栏INFORMATION COLUMN

算法之棋盘覆盖问题--java版

klivitamJ / 1635人阅读

摘要:棋盘左上角方格的行列分别是特殊方格的行和列特殊方格在左上角用形覆盖其右下角特殊方格在右上角作为左下角左下角小兔子腾讯云转载请告知覆盖左上角没有的话覆盖其他方格去转盘网转载请告知主函数运行结果

package Hell.hao;

public class ChessBoard {

/*int tr;
int tc;//棋盘左上角方格的行列
int dr;
int dc;//分别是特殊方格的行和列*/
int SIZE;
int [][]board;
int count=1;

ChessBoard(){}
ChessBoard(int size){
    SIZE=size;
    board=new int[SIZE][SIZE];
}

public void chessBoard(int tr,int tc,int dr,int dc,int size){
    if(size==1)
        return;
    int cover=count++;
    int s=size/2;
    if(dr=tc+s){
        chessBoard(tr,tc+s,dr,dc,s);
    }//特殊方格在右上角
    else{
        board[tr+s-1][tc+s]=cover;
        chessBoard(tr,tc+s,tr+s-1,tc+s,s);
    }
    
    if(dr>=tr+s&&dc=tr+s&&dc>=tc+s){
        chessBoard(tr+s,tc+s,dr,dc,s);
    }
    else{
        board[tr+s][tc+s]=cover;//覆盖左上角
        chessBoard(tr+s,tc+s,tr+s,tc+s,s);//没有的话覆盖其他方格
    }
}

public void show(){
    for(int i=0;i

}

/*
    www.quzhuanpan.com
    去转盘网:转载请告知
*/

主函数:
package Hell.hao;

public class Application_01 {

public static void main(String args[]){
    ChessBoard cb =new ChessBoard(4);
    cb.board[2][2]=0;
    cb.chessBoard(0,0,2,2,4);
    cb.show();
 }

}
运行结果:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65376.html

相关文章

  • 哈哈哈~井字棋(无心),快来初步感受一下代码世界的乐趣吧

    摘要:文章目录前言正文一,游戏实现基本流程二游戏实现步骤创建工程及分配功能给头文件上内容当当当,主函数出场游戏函数里面打印游戏菜单棋盘初始化打印棋盘玩家下棋电脑下棋判断结果三游戏结果演示恭喜友友获胜啦电脑获胜,很遗憾,再接再厉 ...

    不知名网友 评论0 收藏0
  • 【程序员必会十大算法骑士周游问题

    摘要:骑士周游问题又叫马踏棋盘问题未优化前没有策略定义棋盘的行数和列数定义棋盘上的某个点是否被访问过记录是否周游结束从第一行第一列开始走,第一次走算第一步,即展示下是棋盘, ...

    Baoyuan 评论0 收藏0
  • 备战蓝桥杯——算法训练过河马

    摘要:而众所周知,马是要走日子格的。输出格式输出有一行,一个数表示走法数。那为了防止爆掉,我们每加完一条路的总步数之后就取一遍余。题目解法思路如上述,但是这里有一个我之前从来没有注意过的问题,导致我一直只有分。三题解四题目链接过河马 ...

    xorpay 评论0 收藏0
  • 腾讯CDC面试题五子棋 - dom(ES6)

    摘要:废话不多说上代码完整项目地址项目地址棋盘样式棋盘元素初始化初始化角色黑旗子白旗是否已分出胜负走棋记录当前步清空棋子和事件初始化棋盘矩阵刻画棋盘棋盘网格刻画棋子每次落子结束都要判断输赢落子如果点击的是棋子则中断空的棋位才可落子落 废话不多说上代码!完整项目地址:GitHub项目地址 class Gobang { constructor(options) { ...

    韩冰 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<