• 大小: 29KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: Java
  • 标签: Java  Hannoi  GUI  

资源简介

这是Java GUI可视化图形设计的汉诺塔(Hannoi)小游戏,使用Eclipse编译器制作,用户可以使用鼠标拖动盘子进行自己操作,或者选择自动演示;另外,增加了一些扩展功能:1、用户进行游戏的游戏时间记录;2、用户可选择游戏难度(或者自定义游戏的盘子数目);3、可以设置盘子的大小;4、改变背景颜色或盘子颜色;5、自动演示的汉诺塔步骤可以使用文本保存;

资源截图

代码片段和文件信息

/* AutoMoveDisc类
 * 该类实现了ActionListener接口,创建对象 autoMoveDisc 是Tower的成员之一
 * */
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;
import javax.swing.text.BadLocationException;
public class AutoMoveDisc extends JDialog implements ActionListener{
    int amountOfDisc=3;       //盘子的数量
    TowerPoint [] pointApointBpointC;   //存放Tower容器中的塔点对象的引用;
    char [] towerName;        //存放Tower容器中的towername的引用
    Container con;            //Container容器对象,用来存放tower对象引用
    StringBuffer moveStep;    //存放移动盘子的步骤,用连续两个字符表示
    JTextArea showStep;       //显示盘子移动步骤的文本区
    JButton bStartbStopbContinuebClosebSave; //相关按钮
    Timer time;               //时间计时器
    int i=0number=0;
    
    AutoMoveDisc(Container con){  //构造函数,完成界面布局
        setModal(true);
        settitle(“自动演示搬盘子过程:“);
        this.con=con;
        moveStep=new StringBuffer();
        time=new Timer(1000this);
        time.setInitialDelay(10);
        showStep=new JTextArea(1520); 
        bStart=new JButton(“演示“);
        bStop=new JButton(“暂停“);
        bContinue=new JButton(“继续“);
        bSave=new JButton(“保存“);
        bClose=new JButton(“关闭“);        
        bStart.addActionListener(this);
        bStop.addActionListener(this);
        bContinue.addActionListener(this);
        bSave.addActionListener(this);
        bClose.addActionListener(this);        
        JPanel south=new JPanel();
        south.setLayout(new FlowLayout());
        south.add(bStart);
        south.add(bStop);
        south.add(bContinue);
        south.add(bSave);
        south.add(bClose);
        add(new JScrollPane(showStep)BorderLayout.CENTER);
        add(southBorderLayout.SOUTH);
        setDefaultCloseOperation(Jframe.DO_NOTHING_ON_CLOSE);
        towerName=new char[3];
        addWindowListener(new WindowAdapter(){
                           public void windowClosing(WindowEvent e){
                              time.stop();
                              setVisible(false);
                           }
                         });
    }
    public void setPointA(TowerPoint [] pointA){ //将tower容器中的pointA对象的引用传递给该对象的pointA以便autoMoveDisc对象自动移动踏上的盘子disc
        this.pointA=pointA;
    }
    public void setPointB(TowerPoint [] pointB){
        this.pointB=pointB;
    }
    public void setPointC(TowerPoint [] pointC){
        this.pointC=pointC;
    }
    public void setTowerName(char name[]){   //给每一个座tower命名
         if(name[0]==name[1]||name[0]==name[2]||name[1]==name[2]){
           towerName[0]=‘A‘;
           towerName[1]=‘B‘;
           towerName[2]=‘C‘;
         }
         else  
           towerName=name;
    }
    public void setAmountOfDisc(int n){    //设置盘子数目变量 amountOfDisc的值
         amountOfDisc=n;                 
    }
   public void actionPerformed(ActionEvent e) {  //实现文本显示盘子移动步骤事件
      if(e.getSource()==time){
            number++;
         

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2010-12-26 19:14  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\.classpath

     文件        386  2010-12-26 19:14  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\.project

     文件        629  2010-12-26 19:14  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\.settings\org.eclipse.jdt.core.prefs

     文件        745  2011-01-08 21:41  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin\AutoMoveDisc$1.class

     文件       6324  2011-01-08 21:41  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin\AutoMoveDisc.class

     文件        784  2011-01-07 22:04  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin\Disc.class

     文件       4327  2011-01-07 18:53  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin\HandleMouse.class

     文件       1182  2011-01-08 18:32  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin\HannoiWindow$rHandler.class

     文件       8437  2011-01-08 18:32  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin\HannoiWindow.class

     文件        141  2010-12-27 00:17  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin\java.policy.applet

     文件       2268  2010-12-27 20:52  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin\PlayMusic.class

     文件       4807  2011-01-07 23:23  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin\Tower.class

     文件       1879  2011-01-07 01:20  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin\TowerPoint.class

     文件       8451  2011-01-08 21:41  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\src\AutoMoveDisc.java

     文件        801  2011-01-07 22:04  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\src\Disc.java

     文件       7713  2011-01-07 18:53  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\src\HandleMouse.java

     文件       9347  2011-01-08 18:32  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\src\HannoiWindow.java

     文件       7788  2011-01-07 23:23  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\src\Tower.java

     文件       2443  2011-01-07 01:20  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\src\TowerPoint.java

     目录          0  2011-01-08 22:33  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\.settings

     目录          0  2011-01-08 22:33  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\bin

     目录          0  2011-01-08 22:34  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码\src

     目录          0  2011-01-08 22:35  Java 汉诺塔_Hannoi GUI 可视化_图形用户界面_源代码

----------- ---------  ---------- -----  ----

                68753                    23


评论

共有 条评论