南京郵電大學計算機學院
2014/2015學年第1學期
《JAVA語言》課程報告
課題代号(單選)□課題1 □課題2 □課題3
課題名稱: 拼圖遊戲
小組成員人數(單選)□1人 □2人 □3人 □4人
小組成員名單(學号和姓名):
(1)學号 姓名
(2)學号 姓名
(3)學号 姓名
(4)學号 姓名
課題實作采用的開發工具(如為其他,請填寫具體工具名稱)
□NetBeans □Eclipse □JDK指令行 □其他______________
課題實作采用的作業系統(如為其他,請填寫作業系統名稱)
□Microsoft Windows □Unix □ Linux □其他__________________
課題實作形式(如為PC桌面應用程式之外的其他形式請填寫)___________
課題完成時間:_______2014年12月28日________________________
對應送出的電子文檔檔案夾名稱(準确填寫):
_______________________________________________________________
===================以下部分為教師填寫區,請勿填寫=======================
評閱編号:( )-( )
成績評定:
軟體運作______軟體基本功能_______軟體提高功能______ 軟體部分成績________文檔結構______文檔理論___________文檔撰寫__________ 文檔部分成績________
總成績_____________
備注____________________________________________________________________
基本要求:在遊戲界面顯示一幅完整圖檔,點選遊戲開始後該圖檔自動被分割為指定的M*N(其中M和N分别為圖塊矩陣的行和列,例如3x3=9塊,4x5=20塊)個圖檔小方塊并随機散布在遊戲界面中,使用滑鼠拖動小方塊進行拼接,正确歸位的方塊将被固定,直到全部圖檔還原,遊戲結束。
提高要求:可以有多張圖檔供遊戲者選擇;實作倒計時功能;可以給遊戲者提供提示功能;實作遊戲難度的自适應(例如M,N數值的自适應算法和小圖塊的散布算法),即在初始時以及對遊戲水準低的人而言遊戲應該比較容易,對水準高的人遊戲應随之增加難度;遊戲畫面的精細完善,有最佳的動畫以及聲音效果。
分析與總體設計
(拼圖遊戲需要解決的問題有:
圖檔的分割
圖檔分割後打亂位置
圖檔縮放作為預覽圖适應界面大小(不同的圖檔大小統一)
圖檔都恢複原位後判斷拼圖完成
(初步設計的流程圖:
JFrame:主界面的設計
splitImage:圖檔縮放和圖檔的分割
picture:圖檔位置和将圖檔放入按鈕之中check:判斷遊戲是否完成圖檔是否回歸原位
randarry:産生随機數組用于打亂圖檔
ActionListener:注冊事件每個元件事件的具體内容,其中移動圖檔的機制是将一個按鈕設定為null;是以當非空按鈕邊有一個空按鈕時将其中的圖檔交換。算法分析
最初設計遊戲的想法是利用按鈕,将圖檔添加到每個按鈕之中然後移動圖檔将相鄰的按鈕中的圖檔進行交換,再定義一個int變量用來記錄步數。圖檔的分割中利用Graphics繪制一個指定大小的區域,然後将圖檔中的一部分繪制到區域中用一個圖數組儲存,此種方法即可以分割圖檔也可以壓縮圖檔。打亂圖檔所利用的是随機數,由于每個分割後的圖檔都是存放在數組中的是以可以利用數組的下再利用随機數将圖檔随機加入到按鈕之中。當選擇難度時定義了
詳細設計
Jigsaw類
(
成員變量名menu1-3JMenu菜單欄item1-6JMenuItem菜單選項lvl1-3JRadioButtonMe