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; }
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; }
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); }
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; }