資源簡介
這是Java GUI可視化圖形設計的漢諾塔(Hannoi)小游戲,使用Eclipse編譯器制作,用戶可以使用鼠標拖動盤子進行自己操作,或者選擇自動演示;另外,增加了一些擴展功能:1、用戶進行游戲的游戲時間記錄;2、用戶可選擇游戲難度(或者自定義游戲的盤子數(shù)目);3、可以設置盤子的大小;4、改變背景顏色或盤子顏色;5、自動演示的漢諾塔步驟可以使用文本保存;

代碼片段和文件信息
/*?AutoMoveDisc類
?*?該類實現(xiàn)了ActionListener接口,創(chuàng)建對象?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;???????//盤子的數(shù)量
????TowerPoint?[]?pointApointBpointC;???//存放Tower容器中的塔點對象的引用;
????char?[]?towerName;????????//存放Tower容器中的towername的引用
????Container?con;????????????//Container容器對象,用來存放tower對象引用
????StringBuffer?moveStep;????//存放移動盤子的步驟,用連續(xù)兩個字符表示
????JTextArea?showStep;???????//顯示盤子移動步驟的文本區(qū)
????JButton?bStartbStopbContinuebClosebSave;?//相關(guān)按鈕
????Timer?time;???????????????//時間計時器
????int?i=0number=0;
????
????AutoMoveDisc(Container?con){??//構(gòu)造函數(shù),完成界面布局
????????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(“繼續(xù)“);
????????bSave=new?JButton(“保存“);
????????bClose=new?JButton(“關(guān)閉“);????????
????????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){????//設置盤子數(shù)目變量?amountOfDisc的值
?????????amountOfDisc=n;?????????????????
????}
???public?void?actionPerformed(ActionEvent?e)?{??//實現(xiàn)文本顯示盤子移動步驟事件
??????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.ap
?????文件???????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
- 上一篇:西安軟件公司java筆試題
- 下一篇:《Java基礎(chǔ)入門》_課后習題答案
評論
共有 條評論