九宫格问题大家可以搜一下:3*3为一宫,3宫*3宫,就是9*9
每行、每列、每宫都填入1-9,不重复。
package com.w1m.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import javax.swing.text.StyledEditorKit.ItalicAction; public class JiuGongGe { //private itArray[] itAryArray=new itArray()[9]; private ArrayList<itArray> itAryList; //private int[] itArray; //private itArray[] itArrayArray; public class itArray { private int[] itString=new int[9]; public void clone_itArray(itArray itParaArry) { for(int i=0;i<9;i++) { this.itString[i]=itParaArry.itString[i]; } } public itArray() { } public void setInt(int itParaIndex,int itParaIntValue) { this.itString[itParaIndex]=itParaIntValue; } public int getInt(int itPara) { return this.itString[itPara]; } //0,1,2为一组 3,4,5为二组 6,7,8为三组。一组数据换入二组,二组数据换入三组,三组数据换入一组 public void rowRolling(int itPara) { int itSwap0,itSwap1,itSwap2; for(int i=0;i<itPara;i++) { itSwap0=itString[6]; itSwap1=itString[7]; itSwap2=itString[8]; itString[6]=itString[3]; itString[7]=itString[4]; itString[8]=itString[5]; itString[3]=itString[0]; itString[4]=itString[1]; itString[5]=itString[2]; itString[0]=itSwap0; itString[1]=itSwap1; itString[2]=itSwap2; } } //0,3,6为一组 1,4,7为二组 2,5,8为三组。一组数据换入二组,二组数据换入三组,三组数据换入一组 public void columnRolling(int itPara) { int itSwap0,itSwap1,itSwap2; for(int i=0;i<itPara;i++) { itSwap0=itString[2]; itSwap1=itString[5]; itSwap2=itString[8]; itString[2]=itString[1]; itString[5]=itString[4]; itString[8]=itString[7]; itString[1]=itString[0]; itString[4]=itString[3]; itString[7]=itString[6]; itString[0]=itSwap0; itString[3]=itSwap1; itString[6]=itSwap2; } } } public JiuGongGe() { //itAryArray=new itArray()[9]; itAryList=new ArrayList<itArray>(); } public void input_itArrayNode() throws IOException { itArray itAry=new itArray(); BufferedReader br = new BufferedReader (new InputStreamReader(System.in)); int itInput,itCount=0; System.out.println("input 1st int number below:"); /** for(int i=0;i<9;i++) { System.out.println("input"+(i+1)+"rd int number below:"); itInput=br.read(); itAry.setInt(i, itInput); } */ while(itCount<27) { itInput=br.read(); if(itCount%3==0) { itAry.setInt(itCount/3, itInput-48); System.out.println("input"+(itCount/3+2)+"th int number below:"); } itCount++; } br.close(); for(int i=0;i<9;i++) { itArray itArrayTemp=new itArray(); itArrayTemp.clone_itArray(itAry); this.itAryList.add(itArrayTemp); } } public void addItArrayNode(itArray itAryPara) { this.itAryList.add(itAryPara); } public boolean transformItArrayList() { if(itAryList.size()!=9) return false; else { itAryList.get(1).rowRolling(1); itAryList.get(2).rowRolling(2); itAryList.get(3).columnRolling(1); // itAryList.get(4)=itAr itAryList.get(4).clone_itArray(itAryList.get(3)); itAryList.get(4).rowRolling(1); itAryList.get(5).clone_itArray(itAryList.get(3)); itAryList.get(5).rowRolling(2); itAryList.get(6).columnRolling(2); itAryList.get(7).clone_itArray(itAryList.get(6)); itAryList.get(7).rowRolling(1); itAryList.get(8).clone_itArray(itAryList.get(6)); itAryList.get(8).rowRolling(2); // itAryList.get(6).columnRolling(); return true; } } public void print6Line() { for(int i=3;i<6;i++) { for(int j=6;j<9;j++) { System.out.println(this.itAryList.get(i).getInt(j)); } } } /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub JiuGongGe jgg=new JiuGongGe(); jgg.input_itArrayNode(); if(jgg.transformItArrayList()) jgg.print6Line(); else System.out.println("!!!!! ERROR in initia JiuGongGe !!!!!"); } }