棋盘覆盖java

这个Java程序展示了如何解决棋盘覆盖问题,通过递归地放置L型骨牌覆盖4x4的棋盘。主要逻辑包括覆盖四个象限的子棋盘,用一个变量跟踪骨牌号,并进行棋盘分割。
摘要由CSDN通过智能技术生成

public class chessBoard {
    int tile=1;
    int[][]board=new int[4][4];
    public static void main(String[] args) {
        chessBoard c=new chessBoard();
        c.chessBoard(0,0,1,1,4);
        for(int i=0;i<4;i++) {
            for(int j=0;i<4;j++)
         System.out.println(c.board[i][j]);
          System.out.println();
        }
    }
  public void chessBoard(int tr,int tc,int dr,int dc,int size) {
      if(size==1)return;
      int t=tile++;//L型骨牌号

      int s=size/2;//分割棋盘
      
     //覆盖左上角棋盘
      if(dr<tr+s&&dc<tc+s) {
          chessBoard(tr,tc,dr,dc,s);
      }
      else {
          board[tr+s-1][tc+s-1]=t;
          chessBoard(tr,tc,tr+s-1,tc+s-1,s);
      }
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值