Example #1
0
 /// <summary>
 /// コンストラクター
 /// </summary>
 /// <param name="boxPosition"></param>
 /// <param name="boxType"></param>
 public BoxArrayImpl(
     Vector3 boxPosition,
     BoxType.IType boxType,
     int groupListNum,
     bool isDeletable,
     bool isRegenerated,
     GameObject gameObject,
     BoxName boxName
     ) => (
Example #2
0
 /// <summary>
 /// タイプ設定、再生成されたボックスに設定
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public IBoxArray SetTypeWithRegenerate(BoxType.IType type)
 => new BoxArrayImpl(
     BoxPosition,
     type,
     GroupListNum,
     true,
     true,
     GameObj,
     BoxName
     );
Example #3
0
 /// <summary>
 /// タイプ設定
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public IBoxArray SetType(BoxType.IType type)
 => new BoxArrayImpl(
     BoxPosition,
     type,
     GroupListNum,
     IsDeletable,
     IsRegenerated,
     GameObj,
     BoxName
     );
Example #4
0
 /// <summary>
 /// Box 配列の要素を生成する
 /// </summary>
 /// <param name="boxPosition"></param>
 /// <param name="boxType"></param>
 /// <returns></returns>
 public static IBoxArray Create(
     Vector3 boxPosition,
     BoxType.IType boxType,
     int groupListNum,
     bool isDeleteable,
     bool isRegenerated,
     GameObject gameObject,
     BoxName boxName
     ) => new BoxArrayImpl(
     boxPosition,
     boxType,
     groupListNum,
     isDeleteable,
     isRegenerated,
     gameObject,
     boxName
     );
Example #5
0
 /// <summary>
 /// DFS アルゴリズムで配列の中身を探索、グループリストに追加
 /// </summary>
 /// <param name="row">行</param>
 /// <param name="column">列</param>
 /// <param name="maxRow">最大行</param>
 /// <param name="maxColumn">最大列</param>
 /// <param name="type">選択されたタイプ</param>
 /// <param name="types">生成されている配列のタイプたち</param>
 /// <param name="temp"></param>
 /// <param name="visited">訪問情報の配列</param>
 private static void MatchDfs(
     int row,
     int column,
     int maxRow,
     int maxColumn,
     BoxType.IType type,
     IBoxArray[,] boxes,
     List <GroupPosition> temp,
     bool[,] visited)
 {
     visited[row, column] = true;
     temp.Add(new GroupPosition(row, column));
     for (int r = 0; r < 4; r++)
     {
         var dr = row + dir[r, 0];
         var dc = column + dir[r, 1];
         if (canCheck(dr, dc, maxRow, maxColumn) && boxes[dr, dc].BoxType == type && visited[dr, dc] != true)
         {
             MatchDfs(dr, dc, maxRow, maxColumn, type, boxes, temp, visited);
         }
     }
 }