⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 digitnumber.java

📁 用JAVA编写的数独游戏源代码,帮助你快速得到游戏的答案
💻 JAVA
字号:
import java.util.Vector ; 

class DigitNumber {
	 int number ;
	 
	 
	 DigitNumber(int number ) {
	 	this.number  = number;
	 }


	 public boolean updateValue() {
	 	Area[] areas = searchAreasNotHaveCurrentnumber() ;

	 	for(int i=0 ; i< areas.length ;i++ ) {
	 		boolean[][] flags =  areas[i].cannotSetValue(number) ;	 		
	 		int firstFalseIndex = getFirstFalseIndex(flags);
	 		int lastFalseIndex = getLastFalseIndex(flags);
	 		if (firstFalseIndex!=-1  && firstFalseIndex == lastFalseIndex ) {
	 			AreaCellPosition cellPosition = new AreaCellPosition(firstFalseIndex) ;
	 			areas[i].getCell(cellPosition).setValue(number) ;
	 			return true ;
	 		}
	 	}
	 	
	 	return false;
	 	
	 } 
	 
	 private int getFirstFalseIndex(boolean[][] flags ) {
	 	for(int i=0;i<9;i++) {
	 		AreaCellPosition cellPosition = new AreaCellPosition(i) ;
	 		if (!flags[cellPosition.i][cellPosition.j]) return  i ;
	 	}
	 	return -1;
	 }

	 private int getLastFalseIndex(boolean[][] flags ) {
	 	for(int i=8;i>=0;i--) {
	 		AreaCellPosition cellPosition = new AreaCellPosition(i) ;
	 		if (!flags[cellPosition.i][cellPosition.j]) return  i ;
	 	}
	 	return -1;
	 }
	 
	 private Area[] searchAreasNotHaveCurrentnumber() {
	 	Vector<Area> v = new Vector<Area>();
      	for(int i=0;i<3;i++)  
	       	for(int j=0;j<3;j++) {
	       		Area area = new Area( new AreaPosition(i,j) ) ;
	       		if (!area.hasElement(number)) v.add(area);
	       	}  
	       	
	    Area[] result = new  Area[v.size()] ;  	
		for( int i=0;i< result.length;i++) {
			result[i] = v.get(i) ;
		}

		return result ; 	 	
	 	
	 }

	 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -