コード例 #1
0
    private void PlaceMines(int minesToPlace)
    {
        while (minesCount < minesToPlace)
        {
            int x = UnityEngine.Random.Range(0, grid.GetWidth());
            int y = UnityEngine.Random.Range(0, grid.GetHeight());

            MapGridObject mapGridObject = grid.GetGridObject(x, y);
            if (mapGridObject.GetGridObjectType() != MapGridObject.Type.Mine)
            {
                mapGridObject.SetGridObjectType(MapGridObject.Type.Mine);
                minesCount++;
            }
        }
    }
コード例 #2
0
    private void PlaceMinesIndicators()
    {
        for (int x = 0; x < grid.GetWidth(); x++)
        {
            for (int y = 0; y < grid.GetHeight(); y++)
            {
                MapGridObject mapGridObject = grid.GetGridObject(x, y);
                if (mapGridObject.GetGridObjectType() == MapGridObject.Type.Empty)
                {
                    List <MapGridObject> neighbourList = GetNeighbourList(x, y);
                    int mineCount = 0;
                    foreach (MapGridObject neighbour in neighbourList)
                    {
                        if (neighbour.GetGridObjectType() == MapGridObject.Type.Mine)
                        {
                            mineCount++;
                        }
                    }

                    switch (mineCount)
                    {
                    case 1: mapGridObject.SetGridObjectType(MapGridObject.Type.MineNum_1); break;

                    case 2: mapGridObject.SetGridObjectType(MapGridObject.Type.MineNum_2); break;

                    case 3: mapGridObject.SetGridObjectType(MapGridObject.Type.MineNum_3); break;

                    case 4: mapGridObject.SetGridObjectType(MapGridObject.Type.MineNum_4); break;

                    case 5: mapGridObject.SetGridObjectType(MapGridObject.Type.MineNum_5); break;

                    case 6: mapGridObject.SetGridObjectType(MapGridObject.Type.MineNum_6); break;

                    case 7: mapGridObject.SetGridObjectType(MapGridObject.Type.MineNum_7); break;

                    case 8: mapGridObject.SetGridObjectType(MapGridObject.Type.MineNum_8); break;
                    }
                }
            }
        }
    }