結對項目


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測試框架:在EclipsePackage 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");  }

}

九:結對人:王海玲 孔祥玉

王海玲的博客地址:

http://home.cnblogs.com/u/wanghailing/ 

心得體會

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

 

 

 

 

  

  

 

  

 

  

 

 

 

 

 

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM