選擇困難症的福音——團隊Scrum衝刺階段-Day 7

選擇困難症的福音——團隊Scrum衝刺階段-Day 7

今日進展

測試代碼
將界面設計完後放app使用示意圖於此android

今日貢獻量

嚴域俊 吳恆佚 曾程 劉辰 鄧煜坤
3.5 3.5 3.3 3.6 3

貢獻量彙總

日期 嚴域俊 吳恆佚 曾程 劉辰 鄧煜坤
第2天 3 3.5 2.5 3.2 2.6
第3天 3.5 3.5 3.3 3.6 3
第4天 3.5 3.5 3.3 3.6 3
第5天 3.4 3.1 3.3 3.5 3.1
第6天 3.4 3 3 3.5 3.2
第7天 3.5 3.5 3.3 3.6 3
合計 20 21 19 21 19

站立式會議

TODOlist

項目的發佈說明

  • CanMoveToLeft(可否左移動)、CanMoveToRight(可否右移動)
    構建的方法:2個依據,根據方塊的x方位與本體所佔的格之和是否與最大(最小)x軸重合或者已有方塊重合
public static boolean canMoveToLeft(List<BlockUnit> blockUnits, int max_x, List<BlockUnit> allBlockUnits) {
   for (BlockUnit blockUnit : blockUnits) {
      int x = blockUnit.x;
      if (x - UNIT_SIZE < BEGIN) {
         return false;
      }
      int y = blockUnit.y;
      if (isSameUnit(x - UNIT_SIZE, y, allBlockUnits)) {
         return false;
      }
   }
   return true;
}
public static boolean canMoveToRight(List<BlockUnit> blockUnits, int max_x, List<BlockUnit> allBlockUnits) {
   for (BlockUnit blockUnit : blockUnits) {
      int x = blockUnit.x;
      if (x + UNIT_SIZE > max_x - UNIT_SIZE) {
         return false;
      }
      int y = blockUnit.y;
      if (isSameUnit(x + UNIT_SIZE, y, allBlockUnits)) {
         return false;
      }
   }
   return true;
}
  • CanMoveToDown(可否向下)
    構建的方法:2個依據,方塊的y軸+方塊大小是否到底,以及是否重合。
public static boolean canMoveToDown(List<BlockUnit> blockUnits, int max_y, List<BlockUnit> allBlockUnits) {
   for (BlockUnit blockUnit : blockUnits) {
      int x = blockUnit.x;
      int y = blockUnit.y + UNIT_SIZE * 2;
      if (y > max_y - UNIT_SIZE) {
         return false;
      }
      if (isSameUnit(x, y, allBlockUnits)) {
         return false;
      }
   }
   return true;
}

以上方法均爲循環(知識點:列表)數據庫

  • CanRoute(可否旋轉)
    構建方法:1個依據、是否有重疊的方塊,調用isSameUnit
public static boolean canRoute(List<BlockUnit> blockUnits, List<BlockUnit> allBlockUnits) {
   for (BlockUnit blockUnit : blockUnits) {
      if (isSameUnit(blockUnit.x, blockUnit.y, allBlockUnits)) {
         return false;
      }
   }
   return true;
}
  • CanCoutinueGame(可否繼續遊戲)
    構建方法:1個依據、y軸是否小於等於y軸最高
public static boolean canContinueGame(List<BlockUnit> allBlockUnits) {
   if (allBlockUnits.size() == 0) {
      return true;
   }
   for (BlockUnit blockUnit : allBlockUnits) {
      if (blockUnit.y <= BlockUnit.BEGIN) {
         return false;
      }
   }
   return true;
}
  • toLeft、toRight、toDown(左、右、下移)
    構建方法:進行相應的Canxx方法判斷左、右、下移進行改動對應的x、y值
public static boolean toLeft(List<BlockUnit> blockUnits, int max_x, List<BlockUnit> allBlockUnits) {
   if (canMoveToLeft(blockUnits, max_x, allBlockUnits)) {
      for (BlockUnit blockUnit : blockUnits) {
         blockUnit.x = blockUnit.x - UNIT_SIZE;
      }
      return true;
   }
   return false;
}
public static boolean toRight(List<BlockUnit> blockUnits, int max_x, List<BlockUnit> allBlockUnits) {
   if (canMoveToRight(blockUnits, max_x, allBlockUnits)) {
      for (BlockUnit blockUnit : blockUnits) {
         blockUnit.x = blockUnit.x + UNIT_SIZE;
      }
      return true;
   }
   return false;
}
public static void toDown(List<BlockUnit> blockUnits, int max_Y, List<BlockUnit> allBlockUnits) {
   for (BlockUnit blockUnit : blockUnits) {
      blockUnit.y = blockUnit.y + BlockUnit.UNIT_SIZE;
   }
}
  • isSameUnit(相同方法)
    構建方法:與以前找相同判斷相似
public static boolean isSameUnit(int x, int y, List<BlockUnit> allBlockUnits) {
   for (BlockUnit blockUnit : allBlockUnits) {
      if (Math.abs(x - blockUnit.x) < UNIT_SIZE && Math.abs(y - blockUnit.y) < UNIT_SIZE) {
         return true;
      }
   }
   return false;
}
  • remove(滿減)
    構建方法:當達到滿的時候,進行逆向遍歷獲得該行,並刪除該行
    (知識點:逆向遍歷)
public static void remove(List<BlockUnit> allBlockUnits, int j) {
   for (int i = allBlockUnits.size() - 1; i >= 0; i--) {
      
      if ((int) ((allBlockUnits.get(i).y - BEGIN) / 50) == j)
         allBlockUnits.remove(i);
   }
}
  • GameConfit(遊戲佈局)
    把速度設計爲400數組

  • NextBlockView(定義了下一個方塊的構建)
    調用android.Content.Context網絡

android.Content.Context 知識點
android.graphics.Canvas 背景
android.graphics.Color 顏色
android.graphics.Paint 繪畫
android.graphics.RectF 網格

利用的知識點是數組列表app

NextBlockView(其構造方法):佈局

  1. 用於設置背景顏色
  2. 用於設置方塊顏色
  • FetrisActivityAW(俄羅斯方塊主程序)
    調用:1. NextBlockView
    2. TetrisViewAW
    StartGame:調用T·etrisViewAW中的同名方法
    PauseGame:調用T·etrisViewAW中的同名方法
    ContinueGame:調用T·etrisViewAW中的同名方法
    StopGame:調用T·etrisViewAW中的同名方法,並將得分設置爲0
    to Left、to Right、to Route、on Destroy:前三個方法調用調用T·etrisViewAW中的同名方法,最後一個調用調用T·etrisViewAW中的stopGame方法測試

  • TetrisViewAw(定義基本參數和運動方法)
    變量:beginpoint=10(網格開始值與橫座標開始值)
    Max_x、Max_y:俄羅斯方塊的最大座標
    num_x=0,num_y=0:行數和列數
    paintWall:背景畫筆 使用的Paint
    paintBlock:單元塊畫筆 使用的Paintspa

  • map[100]:每一行網格中俄羅斯方塊的個數
    主要方法:
    • OnDraw(繪製網格、構建方塊(單個及全部))
    • Startgame:根據定義變量mainThread的狀態(true、false、null來判斷開始下一局)
    • pauseGame:根據主要變量runningstatus狀態調節爲false進行暫停
    • continueGame:將runningstatus、gamestatues、mainThread均調爲false或null,並清除方塊,再出現「遊戲結束」信息
    • toLeft、toRight、route這些方法至於以前的定義相似
    • trainY:調用trainYoneBlock方法,用於判斷方塊外出界恢復情形方塊處於邊緣的時候,翻轉的話有可能出位,這個方法用於遞歸判斷是否出位並左右平移進行修改
    • routeTran:相似trainY
    • getNewBlock:用於獲取新的方塊,並顯示下一個方塊
    • deleteBlock:與前面類中的方法相似
    • 定義類中類(私有):MainThread主線程
    • run:該方法用於判斷是否能夠下落、能否消除、能否繼續、更新網絡中的方格,刷新分數
    • TetrisBlock:returnUnit:隨機產生一種方塊,其中種類隨機、方向默認、定義了7個類型方塊,到時候能夠以隨機數的形式進行選擇
  • FetrisActivityAW(俄羅斯方塊主程序)
    調用:1. NextBlockView
    2. TetrisViewAW
    StartGame:調用T·etrisViewAW中的同名方法
    PauseGame:調用T·etrisViewAW中的同名方法
    ContinueGame:調用T·etrisViewAW中的同名方法
    StopGame:調用T·etrisViewAW中的同名方法,並將得分設置爲0
    to Left、to Right、to Route、on Destroy:前三個方法調用調用T·etrisViewAW中的同名方法,最後一個調用調用T·etrisViewAW中的stopGame方法線程

決策樹的類圖

數據庫類圖

主方法類圖

主方法類圖從新排序的

俄羅斯方塊類圖

貪吃蛇類圖
設計

相關文章
相關標籤/搜索