package demo;
public class Chess {
/*tr表示棋盘左上角行号
tc表示棋盘左上角列号
dr表示特殊棋盘的行号
dc表示特殊棋盘的列号*/
public static void ChessBoard(int tr, int tc, int dr, int dc, int size) {
if(size == 1) {
return;
}
int t = title ++;
int s = size/2;
//覆盖左上角子棋盘
if(dr < tr + s && dc < tc +s) {
//特殊方格在此棋盘中
ChessBoard(tr, tc, dr, dc, s);
}
else {
//此棋盘中无特殊方格,用t号L型骨牌覆盖右下角
Board[tr + s - 1][tr + s -1] = t;
//覆盖其余方格
ChessBoard(tr, tc, tr + s - 1, tc + s - 1, s);
}
//覆盖右上角子棋盘
if(dr < tr + s && dc >= tc + s) {
//特殊方格在此棋盘中
ChessBoard(tr, tc+s, dr, dc, s);
}
else {//此棋盘中午特殊方格,用t号L型骨牌覆盖左下角
Board[tr + s - 1][tc + s] = t;
//覆盖其余方格
ChessBoard(tr, tc + s, tr + s - 1, tc + s, s);
}
//覆盖左下角子棋盘
if(dr >= tr + s && dc < tc +s) {
//特殊方格在此棋盘中
ChessBoard(tr + s, tc, dr, dc, s);
}
else {
//此棋盘中无特殊方格,用t号L型骨牌覆盖右上角
Board[tr + s][tr + s -1] = t;
//覆盖其余方格
ChessBoard(tr, tc, tr + s , tc + s - 1, s);
}
//覆盖右下角子棋盘
if(dr >= tr + s && dc >= tc + s) {
//特殊方格在此棋盘中
ChessBoard(tr + s, tc+s, dr, dc, s);
}
else {//此棋盘中无特殊方格,用t号L型骨牌覆盖左上角
Board[tr + s ][tc + s] = t;
//覆盖其余方格
ChessBoard(tr + s, tc + s, tr + s , tc + s, s);
}
}
@SuppressWarnings("static-access")
public static void main(String args[]) {
System.out.println("编程素材网测试结果:");
Board[2][2] = 0;
Chess ch = new Chess();
ch.ChessBoard(0, 0, 2, 2, size);
for(int i = 0; i < size; ++ i) {
for(int j = 0; j < size; j++) {
System.out.print(Board[i][j] + " ");
}
System.out.println();
}
}
static final int size = 4;
static int title = 1;
static int Board[][] = new int[size][size];
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有