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日
            
            
        
                
                
                
最近浏览