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

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

?? hannoi.txt

?? 一個hannoi塔程序。帶自動演示功能。
?? TXT
字號:
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class Hnt extends Applet implements MouseListener,ActionListener,ItemListener
{
 
 public int x=0,y=0;
 public int count=0;
 public int csize=3;//,size=20;       //設置盤子的個數
 public int tower[][]=new int[20][20];  //紀錄每個柱子中盤子存放的內容
 public int From;                 //用于紀錄是哪個盤子需要轉移!
 public int top[]={19,-1,-1};   //紀錄柱子頂端的位置,并進行初始化。
 public int itop=0,ltop=0;                 //紀錄是兩次操作柱子的編號。
 public int begin=0;       //記錄原柱子的編號
 public int set;                             //盤子的基本寬度
 public int iima;
 public int currz;
 public String Music[]={new String("up.wav"),new String("down.wav"),new String("lost.wav"),new String("win.wav")};
 public String ima[]={new String("upA.gif"),new String("downA.gif"),new String("error.png"),new String("laugh.png")};
 public String Message=" ";     //記錄信息
 public Rectangle pan[]=new Rectangle[200]; //根據盤子的個數來完成盤子的設置。
 public AudioClip music[]=new AudioClip[4]; //音樂設置
 public Image image[]=new Image[4];
 public Image bg;
 public boolean run=false,yanshi=false,free=true,mode=true;  //標志是移盤還是放盤。
 public int bgnumber;
 public TextField text;
 public Label lab1,lab2;
 public Button but,but2;
 public Checkbox one,two;
 public Choice cho;
 public Color zi=new Color(153,50,205);
 public myDialog md;
 public Que q=new Que();
 public int time=10;
    public void init()
    {
     CheckboxGroup cg=new CheckboxGroup();
  one=new Checkbox("自由模式",true,cg);
  two=new Checkbox("正規模式",false,cg);
     md=new myDialog("完成");
     
     text=new TextField("3",20);
     but=new Button("切換");
     but2=new Button("演示");
     cho=new Choice();
     
     lab1=new Label("游戲模式:");
      add(lab1);
     add(two);
     add(one);
     lab1=new Label("         演示間隔:");
     
     add(lab1);
        cho.add("1 秒");
     cho.add("0.2秒");
     cho.add("0.5秒");
     cho.add("2 秒");
     cho.add("3 秒");
     add(cho);
     
     lab1=new Label("輸入盤子的個數:");
     add(lab1);
     add(text);
     add(but);
     add(but2);
     two.addItemListener(this);
     one.addItemListener(this);
     cho.addItemListener(this);
   but.addActionListener(this);
   but2.addActionListener(this);
    for(int j=0;j<4;j++)
    {
      music[j]=getAudioClip(getDocumentBase(),Music[j]);
      image[j]=getImage(getDocumentBase(),ima[j]);
     }
     iima=0;
        addMouseListener(this);       //添加鼠標監聽
        bgnumber=(int)(Math.random()*16);
  bg=getImage(getDocumentBase(),bgnumber+".png");
  set=120/(22);
  for(int i=0,j=19;i<20;i++)      //初始化柱子A中的信息
     {
      tower[0][i]=j--;
      pan[i]=new Rectangle((int)(80-(i/2.0+0.5)*set),215-(20-i)*set,(i+1)*set,set);//將盤子進行初始化
     }
     initPan();  
    }
    public void initPan()
    {
     top[0]=csize-1;top[1]=-1;top[2]=-1;
     set=120/(csize+2);
     for(int i=0,j=csize-1;i<csize;i++)      //初始化柱子A中的信息
     {
      tower[0][i]=j--;
      pan[i].setBounds((int)(80-(i/2.0+0.5)*set),245-(csize-i)*set,(i+1)*set,set);//將盤子進行初始化
     }
     repaint();
   }
 public void paint(Graphics g)
 {
  g.drawImage(bg,0,65,420,215,this);
  String str=new String("狀態: "+Message);
  if(run) currz=ltop;
  else currz=itop;
  g.drawImage(image[iima],70+130*currz,85,20,20,this);
  g.setColor(Color.pink);
  g.drawString(str,10,265);
  str="移動次數: "+count;
  g.drawString(str,340,265);
  g.drawLine(20,245,140,245);      //畫柱子
  g.drawLine(150,245,270,245);
  g.drawLine(280,245,400,245);
  g.drawLine(80,125,80,245);
  g.drawLine(210,125,210,245);
  g.drawLine(340,125,340,245); 
  for(int i=0;i<csize;i++)        //畫矩形
  {
   g.setColor(Color.pink);
   g.fillRect(pan[i].x,pan[i].y,pan[i].width,pan[i].height);
   g.setColor(zi);
   g.drawRect(pan[i].x,pan[i].y,pan[i].width,pan[i].height);
  }
  if(yanshi)
   Yanshi();
 }
 public void mouseClicked(MouseEvent e)
 {
  if(!yanshi)
  {
   if(Message=="\tWin")
   {
    initPan();
    Message="";
   }
   run=!run;
   x=e.getX();            //獲取當前鼠標點擊的位置,從而判斷是哪個柱子應該接受響應
   y=e.getY();
   if(x>=20 && x<=140 && y>=105 && y<=245)  //知道是哪個柱子
    itop=0;
   else if(x>=150 && x<=270 && y>=105 && y<=245)
    itop=1;
   else if(x>=280 && x<=400 && y>=105 && y<=245)
    itop=2;
   else 
   {
    run=!run;
    return;
   }
   if(run)
   {
    if(top[itop]==-1)
    {
     run=false;
     From=-1;
    }
    else
    {
     From=tower[itop][top[itop]];
     ltop=itop;
     music[0].play();            //向上移動聲音播放
     iima=0;
    } 
   }
   if(!run && From!=-1)          //落盤子操作
   {
    if(top[itop]!=-1 && From>tower[itop][top[itop]])
    {
     Message="Wrong";
     music[2].play();       //擺放錯誤
     iima=2;
     repaint();
     return;
    }
    Message=" ";
    top[ltop]--;
    pan[From].setLocation(pan[From].x+(itop-ltop)*130,245-(top[itop]+2)*set); //直接將盤移動
    top[itop]++;
    tower[itop][top[itop]]=From;
    iima=1;
    music[1].play();
    count++;
    check();
   }
   repaint();
  }
 }
 public void check()
 {
  if(top[0]==csize-1 || top[1]==csize-1 || top[2]==csize-1)
  {
   if(begin!=itop)
   {
    begin=itop;
    Message="\tWin";
     music[3].play();
     iima=3;
     bgnumber=(int)(Math.random()*16);
     bg=getImage(getDocumentBase(),bgnumber+".png");
     md.SetString(csize,count);
     count=0;
     md.setVisible(true);
   }  
  }
  else if(!mode && top[2]==csize-1)
  {
   begin=itop;
   Message="\tWin";
   music[3].play();
   iima=3;
   bgnumber=(int)(Math.random()*16);
   bg=getImage(getDocumentBase(),bgnumber+".png");
   md.SetString(csize,count);
   count=0;
   md.setVisible(true);
  }
   
 }
 public void actionPerformed(ActionEvent e)
 {
  if(e.getSource()==but)
  {
   count=0;
   if(yanshi)
   {
    yanshi=false;
    iima=1;
    q.clear();
   }
   try
   {
    int i=Integer.valueOf(text.getText()).intValue();
    if(i>2 && i<21)
    {
     csize=i;
     initPan();
    }
    else
     text.setText("盤子的個數只限制在3~20之間");
    
   }
   catch(NumberFormatException e1)
   {
    text.setText("請輸入0~9的數字");
   }
  }
  else if(e.getSource()==but2)
  {
   if(csize<11)
   {
    iima=0;
    yanshi=true;
    hanoi(csize,0,1,2);
    initPan();
   }
   else
    text.setText("演示只限在10個盤子以內!");
  }
 }
 public void mousePressed(MouseEvent e){}
 public void mouseReleased(MouseEvent e){}
 public void mouseEntered(MouseEvent e){}
 public void mouseClosing(MouseEvent e){}
 public void mouseExited(MouseEvent e){}
 public void movie(int get,int  out)
 {
  q.push(get,out);
 }
 public void hanoi(int n,int a,int  b,int c)
 {
  if(n==1) movie(a,c);
  else
  {
   hanoi(n-1,a,c,b);
   movie(a,c);
   hanoi(n-1,b,a,c);
  }
 }
 public void Yanshi()
 {
  try{
   Thread.sleep((int)(time*100));
  }catch(Exception e){}
  if(q.size()==0)
  {
   yanshi=false;
   text.setText("演示完成   移動次數:"+count);
   iima=3; 
   count=0;
   q.clear();
   begin=2;
  }
  else
  {
   ltop=q.popFirst();
   itop=q.popSecond();
   try{
    From=tower[ltop][top[ltop]];
   }
   catch(Exception e){}
   top[ltop]--;
   pan[From].setLocation(pan[From].x+(itop-ltop)*130,245-(top[itop]+2)*set); //直接將盤移動
   top[itop]++;
   tower[itop][top[itop]]=From;
   count++;
  }
  repaint();
 }
 public void itemStateChanged(ItemEvent e)
 {
  if(e.getSource()==one)
   mode=true;
  else if(e.getSource()==two)
   mode=false;
  
  else switch(cho.getSelectedIndex())
  {
   case 0:
    time=10;
    break;
   case 1:
    time=2;
    break;
   case 2:
    time=5;
    break;
   case 3:
    time=20;
    break;
   case 4:
    time=40;
  }
 }
}
class myDialog extends Frame implements ActionListener
{
 boolean stop=true;
 Label lab;
 TextField tes;
 Button continu;
 GridLayout gl;
 myDialog(String title)
 {
  super(title);
  lab=new Label("          恭喜!你已經成功的完成!");
  tes=new TextField("",30);
  tes.setEnabled(false);
  continu=new Button("繼續");
  setSize(220,120);
  gl=new GridLayout(3,1);
  setLayout(gl);
  add(lab);
  add(tes);
  add(continu);
  continu.addActionListener(this);
 }
 public void actionPerformed(ActionEvent e)
 {
  if(e.getSource()==continu)
   setVisible(false);
 }
 public void SetString(int i,int j)
 {
  int count=(int)Math.pow(2,i)-1;
  String message=new String();
  if(j==count)
   message="完美";
  else if(j<=count*2)
   message="漂亮";
  else 
   message="努力";
  String str=new String("盤子個數:"+i+"  移動次數: "+j+"  狀況:"+message);
  tes.setText(str);
 }
}
class Que
{
 int First[]=new int[1024];
 int Second[]=new int[1024];
 int Top=0,End=0;
 public void push(int First,int Second)
 {
  this.First[End]=First;
  this.Second[End++]=Second;
 }
 public int popFirst()
 {
  return First[Top];
 }
 public int popSecond()
 {
  return Second[Top++];
 }
 public void clear()
 {
  Top=0;
  End=0;
 }
 public int size()
 {
  return End-Top;
 }
 
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区在线看| 中文在线免费一区三区高中清不卡| 欧美精品乱码久久久久久按摩| 911精品国产一区二区在线| 欧美变态tickling挠脚心| 中文一区二区在线观看| 一区二区三区日韩欧美| 午夜成人免费电影| 91麻豆.com| 亚洲国产高清在线| 国产在线一区二区| 欧美猛男超大videosgay| 中文字幕一区二区三区av| 国产麻豆精品一区二区| 日韩午夜在线播放| 五月激情综合婷婷| 91麻豆123| 综合久久给合久久狠狠狠97色| 国产久卡久卡久卡久卡视频精品| 91精品久久久久久蜜臀| 亚洲成年人影院| 色婷婷综合视频在线观看| 久久久三级国产网站| 加勒比av一区二区| 日韩精品中文字幕在线一区| 日本不卡中文字幕| 在线成人免费观看| 天天射综合影视| 欧美午夜精品一区二区三区| 亚洲精品免费播放| 欧美在线看片a免费观看| 亚洲视频综合在线| 91首页免费视频| 一区二区三区在线看| 91网站黄www| 亚洲美女屁股眼交| 欧美性做爰猛烈叫床潮| 亚洲大片精品永久免费| 337p亚洲精品色噜噜狠狠| 午夜精品影院在线观看| 欧美日韩一卡二卡三卡 | 日本道在线观看一区二区| 国产精品久久久久久妇女6080| 成人小视频免费在线观看| **性色生活片久久毛片| 91老师片黄在线观看| 亚洲国产精品久久人人爱蜜臀| 欧美日韩一区中文字幕| 蜜桃视频在线观看一区| 国产香蕉久久精品综合网| 成人免费毛片嘿嘿连载视频| 综合自拍亚洲综合图不卡区| 欧美日韩在线观看一区二区 | 亚洲成人一二三| 欧美疯狂性受xxxxx喷水图片| 日韩高清在线不卡| 久久人人爽爽爽人久久久| 成人午夜激情片| 亚洲成人一区二区在线观看| 精品福利视频一区二区三区| 97精品久久久久中文字幕 | 亚洲欧美另类久久久精品2019| 色哟哟精品一区| 老司机午夜精品| 国产精品国产馆在线真实露脸| 欧美在线视频你懂得| 久久99国产精品久久| 国产精品视频一区二区三区不卡| 在线免费观看一区| 经典三级视频一区| 亚洲女人****多毛耸耸8| 日韩免费看网站| 91香蕉视频mp4| 久久97超碰国产精品超碰| 自拍偷自拍亚洲精品播放| 日韩免费一区二区三区在线播放| 99久久国产免费看| 麻豆精品一二三| 亚洲精品国产一区二区精华液 | 麻豆91免费观看| 亚洲视频狠狠干| 精品久久久久一区| 在线看不卡av| av综合在线播放| 激情综合色综合久久| 亚洲第一在线综合网站| 国产日韩av一区二区| 91精品啪在线观看国产60岁| 91亚洲永久精品| 国产成人免费视频网站| 人妖欧美一区二区| 一区二区免费在线| 亚洲欧美一区二区在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 欧美精品丝袜久久久中文字幕| 一本色道久久综合亚洲精品按摩| 国产成人亚洲综合a∨婷婷| 日本aⅴ亚洲精品中文乱码| 一区二区三区在线观看网站| 日韩一区在线免费观看| 国产网红主播福利一区二区| 欧美刺激脚交jootjob| 在线综合+亚洲+欧美中文字幕| 91精品1区2区| 日本道精品一区二区三区| 97se亚洲国产综合自在线观| 99在线精品观看| kk眼镜猥琐国模调教系列一区二区| 国产一区二区视频在线播放| 精品一区二区三区视频| 蜜桃视频第一区免费观看| 青青草97国产精品免费观看| 人人爽香蕉精品| 久久国产精品第一页| 蜜桃av一区二区在线观看| 日韩影院免费视频| 日本不卡在线视频| 狠狠色丁香婷婷综合久久片| 加勒比av一区二区| 高清国产一区二区三区| 成人久久视频在线观看| 国产成人精品免费网站| 国产不卡视频在线播放| 不卡的av中国片| 欧美影院一区二区| 欧美一区二区三区在线视频| 日韩一区二区在线播放| 精品国产精品网麻豆系列| 久久影院午夜片一区| 国产精品嫩草99a| 亚洲人成人一区二区在线观看| 一区二区三区成人| 午夜国产精品一区| 久久精品免费观看| 丁香网亚洲国际| 色爱区综合激月婷婷| 欧美一区二区日韩| 久久综合成人精品亚洲另类欧美| 欧美国产精品中文字幕| 亚洲美女屁股眼交3| 日本aⅴ亚洲精品中文乱码| 国产乱国产乱300精品| 91免费观看视频在线| 制服视频三区第一页精品| 久久噜噜亚洲综合| 亚洲综合成人在线| 久久精品国产免费| av午夜一区麻豆| 日韩欧美一级二级三级久久久| 亚洲国产高清在线观看视频| 亚洲一二三四在线| 国产毛片精品国产一区二区三区| 91麻豆免费看片| 日韩欧美一二三| 亚洲三级在线播放| 韩国av一区二区| 欧美日韩国产综合一区二区 | 亚洲激情自拍视频| 九九在线精品视频| 一本大道av一区二区在线播放| 欧美大片在线观看一区| 亚洲一区视频在线观看视频| 国产精品一区二区在线播放| 欧美三级韩国三级日本三斤 | 97久久精品人人爽人人爽蜜臀| 欧美一级高清大全免费观看| 亚洲欧洲成人自拍| 国产精品自拍毛片| 欧美一区日本一区韩国一区| 亚洲免费在线观看| 国产成人自拍网| 欧美大片一区二区| 亚洲综合在线五月| 成人综合婷婷国产精品久久蜜臀| 欧美日韩不卡在线| 亚洲女厕所小便bbb| 国产精品一二二区| 日韩免费高清av| 亚洲高清中文字幕| 91豆麻精品91久久久久久| 久久久99精品免费观看| 日本女人一区二区三区| 欧美亚洲一区二区在线| 中文字幕中文字幕在线一区 | 国内外成人在线| 欧美一区二区三区影视| 香蕉成人伊视频在线观看| 91麻豆福利精品推荐| 中文字幕乱码久久午夜不卡| 国内成人自拍视频| 日韩视频123| 蜜桃av噜噜一区二区三区小说| 欧美乱妇15p| 午夜精品久久久久久久久久久| 91久久精品网| 一区二区三区日韩欧美| 在线日韩av片| 亚洲高清免费一级二级三级| 欧美日韩三级一区二区| 日韩在线播放一区二区|