




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上Java程序課程設計任務書1、主要內容:本程序基本實現了小游戲連連看的功能,玩家找出游戲中2個相同圖案的方塊,如果它們之間的連接線不多于3根直線,則將其連接起來,就可以成功將圖案相同的方塊消除,否則不會消失,當游戲中已沒有滿足條件的圖案時,點擊重列,可重新排序,游戲結束會跳出所得分數,該游戲的特點是與自己競爭,超過自己之前所創紀錄。2、具體要求(包括技術要求等):a. 該游戲界面為方格類型,由縱6橫7的直線平行垂直交叉組成,分別是6行5列方塊拼接,共有30格小方塊。方塊上隨機分布一些數字,數字的要求是至少兩兩相同,位置隨機打亂。b.當將相同數字的方塊連接,但要滿足只能
2、至少單邊無阻礙呈直線趨勢連接,否則無效,若連接一對成功就消失于界面,繼續游戲,直到游戲結束,并能返回所得分數。c. 重列按鈕(幫助)的功能:游戲過程中,遇到困難難以尋找下一符合要求的一對數字,可按左下按鈕重置重新排列 方可繼續游戲。d. 退出按鈕:擊左下方的 “退出游戲”按鈕,即可結束游戲。e. 運用基于SWING的圖形用戶界面設計知識等。3、學習并掌握以下技術:Java等4、熟練使用以下開發工具:Jcreate 等 實現系統上述的功能。三、計劃進度12月28日-12月29 日:課程設計選題,查找參考資料 12月30日-12月 31日:完成需求分析、程序設計1月1日-1月3日:完成程序代碼的編
3、寫1月4日-1月6日:系統測試與完善1月7日-1月8日:完成課程設計報告,準備答辯四、主要參考文獻1 (美) 埃克爾著 陳昊鵬,饒若楠等譯. Java編程思想J. 機械工業出版社,20052(美)Gary J.Bronson著 張瓏 劉雅文譯. Java編程原理J. 清華大學出版社,20043(美)Michael Morrison著 徐剛,于健,薛雷譯. 游戲編程入門J. 人民郵電出版社,2005.94(美)Wendy Stahler著 馮寶坤,曹英譯. 游戲編程中的數理應用J. 紅旗出版社,20055(美)克羅夫特(David Wallace Croft)著 彭暉譯. Java游戲高級編程J
4、. 清華大學出版社,20056 (美)David Brackeen著 邱仲潘譯. Java游戲編程J. 科學出版社,20047 聶慶亮編著. Java應用開發指南J. 清華大學出版社,20108 耿祥義,張躍平編著. Java面向對象程序設計J. 清華大學出版社,20109 楊紹方編著. Java編程實用技術與案例J. 清華大學出版社,2000.1110 明日科技編著. Java編程全能詞典J. 電子工業出版社,2010摘要隨著Java語言的不斷發展和壯大,現在的Java已經廣泛的應用于各個領域,包括醫藥,汽車工業,手機行業,游戲,等等地方。Java游戲的開發為滿足人們娛樂所需而設計。本游戲為
5、連連看游戲,是基于Java的圖形用戶界面而開發的,可以放松心情的小游戲。游戲從系統操作簡便、界面友好、靈活、上手即會的基本要求出發,完成整款游戲的開發。游戲更設置了重列、再來一局、退出等功能,簡單易懂,為用戶帶來愉悅的體驗。本課程設計報告介紹了游戲的構想,分析,開發,實現的過程。論述了游戲的功能開發,設計構思。給出了游戲的設計步驟,游戲系統關鍵的設計思想;在游戲系統實現章節給出了部分功能流程和相關代碼。關鍵詞:游戲,連連看 目 錄專心-專注-專業第一章 引言1.1 背景游戲是全球最大的娛樂經濟項目之一,已經被命名為“第九藝術”。而由“游戲”派生出來的職業,除了軟件開發外,游戲包裝宣傳推廣、攻略
6、指導、網絡游戲管理員和職業游戲玩家等,已成為了一系列專門的崗位。面對游戲產業如此巨大的市場空間,國內各大城市紛紛加大了這方面的人才培養,中國的游戲人才培訓已隨著游戲行業的總體發展開始逐步邁入了正軌。雖然說中國的游戲行業開始逐步的邁入了正軌,但是現今,游戲人才出現嚴重的瓶頸時期,高校的擴招、金融危機的侵襲直接影響著我們最關心的就業問題,但是另一方面游戲人才的缺乏又直接制約著行業的發展,這就更加嚴格了對社會培訓機構的穩定性和正規性的要求。在我國,游戲人才培養體系還未健全,部分開設了相關專業的高校,游由于理論和實踐的脫離無法完全滿足網游公司對人才的需求。所以,就中國目前的市場分析來看,加強游戲產業必
7、須在多渠道人才培養體系上加快突破,盡快建立起多渠道人才培養體系,來滿足社會對游戲人才的需求。1.2 課程設計內容本程序基本實現了小游戲連連看的功能,玩家找出游戲中2個相同圖案的方塊,如果它們之間的連接線不多于3根直線,則將其連接起來,就可以成功將圖案相同的方塊消除,否則不會消失,當游戲中已沒有滿足條件的圖案時,點擊重列,可重新排序,游戲結束會跳出所得分數,該游戲的特點是與自己競爭,超過自己之前所創紀錄。1.3 任務分工第二章 連連看小游戲應用程序2.1 連連看小游戲應用程序概述此程序設計是一個小游戲(連連看)的實現,主要運用了用戶圖形界面,程序接口和基本函數繪制來實現,事件監聽(包括鼠標事件,
8、鍵盤事件,響應時間)也是這個程序的特色。加入復選框,按鈕,標簽等來實現本游戲用戶界面布局。本游戲在用戶界面的可操作性、游戲的美觀度、計分結果方便都基本完善,有一定的可玩性。2.2連連看小游戲系統任務及目的 此小程序是為群眾閑暇消遣之用, 進入游戲界面,即可開始游戲,接著是“重列”、“退出”、“再來一局”方便對游戲的控制。 2.3 本章小結雖然游戲在功能和界面上不能算的上很棒,但是麻雀雖小,五臟俱全,游戲具備了彈磚塊這個經典游戲鎖應該具有的基本雛形。通過這一章,我們對這個游戲應該有了比較宏觀的了解,我們將在這一基礎上探究游戲更完美的改變。第三章 連連看系統的設計這一章時連連看系統的設計,從系統需
9、求分析開始,介紹開發環境和用到的開發工具,系統主要的功能設計,系統的數據流程圖。3.1 算法設計在檢驗兩個方塊能否消掉的時候,我們要讓兩個方塊同時滿足兩個條件才行,就是兩者配對并且連線成功。分三種情況:(從下面的這三種情況,我們可以知道,需要三個檢測,這三個檢測分別檢測一條直路徑。這樣就會有三條路徑。若這三條路徑上都是空按鈕,那么就剛好是三種直線(兩個轉彎點)把兩個按鈕連接起來了)1相鄰2若不相鄰的先在第一個按鈕的同行找一個空按鈕找到后看第二個按鈕橫向到這個空按鈕所在的列是否有按鈕,沒有的話再看第一個按鈕到它同行的那個空按鈕之間是否有按鈕,沒有的話再從與第一個按鈕同行的那個空按鈕豎向到與第二個
10、按鈕的同行看是否有按鈕,沒有的話路徑就通了,可以消了。3若2失敗后,再在第一個按鈕的同列找一個空按鈕,找到后看第二個按鈕豎向到這個空按鈕所在的行是否有按鈕,沒有的話再看第一個按鈕到與它同列的那個空按鈕之間是否有按鈕,沒有的話路徑就通了,可以消了。若以上三步都失敗,說明這兩個按鈕不可以消去。3.2 系統開發及運行環境硬件平臺:q CPU:INTEL-I5。q 內存:1024MB以上。軟件平臺:q 操作系統:Windows XP。q 數據庫:TXT文檔。q 開發工具包:JDK Version1.6.2。q 分辨率:最佳效果1024768像素 3.3 系統主要功能要求本系統為了實現游戲連連看。本系統
11、主要實現如下功能:q 系統界面美觀大方舒適。q 實現游戲一些基礎信息的保存和讀取。q 畫面流暢,具有可玩性q 沒有較大的游戲BUG。q 顯示游戲者的積分。q 實現多種數字的排列模型。q 系統最大限度地實現了易維護性和易操作性。 q 系統運行穩定、安全可靠。3.4.1 連連看的總體結構連連看游戲是基于基本的軟件和普通硬件基礎上的傳統優秀游戲,一個游戲應該包括以下幾大功能,如圖3.1所示重列 結束 再來一局輸出完成游戲所得分數設計鋪放按鈕的界面設計填有數字的按鈕銷售退貨結束游戲對數據重新排列操作數字間的連接鼠標操作數據記錄數字按鈕連連看游戲系統圖3.1 系統功能結構圖3.5連連看游戲系統流程圖程序
12、的流程圖如下:開始初始化游戲初始化數組畫表格設置開始界面游戲是否結束顯示游戲結束畫面結束NoYes3.6 本章小結本章是連連看游戲系統的具體設計過程,有具體的需求分析、系統功能模塊、系統流程圖。這里我們開始接觸連連看游戲系統開發的最初步驟,也是很重要的一步。第四章 結束語由于市場需要,游戲的更新速度步步加快,為了適應社會的需要,社會對游戲開發人員的需求,在游戲編程的學習過程中,必須理論與實踐結合,提高編程能力與水平。通過小游戲的設計,對以學過的內容加深理解,對游戲開發的過程有初步的認識,為以后的游戲開發設計和更加深入的學習計算機語言打下夯實的基礎。目前競爭日益激烈的行業環境,對于未來行業的前景
13、,還是要保持樂觀的心態。畢竟游戲并不是一下子就可以編寫成的。需要不斷的技術積累,需要團隊的合作,提高了工作的效率,才算是在游戲開發的道路上成功了一半。在現在這個信息化飛速發展的道路上,要成為一名合格的編程人員,那就必須走好每一步現在的路。基于Java的連連看小游戲,滿足了用戶娛樂的需求,已經達到了預期的目標。雖然該游戲大部分功能基本上已經實現,但是還是會存在一些不足。在今后的進步中,會逐步改進。致謝參考文獻1 (美) 埃克爾著 陳昊鵬,饒若楠等譯. Java編程思想J. 機械工業出版社,20052(美)Gary J.Bronson著 張瓏 劉雅文譯. Java編程原理J. 清華大學出版社,20
14、043(美)Michael Morrison著 徐剛,于健,薛雷譯. 游戲編程入門J. 人民郵電出版社,2005.94(美)Wendy Stahler著 馮寶坤,曹英譯. 游戲編程中的數理應用J. 紅旗出版社,20055(美)克羅夫特(David Wallace Croft)著 彭暉譯. Java游戲高級編程J. 清華大學出版社,20056 (美)David Brackeen著 邱仲潘譯. Java游戲編程J. 科學出版社,20047 聶慶亮編著. Java應用開發指南J. 清華大學出版社,20108 耿祥義,張躍平編著. Java面向對象程序設計J. 清華大學出版社,20109 楊紹方編著.
15、 Java編程實用技術與案例J. 清華大學出版社,2000.1110 明日科技編著. Java編程全能詞典J. 電子工業出版社,2010附錄 源代碼package grame;/* * lianliankan總體算法思路:由兩個確定的按鈕。若這兩個按鈕的數字相等,就開始找它們相連的路經。這個找路經 * 分3種情況:(從下面的這三種情況,我們可以知道,需要三個檢測,這三個檢測分別檢測一條直路經。這樣就會有 * 三條路經。若這三條路經上都是空按鈕,那么就剛好是三種直線(兩個轉彎點)把兩個按鈕連接起來了) * 1.相鄰 * * 2. 若不相鄰的先在第一個按鈕的同行找一個空按鈕。1
16、).找到后看第二個按鈕橫向到這個空按鈕 * 所在的列是否有按鈕。2).沒有的話再看第一個按鈕到與它同行的那個空按鈕之間是否有按鈕。3).沒有的話,再從 * 與第一個按鈕同行的那個空按鈕豎向到與第二個按鈕的同行看是否有按鈕。沒有的話路經就通了,可以消了. * * 3.若2失敗后,再在第一個按鈕的同列找一個空按鈕。1).找到后看第二個按鈕豎向到這個空按鈕所在的行是否有按鈕。 * 2).沒有的話,再看第一個按鈕到與它同列的那個空按鈕之間是否有按鈕。3).沒有的話,再從與第一個按鈕同列的 * 那個空按鈕橫向到與第二個按鈕同列看是否有按鈕。沒有的話路經就通了,可以消了。 * * 若以上三步都失敗,說明這
17、兩個按鈕不可以消去。 */import javax.swing.*;import java.awt.*;import java.awt.event.*;public class LianLianKan implements ActionListener JFrame mainFrame; / 主面板 Container thisContainer; JPanel centerPanel, southPanel, northPanel; / 子面板 JButton diamondsButton = new JButton65;/ 游戲按鈕數組 JButton exitButton, resetB
18、utton, newlyButton; / 退出,重列,重新開始按鈕 JLabel fractionLable = new JLabel(0); / 分數標簽 JButton firstButton, secondButton; / 分別記錄兩次被選中的按鈕 / 儲存游戲按鈕位置(這里其實只要6行,5列。但是我們用了8行,7列。是等于在這個面板按鈕的周圍還圍 /了一層是0的按鈕,這樣就可以實現靠近面板邊緣的兩個按鈕可以消去) int grid = new int87; static boolean pressInformation = false; / 判斷是否有按鈕被選中 int x0 =
19、0, y0 = 0, x = 0, y = 0, fristMsg = 0, secondMsg = 0, validateLV; / 游戲按鈕的位置坐標 int i, j, k, n;/ 消除方法控制 public void init() mainFrame = new JFrame(JKJ連連看); thisContainer = mainFrame.getContentPane(); thisContainer.setLayout(new BorderLayout(); centerPanel = new JPanel(); southPanel = new JPanel(); nort
20、hPanel = new JPanel(); thisContainer.add(centerPanel, Center); thisContainer.add(southPanel, South); thisContainer.add(northPanel, North); centerPanel.setLayout(new GridLayout(6, 5); for (int cols = 0; cols 6; cols+) for (int rows = 0; rows 5; rows+) diamondsButtoncolsrows = new JButton(String .valu
21、eOf(gridcols + 1rows + 1); diamondsButtoncolsrows.addActionListener(this); centerPanel.add(diamondsButtoncolsrows); exitButton = new JButton(退出); exitButton.addActionListener(this); resetButton = new JButton(重列); resetButton.addActionListener(this); newlyButton = new JButton(再來一局); newlyButton.addAc
22、tionListener(this); southPanel.add(exitButton); southPanel.add(resetButton); southPanel.add(newlyButton); fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable .getText(); northPanel.add(fractionLable); mainFrame.setBounds(280, 100, 500, 450); mainFrame.setVisible(true); mainFrame.setD
23、efaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void randomBuild() int randoms, cols, rows; for (int twins = 1; twins = 15; twins+) /一共15對button,30個 randoms = (int) (Math.random() * 25 + 1);/button上的數字 for (int alike = 1; alike = 2; alike+) cols = (int) (Math.random() * 6 + 1); rows = (int) (Math
24、.random() * 5 + 1); while (gridcolsrows != 0) /等于0說明這個空格有了button cols = (int) (Math.random() * 6 + 1); rows = (int) (Math.random() * 5 + 1); this.gridcolsrows = randoms; public void fraction() fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable .getText() + 100); public void reload()
25、 int save = new int30; int n = 0, cols, rows; int grid = new int87; for (int i = 0; i = 6; i+) for (int j = 0; j = 0) /把沒有消去的button重新放一次 cols = (int) (Math.random() * 6 + 1); rows = (int) (Math.random() * 5 + 1); while (gridcolsrows != 0) cols = (int) (Math.random() * 6 + 1); rows = (int) (Math.rand
26、om() * 5 + 1); this.gridcolsrows = saven; n-; mainFrame.setVisible(false); pressInformation = false; / 這里一定要將按鈕點擊信息歸為初始 init(); for (int i = 0; i 6; i+) for (int j = 0; j 5; j+) if (gridi + 1j + 1 = 0) diamondsButtonij.setVisible(false); public void estimateEven(int placeX, int placeY, JButton bz) i
27、f (pressInformation = false) x = placeX; y = placeY; secondMsg = gridxy; secondButton = bz; pressInformation = true; else x0 = x; y0 = y; fristMsg = secondMsg; firstButton = secondButton; x = placeX; y = placeY; secondMsg = gridxy; secondButton = bz; if (fristMsg = secondMsg & secondButton != firstB
28、utton) xiao(); public void xiao() / 相同的情況下能不能消去。仔細分析,不一條條注釋 if (x0 = x & (y0 = y + 1 | y0 = y - 1) | (x0 = x + 1 | x0 = x - 1) & (y0 = y) / 判斷是否相鄰 remove(); else for (j = 0; j j) /第二個按鈕在空按鈕右邊 for (i = y - 1; i = j; i-) /檢測從第二個按鈕橫向左邊到空格所在列為止是否全是空格 if (gridxi != 0) k = 0; break;/存在非空格的就退出,這一退出就不可能k=2了
29、,所以就會到下而215行出同理的判斷列 else k = 1; / K=1說明全是空格通過了第一次驗證,也就是從第二個按鈕橫向左邊到空格所在列為止全是空格 if (k = 1) linePassOne();/進入第二次驗證,也就是從第一個按鈕到它同行的空格之間的空格判斷 if (y j) / 第二個按鈕在空按鈕左邊 for (i = y + 1; i = j; i+) /檢測從第二個按鈕橫向右邊到空格所在列為止是否全是空格 if (gridxi != 0) k = 0; break; else k = 1; if (k = 1) linePassOne(); if (y = j) /第二個按鈕
30、和空按鈕同列 linePassOne(); /第三次檢測,檢測確定為空的第j列的那個按鈕豎向到第二個按鈕,看是不是有按鈕 if (k = 2) if (x0 = x) /第一,二按鈕在同行 remove(); if (x0 x) /第一按鈕在第二按鈕下邊 for (n = x0; n x) /第一按鈕在第二按鈕上邊 for (n = x0; n = x + 1; n-) if (gridnj != 0) k = 0; break; if (gridnj = 0 & n = x + 1) remove(); /-for /當上面的檢測與第一個按鈕同行的空格按鈕失敗后(不能找到與第二個按鈕的相連路
31、經),下面就執行 /檢測與第一個按鈕同列的空格按鈕 for (i = 0; i i) /第二個按鈕在這個空按鈕的下面 for (j = x - 1; j = i; j-) if (gridjy != 0) k = 0; break; else k = 1; if (k = 1) rowPassOne(); if (x i) /第二個按鈕在這個空按鈕的上面 for (j = x + 1; j = i; j+) if (gridjy != 0) k = 0; break; else k = 1; if (k = 1) rowPassOne(); if (x = i) /第二個按鈕與這個空按鈕同行 rowPassOne(); if (k = 2) if (y0 = y) /第二個按鈕與第一個按鈕同列 remove(); if (y0 y) /第二個按鈕在第一個按鈕右邊 for (n = y0; n y) /第二個按鈕在第一個按鈕左邊 for (n = y0; n = y + 1; n-) if (gridin != 0) k = 0; break; if (gridin = 0 & n = y + 1) remove(); /-for /-else /-xiao public void linePassOne() if (y0 j) / 第一按鈕同行空按鈕在左邊 fo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025國內銷售代表合同模板
- 2025租賃合同糾紛訴訟書樣本
- 2025合同執行中權益的運用
- 2025鋼筋加工承包合同
- 重癥心衰治療進展
- 2025企業經營抵押擔保的借款合同
- 麻醉血管活性藥物臨床應用規范
- 防水施工盈虧分析合同
- 2025企業合作協議資料范本合同模板
- 婚慶策劃承包協議
- 自然辯證法論述題146題帶答案(可打印版)
- 2024年植保服務合同正規范本
- 2023年江蘇省南京市中考化學真題(解析版)
- 中級工職業技能
- 2024年檔案知識競賽考試題庫300題(含答案)
- 浙江省寧波市鄞州區2023-2024學年八年級下學期期末數學試題
- 人工智能與企業韌性
- 2024屆江蘇省南京東山外國語學校高考三模數學試卷(原卷版)
- 打地坪施工合同范本
- 廠區保潔服務投標方案【2024版】技術方案
- DL-T+1752-2017熱電聯產機組設計能效指標計算方法
評論
0/150
提交評論