https://github.com/kongxiangyu/test/blob/master/tanchishe
一、題目簡介:
貪吃蛇游戲設計與實現,主要分為以下二個模塊:游戲主界面模塊和游戲控制模塊。在此只實現游戲的游戲主界面模塊、游戲控制模塊。並且只是實現移動速度、暫停、重新開始等功能。
二、github地址:
https://github.com/kongxiangyu/test/blob/master/tanchishe
三、程序流程圖
本次游戲設計的處理流程如圖1所示。

四、總設計模塊的划分
根據游戲需求中游戲所要實現的功能,整個游戲分為二個模塊進行具體的設計,如圖2所示。

游戲控制模塊的主要框架如圖3所示。

游戲暫停控制:點擊“F3”按鈕,游戲暫停;再單擊,游戲繼續。
游戲重新開始控制:點擊“F2”鍵后,點擊確定,即游戲重新開始。
游戲退出控制:點擊“F4”鍵好,點擊確定,退出游戲界面。
五、類、方法、屬性說明
(1)成員變量
表1 主要成員變量(屬性)
| 成員變量描述 |
變量類型 |
名稱 |
| 文件菜單中子菜單“新建” |
JMenuItem |
mFile_New |
| 編輯菜單中子菜單“撤消” |
JMenuItem |
mEdit_Undo |
| 格式菜單中子菜單“顏色” |
JMenu |
formatMenu_Color |
| 幫助菜單中子菜單“幫助主題” |
MenuItem |
mHelp_HelpTopics |
(2)方法
表2 主要方法
| 方法名 |
功能 |
備注 |
| Notepad4() |
描述記事本 |
無 |
| Text.setBackground(Color.black) |
設置編輯區默認背景色 |
無 |
| Text.setForeground(Color.black) |
設置編輯區默認前景色 |
無 |
六、設計結果與分析
本程序在運行后,能夠正常的相應按鍵事件。由於程序的主要部分已經集成為一個對象SnakeModel,所以利用鍵盤就可以實現操作。蛇前行的過程中,可以任意向其左或右方向改變方向。點擊F3鍵后游戲就暫停了。點擊F2鍵游戲重新開始。點擊F4游戲退出。運行結果如下圖4所示:

圖4 程序運行圖
當蛇沒有吃到食物且碰到邊界或碰撞到自己的身體時,游戲結束。如果想重新開始即點擊“確定”后按F2鍵,運行結果如下圖5所示:


七、程序異常處理
在蛇的運行線程過程中,當蛇撞到牆或自己的身體時,將拋出一個Exception類的異常對象,然后使用try-catch去捕捉這個異常,
異常的處理如下:
try{ Thread.sleep(timeInterval); } catch(Exception e) { break;
}
八、junit-4測試
1.首先新建一個項目叫JUnit_Test1,我們編寫一個Calculator類
public class Calculator ...{
private static int result; // 靜態變量,用於存儲運行結果
public void add(int n) ...{
result = result + n;
}
public void substract(int n) ...{
result = result - 1; //Bug: 正確的應該是 result =result-n
}
public void multiply(int n) ...{
} // 此方法尚未寫好
public void divide(int n) ...{
result = result / n;
}
public void square(int n) ...{
result = n * n;
}
public void squareRoot(int n) ...{
for (; ;) ; //Bug : 死循環
}
public void clear() ...{ // 將結果清零
result = 0;
}
public int getResult() ...{
return result;
}
}
2.第二步,將JUnit4單元測試包引入這個項目:在該項目上點右鍵,點“屬性”,如圖:

在彈出的屬性窗口中,首先在左邊選擇“Java Build Path”,然后到右上選擇“Libraries”標簽,之后在最右邊點擊“Add Library…”按鈕,如下

然后在新彈出的對話框中選擇JUnit4並點擊確定,如上圖所示,JUnit4軟件包就被包含進我們這個項目了。
第三步,生成JUnit測試框架:在Eclipse的Package Explorer中用右鍵點擊該類彈出菜單,選擇“New à JUnit Test Case”。如下圖所示:

點擊“下一步”后,系統會自動列出你這個類中包含的方法,選擇你要進行測試的方法。
第四步,運行測試代碼:按照上述代碼修改完畢后,我們在CalculatorTest類上點右鍵,選擇“Run As à JUnit Test”來運行我們的測試,如下圖所示:

進度條是紅顏色表示發現錯誤,具體的測試結果在進度條上面有表示
測試代碼:
import static org.junit.Assert.*;
import org.junit.Before; import org.junit.Test;
public class CalculatorTest {
@Before public void setUp() throws Exception { }
@Test public void test() { fail("Not yet implemented"); }
}
九:結對人:王海玲 孔祥玉
王海玲的博客地址:

心得體會
通過這次課程設計,我對這學期所學的JAVA語言程序設計有一個更深刻的了解,將所學的知識應用於實踐,由於所學知識有限。為了使游戲能夠實現自己預先的構想,通過和王海玲同學上網和去圖書館找程序,比較好的流程圖及功能模塊,不斷閱讀修改代碼使程序達到預期所要實現的目標,完成課程設計。王海玲同學負責代碼部分,而我負責觀察找出問題,總之,通過本次的課程設計,使我平時學到的理論知識得到了很好地升華,理論與實際得到一次很好的結合,為我今后參加工作打下了堅實的基礎,使我受益匪淺
