void ConvertLegoBlockInfo2LandscapeInfo(LegoBlockInfo[,] legoBlockMap)
 {
     for (int y = 0; y < LegoData.LANDSCAPE_MAP_HEIGHT; y++)
     {
         for (int x = 0; x < LegoData.LANDSCAPE_MAP_WIDTH; x++)
         {
             landscapeLegoMap_[x, y]        = new LandscapeLegoInfo(legoBlockMap[x, y].legoColor);
             landscapeLegoMap_[x, y].height = legoBlockMap[x, y].height;
             if (x == 0 || y == 0)
             {
                 if (x == 0 && y == 0)
                 {
                     continue;
                 }
                 else if (x == 0)
                 {
                     landscapeLegoMap_[x, y].north = landscapeLegoMap_[x, y - 1].myType_Detail_OverView;
                 }
                 else if (y == 0)
                 {
                     landscapeLegoMap_[x, y].west = landscapeLegoMap_[x - 1, y].myType_Detail_OverView;
                 }
             }
             else
             {
                 landscapeLegoMap_[x, y].west      = landscapeLegoMap_[x - 1, y].myType_Detail_OverView;
                 landscapeLegoMap_[x - 1, y].east  = landscapeLegoMap_[x, y].myType_Detail_OverView;
                 landscapeLegoMap_[x, y].north     = landscapeLegoMap_[x, y - 1].myType_Detail_OverView;
                 landscapeLegoMap_[x, y - 1].south = landscapeLegoMap_[x, y].myType_Detail_OverView;
             }
         }
     }
 }
    LandscapeType_Details SetRoadDetails(LandscapeLegoInfo landscapeLegoMap)
    {
        if ((landscapeLegoMap.north == LandscapeType_OverView.Water && landscapeLegoMap.south == LandscapeType_OverView.Water) || (landscapeLegoMap.east == LandscapeType_OverView.Water &&
                                                                                                                                   landscapeLegoMap.west == LandscapeType_OverView.Water))//南北か東西がWaterで挟まれているときBridgeと判定
        {
            return(LandscapeType_Details.Bridge);
        }

        int Count = 0;

        if (landscapeLegoMap.north == LandscapeType_OverView.Road)
        {
            Count++;
        }
        if (landscapeLegoMap.south == LandscapeType_OverView.Road)
        {
            Count++;
        }
        if (landscapeLegoMap.east == LandscapeType_OverView.Road)
        {
            Count++;
        }
        if (landscapeLegoMap.west == LandscapeType_OverView.Road)
        {
            Count++;
        }

        if (Count == 1)//東西南北のRoadの数で種類を判定
        {
            return(LandscapeType_Details.Road_Straight);
        }
        else if (Count == 2)
        {
            if ((landscapeLegoMap.north == LandscapeType_OverView.Road && landscapeLegoMap.south == LandscapeType_OverView.Road) ||
                (landscapeLegoMap.east == LandscapeType_OverView.Road && landscapeLegoMap.west == LandscapeType_OverView.Road))
            {
                return(LandscapeType_Details.Road_Straight);
            }
            else
            {
                return(LandscapeType_Details.Road_Curve);
            }
        }
        else if (Count == 3)
        {
            return(LandscapeType_Details.Road_Intersection_T);
        }
        else if (Count == 4)
        {
            return(LandscapeType_Details.Road_Intersection_X);
        }

        return(LandscapeType_Details.Space);//一つだけあるRoadはSpaceにしておく
    }
 LandscapeType_Details SetNatureDetails(LandscapeLegoInfo landscapeLegoMap)
 {
     if (landscapeLegoMap.north != LandscapeType_OverView.Nature && landscapeLegoMap.south != LandscapeType_OverView.Nature && landscapeLegoMap.east != LandscapeType_OverView.Nature &&
         landscapeLegoMap.west != LandscapeType_OverView.Nature)
     {
         return(LandscapeType_Details.Park);
     }
     else
     {
         return(LandscapeType_Details.Forest);
     }
 }
    LandscapeType_Details SetWaterDetails(LandscapeLegoInfo landscapeLegoMap)
    {
        if (landscapeLegoMap.height >= 2)//高さが2以上あるなら噴水(Fountain)
        {
            return(LandscapeType_Details.Fountain);
        }

        int Count = 0;

        if (landscapeLegoMap.north == LandscapeType_OverView.Water)
        {
            Count++;
        }
        if (landscapeLegoMap.south == LandscapeType_OverView.Water)
        {
            Count++;
        }
        if (landscapeLegoMap.east == LandscapeType_OverView.Water)
        {
            Count++;
        }
        if (landscapeLegoMap.west == LandscapeType_OverView.Water)
        {
            Count++;
        }

        if (Count == 1)//東西南北のWaterの数で種類を判定
        {
            return(LandscapeType_Details.River_Straight);
        }
        else if (Count == 2)
        {
            if ((landscapeLegoMap.north == LandscapeType_OverView.Water && landscapeLegoMap.south == LandscapeType_OverView.Water) ||
                (landscapeLegoMap.east == LandscapeType_OverView.Water && landscapeLegoMap.west == LandscapeType_OverView.Water))
            {
                return(LandscapeType_Details.River_Straight);
            }
            else
            {
                return(LandscapeType_Details.River_Curve);
            }
        }
        else if (Count == 3)
        {
            return(LandscapeType_Details.River_Intersection_T);
        }

        return(LandscapeType_Details.Space);//一つだけあるRoadはSpaceにしておく
    }
 LandscapeType_Details SetBuildingDetails(LandscapeLegoInfo landscapeLegoMap)
 {
     if (landscapeLegoMap.height >= 2 && landscapeLegoMap.height < 5)
     {
         return(LandscapeType_Details.Shop);
     }
     else if (landscapeLegoMap.height == 5)
     {
         return(LandscapeType_Details.Skyscraper);
     }
     else
     {
         return(LandscapeType_Details.House);
     }
 }
 LandscapeType_Details SetBuildingDetails(LandscapeLegoInfo landscapeLegoMap)
 {
     if (landscapeLegoMap.height >= 2 && landscapeLegoMap.height < 5)//高さが2~4のBuildingをShopと設定しておく
     {
         return(LandscapeType_Details.Shop);
     }
     else if (landscapeLegoMap.height == 5)//高さが5のBuildingはSkyscraper(摩天楼、高層ビル)としておく、Tokyotowerでもよい?いっぱい並んでいるとこわいので別枠?
     {
         return(LandscapeType_Details.Skyscraper);
     }
     else
     {
         return(LandscapeType_Details.House);//高さが1のときはHouseと設定しておく
     }
 }
 LandscapeType_Details SetRoadDetails(LandscapeLegoInfo landscapeLegoMap)
 {
     if ((landscapeLegoMap.north == LandscapeType_OverView.Water && landscapeLegoMap.south == LandscapeType_OverView.Water) || (landscapeLegoMap.east == LandscapeType_OverView.Water &&
                                                                                                                                landscapeLegoMap.west == LandscapeType_OverView.Water))
     {
         return(LandscapeType_Details.Bridge);
     }
     else if (landscapeLegoMap.north == LandscapeType_OverView.Road)
     {
         if (landscapeLegoMap.south == LandscapeType_OverView.Road)
         {
             if (landscapeLegoMap.east == LandscapeType_OverView.Road && landscapeLegoMap.west == LandscapeType_OverView.Road)
             {
                 return(LandscapeType_Details.Road_Intersection_X);//n & s & e & w == 1
             }
             else if (landscapeLegoMap.east == LandscapeType_OverView.Road || landscapeLegoMap.west == LandscapeType_OverView.Road)
             {
                 return(LandscapeType_Details.Road_Intersection_T); //n & s & e == 1 or n & s & w == 1
             }
             return(LandscapeType_Details.Road_Straight);           //n & s == 1
         }
         else if (landscapeLegoMap.east == LandscapeType_OverView.Road && landscapeLegoMap.west == LandscapeType_OverView.Road)
         {
             return(LandscapeType_Details.Road_Intersection_T);//n & e & w == 1
         }
         else if (landscapeLegoMap.east == LandscapeType_OverView.Road || landscapeLegoMap.west == LandscapeType_OverView.Road)
         {
             return(LandscapeType_Details.Road_Curve); //n & e == 1 or n & w == 1
         }
         return(LandscapeType_Details.Road_Straight);  //n == 1
     }
     else if (landscapeLegoMap.south == LandscapeType_OverView.Road)
     {
         if (landscapeLegoMap.east == LandscapeType_OverView.Road && landscapeLegoMap.west == LandscapeType_OverView.Road)
         {
             return(LandscapeType_Details.Road_Intersection_T);//s & e & w == 1
         }
         else if (landscapeLegoMap.east == LandscapeType_OverView.Road || landscapeLegoMap.west == LandscapeType_OverView.Road)
         {
             return(LandscapeType_Details.Road_Curve); //s & e == 1 or s & w == 1
         }
         return(LandscapeType_Details.Road_Straight);  //s == 1
     }
     else
     {
         return(LandscapeType_Details.Road_Straight);
     }
 }
    LandscapeType_Details SetWaterDetails(LandscapeLegoInfo landscapeLegoMap)
    {
        if (landscapeLegoMap.north == LandscapeType_OverView.Water && landscapeLegoMap.height == 1)
        {
            if (landscapeLegoMap.south == LandscapeType_OverView.Water)
            {
                if (landscapeLegoMap.east == LandscapeType_OverView.Water || landscapeLegoMap.west == LandscapeType_OverView.Water)
                {
                    return(LandscapeType_Details.River_Intersection_T); //n & s & e == 1 or n & s & w == 1 or n & s & e & w == 1
                }
                return(LandscapeType_Details.River_Straight);           //n & s == 1
            }
            else if (landscapeLegoMap.east == LandscapeType_OverView.Water && landscapeLegoMap.west == LandscapeType_OverView.Water)
            {
                return(LandscapeType_Details.River_Intersection_T);//n & e & w == 1
            }
            else if (landscapeLegoMap.east == LandscapeType_OverView.Water || landscapeLegoMap.west == LandscapeType_OverView.Water)
            {
                return(LandscapeType_Details.River_Curve); //n & e == 1 or n & w == 1
            }
            return(LandscapeType_Details.River_Straight);  //n == 1
        }
        else if (landscapeLegoMap.south == LandscapeType_OverView.Water)
        {
            if (landscapeLegoMap.east == LandscapeType_OverView.Water && landscapeLegoMap.west == LandscapeType_OverView.Water)
            {
                return(LandscapeType_Details.River_Intersection_T);//s & e & w == 1
            }
            else if (landscapeLegoMap.east == LandscapeType_OverView.Water || landscapeLegoMap.west == LandscapeType_OverView.Water)
            {
                return(LandscapeType_Details.River_Curve); //s & e == 1 or s & w == 1
            }
            return(LandscapeType_Details.River_Straight);  //s == 1
        }

        /*else if ((landscapeLegoMap.north == LandscapeType_OverView.Water || landscapeLegoMap.south == LandscapeType_OverView.Water || landscapeLegoMap.east == LandscapeType_OverView.Water
        || landscapeLegoMap.west == LandscapeType_OverView.Water) && landscapeLegoMap.height == 2)
        ||  return LandscapeType_Details.Sea;*/
        else if (landscapeLegoMap.height >= 2)
        {
            return(LandscapeType_Details.Fountain);
        }
        else
        {
            return(LandscapeType_Details.River_Straight);//e == 1 or e & w == 1 or w == 1 or 0
        }
    }
    LandscapeType_Details SetNatureDetails(LandscapeLegoInfo landscapeLegoMap)
    {
        int Count = 0;

        if (landscapeLegoMap.north == LandscapeType_OverView.Nature)
        {
            Count++;
        }
        if (landscapeLegoMap.south == LandscapeType_OverView.Nature)
        {
            Count++;
        }
        if (landscapeLegoMap.east == LandscapeType_OverView.Nature)
        {
            Count++;
        }
        if (landscapeLegoMap.west == LandscapeType_OverView.Nature)
        {
            Count++;
        }

        if (Count == 0)//東西南北のNatureの数で種類を判定
        {
            return(LandscapeType_Details.Park);
        }
        else if (Count == 1)
        {
            return(LandscapeType_Details.StreetTree);
        }
        else if (Count == 2)
        {
            return(LandscapeType_Details.StreetTree);
        }
        else if (Count == 3)
        {
            return(LandscapeType_Details.Forest);
        }
        else
        {
            return(LandscapeType_Details.Forest);
        }
    }
 Direction SetRoadDirection(LandscapeLegoInfo landscapeLegoMap)
 {
     if (landscapeLegoMap.north == LandscapeType_OverView.Road)
     {
         return(Direction.North);
     }
     else if (landscapeLegoMap.south == LandscapeType_OverView.Road)
     {
         return(Direction.South);
     }
     else if (landscapeLegoMap.east == LandscapeType_OverView.Road)
     {
         return(Direction.East);
     }
     else if (landscapeLegoMap.west == LandscapeType_OverView.Road)
     {
         return(Direction.West);
     }
     else
     {
         return(Direction.North);
     }
 }
 Direction SetBuildingDirection(LandscapeLegoInfo landscapeLegoMap)
 {
     if (landscapeLegoMap.north == LandscapeType_OverView.Road)//北南西東の順に見ていき、Roadがあった方向を向きに設定
     {
         return(Direction.North);
     }
     else if (landscapeLegoMap.south == LandscapeType_OverView.Road)
     {
         return(Direction.South);
     }
     else if (landscapeLegoMap.east == LandscapeType_OverView.Road)
     {
         return(Direction.East);
     }
     else if (landscapeLegoMap.west == LandscapeType_OverView.Road)
     {
         return(Direction.West);
     }
     else
     {
         return(Direction.North);
     }
 }
    Direction SetRoadDirection(LandscapeLegoInfo landscapeLegoMap)
    {
        // □←ここ
        //□□□    Road_Intersection_Tの一本出てる方を向きにする
        if (landscapeLegoMap.detail == LandscapeType_Details.Road_Intersection_T)
        {
            if (landscapeLegoMap.south != LandscapeType_OverView.Road)
            {
                return(Direction.North);
            }
            else if (landscapeLegoMap.north != LandscapeType_OverView.Road)
            {
                return(Direction.South);
            }
            else if (landscapeLegoMap.west != LandscapeType_OverView.Road)
            {
                return(Direction.East);
            }
            else if (landscapeLegoMap.east != LandscapeType_OverView.Road)
            {
                return(Direction.West);
            }
        }

        // □←ここ
        //□□      北・西Road_Curveの北部分の向きにする
        if (landscapeLegoMap.detail == LandscapeType_Details.Road_Curve)
        {
            if (landscapeLegoMap.north == LandscapeType_OverView.Road && landscapeLegoMap.east == LandscapeType_OverView.Road)
            {
                return(Direction.North);
            }
            else if (landscapeLegoMap.south == LandscapeType_OverView.Road && landscapeLegoMap.west == LandscapeType_OverView.Road)
            {
                return(Direction.South);
            }
            else if (landscapeLegoMap.east == LandscapeType_OverView.Road && landscapeLegoMap.south == LandscapeType_OverView.Road)
            {
                return(Direction.East);
            }
            else if (landscapeLegoMap.west == LandscapeType_OverView.Road && landscapeLegoMap.north == LandscapeType_OverView.Road)
            {
                return(Direction.West);
            }
        }

        //Road_Straight、その他
        if (landscapeLegoMap.north == LandscapeType_OverView.Road)
        {
            return(Direction.North);
        }
        else if (landscapeLegoMap.south == LandscapeType_OverView.Road)
        {
            return(Direction.South);
        }
        else if (landscapeLegoMap.east == LandscapeType_OverView.Road)
        {
            return(Direction.East);
        }
        else if (landscapeLegoMap.west == LandscapeType_OverView.Road)
        {
            return(Direction.West);
        }
        else
        {
            return(Direction.North);
        }
    }