九宫格_java_代码

 九宫格问题大家可以搜一下: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 !!!!!");

    }

}

 

转载于:https://www.cnblogs.com/materazzi/archive/2013/03/04/2943044.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值