package cn.tryboom.Chess; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Scanner; import org.junit.Test; public class ChessBoard { int tile=1; int size; int tr =0; int tc =0; int dr; int dc; int Board[][]=new int[100][100]; @Test public void in(){ Scanner sc=new Scanner(System.in); System.out.println("请输入size"); size=sc.nextInt(); System.out.println("特殊方格行"); dr=sc.nextInt(); System.out.println("特殊方格列"); dc=sc.nextInt(); } public void ChessBoard(int tr,int tc,int dr,int dc,int size){ if (size==1) return; int t=tile++, //L型骨牌 s=size/2; //分割棋盘 //覆盖左上角棋盘 if(dr<tr+s&&dc<tc+s) ChessBoard(tr,tc,dr,dc,s); else{//此棋盘中无特殊方格 //用t号L型骨牌覆盖右下角 Board[tr+s-1][tc+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{//用L型骨牌覆盖右上角 Board[tr+s][tc+s-1]=t; //覆盖其余方格 ChessBoard(tr+s,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); } } @Test //运行测试方法 public void run() { //调用in方法输入参数 int a; int b; int c; in(); //调用棋盘覆盖方法 ChessBoard(tr, tc, dr, dc, size); int i; int j; //for循环取出数组的值,得出放置骨牌的放法 for(i=0;i<size; i++){ for(j=0;j<size;j++){ int num=Board[i][j]; int length=2; String tempNum = num+""; //长度不足2位补0,凑整齐好看 while(tempNum.length() < length){ tempNum = "0" + tempNum; } System.out.print(" "+tempNum); } System.out.println(); } } }
最近下载更多
2196316269 LV10
2021年2月25日
123456zmq LV1
2020年10月4日
asdfjk LV1
2020年3月15日
w547449093 LV2
2018年6月27日
樂樂123456 LV2
2018年4月25日
der2030 LV17
2018年1月11日
1107784447 LV2
2017年5月9日
simple2 LV2
2017年4月12日