private void SetUpSettings()
 {
     settings      = MinesweeperGame.Settings;
     operators     = settings.Operators;
     FirstGuess    = settings.FirstGuess;
     x             = settings.x;
     y             = settings.y;
     numberofmines = settings.NumberOfMines;
     firststeprule = settings.FirstStepRule;
     rendering     = settings.Rendering;
     usagemode     = settings.usageMode;
     // if (usagemode == MinesweeperUsageMode.NoAI) { ClickToStep = false; useai = false; } originally the user could player but this functionality was removed
     if (usagemode == MinesweeperUsageMode.ClickToStepAI)
     {
         ClickToStep = true; useai = true;
     }
     else
     {
         ClickToStep = false; useai = true;
     }
     samplesize            = settings.SampleSize;
     sleeptime             = settings.SleepTime;
     solvertype            = settings.SolverType;
     guessor               = settings.guessorType;
     MGDSSP_UncoverMax     = settings.MGDSSP_UncoverMax;
     updatetime            = settings.DefaultSolvingSpeed;
     thinkingtime.text     = updatetime.ToString();
     gamestate             = MinesweeperGame.Gamestate;
     relativenumberofmines = (float)settings.NumberOfMines / (settings.x * settings.y);
     MaxSolvingLength      = settings.MaxSolvingLength;
 }
示例#2
0
        public Minesweeper(Difficulty difficulty)
        {
            this.Difficulty = difficulty;
            MinesweeperSettings minesweeperSettings = difficulty.GetMinesweeperSettings();

            sizeX          = minesweeperSettings.X - 1;
            sizeY          = minesweeperSettings.Y - 1;
            mineCount      = minesweeperSettings.MineCount;
            UnflaggedCount = mineCount;

            tileCount             = 0;
            investigatedTileCount = 0;

            Tiles = new Tile[sizeX, sizeY];

            for (int x = 0; x < sizeX; x++)
            {
                for (int y = 0; y < sizeY; y++)
                {
                    Tiles[x, y] = new Tile();
                }
            }

            investigatedTileCount = 0;
            tileCount             = sizeX * sizeY;

            Random random       = new Random();
            int    minesCreated = 0;

            while (mineCount > minesCreated)
            {
                int randomX = random.Next(0, sizeX);
                int randomY = random.Next(0, sizeY);

                if (Tiles[randomX, randomY].HasMine == false)
                {
                    Tiles[randomX, randomY].HasMine = true;

                    AddSurroundingMines(randomX, randomY);

                    minesCreated++;
                }
            }

            State = GameState.NotStarted;
        }
示例#3
0
    public MinesweeperSettings GetCurrentSettings()
    {
        int   x                = int.Parse(sizex.text);
        int   y                = int.Parse(sizey.text);
        float rmines           = float.Parse(relnummines.text);
        MinesweeperSettings ms = new MinesweeperSettings(
            new Vector2Int(int.Parse(FirstGuess[0].text), int.Parse(FirstGuess[1].text)),
            x,
            y,
            (int)(rmines * (x * y)),
            (MinesweeperFirstStepRule)Enum.Parse(typeof(MinesweeperFirstStepRule), firststeprule.value.ToString()),
            render.isOn,
            (MinesweeperUsageMode)Enum.Parse(typeof(MinesweeperUsageMode), useai.value.ToString()),
            int.Parse(samplesize.text),
            int.Parse(sleeptime.text),
            (MinesweeperSolverType)Enum.Parse(typeof(MinesweeperSolverType), solvertype.value.ToString()),
            (GuessorType)Enum.Parse(typeof(GuessorType), guessstrategy.value.ToString()),
            float.Parse(emsMAX.text),
            float.Parse(DefSolve.text),
            int.Parse(MaxBruteForce.text)
            );

        return(ms);
    }
示例#4
0
 void Awake()
 {
     //try to load
     settings = MinesweeperGame.Settings;
 }
    private void UseTestsettings()
    {
        MinesweeperSettings mss = new MinesweeperSettings(operators, FirstGuess, x, y, numberofmines, firststeprule, rendering, usagemode, samplesize, sleeptime, solvertype, guessor, MGDSSP_UncoverMax, updatetime, MaxSolvingLength);

        MinesweeperGame.Settings = mss;
    }