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

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

?? java-codes.txt

?? 3D魔方的小游戲
?? 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一区二区三区免费野_久草精品视频
欧美猛男超大videosgay| 国产欧美综合在线观看第十页| 中文字幕免费在线观看视频一区| 国产在线精品一区二区三区不卡| 精品三级av在线| 亚洲一区二区三区国产| 国产综合久久久久久久久久久久| 26uuu亚洲综合色| 国产一区二区视频在线| 日本一区二区三区在线观看| 波多野结衣中文一区| 亚洲丝袜制服诱惑| 欧美视频在线不卡| 日韩高清在线一区| 精品国产一区二区三区不卡| 国产.欧美.日韩| 亚洲欧洲制服丝袜| 91精品久久久久久久久99蜜臂| 久久国产精品免费| 国产精品午夜免费| 欧美系列一区二区| 精品夜夜嗨av一区二区三区| 国产精品麻豆视频| 欧美日本乱大交xxxxx| 国产在线麻豆精品观看| 亚洲私人影院在线观看| 91精品国产高清一区二区三区| 国产乱一区二区| 一区二区三区免费观看| 中文成人综合网| 成人午夜大片免费观看| 一区二区三区免费网站| 日韩欧美aaaaaa| 99精品一区二区| 日韩av不卡一区二区| 国产精品视频看| 精品视频一区 二区 三区| 精品一区二区三区的国产在线播放| 国产欧美中文在线| 欧美日韩免费视频| 国产成a人亚洲| 日韩激情视频在线观看| 国产99久久久精品| 欧美天堂一区二区三区| 亚洲最新视频在线观看| 久久免费午夜影院| 欧美久久久一区| 91视视频在线观看入口直接观看www | 男女激情视频一区| 欧美国产日韩在线观看| 欧美一区二区成人6969| www.亚洲精品| 国产精品99精品久久免费| 性久久久久久久久久久久| 国产精品乱人伦| 欧美精品一区二区三区高清aⅴ| 欧美视频一区二区在线观看| 不卡一区在线观看| 国产精品99久久久| 久久9热精品视频| 日本欧美加勒比视频| 一区二区免费在线播放| 国产精品你懂的在线欣赏| 久久免费看少妇高潮| 欧美一区二区三区白人| 亚洲视频免费观看| 777奇米四色成人影色区| 91视频免费看| 91一区一区三区| 成人黄色大片在线观看| 国产福利一区二区三区视频在线| 久久丁香综合五月国产三级网站| 午夜精品福利视频网站| 久久丁香综合五月国产三级网站| 亚洲一区二区三区激情| 一区二区三区在线视频观看58 | 婷婷久久综合九色国产成人 | www.欧美日韩| av欧美精品.com| 99久久精品99国产精品| 成人h版在线观看| hitomi一区二区三区精品| 成人美女视频在线看| 成人av网站在线| 91免费看视频| 欧美专区在线观看一区| 亚洲欧美综合色| 国产精品久久久久久久久晋中| 久久影视一区二区| 精品播放一区二区| 久久男人中文字幕资源站| 精品sm在线观看| 欧美国产丝袜视频| 国产精品初高中害羞小美女文| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 成人免费看的视频| 99精品国产99久久久久久白柏| 91在线免费视频观看| 91极品视觉盛宴| 欧美一区二区三区四区久久| 日韩精品中文字幕在线不卡尤物| 久久影音资源网| 中文字幕制服丝袜一区二区三区 | 亚洲在线成人精品| 日韩激情在线观看| 久久电影国产免费久久电影 | 91成人免费在线| 综合激情成人伊人| 亚洲免费观看在线视频| 亚洲一区成人在线| 美女一区二区视频| 成人精品鲁一区一区二区| 91免费视频网址| 欧美一区2区视频在线观看| 国产性色一区二区| 亚洲欧美日韩系列| 麻豆视频观看网址久久| 成人精品gif动图一区| 欧美日本一道本| 国产精品午夜在线| 日韩高清国产一区在线| 国产成人精品免费视频网站| 91国产免费看| 久久精品一区二区三区不卡 | 色成人在线视频| 精品捆绑美女sm三区| 亚洲精品成人少妇| 蜜臀av在线播放一区二区三区| jvid福利写真一区二区三区| 69堂精品视频| 亚洲激情五月婷婷| 国产精品12区| 欧美精品久久一区| 午夜视频在线观看一区二区 | 亚洲精品写真福利| 国内精品伊人久久久久av一坑 | 91.xcao| 国产欧美精品一区aⅴ影院| 亚洲成人免费视| 99久久国产综合精品麻豆 | 久久婷婷国产综合国色天香| 亚洲综合在线第一页| 夫妻av一区二区| 精品欧美一区二区三区精品久久| 有码一区二区三区| 不卡av免费在线观看| 2024国产精品| 美女在线一区二区| 91精品婷婷国产综合久久性色| 一区二区三区精密机械公司| 成人av片在线观看| 国产日产欧产精品推荐色| 免费人成在线不卡| 欧美区一区二区三区| 亚洲精品国产a| av不卡免费电影| 国产日产欧美一区二区三区| 国产制服丝袜一区| 日韩午夜电影av| 蜜臀精品久久久久久蜜臀| 777久久久精品| 午夜免费久久看| 欧美调教femdomvk| 亚洲丰满少妇videoshd| 91福利在线观看| 亚洲综合色婷婷| 欧美在线free| 婷婷夜色潮精品综合在线| 欧美日韩美少妇| 日韩高清在线观看| 67194成人在线观看| 免费在线观看一区| 日韩欧美色综合| 国产精品一区在线观看乱码| 久久久精品欧美丰满| 国产91精品在线观看| 中文字幕一区在线观看视频| 99riav一区二区三区| 一区二区不卡在线播放| 欧美午夜片在线看| 婷婷开心激情综合| 欧美电影免费观看高清完整版在线 | 国产中文一区二区三区| 久久久久久日产精品| 大白屁股一区二区视频| 欧美天天综合网| 宅男噜噜噜66一区二区66| 日韩电影在线一区二区三区| 4438x成人网最大色成网站| 天堂午夜影视日韩欧美一区二区| 777午夜精品免费视频| 天天射综合影视| 精品国产成人系列| 成人午夜在线播放| 一区二区视频在线看| 91精品国产91久久久久久一区二区 | 欧美高清视频一二三区| 麻豆一区二区99久久久久| 久久精品欧美日韩| 91在线国内视频|