標籤:
第三次實驗
北京電子科技學院(BESTI)
實 驗 報 告
課程:Java程式設計 班級:1352 姓名:黃坤 學號:20135226
成績: 指導教師:婁嘉鵬 實驗日期:
實驗密級: 預習程度: 實驗時間:
儀器組次: 必修/選修:選修 實驗序號:3
實驗名稱: 敏捷開發與XP實踐
實驗目的與要求:
完成實驗、撰寫實驗報告,實驗報告以部落格方式發表在部落格園,注意實驗報告重點是運行結果,遇到的問題(工具尋找,安裝,使用,程式的編輯,調試,運行等)、解決辦法(空洞的方法如“查網路”、“問同學”、“看書”等一律得0分)以及分析(從中可以得到什麼啟示,有什麼收穫,教訓等)。報告可以參考範飛龍老師的指導
實驗儀器:
重構:
一、一個完整的重構流程包括:
- 從版本控制系統程式碼程式庫中Check out code
- 讀懂代碼(包括測試代碼)
- 發現bad smell
- Refactoring
- 運行所有的Unit Tests
- 往程式碼程式庫中Check in code
二、重構技能
三、何時需要重構
TDD測試:
四、遊戲:掃雷
import static org.junit.Assert.*;
import org.junit.Test;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import MyFrame.Constant;
public class testTank {
private int x,y;
private int wid=Constant.WW;
private int hei=Constant.WH;
public int tet(int x, int y) {
this.x = x;
this.y = y;
return 0;
}
public void draw(Graphics g){
Color c=g.getColor();
g.setColor(Color.GRAY);
g.fillRect(x, y, wid, hei);
g.setColor(c);
}
public Rectangle getRect(){
return new Rectangle(x,y,wid,hei);
}
@Test
public void test() {
assertEquals(0,tet(1,1));
}
}
package com.sf.minesweeper.bean;
import javax.swing.JLabel;
/**
* 自訂標籤(雷塊)
*/
public class MineLabel extends JLabel {
private static final long serialVersionUID = -7271927020145498558L;
/**
* 判斷是否是雷
*
* */
private boolean isMine;
/**
* 判斷雷塊是否展開
*
* */
private boolean isExpanded;
/**
* 判斷雷塊是否是旗子
*
* */
private boolean isFlag;
/**
* 判斷是否是雷且未標上旗子
* */
private boolean isMineAndNotflag;
/**
* count 計算雷塊周圍的雷數
*
* */
private int mineCount;
/**
* 雷塊所在的行
*
* */
private int rowIndex;
/**
* 雷塊所在的列
*
* */
private int colIndex;
private int expend=0;
//雷區上的行列座標
public MineLabel(int rowIndex, int colIndex) {
this.rowIndex = rowIndex;
this.colIndex = colIndex;
}
//一向是對應的一些get和set方法
public boolean isMine() {
return isMine;
}
public void setMine(boolean isMine) {
this.isMine = isMine;
}
public boolean isExpanded() {
return isExpanded;
}
public void setExpanded(boolean isExpanded) {
this.isExpanded = isExpanded;
}
public boolean isFlag() {
return isFlag;
}
public void setFlag(boolean isFlag) {
this.isFlag = isFlag;
}
public int getMineCount() {
return mineCount;
}
public void setMineCount(int mineCount) {
this.mineCount = mineCount;
}
public int getRowIndex() {
return rowIndex;
}
public void setRowIndex(int rowIndex) {
this.rowIndex = rowIndex;
}
public int getColIndex() {
return colIndex;
}
public void setColIndex(int colIndex) {
this.colIndex = colIndex;
}
/**
* rightClickCount 右鍵點擊次數
*
* */
private int rightClickCount;
public int getRightClickCount() {
return rightClickCount;
}
public void setRightClickCount(int rightClickCount) {
this.rightClickCount = rightClickCount;
}
}
package com.sf.minesweeper.bean;
public class Own implements Comparable<Own>{
private int times;
private String name;
private String level;
public Own(int times, String name, String level) {
super();
this.times = times;
this.name = name;
this.level = level;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public int getTimes() {
return times;
}
public void setTimes(int times) {
this.times = times;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int compareTo(Own arg0) {
// TODO Auto-generated method stub
int i = this.times - arg0.times;
if(i==0){
return this.name.hashCode() - arg0.name.hashCode();
}
return i;
}
}
介面如下:
出現問題及解決辦法:
無
JAVA第三次實驗