亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? java-codes.txt

?? 自己改進的魔方源碼
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
            break ;
            case 'Y' :
            for(int i=0;i<=2;i++)
            //for(int j=0;j<=2;j++)
            for(int k=0;k<=2;k++)
            {
                           if(Block.closeDonghua)
{
                if(i==1&&k==1)
                {
                    continue ;
                }
            }
                int changBlockX=positionArray[i][Floor][k].x ;
                int changBlockY=positionArray[i][Floor][k].y ;
                int changBlockZ=positionArray[i][Floor][k].z ;
                Block changBlock=blockArray[changBlockX][changBlockY][changBlockZ];
                changBlock.xyzChange('Y',totateArg);
            }
            break ;

            case 'X' :
            //for(int i=0;i<=2;i++)
            for(int j=0;j<=2;j++)
            for(int k=0;k<=2;k++)
            {
                          if(Block.closeDonghua)
{
                if(j==1&&k==1)
                {
                    continue ;
                }
 }
                int changBlockX=positionArray[Floor][j][k].x ;
                int changBlockY=positionArray[Floor][j][k].y ;
                int changBlockZ=positionArray[Floor][j][k].z ;
                Block changBlock=blockArray[changBlockX][changBlockY][changBlockZ];
                changBlock.xyzChange('X',totateArg);
            }
            break ;

            default :
            System.out.println("無效的操作");
        }

        someBlockNewToOld();
    }

    //開始人工智能計算解法
    //select:選擇電腦的計算方案
    public static void autoStart(int select)
    {
    }

    //輸出每個位置上的塊號
    public static void showPosition()
    {
        System.out.println("\n每個位置上的塊號:");
        for(int i=0;i<=2;i++)
        for(int j=0;j<=2;j++)
        for(int k=0;k<=2;k++)
        {
            //System.out.println("Block"+i+","+j+","+k+"    "+blockArray[i][j][k].x+","+blockArray[i][j][k].y+","+blockArray[i][j][k].z);
            System.out.println("Position:"+(i-1)+","+(j-1)+","+(k-1)+"  的塊號是:  "+(positionArray[i][j][k].x-1)+","+(positionArray[i][j][k].y-1)+","+(positionArray[i][j][k].z-1));

        }
    }

    //把剛才記錄的有變化(來了新的塊)的位置 存儲到 沒個position的塊號中
    public static void someBlockNewToOld()
    {
        for(int i=0;i<=2;i++)
        for(int j=0;j<=2;j++)
        for(int k=0;k<=2;k++)
        {
            if(positionArray[i][j][k].haveNew)
            {
                positionArray[i][j][k].newToOld();
            }
        }
    }

 public static void myWait()
 {
                      try
        {

            System.in.read();

                        System.in.read();
            //暫停
        }
        catch(Exception e)
        {
        }
 }

    //測試用代碼
      public static   void someTest()
    {

      doIt('Y',0+1,90);
      //        //new MoFang().showPosition();
      MoFang.myWait();
       doIt('Y',0+1,-90);
      MoFang.myWait();
             // new MoFang().showPosition();

       doIt('Z',-1+1,-90);
                     //new MoFang().showPosition();
       MoFang.myWait();

       doIt('Z',-1+1,90);
       //      new MoFang().showPosition();
       //MoFang.myWait();
              //new MoFang().showPosition();

       doIt('X',1+1,90);
       MoFang.myWait();
               //new MoFang().showPosition();
       doIt('X',1+1,-90);
        // new MoFang().showPosition();
       MoFang.myWait();

        //showPosition();
    }


    //魔方自動隨機變化多少條
       public static void  ranGet(int num)
    {
     char selectChar='E';//'X','Y','Z'
     int layer;//-1,0,1
     int jiaoDu=0;//90,-19,180

     for(int i=0;i<num;i++)
     {
      //選xyz
      int select=(int)((Math.random()*10)%3);
      if(select==0){selectChar='X';}
      if(select==1){selectChar='Y';}
      if(select==2){selectChar='Z';}

      //
      layer=(int)((Math.random()*10)%3);//0,1,2
      layer-=1;//-1,0,1

      //
      int jiao=(int)((Math.random()*10)%3);//0,1,2
      if(jiao==0){jiaoDu=90;}
      if(jiao==1){jiaoDu=-90;}
      if(jiao==2){jiaoDu=180-90;}
      System.out.println("\n*******************************\nRandom Generater:"+(i+1)+" of "+num);
      System.out.print(selectChar);
      System.out.print(","+layer+","+jiaoDu+"\n按任意鍵開始動畫?\n");

      myWait();

      doIt(selectChar,layer+1,jiaoDu);
     }
    }
    //從三維圖形界面輸入操作參數
    public static void graphicStart()
    {
     JFrame myframe =new JFrame();
        myframe.setVisible(true);

    }
    public static void main(String[]args)
    {

     //初始化位置數組,也可以從文件中加載,其實應該把所有關鍵信息從文件載入,關閉時保存
        for(int i=0;i<=2;i++)
        for(int j=0;j<=2;j++)
        for(int k=0;k<=2;k++)
        {

            MoFang.positionArray[i][j][k]=new Position(i,j,k);
        }
        System.out.println("初始化位置數組完成.最初全在原位置\n");

       //showPosition();

        new MainFrame(new mySimpleUniverse(),200,200);
        //加applet到應用程序界面
  //someTest();
        //graphicStart();
  myWait();
       ranGet(30);
        //
        //
    }

}

class Block implements Runnable
{
    //計算已畫的塊數
    private static int whickBlockPainted=0 ;

    //計算生成的第幾塊
    private static int BlockCreated=0 ;

    //每面的顏色,排列為:+x,-x,+y,-y,+z,-z,no
    public static Color3f[] mianColor=
{new Color3f(1.0f,0.0f,0.0f),
new Color3f(0.0f,1.0f,0.0f),
new Color3f(0.0f,0.0f,1.0f),
new Color3f(1.0f,1.0f,0.0f),
new Color3f(1.0f,0.0f,1.0f),
new Color3f(0.0f,1.0f,1.0f),
new Color3f(0.2f,0.2f,0.2f)
};
    //每面的材質,排列為:+x,-x,+y,-y,+z,-z,no
    public static String[] mianImageFile=new String[7];

    //塊偏移量
    private static float kuaiZhongXinWeizhi=0.4f ;

    //創建材質時要用的,僅用于他,他是一個applet對象
    Component observer;

    //該塊的編號
    private int blockIdX ;
    private int blockIdY ;
    private int blockIdZ ;

    //該塊的位置
    private int x ;
    private int y ;
    private int z ;

    //該塊的坐標軸點,最初全為(1,1,1),表示與外坐標一致
    private MyPoint xvec;
    private MyPoint yvec;
    private MyPoint zvec;

    //position=new Verctor3f(0.0f,0.0f,0.0f);

    //該塊的角度,限定為從-359到359,模360可以限定為一周,如果模180,則只能表示半個圓,不行
    //int anglex ;
    //int angley ;
    //int anglez ;

    //添加物品的變換組
    public TransformGroup transGroup ;
    public Transform3D trans ;


    //用于位置,角度變動的變換組
    public TransformGroup transGroupx ;
    public Transform3D transx ;
    public TransformGroup transGroupy ;
    public Transform3D transy ;
    public TransformGroup transGroupz ;
    public Transform3D transz ;
    public TransformGroup transGroupp ;
    public Transform3D transp ;

    //新的方塊位置
 int[]  nexyz={0,0,0};

    //動畫相關
    int totateArg;
    boolean canNew=false;
    char selectedC;
    Thread myThread;
 public static boolean closeDonghua=false ; //為true使用線程動畫,為false直接調用


  private static int selectDonghuaId=0;//取ID變量,取值從0~8,每次從0開始取,正好9個,取完后變為10(每取一個自動加1),這時才讓所有線程一起動
  private int myDonghuaId;
 private static int donghuaDelay=50 ; //絕對延遲,
 public static int whileDelay=20;//加快同步系統性能延遲,

 //公共控制變量
  public static int yunXingThread=0;//運行的線程數,啟動線程時加1,退出時減一。可以控制主線程等待,直到為0時才開始做所有的xyzChange,否則等待

//動畫時的多線程要用它,因為主線程仍在跑,x,y,z會變化,只能用它保存
            int yuanx;
            int yuany;
            int yuanz;

//當前位置x點的偏移
MyPoint chaxvec;
//當前位置y點的偏移
MyPoint chayvec;
//當前位置z點的偏移
MyPoint chazvec;


    //構造函數,給初值
    public Block(int i,int j,int k,int px,int py,int pz,TransformGroup parentTransGroup,Transform3D t3d,BranchGroup objRoot,Component obServer1)
    {

        blockIdX=i ;
        blockIdY=j ;
        blockIdZ=k ;


        x=px ;
        y=py ;
        z=pz ;

//計算軸向量 :塊坐標加坐標偏移
xvec=new MyPoint((blockIdX-1)+1,(blockIdY-1),(blockIdZ-1));
yvec=new MyPoint((blockIdX-1),(blockIdY-1)+1 ,(blockIdZ-1));
zvec=new MyPoint((blockIdX-1),(blockIdY-1),(blockIdZ-1)+1 );
//System.out.println("軸點:"+(zoux)+(zouy)+(zouz));
//System.out.println("軸向量:"+(zoux-(x-1))+(zouy-(y-1))+(zouz-(z-1)));

        observer=obServer1;

        //anglex=0 ;
        //angley=0 ;
        //anglez=0 ;

        trans=new Transform3D();
        transGroup=new TransformGroup(trans);
        transGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        transGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        transGroup.setCapability(TransformGroup.ENABLE_PICK_REPORTING);

        transp=new Transform3D();
        transGroupp=new TransformGroup(transp);
        transGroupp.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        transGroupp.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        //transGroupp.setCapability(TransformGroup.ENABLE_PICK_REPORTING);

        transx=new Transform3D();
        transGroupx=new TransformGroup(transx);
        transGroupx.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        transGroupx.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        //transGroupx.setCapability(TransformGroup.ENABLE_PICK_REPORTING);

        transy=new Transform3D();
        transGroupy=new TransformGroup(transy);
        transGroupy.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        transGroupy.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        //transGroupy.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
        transz=new Transform3D();
        transGroupz=new TransformGroup(transz);
        transGroupz.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        transGroupz.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
        //transGroupz.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
        //用已知信息組裝變換組,,
        //注意這里的順序,先平移,再旋轉,或先x,先y的順序是不一樣的,這里
        //必須是先在原位置自轉好方向,再平移,這樣,平移不會改變它的自轉方向,
        //如果先平移,再轉,轉動會帶動平移,剛才的平移無任何意義。
        //還要注意是先繞x轉,再繞y轉,再繞z轉
        //換了順序,是不一樣的,例如x,y,z和z,y,x的結果不一樣
        //但是,可以證明x,y和y,x的順序無關性,當都只左轉或右轉90度時,很容易證明
        //如果有180度,可以分成兩次90度操作
        parentTransGroup.addChild(transGroupp);
        transGroupp.addChild(transGroupz);
        transGroupz.addChild(transGroupy);
        transGroupy.addChild(transGroupx);
        transGroupx.addChild(transGroup);
        // 測試,直接加到根,沒有鼠標功能
        //objRoot.addChild(transGroup);
        //System.out.println("\n\n\n處理第"+BlockCreated+"塊");
        //System.out.println("塊"+(blockIdX-1)+(blockIdY-1)+(blockIdZ-1)+"的坐標系添加完成");
        BlockCreated++;
        //if (BlockCreated==14)//||BlockCreated==3//||BlockCreated==2||BlockCreated==20||BlockCreated==16
        add3DCube(x-1,y-1,z-1,transGroup);
        //建小坐標軸
        SomeShape3D.zuoBiaoZhuSmallXShape3D(transGroup);
        SomeShape3D.zuoBiaoZhuSmallYShape3D(transGroup);
        SomeShape3D.zuoBiaoZhuSmallZShape3D(transGroup);
        //測試主變換組的平移
        //Shape3D shape1=SomeShape3D.FlowerShape3D();
        //parentTransGroup.addChild(shape1);
        //t3d.setTranslation(new Vector3f(0.0f,1.0f,0.0f));
        //parentTransGroup.setTransform(t3d);
        //測試子變換組的平移(不行,不起作用)
        //Shape3D shape2=SomeShape3D.SanShape3D();
        //transGroup.addChild(shape2);
        //trans.setTranslation(new Vector3f(0.0f,-1f,0.0f));
        //transGroup.setTransform(t3d);
        //創建鼠標行為
        //MouseRotate behavior1=new MouseRotate();
        //behavior1.setTransformGroup(transGroup);
        //behavior1.setSchedulingBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0),100));
        //objRoot.addChild(behavior1);//鼠標行為  加到 分枝組
        //設置初始值,顯示輸出
        float fx ;
        float fy ;
        float fz ;
        fx=(float)kuaiZhongXinWeizhi*(x-1);
        fy=(float)kuaiZhongXinWeizhi*(y-1);
        fz=(float)kuaiZhongXinWeizhi*(z-1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费毛片aaaaa**| 国内精品免费在线观看| 国产成人在线免费| 欧美一区二区福利在线| 亚洲欧美国产77777| 91免费在线播放| 国产精品久久久久婷婷二区次| 欧美成人激情免费网| 一区二区三区四区在线免费观看| 午夜欧美视频在线观看| 国产一区二区三区四区在线观看| 99久久99久久精品免费观看 | 在线观看网站黄不卡| 日韩限制级电影在线观看| 99免费精品在线观看| 91免费精品国自产拍在线不卡| 亚洲色图在线播放| 精品国产伦一区二区三区免费 | 欧美日本在线一区| 中文在线资源观看网站视频免费不卡 | 精品日韩一区二区| 91国内精品野花午夜精品 | 精品国产露脸精彩对白| 麻豆精品视频在线观看| 97久久精品人人做人人爽| 天堂va蜜桃一区二区三区漫画版| 免费观看一级欧美片| 精品视频在线免费| 日本亚洲欧美天堂免费| 欧美mv日韩mv国产网站app| 亚洲一区二区四区蜜桃| 色www精品视频在线观看| 亚洲v日本v欧美v久久精品| 欧美精品免费视频| 国内精品自线一区二区三区视频| 欧美日韩黄色一区二区| 麻豆精品视频在线观看| 欧美国产在线观看| 色婷婷久久久亚洲一区二区三区 | 亚洲综合男人的天堂| 欧美日韩免费一区二区三区| 青青草97国产精品免费观看| 精品国产一区二区精华 | 欧美一级片在线观看| 久久成人综合网| 精品国产亚洲在线| 日本不卡在线视频| 国产精品美女视频| 国产另类ts人妖一区二区| 国产综合久久久久久久久久久久| 精品日韩在线观看| 久久精品国产精品青草| 亚洲第一搞黄网站| 欧美成人激情免费网| 欧美四级电影在线观看| 99r国产精品| 精品午夜一区二区三区在线观看| 在线精品视频小说1| 国内精品伊人久久久久av一坑 | 欧美精品xxxxbbbb| 天天操天天综合网| 成人激情动漫在线观看| 国产亚洲精品aa| 欧美系列一区二区| 久久精品国产99国产| 国产一区二区三区久久久| 色久综合一二码| 美女视频黄免费的久久 | 成人午夜视频网站| 天天色图综合网| 日韩欧美三级在线| 欧美日韩另类国产亚洲欧美一级| 亚洲黄色小说网站| 欧美精品一区二区三区在线| 懂色一区二区三区免费观看| 亚洲福利视频三区| 综合色中文字幕| 久久久久国产精品人| 99国产精品久久久| 国产夫妻精品视频| 国产综合久久久久久鬼色 | 91免费看`日韩一区二区| 青娱乐精品在线视频| 一区二区三区在线高清| 日本一区二区三区高清不卡| 精品少妇一区二区三区在线播放| 久久久久国产精品免费免费搜索| 蜜臀精品一区二区三区在线观看| 欧美zozo另类异族| 99久久精品国产毛片| 国产欧美一区二区精品忘忧草 | 亚洲乱码中文字幕综合| 日本一区二区动态图| 欧美福利视频导航| 日韩免费视频一区| 国产精品蜜臀av| 国产伦精品一区二区三区在线观看| 亚洲免费色视频| 国模一区二区三区白浆| 91成人在线观看喷潮| 国产suv一区二区三区88区| 亚洲一区av在线| 欧美国产禁国产网站cc| 日韩精品中文字幕在线不卡尤物| 日韩亚洲欧美一区| 麻豆免费看一区二区三区| 免费一级欧美片在线观看| 久久国产麻豆精品| 久久69国产一区二区蜜臀| 91精品在线麻豆| 丁香啪啪综合成人亚洲小说| 成人午夜免费av| 99精品一区二区| 在线观看日韩av先锋影音电影院| 一区二区三区.www| 欧美成人伊人久久综合网| 日韩一区二区在线观看视频 | 欧美大黄免费观看| 欧美亚洲国产一区二区三区va| 国产美女在线精品| 国产盗摄女厕一区二区三区| 成人99免费视频| 在线观看不卡一区| 7777精品伊人久久久大香线蕉超级流畅 | 91麻豆国产香蕉久久精品| 国产精品中文字幕日韩精品| 一区二区在线观看av| 国产欧美日韩三区| 亚洲日本免费电影| 日韩av一级片| 国产成人在线影院| 91精品国产91久久久久久一区二区| 欧美亚洲国产一卡| 久久99热这里只有精品| 亚洲色图19p| 国产99一区视频免费| 日韩不卡一区二区| 91首页免费视频| 日韩午夜在线观看视频| 麻豆免费精品视频| 久久日一线二线三线suv| 美美哒免费高清在线观看视频一区二区| 91在线精品秘密一区二区| 狠狠色丁香婷综合久久| 亚洲精品免费播放| 一区二区三区色| 99九九99九九九视频精品| 国产一区二区三区蝌蚪| 激情文学综合网| 成人永久aaa| 国产乱妇无码大片在线观看| 成人中文字幕合集| 久久综合色综合88| 色婷婷国产精品综合在线观看| 北条麻妃国产九九精品视频| 高清国产一区二区三区| 国产日产欧美精品一区二区三区| 亚洲一级二级在线| 26uuu色噜噜精品一区二区| 国产精品自拍网站| 国产精品福利一区二区| 久久精品99久久久| 国产一区二区三区av电影| 日韩一区二区三区精品视频| 亚洲一区二区三区中文字幕在线| 日韩和欧美一区二区三区| 色婷婷国产精品综合在线观看| 欧美日韩黄视频| 亚洲成人午夜电影| 欧美日韩一区二区三区在线| 一区二区三国产精华液| 欧美手机在线视频| 久久伊人蜜桃av一区二区| 美国十次了思思久久精品导航| 成人免费看黄yyy456| 中文字幕精品一区二区精品绿巨人 | 欧美三级日韩在线| 亚洲一区免费视频| 欧美日韩在线直播| 日本麻豆一区二区三区视频| 日韩女优视频免费观看| 韩国欧美国产1区| 国产欧美一二三区| 91福利区一区二区三区| 性欧美疯狂xxxxbbbb| 日韩欧美电影一区| 99re热这里只有精品视频| 日本女人一区二区三区| 日本中文字幕不卡| 蜜桃视频一区二区三区在线观看| 在线观看日韩毛片| 色呦呦日韩精品| 91精品国产麻豆| 中文字幕电影一区| 日韩av电影一区| 91片黄在线观看| 国产清纯在线一区二区www| 午夜精品一区二区三区电影天堂 | 国产视频一区在线观看 | 国产精品久久毛片a|